From 23b57fc7eab3defc741a0e54e3dac939ad49f13f Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 22 五月 2026 19:14:04 +0800
Subject: [PATCH] 新增智能电表、空调管理

---
 server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateResponseWrapper.java                 |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalData.java                  |  188 +
 server/system_service/src/main/java/com/doumee/service/aware/DepartmentDataPermissionAware.java                  |    2 
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemPermissionServiceImpl.java              |    2 
 server/system_service/src/main/java/com/doumee/dao/system/dto/CreateRoleMenuDTO.java                             |    2 
 server/system_service/src/main/java/com/doumee/dao/system/SystemDictMapper.java                                  |    2 
 server/system_service/src/main/java/com/doumee/dao/system/dto/CreateSystemUserDTO.java                           |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java                           |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/ElectronicConstant.java                 |  144 +
 server/system_service/src/main/java/com/doumee/service/aware/PositionDataPermissionAware.java                    |    2 
 admin/src/views/business/ywelectrical.vue                                                                        |  165 +
 server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroCacheManager.java                         |    2 
 server/system_service/src/main/java/com/doumee/config/mybatis/MyBatisPlusConfig.java                             |    2 
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemMenu.java                                  |    2 
 server/system_service/src/main/java/com/doumee/core/utils/monitor/JVM.java                                       |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroCredentialsMatcher.java                   |    2 
 server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatAdapter.java                      |    2 
 server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateOutputStream.java                    |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/ParamInfoResponse.java         |   35 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalDataMapper.java                  |   12 
 server/system_service/src/main/java/com/doumee/core/constants/ExceptionLevel.java                                |    2 
 server/system_service/src/main/java/com/doumee/service/system/SystemMenuService.java                             |   30 
 server/system_service/src/main/java/com/doumee/dao/system/SystemMenuMapper.java                                  |    6 
 server/system_service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java                                 |    2 
 server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceStatus.java                            |    2 
 server/system_service/src/main/java/com/doumee/core/utils/Server.java                                            |    2 
 server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerConfig.java                                   |    2 
 server/system_service/src/main/java/com/doumee/service/system/SystemRoleService.java                             |   24 
 server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceInterceptorConfig.java                 |    2 
 server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateRequestWrapper.java                  |    2 
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java                                  |    2 
 server/system_service/src/main/java/com/doumee/api/BaseController.java                                           |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/SecurityResetParamRequest.java  |   24 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalParam.java                 |   79 
 server/system_service/src/main/java/com/doumee/biz/system/SystemDictDataBiz.java                                 |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/CollectorUpdateRequest.java     |   28 
 server/system_service/src/main/java/com/doumee/api/system/SystemMenuController.java                              |    2 
 server/system_service/src/main/java/com/doumee/core/utils/monitor/Memory.java                                    |    2 
 server/system_service/src/main/java/com/doumee/dao/system/SystemDepartmentMapper.java                            |    2 
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemDataPermissionServiceImpl.java          |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/ElectronicToolTestUtil.java                   |   79 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/CollectorUpdateResponse.java   |   29 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalCharge.java                |  107 
 server/system_service/src/main/java/com/doumee/core/utils/monitor/Disk.java                                      |    2 
 server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemPermissionDTO.java                      |    2 
 server/system_service/src/main/java/com/doumee/service/system/SystemUserService.java                             |   22 
 server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuListVO.java                               |    2 
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemTraceLogServiceImpl.java                |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/config/handler/GlobalExceptionHandler.java                |    2 
 server/system_service/src/main/java/com/doumee/dao/system/vo/SystemPositionListVO.java                           |    2 
 server/system_service/src/main/java/com/doumee/cloud/SystemCloudController.java                                  |    2 
 server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelDataHandlerAdapter.java                |    2 
 server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java                                     |    2 
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemPositionUserServiceImpl.java            |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/api/common/PublicController.java                            |    2 
 server/system_service/src/main/java/com/doumee/core/utils/Utils.java                                             |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalCloudController.java                |  101 
 server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDictDataListVO.java                           |    2 
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemPermission.java                            |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalLogCloudController.java             |   49 
 server/system_service/src/main/java/com/doumee/api/system/SystemRoleController.java                              |    2 
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemDictData.java                              |    2 
 server/system_service/src/main/java/com/doumee/biz/system/SystemDataPermissionBiz.java                           |    2 
 server/system_service/src/main/java/com/doumee/cloud/SystemDepartmentCloudController.java                        |    2 
 server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatInterceptor.java                  |    2 
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemTraceLog.java                              |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalChargeService.java           |  111 
 server/db/business.yw_electrical_warning.permissions.sql                                                         |    3 
 server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroToken.java                                |    2 
 server/system_service/src/main/java/com/doumee/biz/system/SystemDictBiz.java                                     |    6 
 server/system_service/src/main/java/com/doumee/api/system/SystemMonitorController.java                           |    2 
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemPosition.java                              |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalLog.java                   |   97 
 server/system_service/src/main/java/com/doumee/core/constants/OperaType.java                                     |    8 
 server/system_service/src/main/java/com/doumee/dao/system/dto/ResetSystemUserPwdDTO.java                         |    2 
 server/system_service/src/main/java/com/doumee/service/system/SystemPositionUserService.java                     |   22 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/CollectorAddRequest.java        |   22 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalChargeCloudController.java          |   91 
 server/system_service/src/main/java/com/doumee/core/exception/BusinessException.java                             |    2 
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemRoleServiceImpl.java                    |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalLogService.java              |  100 
 server/system_service/src/main/java/com/doumee/core/utils/Http.java                                              |    2 
 server/system_service/src/main/java/com/doumee/dao/system/dto/ImportMaterialDTO.java                             |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalChargeServiceImpl.java  |  162 +
 server/system_service/src/main/java/com/doumee/core/model/PageWrap.java                                          |   12 
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemMenuServiceImpl.java                    |    4 
 server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroRealm.java                                |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalParamMapper.java                 |   12 
 server/system_service/src/main/java/com/doumee/cloud/SystemDictDataCloudController.java                          |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalRoom.java                  |   10 
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java                    |    2 
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemUserRole.java                              |    2 
 server/system_service/src/main/java/com/doumee/dao/system/SystemPermissionMapper.java                            |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/ElectronicToolUtil.java                       |  644 +++++
 server/system_service/src/main/java/com/doumee/dao/system/dto/LoginDTO.java                                      |    2 
 server/system_service/src/main/java/com/doumee/service/system/SystemDictService.java                             |   22 
 server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java                          |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/device/ElectronicNotifyController.java                      |   81 
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemDepartment.java                            |    2 
 server/system_service/src/main/java/com/doumee/service/proxy/CacheProxy.java                                     |    2 
 server/system_service/src/main/java/com/doumee/core/aware/DefaultDataPermissionAware.java                        |    2 
 admin/src/views/business/ywelectricalwarning.vue                                                                 |  203 +
 server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelColumn.java                            |    2 
 server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java                            |    4 
 server/system_service/src/main/java/com/doumee/core/utils/monitor/CPU.java                                       |    2 
 server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java                                    |   25 
 server/system_service/src/main/java/com/doumee/service/system/SystemLoginService.java                            |    4 
 server/system_service/src/main/java/com/doumee/dao/system/dto/ImportSystemUserDTO.java                           |    2 
 admin/src/api/business/ywelectrical.js                                                                           |   39 
 server/system_service/src/main/java/com/doumee/core/aware/DataPermissionMapping.java                             |    2 
 server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemDictDataDTO.java                        |    2 
 server/system_service/src/main/java/com/doumee/core/utils/Monitor.java                                           |    2 
 server/system_service/src/main/java/com/doumee/dao/system/SystemDataPermissionMapper.java                        |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalParamService.java            |  111 
 server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroCache.java                                |    2 
 server/system_service/src/main/java/com/doumee/service/common/CaptchaService.java                                |    8 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/systembiz/impl/SystemDictDataBizServiceImpl.java  |    2 
 server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptorConfig.java                        |    2 
 server/system_service/src/main/java/com/doumee/core/model/ApiResponse.java                                       |    2 
 server/system_service/src/main/java/com/doumee/biz/system/SystemDepartmentBiz.java                               |   14 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalLogMapper.java                   |   11 
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemPositionServiceImpl.java                |    4 
 server/system_service/src/main/java/com/doumee/api/system/SystemDepartmentController.java                        |    2 
 server/system_service/src/main/java/com/doumee/cloud/SystemLoginLogCloudController.java                          |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroAuthFilter.java                           |    2 
 server/system_service/src/main/java/com/doumee/core/exception/UnSafeSessionException.java                        |    2 
 server/system_service/src/main/java/com/doumee/dao/system/dto/CreateUserRoleDTO.java                             |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/ElectronicBaseResponse.java    |   41 
 server/system_service/src/main/java/com/doumee/api/system/SystemDictDataController.java                          |    2 
 server/system_service/src/main/java/com/doumee/dao/system/vo/SystemUserDetailVO.java                             |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalMapper.java                      |   11 
 server/system_service/src/main/java/com/doumee/biz/system/SystemPositionBiz.java                                 |   10 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/WarningInfoResponse.java       |   34 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalWarning.java               |  103 
 server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemLoginLogDTO.java                        |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalServiceImpl.java        |  451 +++
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemDict.java                                  |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalWarningServiceImpl.java |  329 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/MeterDealResponse.java         |   30 
 server/system_service/src/main/java/com/doumee/cloud/SystemPermissionCloudController.java                        |    2 
 server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDictListVO.java                               |    2 
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemLoginLog.java                              |    2 
 server/system_service/src/main/java/com/doumee/service/system/SystemLoginLogService.java                         |   24 
 server/system_service/src/main/java/com/doumee/cloud/SystemMonitorCloudController.java                           |    2 
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemRoleMenu.java                              |    2 
 server/system_service/src/main/java/com/doumee/dao/system/SystemRoleMapper.java                                  |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/CollectorStatusResponse.java   |   34 
 server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java                               |    3 
 server/system_service/src/main/java/com/doumee/api/system/SystemDictController.java                              |    2 
 server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatDefaultHandler.java               |    4 
 server/system_service/src/main/java/com/doumee/biz/system/SystemRoleBiz.java                                     |   14 
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemDepartmentUserServiceImpl.java          |    2 
 server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerConfig.java                                 |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/WebPublicController.java                          |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/OpenAccountRequest.java         |   34 
 server/system_service/src/main/java/com/doumee/api/system/SystemController.java                                  |    2 
 server/system_service/src/main/java/com/doumee/cloud/SystemMenuCloudController.java                              |    2 
 server/system_service/src/main/java/com/doumee/dao/system/dto/UpdateSystemMenuSortDTO.java                       |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroSessionDAO.java                           |    2 
 server/system_service/src/main/java/com/doumee/api/system/SystemTraceLogController.java                          |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/CollectorDealResponse.java     |   31 
 server/db/yw_electrical_warning.sql                                                                              |   22 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalWarningMapper.java               |   10 
 server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatInterceptorConfig.java            |    2 
 server/system_service/src/main/java/com/doumee/core/cache/LocalCache.java                                        |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectrical.java                      |  199 +
 admin/src/api/business/ywelectricalwarning.js                                                                    |   21 
 server/system_service/src/main/java/com/doumee/cloud/SystemRoleCloudController.java                              |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroSessionSerializer.java                    |    2 
 server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDepartmentListVO.java                         |    2 
 server/system_service/src/main/java/com/doumee/biz/system/SystemUserBiz.java                                     |   16 
 server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemTraceLogDTO.java                        |    2 
 server/system_service/src/main/java/com/doumee/api/system/SystemLoginLogController.java                          |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalDataService.java             |  111 
 server/system_service/src/main/java/com/doumee/dao/system/dto/UpdatePwdDto.java                                  |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/MeterInfoResponse.java         |   83 
 server/system_service/src/main/java/com/doumee/service/system/SystemDictDataService.java                         |   22 
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java                |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/WarningDefOptionDTO.java                 |   20 
 server/system_service/src/main/java/com/doumee/core/utils/Constants.java                                         |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/WarningListRequest.java         |   81 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/common/PublicCloudController.java                     |    2 
 server/visits/admin_timer/src/main/resources/bootstrap.yml                                                       |    2 
 server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuNodeVO.java                               |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalLogServiceImpl.java     |  136 
 server/system_service/src/main/java/com/doumee/core/utils/Secure.java                                            |    2 
 server/system_service/src/main/java/com/doumee/service/system/SystemDataPermissionService.java                   |    2 
 server/system_service/src/main/java/com/doumee/service/system/SystemUserRoleService.java                         |   24 
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemDictServiceImpl.java                    |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/EleControllerRequest.java       |   41 
 server/system_service/src/main/java/com/doumee/service/system/SystemRolePermissionService.java                   |   24 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/response/erp/ERPApiResponse.java   |    2 
 server/system_service/src/main/java/com/doumee/dao/system/vo/SystemRoleListVO.java                               |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/ElectronicDataResponse.java    |   32 
 server/system_service/src/main/java/com/doumee/dao/system/vo/SystemUserListVO.java                               |    2 
 server/system_service/src/main/java/com/doumee/api/system/SystemUserController.java                              |    2 
 server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemUserDTO.java                            |    2 
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemDepartmentUser.java                        |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/YwSmsEmailBillCallDTO.java               |    2 
 server/system_service/src/main/java/com/doumee/core/aware/DataPermissionAware.java                               |    2 
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemRolePermissionServiceImpl.java          |    2 
 server/system_service/src/main/java/com/doumee/cloud/SystemDictCloudController.java                              |    2 
 server/system_service/src/main/java/com/doumee/cloud/SystemPositionCloudController.java                          |    2 
 server/system_service/src/main/java/com/doumee/core/utils/Location.java                                          |    2 
 server/system_service/src/main/java/com/doumee/api/system/SystemDataPermissionController.java                    |    2 
 server/system_service/src/main/java/com/doumee/core/constants/ResponseStatus.java                                |    2 
 server/system_service/src/main/java/com/doumee/core/utils/MyBatisPlus.java                                       |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/QueryDataRequest.java           |   70 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalParamServiceImpl.java   |  172 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/EleReadRequest.java             |   33 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java            |    5 
 server/system_service/src/main/java/com/doumee/dao/system/vo/SystemPermissionListVO.java                         |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalWarningCloudController.java         |   73 
 server/system_service/src/main/java/com/doumee/biz/system/SystemMenuBiz.java                                     |   16 
 server/system_service/src/main/java/com/doumee/service/system/SystemRoleMenuService.java                         |   24 
 server/system_timer/src/main/java/com/doumee/SystemTimerApplication.java                                         |    2 
 server/system_service/src/main/java/com/doumee/core/utils/UserClient.java                                        |    2 
 server/system_service/src/main/java/com/doumee/cloud/SystemDataPermissionCloudController.java                    |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalChargeMapper.java                |   12 
 server/system_service/src/main/java/com/doumee/core/annotation/trace/Trace.java                                  |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalService.java                 |  107 
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemRoleMenuServiceImpl.java                |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/SecurityResetRequest.java       |   34 
 server/system_service/src/main/java/com/doumee/dao/system/dto/CreateRolePermissionDTO.java                       |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/api/common/CaptchaController.java                           |    4 
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemUserRoleServiceImpl.java                |    2 
 server/system_service/src/main/java/com/doumee/service/system/SystemPositionService.java                         |   28 
 server/system_service/src/main/java/com/doumee/api/system/SystemPermissionController.java                        |    2 
 server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateInputStream.java                     |    2 
 server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemRoleDTO.java                            |    2 
 server/visits/admin_timer/src/main/java/com/doumee/TimerApplication.java                                         |    4 
 server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerInterceptorConfig.java                |    2 
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemRole.java                                  |    2 
 server/system_service/src/main/java/com/doumee/service/system/SystemPermissionService.java                       |   26 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/OpenAccountParamRequest.java    |   42 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalWarningService.java          |   22 
 server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemDictDTO.java                            |    2 
 server/system_service/src/main/java/com/doumee/service/system/SystemTraceLogService.java                         |   22 
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginLogServiceImpl.java                |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalDataCloudController.java            |   92 
 server/system_service/src/main/java/com/doumee/biz/system/SystemPermissionBiz.java                               |   10 
 server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDataPermissionListVO.java                     |    2 
 server/system_service/src/main/java/com/doumee/service/system/SystemDepartmentUserService.java                   |   24 
 server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerInterceptor.java                      |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/UpdateCompanySortDTO.java               |    2 
 server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceType.java                              |    2 
 server/system_service/src/main/java/com/doumee/core/model/PageData.java                                          |   10 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalParamCloudController.java           |   91 
 server/db/business.yw_electrical.permissions.sql                                                                 |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/QueryDataInfoResponse.java     |   50 
 server/system_service/src/main/java/com/doumee/core/constants/DataPermissionConstants.java                       |    2 
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemDepartmentServiceImpl.java              |    4 
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemDataPermission.java                        |    2 
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemRolePermission.java                        |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroSessionManager.java                       |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/VisitsAdminApplication.java                                 |    2 
 server/system_service/src/main/java/com/doumee/core/servlet/ServletRewriteFilter.java                            |    2 
 server/system_service/src/main/java/com/doumee/service/system/SystemDepartmentService.java                       |   26 
 server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceInterceptor.java                       |    2 
 server/system_service/src/main/java/com/doumee/dao/system/dto/LoginByOpenidDTO.java                              |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/MeterAddResponse.java          |   33 
 server/db/business.yw_electrical_warning.menu.sql                                                                |   37 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/systembiz/SystemDictDataBizService.java           |    2 
 server/system_service/src/main/java/com/doumee/dao/system/SystemPositionMapper.java                              |    4 
 server/system_service/src/main/java/com/doumee/config/mybatis/MyBatisInterceptor.java                            |   10 
 server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemDepartmentDTO.java                      |    2 
 server/system_service/src/main/java/com/doumee/dao/system/SystemDictDataMapper.java                              |    2 
 server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptor.java                              |    2 
 server/system_service/src/main/java/com/doumee/dao/system/dto/LoginAuthDTO.java                                  |    2 
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemPositionUser.java                          |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroTokenManager.java                         |    2 
 server/system_service/src/main/java/com/doumee/cloud/SystemTraceLogCloudController.java                          |    2 
 server/system_service/src/main/java/com/doumee/cloud/SystemUserCloudController.java                              |    2 
 server/system_service/src/main/java/com/doumee/api/system/SystemPositionController.java                          |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/QueryDataV2Response.java       |   90 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/MeterAddRequest.java            |   31 
 server/system_gateway/src/main/java/com/doumee/SystemGatewayApplication.java                                     |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalDataServiceImpl.java    |  176 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/AreasDto.java                            |    2 
 server/system_service/src/main/java/com/doumee/core/utils/Date.java                                              |    2 
 server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java                                |    2 
 server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeat.java                             |    2 
 server/system_service/src/main/java/com/doumee/dao/system/SystemUserMapper.java                                  |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/MeterUpdateRequest.java         |   33 
 284 files changed, 5,832 insertions(+), 900 deletions(-)

diff --git a/admin/src/api/business/ywelectrical.js b/admin/src/api/business/ywelectrical.js
new file mode 100644
index 0000000..f51e909
--- /dev/null
+++ b/admin/src/api/business/ywelectrical.js
@@ -0,0 +1,39 @@
+import request from '../../utils/request'
+
+const base = '/visitsAdmin/cloudService/business/ywElectrical'
+
+export function fetchList (data) {
+  return request.post(base + '/page', data, { trim: true })
+}
+
+export function syncAll (data) {
+  return request.post(base + '/syncAll', data)
+}
+
+export function updateById (data) {
+  return request.post(base + '/updateById', data)
+}
+
+export function getDetail (id) {
+  return request.get(base + '/detail/' + id)
+}
+
+export function saveDetail (data) {
+  return request.post(base + '/saveDetail', data)
+}
+
+export function getRemoteInfo (id) {
+  return request.get(base + '/remoteInfo/' + id)
+}
+
+export function operate (data) {
+  return request.post(base + '/operate', data)
+}
+
+export function fetchParamList (data) {
+  return request.post('/visitsAdmin/cloudService/business/ywElectricalParam/page', data || {
+    page: 1,
+    capacity: 500,
+    model: { isdeleted: 0 }
+  }, { trim: true })
+}
diff --git a/admin/src/api/business/ywelectricalwarning.js b/admin/src/api/business/ywelectricalwarning.js
new file mode 100644
index 0000000..8090a63
--- /dev/null
+++ b/admin/src/api/business/ywelectricalwarning.js
@@ -0,0 +1,21 @@
+import request from '../../utils/request'
+
+export function fetchList (data) {
+  return request.post('/visitsAdmin/cloudService/business/ywElectricalWarning/page', data, {
+    trim: true
+  })
+}
+
+export function exportExcel (data) {
+  return request.post('/visitsAdmin/cloudService/business/ywElectricalWarning/exportExcel', data, {
+    responseType: 'blob'
+  })
+}
+
+export function syncAll (data) {
+  return request.post('/visitsAdmin/cloudService/business/ywElectricalWarning/syncAll', data || {})
+}
+
+export function warningDefOptions () {
+  return request.get('/visitsAdmin/cloudService/business/ywElectricalWarning/warningDefOptions')
+}
diff --git a/admin/src/views/business/ywelectrical.vue b/admin/src/views/business/ywelectrical.vue
new file mode 100644
index 0000000..96658fb
--- /dev/null
+++ b/admin/src/views/business/ywelectrical.vue
@@ -0,0 +1,165 @@
+<template>
+  <TableLayout :permissions="['business:ywelectrical:query']">
+    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+      <el-form-item label="鐢佃〃淇℃伅" prop="meterKeyword">
+        <el-input v-model="searchForm.meterKeyword" placeholder="璇疯緭鍏ョ數琛ㄥ悕绉�/鍦板潃" @keypress.enter.native="search" clearable></el-input>
+      </el-form-item>
+      <el-form-item label="鍦ㄧ嚎鐘舵��" prop="online">
+        <el-select v-model="searchForm.online" clearable placeholder="鍏ㄩ儴" style="min-width: 120px">
+          <el-option label="绂荤嚎" :value="0"></el-option>
+          <el-option label="鍦ㄧ嚎" :value="1"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="寮�鎴风姸鎬�" prop="accountStatus">
+        <el-select v-model="searchForm.accountStatus" clearable placeholder="鍏ㄩ儴" style="min-width: 120px">
+          <el-option label="鏈紑鎴�" :value="0"></el-option>
+          <el-option label="宸插紑鎴�" :value="1"></el-option>
+        </el-select>
+      </el-form-item>
+      <section>
+        <el-button type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+        <el-button icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+      </section>
+    </el-form>
+    <template v-slot:table-wrap>
+      <ul class="toolbar">
+        <li>
+          <el-button type="primary" @click="handleSync" :loading="isSyncing" v-permissions="['business:ywelectrical:device']">鍚屾鐢佃〃</el-button>
+        </li>
+      </ul>
+      <el-table v-loading="isWorking.search" :data="tableData.list" stripe>
+        <el-table-column type="selection" width="55"></el-table-column>
+        <el-table-column prop="name" label="鐢佃〃鍚嶇О" fixed min-width="140" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="address" label="鐢佃〃鍦板潃" min-width="130" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="accountId" label="寮�鎴峰彿" min-width="100" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="roomNames" label="缁戝畾鎴块棿" min-width="160" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="balanceBattery" label="绱鐢ㄧ數閲�" min-width="120" align="center">
+          <template slot-scope="{ row }">{{ formatBattery(row.balanceBattery) }}</template>
+        </el-table-column>
+        <el-table-column prop="balance" label="璐︽埛浣欓" min-width="100" align="center"></el-table-column>
+        <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="160" align="center"></el-table-column>
+        <el-table-column label="鍦ㄧ嚎鐘舵��" min-width="90" align="center">
+          <template slot-scope="{ row }">
+            <span :class="row.online === 1 ? 'green' : 'red'">{{ row.online === 1 ? '鍦ㄧ嚎' : '绂荤嚎' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="缁х數鍣ㄧ姸鎬�" min-width="100" align="center">
+          <template slot-scope="{ row }">
+            <span v-if="row.relayStatus === '0' || row.relayStatus === 0" class="red">鏂紑</span>
+            <span v-else-if="row.relayStatus === '1' || row.relayStatus === 1" class="green">闂悎</span>
+            <span v-else>-</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="棰勮鎯呭喌" min-width="160" align="center" show-overflow-tooltip>
+          <template slot-scope="{ row }">
+            <span class="red">{{ row.warnTypeName || row.warnType || '-' }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="鎿嶄綔" align="center" min-width="220" fixed="right">
+          <template slot-scope="{ row }">
+            <el-button type="text" @click="openEdit(row)" v-permissions="['business:ywelectrical:update']">缂栬緫</el-button>
+            <el-button type="text" @click="openRemote(row, 'recharge')" v-permissions="['business:ywelectrical:update']">鍏呭��</el-button>
+            <el-button type="text" @click="openRemote(row, 'basic')" v-permissions="['business:ywelectrical:update']">杩滅▼鎺у埗</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"></pagination>
+    </template>
+    <YwElectricalEdit ref="editWindow" @success="handlePageChange"></YwElectricalEdit>
+    <YwElectricalRemote ref="remoteWindow" @success="handlePageChange"></YwElectricalRemote>
+  </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import * as electricalApi from '@/api/business/ywelectrical'
+import YwElectricalEdit from './components/YwElectricalEdit'
+import YwElectricalRemote from './components/YwElectricalRemote'
+
+export default {
+  name: 'YwElectrical',
+  extends: BaseTable,
+  components: { TableLayout, Pagination, YwElectricalEdit, YwElectricalRemote },
+  data () {
+    return {
+      searchForm: {
+        meterKeyword: '',
+        online: '',
+        accountStatus: ''
+      },
+      isSyncing: false
+    }
+  },
+  created () {
+    this.api = electricalApi
+    this.module = '鐢佃〃璁惧淇℃伅'
+    this.configData['field.id'] = 'id'
+    this.configData['field.main'] = 'name'
+    this.search()
+  },
+  methods: {
+    handlePageChange (pageIndex) {
+      this.tableData.pagination.pageIndex = pageIndex || this.tableData.pagination.pageIndex
+      this.isWorking.search = true
+      electricalApi.fetchList({
+        page: this.tableData.pagination.pageIndex,
+        capacity: this.tableData.pagination.pageSize,
+        model: this.buildSearchModel(),
+        sorts: this.tableData.sorts
+      })
+        .then(data => {
+          this.tableData.list = data.records
+          this.tableData.pagination.total = data.total
+        })
+        .catch(() => {})
+        .finally(() => { this.isWorking.search = false })
+    },
+    buildSearchModel () {
+      const model = {}
+      if (this.searchForm.meterKeyword) model.meterKeyword = this.searchForm.meterKeyword
+      if (this.searchForm.online !== '' && this.searchForm.online !== null && this.searchForm.online !== undefined) {
+        model.online = this.searchForm.online
+      }
+      if (this.searchForm.accountStatus !== '' && this.searchForm.accountStatus !== null && this.searchForm.accountStatus !== undefined) {
+        model.accountStatus = this.searchForm.accountStatus
+      }
+      return model
+    },
+    reset () {
+      this.searchForm = { meterKeyword: '', online: '', accountStatus: '' }
+      this.search()
+    },
+    formatBattery (val) {
+      if (!val) return '-'
+      return String(val).indexOf('kwh') >= 0 || String(val).indexOf('kWh') >= 0 ? val : val + 'kwh'
+    },
+    handleSync () {
+      this.$dialog.actionConfirm('纭浠庝笁鏂瑰钩鍙板悓姝ュ叏閮ㄧ數琛ㄦ暟鎹悧锛�', '鍚屾鐢佃〃')
+        .then(() => {
+          this.isSyncing = true
+          electricalApi.syncAll({})
+            .then(res => {
+              this.$tip.apiSuccess(res || '鍚屾鎴愬姛')
+              this.search()
+            })
+            .catch(e => this.$tip.apiFailed(e))
+            .finally(() => { this.isSyncing = false })
+        })
+        .catch(() => {})
+    },
+    openEdit (row) {
+      this.$refs.editWindow.open(row)
+    },
+    openRemote (row, tab) {
+      this.$refs.remoteWindow.open(row, tab)
+    }
+  }
+}
+</script>
+
+<style scoped>
+.green { color: #67c23a; }
+.red { color: #f56c6c; }
+</style>
diff --git a/admin/src/views/business/ywelectricalwarning.vue b/admin/src/views/business/ywelectricalwarning.vue
new file mode 100644
index 0000000..4bfdd69
--- /dev/null
+++ b/admin/src/views/business/ywelectricalwarning.vue
@@ -0,0 +1,203 @@
+<template>
+  <TableLayout :permissions="['business:ywelectricalwarning:query']">
+    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+      <el-form-item label="鐢佃〃淇℃伅" prop="meterKeyword">
+        <el-input v-model="searchForm.meterKeyword" placeholder="璇疯緭鍏ョ數琛ㄥ悕绉�/琛ㄥ彿" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="鎶ヨ椤�" prop="warningDefId">
+        <el-select v-model="searchForm.warningDefId" clearable placeholder="鍏ㄩ儴" style="min-width: 200px">
+          <el-option
+            v-for="item in warningDefList"
+            :key="item.key"
+            :label="item.name"
+            :value="item.key"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="鎶ヨ鏃堕棿" prop="alarmTimeRange">
+        <el-date-picker
+          v-model="searchForm.alarmTimeRange"
+          type="datetimerange"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          range-separator="-"
+          start-placeholder="寮�濮嬫椂闂�"
+          end-placeholder="缁撴潫鏃堕棿"
+          style="width: 360px"
+        />
+      </el-form-item>
+      <section>
+        <el-button type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+        <el-button icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+      </section>
+    </el-form>
+    <template v-slot:table-wrap>
+      <ul class="toolbar">
+        <li>
+          <el-button
+            type="primary"
+            @click="handleSync"
+            :loading="isSyncing"
+            v-permissions="['business:ywelectricalwarning:sync']"
+          >鍚屾</el-button>
+        </li>
+        <li>
+          <el-button
+            @click="exportExcel"
+            :loading="isWorking.export"
+            v-permissions="['business:ywelectricalwarning:exportExcel']"
+          >瀵煎嚭</el-button>
+        </li>
+      </ul>
+      <el-table v-loading="isWorking.search" :data="tableData.list" stripe>
+        <el-table-column type="selection" width="55"></el-table-column>
+        <el-table-column prop="deviceAddress" label="鐢佃〃鍦板潃" min-width="140" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="electricalName" label="鐢佃〃鍚嶇О" min-width="140" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="roomNames" label="缁戝畾鎴块棿" min-width="120" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="warningName" label="鎶ヨ椤�" min-width="160" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column label="瑙﹀彂鏃堕棿" min-width="120" align="center">
+          <template slot-scope="{ row }">
+            <span :title="formatDateTime(row.startTime)">{{ formatRelativeTime(row.startTime) }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="msg" label="鎶ヨ璇︽儏" min-width="120" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="warningInfo" label="鎺掓煡鎻愮ず" min-width="220" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column label="鐘舵��" min-width="90" align="center">
+          <template>
+            <span class="red">宸茶Е鍙�</span>
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination
+        @size-change="handleSizeChange"
+        @current-change="handlePageChange"
+        :pagination="tableData.pagination"
+      />
+    </template>
+  </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import dayjs from 'dayjs'
+import relativeTime from 'dayjs/plugin/relativeTime'
+import 'dayjs/locale/zh-cn'
+
+dayjs.extend(relativeTime)
+dayjs.locale('zh-cn')
+
+export default {
+  name: 'YwElectricalWarning',
+  extends: BaseTable,
+  components: { TableLayout, Pagination },
+  data () {
+    return {
+      searchForm: {
+        meterKeyword: '',
+        warningDefId: null,
+        alarmTimeRange: []
+      },
+      warningDefList: [],
+      isSyncing: false
+    }
+  },
+  created () {
+    this.config({
+      module: '鏅鸿兘鐢佃〃鎶ヨ璁板綍',
+      api: '/business/ywelectricalwarning',
+      'field.id': 'id',
+      'field.main': 'deviceAddress'
+    })
+    this.loadWarningDefOptions()
+    this.search()
+  },
+  methods: {
+    loadWarningDefOptions () {
+      this.api.warningDefOptions()
+        .then(list => {
+          this.warningDefList = list || []
+        })
+        .catch(() => {})
+    },
+    buildSearchModel () {
+      const model = {
+        meterKeyword: this.searchForm.meterKeyword,
+        warningDefId: this.searchForm.warningDefId
+      }
+      if (this.searchForm.alarmTimeRange && this.searchForm.alarmTimeRange.length === 2) {
+        model.startTimeBegin = this.searchForm.alarmTimeRange[0]
+        model.startTimeEnd = this.searchForm.alarmTimeRange[1]
+      }
+      return model
+    },
+    search () {
+      this.handlePageChange(1)
+    },
+    handlePageChange (pageIndex) {
+      this.__checkApi()
+      this.tableData.pagination.pageIndex = pageIndex || this.tableData.pagination.pageIndex
+      this.isWorking.search = true
+      this.api.fetchList({
+        page: this.tableData.pagination.pageIndex,
+        capacity: this.tableData.pagination.pageSize,
+        model: this.buildSearchModel(),
+        sorts: this.tableData.sorts
+      })
+        .then(data => {
+          this.tableData.list = data.records
+          this.tableData.pagination.total = data.total
+        })
+        .catch(() => {})
+        .finally(() => {
+          this.isWorking.search = false
+        })
+    },
+    reset () {
+      this.searchForm = {
+        meterKeyword: '',
+        warningDefId: null,
+        alarmTimeRange: []
+      }
+      this.$refs.searchForm && this.$refs.searchForm.resetFields()
+      this.search()
+    },
+    handleSync () {
+      this.$dialog.actionConfirm('纭浠庣涓夋柟骞冲彴鍚屾鐢佃〃鎶ヨ璁板綍鍚楋紵', '鎿嶄綔纭鎻愰啋')
+        .then(() => {
+          this.isSyncing = true
+          this.api.syncAll({})
+            .then(res => {
+              this.$tip.apiSuccess(res || '鍚屾鎴愬姛')
+              this.search()
+            })
+            .catch(e => {
+              this.$tip.apiFailed(e)
+            })
+            .finally(() => {
+              this.isSyncing = false
+            })
+        })
+        .catch(() => {})
+    },
+    formatDateTime (value) {
+      if (!value) {
+        return '-'
+      }
+      return dayjs(value).format('YYYY-MM-DD HH:mm:ss')
+    },
+    formatRelativeTime (value) {
+      if (!value) {
+        return '-'
+      }
+      return dayjs(value).fromNow()
+    }
+  }
+}
+</script>
+
+<style scoped>
+.red {
+  color: #f56c6c;
+}
+</style>
diff --git a/server/db/business.yw_electrical.permissions.sql b/server/db/business.yw_electrical.permissions.sql
index 6aea41f..ab4469f 100644
--- a/server/db/business.yw_electrical.permissions.sql
+++ b/server/db/business.yw_electrical.permissions.sql
@@ -3,3 +3,4 @@
 INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:ywelectrical:update', '淇敼鐢佃〃璁惧淇℃伅', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
 INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:ywelectrical:query', '鏌ヨ鐢佃〃璁惧淇℃伅', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
 INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:ywelectrical:exportExcel', '瀵煎嚭鐢佃〃璁惧淇℃伅(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:ywelectrical:device', '鍚屾鐢佃〃璁惧', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
diff --git a/server/db/business.yw_electrical_warning.menu.sql b/server/db/business.yw_electrical_warning.menu.sql
new file mode 100644
index 0000000..5eb63f0
--- /dev/null
+++ b/server/db/business.yw_electrical_warning.menu.sql
@@ -0,0 +1,37 @@
+-- 鑿滃崟锛氭棩甯哥敤鐢电鐞� -> 鎶ヨ璁板綍锛堥渶鍦� dev 搴撴墽琛岋級
+-- 鐖惰彍鍗曡鏍规嵁瀹為檯鍚嶇О璋冩暣 LIKE 鏉′欢
+
+INSERT INTO `SYSTEM_MENU` (`PARENT_ID`, `NAME`, `PATH`, `REMARK`, `ICON`, `DISABLED`, `SORT`, `FIXED`, `CREATE_TIME`, `UPDATE_TIME`, `CREATE_USER`, `UPDATE_USER`, `DELETED`, `PARAMS`)
+SELECT m.`ID`, '鎶ヨ璁板綍', '/business/ywelectricalwarning', '鏅鸿兘鐢佃〃鎶ヨ璁板綍', NULL, 0,
+       IFNULL((SELECT MAX(sm.`SORT`) FROM `SYSTEM_MENU` sm WHERE sm.`PARENT_ID` = m.`ID` AND sm.`DELETED` = 0), 0) + 1,
+       0, CURRENT_TIMESTAMP, NULL, 1, NULL, 0, NULL
+FROM `SYSTEM_MENU` m
+WHERE m.`DELETED` = 0 AND m.`NAME` LIKE '%鏃ュ父鐢ㄧ數%'
+  AND NOT EXISTS (SELECT 1 FROM `SYSTEM_MENU` x WHERE x.`DELETED` = 0 AND x.`PATH` = '/business/ywelectricalwarning')
+LIMIT 1;
+
+-- admin 瑙掕壊鎺堟潈鑿滃崟
+INSERT INTO `SYSTEM_ROLE_MENU` (`ROLE_ID`, `MENU_ID`, `CREATE_TIME`, `UPDATE_TIME`, `CREATE_USER`, `UPDATE_USER`, `DELETED`)
+SELECT r.`ID`, menu.`ID`, CURRENT_TIMESTAMP, NULL, 1, NULL, 0
+FROM `SYSTEM_ROLE` r
+INNER JOIN `SYSTEM_MENU` menu ON menu.`PATH` = '/business/ywelectricalwarning' AND menu.`DELETED` = 0
+WHERE r.`DELETED` = 0 AND (r.`CODE` = 'admin' OR r.`NAME` = '绠$悊鍛�')
+  AND NOT EXISTS (
+    SELECT 1 FROM `SYSTEM_ROLE_MENU` rm
+    WHERE rm.`ROLE_ID` = r.`ID` AND rm.`MENU_ID` = menu.`ID` AND rm.`DELETED` = 0
+  );
+
+-- admin 瑙掕壊鎺堟潈鎸夐挳鏉冮檺
+INSERT INTO `SYSTEM_ROLE_PERMISSION` (`ROLE_ID`, `PERMISSION_ID`, `CREATE_TIME`, `UPDATE_TIME`, `CREATE_USER`, `UPDATE_USER`, `DELETED`)
+SELECT r.`ID`, p.`ID`, CURRENT_TIMESTAMP, NULL, 1, NULL, 0
+FROM `SYSTEM_ROLE` r
+INNER JOIN `SYSTEM_PERMISSION` p ON p.`CODE` IN (
+    'business:ywelectricalwarning:query',
+    'business:ywelectricalwarning:exportExcel',
+    'business:ywelectricalwarning:sync'
+) AND p.`DELETED` = 0
+WHERE r.`DELETED` = 0 AND (r.`CODE` = 'admin' OR r.`NAME` = '绠$悊鍛�')
+  AND NOT EXISTS (
+    SELECT 1 FROM `SYSTEM_ROLE_PERMISSION` rp
+    WHERE rp.`ROLE_ID` = r.`ID` AND rp.`PERMISSION_ID` = p.`ID` AND rp.`DELETED` = 0
+  );
diff --git a/server/db/business.yw_electrical_warning.permissions.sql b/server/db/business.yw_electrical_warning.permissions.sql
new file mode 100644
index 0000000..15a58bc
--- /dev/null
+++ b/server/db/business.yw_electrical_warning.permissions.sql
@@ -0,0 +1,3 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:ywelectricalwarning:query', '鏌ヨ鏅鸿兘鐢佃〃鎶ヨ璁板綍', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:ywelectricalwarning:exportExcel', '瀵煎嚭鏅鸿兘鐢佃〃鎶ヨ璁板綍(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:ywelectricalwarning:sync', '鍚屾鏅鸿兘鐢佃〃鎶ヨ璁板綍', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
diff --git a/server/db/yw_electrical_warning.sql b/server/db/yw_electrical_warning.sql
new file mode 100644
index 0000000..113faa8
--- /dev/null
+++ b/server/db/yw_electrical_warning.sql
@@ -0,0 +1,22 @@
+CREATE TABLE IF NOT EXISTS `yw_electrical_warning` (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '涓婚敭',
+  `creator` int(11) DEFAULT NULL COMMENT '鍒涘缓浜虹紪鐮�',
+  `create_date` datetime DEFAULT NULL COMMENT '鍒涘缓鏃堕棿',
+  `editor` int(11) DEFAULT NULL COMMENT '鏇存柊浜虹紪鐮�',
+  `edit_date` datetime DEFAULT NULL COMMENT '鏇存柊鏃堕棿',
+  `isdeleted` int(1) DEFAULT '0' COMMENT '鏄惁鍒犻櫎 0鍚� 1鏄�',
+  `device_type` int(1) DEFAULT NULL COMMENT '0=鐢佃〃 1=姘磋〃 9=閲囬泦鍣�',
+  `device_id` varchar(32) DEFAULT NULL COMMENT '绗笁鏂硅澶囨。妗圛D',
+  `electrical_id` int(11) DEFAULT NULL COMMENT '鍏宠仈 yw_electrical.id',
+  `device_address` varchar(64) DEFAULT NULL COMMENT '琛ㄥ彿鎴栭噰闆嗗櫒鍙�',
+  `warning_def_id` int(11) DEFAULT NULL COMMENT '鎶ヨ浜嬩欢id',
+  `start_time` datetime DEFAULT NULL COMMENT '浜嬩欢瑙﹀彂鏃堕棿',
+  `msg` varchar(500) DEFAULT NULL COMMENT '鎶ヨ鍐呭',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `uk_warning_unique` (`device_address`,`warning_def_id`,`start_time`,`isdeleted`),
+  KEY `idx_electrical_id` (`electrical_id`),
+  KEY `idx_device_address` (`device_address`),
+  KEY `idx_warning_def_id` (`warning_def_id`),
+  KEY `idx_start_time` (`start_time`),
+  KEY `idx_device_type` (`device_type`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='鏅鸿兘鐢佃〃鎶ヨ璁板綍';
diff --git a/server/system_gateway/src/main/java/com/doumee/SystemGatewayApplication.java b/server/system_gateway/src/main/java/com/doumee/SystemGatewayApplication.java
index 5e2618a..eabcedf 100644
--- a/server/system_gateway/src/main/java/com/doumee/SystemGatewayApplication.java
+++ b/server/system_gateway/src/main/java/com/doumee/SystemGatewayApplication.java
@@ -9,7 +9,7 @@
 
 /**
  * 鍚姩绫�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @EnableAsync
diff --git a/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java b/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java
index e21f023..4c9fa85 100644
--- a/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java
+++ b/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java
@@ -45,7 +45,7 @@
     private CaptchaService captchaService;
 
     /**
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     @ApiOperation("鑾峰彇鍥剧墖楠岃瘉鐮�")
diff --git a/server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerConfig.java b/server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
index 07e9c82..65162ce 100644
--- a/server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
+++ b/server/system_gateway/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
@@ -18,7 +18,7 @@
 
 /**
  * Swagger閰嶇疆
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2022/03/11 10:24
  */
 @Configuration
diff --git a/server/system_service/src/main/java/com/doumee/api/BaseController.java b/server/system_service/src/main/java/com/doumee/api/BaseController.java
index 9e3ab4a..cf5df1b 100644
--- a/server/system_service/src/main/java/com/doumee/api/BaseController.java
+++ b/server/system_service/src/main/java/com/doumee/api/BaseController.java
@@ -22,7 +22,7 @@
 
 /**
  * Controller鍩虹被
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Slf4j
@@ -32,7 +32,7 @@
     private RedisTemplate<String,Object> stringRedisTemplate;
     /**
      * 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     public LoginUserInfo getLoginUser (String token) {
diff --git a/server/system_service/src/main/java/com/doumee/api/system/SystemController.java b/server/system_service/src/main/java/com/doumee/api/system/SystemController.java
index 3d7543e..cecdf40 100644
--- a/server/system_service/src/main/java/com/doumee/api/system/SystemController.java
+++ b/server/system_service/src/main/java/com/doumee/api/system/SystemController.java
@@ -42,7 +42,7 @@
 import java.util.UUID;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "绯荤粺鍔熻兘")
diff --git a/server/system_service/src/main/java/com/doumee/api/system/SystemDataPermissionController.java b/server/system_service/src/main/java/com/doumee/api/system/SystemDataPermissionController.java
index 3546357..516fafa 100644
--- a/server/system_service/src/main/java/com/doumee/api/system/SystemDataPermissionController.java
+++ b/server/system_service/src/main/java/com/doumee/api/system/SystemDataPermissionController.java
@@ -26,7 +26,7 @@
 import org.springframework.web.bind.annotation.*;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @RestController
diff --git a/server/system_service/src/main/java/com/doumee/api/system/SystemDepartmentController.java b/server/system_service/src/main/java/com/doumee/api/system/SystemDepartmentController.java
index 7d341f0..582fabe 100644
--- a/server/system_service/src/main/java/com/doumee/api/system/SystemDepartmentController.java
+++ b/server/system_service/src/main/java/com/doumee/api/system/SystemDepartmentController.java
@@ -27,7 +27,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "閮ㄩ棬")
diff --git a/server/system_service/src/main/java/com/doumee/api/system/SystemDictController.java b/server/system_service/src/main/java/com/doumee/api/system/SystemDictController.java
index 32345b7..7d36f42 100644
--- a/server/system_service/src/main/java/com/doumee/api/system/SystemDictController.java
+++ b/server/system_service/src/main/java/com/doumee/api/system/SystemDictController.java
@@ -23,7 +23,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "绯荤粺瀛楀吀")
diff --git a/server/system_service/src/main/java/com/doumee/api/system/SystemDictDataController.java b/server/system_service/src/main/java/com/doumee/api/system/SystemDictDataController.java
index 49de57a..623a9df 100644
--- a/server/system_service/src/main/java/com/doumee/api/system/SystemDictDataController.java
+++ b/server/system_service/src/main/java/com/doumee/api/system/SystemDictDataController.java
@@ -26,7 +26,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "瀛楀吀鏁版嵁")
diff --git a/server/system_service/src/main/java/com/doumee/api/system/SystemLoginLogController.java b/server/system_service/src/main/java/com/doumee/api/system/SystemLoginLogController.java
index 3949e25..9a86f67 100644
--- a/server/system_service/src/main/java/com/doumee/api/system/SystemLoginLogController.java
+++ b/server/system_service/src/main/java/com/doumee/api/system/SystemLoginLogController.java
@@ -20,7 +20,7 @@
 import javax.servlet.http.HttpServletResponse;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @RestController
diff --git a/server/system_service/src/main/java/com/doumee/api/system/SystemMenuController.java b/server/system_service/src/main/java/com/doumee/api/system/SystemMenuController.java
index 569b7c6..a25e550 100644
--- a/server/system_service/src/main/java/com/doumee/api/system/SystemMenuController.java
+++ b/server/system_service/src/main/java/com/doumee/api/system/SystemMenuController.java
@@ -21,7 +21,7 @@
 import org.springframework.web.bind.annotation.*;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "绯荤粺鑿滃崟")
diff --git a/server/system_service/src/main/java/com/doumee/api/system/SystemMonitorController.java b/server/system_service/src/main/java/com/doumee/api/system/SystemMonitorController.java
index b16d68b..29ec530 100644
--- a/server/system_service/src/main/java/com/doumee/api/system/SystemMonitorController.java
+++ b/server/system_service/src/main/java/com/doumee/api/system/SystemMonitorController.java
@@ -13,7 +13,7 @@
 import org.springframework.web.bind.annotation.RestController;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "绯荤粺鐩戝惉")
diff --git a/server/system_service/src/main/java/com/doumee/api/system/SystemPermissionController.java b/server/system_service/src/main/java/com/doumee/api/system/SystemPermissionController.java
index c345e44..17968a4 100644
--- a/server/system_service/src/main/java/com/doumee/api/system/SystemPermissionController.java
+++ b/server/system_service/src/main/java/com/doumee/api/system/SystemPermissionController.java
@@ -23,7 +23,7 @@
 import org.springframework.web.bind.annotation.*;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "绯荤粺鏉冮檺")
diff --git a/server/system_service/src/main/java/com/doumee/api/system/SystemPositionController.java b/server/system_service/src/main/java/com/doumee/api/system/SystemPositionController.java
index 0c257b6..903d977 100644
--- a/server/system_service/src/main/java/com/doumee/api/system/SystemPositionController.java
+++ b/server/system_service/src/main/java/com/doumee/api/system/SystemPositionController.java
@@ -27,7 +27,7 @@
 import org.springframework.web.bind.annotation.*;
 /**
  * 宀椾綅鎺ュ彛
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "宀椾綅")
diff --git a/server/system_service/src/main/java/com/doumee/api/system/SystemRoleController.java b/server/system_service/src/main/java/com/doumee/api/system/SystemRoleController.java
index 3b71d00..0c52e29 100644
--- a/server/system_service/src/main/java/com/doumee/api/system/SystemRoleController.java
+++ b/server/system_service/src/main/java/com/doumee/api/system/SystemRoleController.java
@@ -25,7 +25,7 @@
 
 import org.springframework.web.bind.annotation.*;
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "绯荤粺瑙掕壊")
diff --git a/server/system_service/src/main/java/com/doumee/api/system/SystemTraceLogController.java b/server/system_service/src/main/java/com/doumee/api/system/SystemTraceLogController.java
index e4745dc..40d6865 100644
--- a/server/system_service/src/main/java/com/doumee/api/system/SystemTraceLogController.java
+++ b/server/system_service/src/main/java/com/doumee/api/system/SystemTraceLogController.java
@@ -19,7 +19,7 @@
 import javax.servlet.http.HttpServletResponse;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "璺熻釜鏃ュ織")
diff --git a/server/system_service/src/main/java/com/doumee/api/system/SystemUserController.java b/server/system_service/src/main/java/com/doumee/api/system/SystemUserController.java
index e7db500..610b853 100644
--- a/server/system_service/src/main/java/com/doumee/api/system/SystemUserController.java
+++ b/server/system_service/src/main/java/com/doumee/api/system/SystemUserController.java
@@ -28,7 +28,7 @@
 
 import org.springframework.web.bind.annotation.*;
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "鐢ㄦ埛")
diff --git a/server/system_service/src/main/java/com/doumee/biz/system/SystemDataPermissionBiz.java b/server/system_service/src/main/java/com/doumee/biz/system/SystemDataPermissionBiz.java
index 719d942..1c4cc78 100644
--- a/server/system_service/src/main/java/com/doumee/biz/system/SystemDataPermissionBiz.java
+++ b/server/system_service/src/main/java/com/doumee/biz/system/SystemDataPermissionBiz.java
@@ -4,7 +4,7 @@
 
 /**
  * 绯荤粺鏁版嵁鏉冮檺涓氬姟澶勭悊
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemDataPermissionBiz {
diff --git a/server/system_service/src/main/java/com/doumee/biz/system/SystemDepartmentBiz.java b/server/system_service/src/main/java/com/doumee/biz/system/SystemDepartmentBiz.java
index 7a7ba8c..8764f10 100644
--- a/server/system_service/src/main/java/com/doumee/biz/system/SystemDepartmentBiz.java
+++ b/server/system_service/src/main/java/com/doumee/biz/system/SystemDepartmentBiz.java
@@ -8,49 +8,49 @@
 
 /**
  * 閮ㄩ棬绠$悊涓氬姟澶勭悊
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemDepartmentBiz {
 
     /**
      * 鏂板缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create(SystemDepartment department);
 
     /**
      * 缂栬緫
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemDepartment department);
 
     /**
      * 鏌ヨ閮ㄩ棬鍒楄〃鏍�
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemDepartmentListVO> findTree();
 
     /**
      * 鏌ヨ閮ㄩ棬鍒楄〃鍙婇儴闂ㄤ笅鐨勪汉鍛� 涓嶆煡璇㈠瓙鑺傜偣
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemDepartmentListVO findTreeUser(Integer parentId);
 
     /**
      * 鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鎵归噺鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
diff --git a/server/system_service/src/main/java/com/doumee/biz/system/SystemDictBiz.java b/server/system_service/src/main/java/com/doumee/biz/system/SystemDictBiz.java
index 6255d57..07f0891 100644
--- a/server/system_service/src/main/java/com/doumee/biz/system/SystemDictBiz.java
+++ b/server/system_service/src/main/java/com/doumee/biz/system/SystemDictBiz.java
@@ -4,21 +4,21 @@
 
 /**
  * 瀛楀吀涓氬姟澶勭悊
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/02/14 11:14
  */
 public interface SystemDictBiz {
 
     /**
      * 鍒涘缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/02/14 11:14
      */
     Integer create(SystemDict systemDict);
 
     /**
      * 缂栬緫
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/02/14 11:14
      */
     void updateById(SystemDict systemDict);
diff --git a/server/system_service/src/main/java/com/doumee/biz/system/SystemDictDataBiz.java b/server/system_service/src/main/java/com/doumee/biz/system/SystemDictDataBiz.java
index 46844ea..3be77bd 100644
--- a/server/system_service/src/main/java/com/doumee/biz/system/SystemDictDataBiz.java
+++ b/server/system_service/src/main/java/com/doumee/biz/system/SystemDictDataBiz.java
@@ -6,7 +6,7 @@
 
 /**
  * 瀛楀吀鏁版嵁涓氬姟澶勭悊
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/02/14 11:14
  */
 public interface SystemDictDataBiz {
@@ -16,7 +16,7 @@
 
   /**
    * 缂栬緫
-   * @author Eva.Caesar Liu
+   * @author doumee
    * @date 2022/04/18 18:12
    */
   void updateById(SystemDictData systemDictData);
diff --git a/server/system_service/src/main/java/com/doumee/biz/system/SystemMenuBiz.java b/server/system_service/src/main/java/com/doumee/biz/system/SystemMenuBiz.java
index 8234f66..338f17a 100644
--- a/server/system_service/src/main/java/com/doumee/biz/system/SystemMenuBiz.java
+++ b/server/system_service/src/main/java/com/doumee/biz/system/SystemMenuBiz.java
@@ -9,56 +9,56 @@
 
 /**
  * 绯荤粺鑿滃崟涓氬姟澶勭悊
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemMenuBiz {
 
     /**
      * 鍒涘缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create(SystemMenu systemMenu);
 
     /**
      * 缂栬緫
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemMenu systemMenu);
 
     /**
      * 鑿滃崟鎺掑簭
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateSort(UpdateSystemMenuSortDTO dto);
 
     /**
      * 鏌ヨ鑿滃崟鑺傜偣鍒楄〃
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemMenuNodeVO> findTree(Integer userId);
 
     /**
      * 鏌ヨ鑿滃崟鍒楄〃鏍�
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemMenuListVO> findTree();
 
     /**
      * 鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鎵归噺鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
diff --git a/server/system_service/src/main/java/com/doumee/biz/system/SystemPermissionBiz.java b/server/system_service/src/main/java/com/doumee/biz/system/SystemPermissionBiz.java
index 79a66fc..efd010a 100644
--- a/server/system_service/src/main/java/com/doumee/biz/system/SystemPermissionBiz.java
+++ b/server/system_service/src/main/java/com/doumee/biz/system/SystemPermissionBiz.java
@@ -6,35 +6,35 @@
 
 /**
  * 绯荤粺鏉冮檺涓氬姟澶勭悊
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemPermissionBiz {
 
     /**
      * 鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鎵归噺鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
 
     /**
      * 鍒涘缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create(SystemPermission systemPermission);
 
     /**
      * 淇敼
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemPermission systemPermission);
diff --git a/server/system_service/src/main/java/com/doumee/biz/system/SystemPositionBiz.java b/server/system_service/src/main/java/com/doumee/biz/system/SystemPositionBiz.java
index ccbbf90..6c5306f 100644
--- a/server/system_service/src/main/java/com/doumee/biz/system/SystemPositionBiz.java
+++ b/server/system_service/src/main/java/com/doumee/biz/system/SystemPositionBiz.java
@@ -10,35 +10,35 @@
 
     /**
      * 鏂板缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create(SystemPosition systemPosition);
 
     /**
      * 缂栬緫
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemPosition systemPosition);
 
     /**
      * 鏌ヨ宀椾綅鍒楄〃鏍�
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemPositionListVO> findTree();
 
     /**
      * 鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鎵归噺鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
diff --git a/server/system_service/src/main/java/com/doumee/biz/system/SystemRoleBiz.java b/server/system_service/src/main/java/com/doumee/biz/system/SystemRoleBiz.java
index 8159684..5979947 100644
--- a/server/system_service/src/main/java/com/doumee/biz/system/SystemRoleBiz.java
+++ b/server/system_service/src/main/java/com/doumee/biz/system/SystemRoleBiz.java
@@ -9,49 +9,49 @@
 
 /**
  * 瑙掕壊鏉冮檺涓氬姟澶勭悊
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemRoleBiz {
 
     /**
      * 鏂板缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create (SystemRole systemRole);
 
     /**
      * 淇敼
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemRole systemRole);
 
     /**
      * 鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鎵归噺鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
 
     /**
      * 鍒涘缓瑙掕壊鏉冮檺
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void createRolePermission(CreateRolePermissionDTO dto);
 
     /**
      * 鍒涘缓瑙掕壊鑿滃崟
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void createRoleMenu(CreateRoleMenuDTO dto);
diff --git a/server/system_service/src/main/java/com/doumee/biz/system/SystemUserBiz.java b/server/system_service/src/main/java/com/doumee/biz/system/SystemUserBiz.java
index 1dc800c..7a08225 100644
--- a/server/system_service/src/main/java/com/doumee/biz/system/SystemUserBiz.java
+++ b/server/system_service/src/main/java/com/doumee/biz/system/SystemUserBiz.java
@@ -10,56 +10,56 @@
 
 /**
  * 绯荤粺鐢ㄦ埛涓氬姟澶勭悊
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemUserBiz {
 
     /**
      * 鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鎵归噺鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
 
     /**
      * 淇敼瀵嗙爜
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updatePwd(UpdatePwdDto dto);
 
     /**
      * 閲嶇疆瀵嗙爜
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void resetPwd(ResetSystemUserPwdDTO dto);
 
     /**
      * 鍒涘缓鐢ㄦ埛
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void create(CreateSystemUserDTO systemUser);
 
     /**
      * 淇敼鐢ㄦ埛淇℃伅
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(CreateSystemUserDTO systemUser);
 
     /**
      * 鍒涘缓鐢ㄦ埛瑙掕壊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void createUserRole(CreateUserRoleDTO dto);
diff --git a/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java b/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java
index 958a24f..3c0a477 100644
--- a/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java
+++ b/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java
@@ -168,7 +168,7 @@
 
     /**
      * 濉厖瀛愯彍鍗�
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     private void fillChildren(SystemMenuListVO parent, List<SystemMenuListVO> menus) {
@@ -197,7 +197,7 @@
 
     /**
      * 濉厖瀛愯彍鍗�
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     private void fillChildren(SystemMenuNodeVO parent, List<SystemMenu> menus) {
diff --git a/server/system_service/src/main/java/com/doumee/cloud/SystemCloudController.java b/server/system_service/src/main/java/com/doumee/cloud/SystemCloudController.java
index 21ebe0b..06d9c69 100644
--- a/server/system_service/src/main/java/com/doumee/cloud/SystemCloudController.java
+++ b/server/system_service/src/main/java/com/doumee/cloud/SystemCloudController.java
@@ -16,7 +16,7 @@
 import org.springframework.web.bind.annotation.*;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "绯荤粺鍔熻兘")
diff --git a/server/system_service/src/main/java/com/doumee/cloud/SystemDataPermissionCloudController.java b/server/system_service/src/main/java/com/doumee/cloud/SystemDataPermissionCloudController.java
index 7be2b30..b7fb131 100644
--- a/server/system_service/src/main/java/com/doumee/cloud/SystemDataPermissionCloudController.java
+++ b/server/system_service/src/main/java/com/doumee/cloud/SystemDataPermissionCloudController.java
@@ -25,7 +25,7 @@
 import java.util.Map;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @RestController
diff --git a/server/system_service/src/main/java/com/doumee/cloud/SystemDepartmentCloudController.java b/server/system_service/src/main/java/com/doumee/cloud/SystemDepartmentCloudController.java
index 2e6d218..886aae2 100644
--- a/server/system_service/src/main/java/com/doumee/cloud/SystemDepartmentCloudController.java
+++ b/server/system_service/src/main/java/com/doumee/cloud/SystemDepartmentCloudController.java
@@ -27,7 +27,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "閮ㄩ棬")
diff --git a/server/system_service/src/main/java/com/doumee/cloud/SystemDictCloudController.java b/server/system_service/src/main/java/com/doumee/cloud/SystemDictCloudController.java
index ee91d10..26389b5 100644
--- a/server/system_service/src/main/java/com/doumee/cloud/SystemDictCloudController.java
+++ b/server/system_service/src/main/java/com/doumee/cloud/SystemDictCloudController.java
@@ -23,7 +23,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "绯荤粺瀛楀吀")
diff --git a/server/system_service/src/main/java/com/doumee/cloud/SystemDictDataCloudController.java b/server/system_service/src/main/java/com/doumee/cloud/SystemDictDataCloudController.java
index 74b0efe..8de096d 100644
--- a/server/system_service/src/main/java/com/doumee/cloud/SystemDictDataCloudController.java
+++ b/server/system_service/src/main/java/com/doumee/cloud/SystemDictDataCloudController.java
@@ -27,7 +27,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "瀛楀吀鏁版嵁")
diff --git a/server/system_service/src/main/java/com/doumee/cloud/SystemLoginLogCloudController.java b/server/system_service/src/main/java/com/doumee/cloud/SystemLoginLogCloudController.java
index 8ab92d9..1a9f305 100644
--- a/server/system_service/src/main/java/com/doumee/cloud/SystemLoginLogCloudController.java
+++ b/server/system_service/src/main/java/com/doumee/cloud/SystemLoginLogCloudController.java
@@ -21,7 +21,7 @@
 import javax.servlet.http.HttpServletResponse;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @RestController
diff --git a/server/system_service/src/main/java/com/doumee/cloud/SystemMenuCloudController.java b/server/system_service/src/main/java/com/doumee/cloud/SystemMenuCloudController.java
index 3ffadd8..7bebf9f 100644
--- a/server/system_service/src/main/java/com/doumee/cloud/SystemMenuCloudController.java
+++ b/server/system_service/src/main/java/com/doumee/cloud/SystemMenuCloudController.java
@@ -21,7 +21,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "绯荤粺鑿滃崟")
diff --git a/server/system_service/src/main/java/com/doumee/cloud/SystemMonitorCloudController.java b/server/system_service/src/main/java/com/doumee/cloud/SystemMonitorCloudController.java
index ae2916d..a35a280 100644
--- a/server/system_service/src/main/java/com/doumee/cloud/SystemMonitorCloudController.java
+++ b/server/system_service/src/main/java/com/doumee/cloud/SystemMonitorCloudController.java
@@ -15,7 +15,7 @@
 import org.springframework.web.bind.annotation.RestController;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "绯荤粺鐩戝惉")
diff --git a/server/system_service/src/main/java/com/doumee/cloud/SystemPermissionCloudController.java b/server/system_service/src/main/java/com/doumee/cloud/SystemPermissionCloudController.java
index a6c70aa..28e16dc 100644
--- a/server/system_service/src/main/java/com/doumee/cloud/SystemPermissionCloudController.java
+++ b/server/system_service/src/main/java/com/doumee/cloud/SystemPermissionCloudController.java
@@ -23,7 +23,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "绯荤粺鏉冮檺")
diff --git a/server/system_service/src/main/java/com/doumee/cloud/SystemPositionCloudController.java b/server/system_service/src/main/java/com/doumee/cloud/SystemPositionCloudController.java
index dd2ba2b..32cbdc1 100644
--- a/server/system_service/src/main/java/com/doumee/cloud/SystemPositionCloudController.java
+++ b/server/system_service/src/main/java/com/doumee/cloud/SystemPositionCloudController.java
@@ -26,7 +26,7 @@
 import java.util.List;
 /**
  * 宀椾綅鎺ュ彛
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "宀椾綅")
diff --git a/server/system_service/src/main/java/com/doumee/cloud/SystemRoleCloudController.java b/server/system_service/src/main/java/com/doumee/cloud/SystemRoleCloudController.java
index 4b47963..516918f 100644
--- a/server/system_service/src/main/java/com/doumee/cloud/SystemRoleCloudController.java
+++ b/server/system_service/src/main/java/com/doumee/cloud/SystemRoleCloudController.java
@@ -26,7 +26,7 @@
 import java.util.ArrayList;
 import java.util.List;
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "绯荤粺瑙掕壊")
diff --git a/server/system_service/src/main/java/com/doumee/cloud/SystemTraceLogCloudController.java b/server/system_service/src/main/java/com/doumee/cloud/SystemTraceLogCloudController.java
index 488e089..05cf9f2 100644
--- a/server/system_service/src/main/java/com/doumee/cloud/SystemTraceLogCloudController.java
+++ b/server/system_service/src/main/java/com/doumee/cloud/SystemTraceLogCloudController.java
@@ -20,7 +20,7 @@
 import javax.servlet.http.HttpServletResponse;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "璺熻釜鏃ュ織")
diff --git a/server/system_service/src/main/java/com/doumee/cloud/SystemUserCloudController.java b/server/system_service/src/main/java/com/doumee/cloud/SystemUserCloudController.java
index 856b1f9..bc45ae9 100644
--- a/server/system_service/src/main/java/com/doumee/cloud/SystemUserCloudController.java
+++ b/server/system_service/src/main/java/com/doumee/cloud/SystemUserCloudController.java
@@ -27,7 +27,7 @@
 import java.util.ArrayList;
 import java.util.List;
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "鐢ㄦ埛")
diff --git a/server/system_service/src/main/java/com/doumee/config/mybatis/MyBatisInterceptor.java b/server/system_service/src/main/java/com/doumee/config/mybatis/MyBatisInterceptor.java
index 1fd7fc5..9bbbdf5 100644
--- a/server/system_service/src/main/java/com/doumee/config/mybatis/MyBatisInterceptor.java
+++ b/server/system_service/src/main/java/com/doumee/config/mybatis/MyBatisInterceptor.java
@@ -18,7 +18,7 @@
  * MyBatis 鎷︽埅鍣�
  * - INSERT璇彞榛樿濉厖鍒涘缓浜哄拰鍒涘缓鏃堕棿瀛楁
  * - UPDATE璇彞榛樿濉厖鏇存柊浜哄拰鏇存柊鏃堕棿瀛楁
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Slf4j
@@ -67,7 +67,7 @@
 
     /**
      * 澶勭悊鏂板鍜岀紪杈戣鍙�
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2019/3/2 11:52
      */
     private void handleOperaStatement(Object target, String... fieldNames) throws Exception{
@@ -91,7 +91,7 @@
 
     /**
      * 缁欏睘鎬ц祴鍊�
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2019/3/2 11:36
      */
     private void setFieldValue(Field field, Object target, Object value) throws Exception {
@@ -102,7 +102,7 @@
 
     /**
      * 鑾峰彇灞炴�у��
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2019/3/2 11:40
      */
     private Object getFieldValue(Field field, Object target) throws Exception {
@@ -114,7 +114,7 @@
 
     /**
      * 鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     private LoginUserInfo getLoginUser () {
diff --git a/server/system_service/src/main/java/com/doumee/config/mybatis/MyBatisPlusConfig.java b/server/system_service/src/main/java/com/doumee/config/mybatis/MyBatisPlusConfig.java
index ace8365..7949311 100644
--- a/server/system_service/src/main/java/com/doumee/config/mybatis/MyBatisPlusConfig.java
+++ b/server/system_service/src/main/java/com/doumee/config/mybatis/MyBatisPlusConfig.java
@@ -8,7 +8,7 @@
 
 /**
  * MyBatisPlus閰嶇疆
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Configuration
diff --git a/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelColumn.java b/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelColumn.java
index c0de11a..4daa8c6 100644
--- a/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelColumn.java
+++ b/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelColumn.java
@@ -7,7 +7,7 @@
 
 /**
  * 鏍囪涓篍xcel鍒�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/02/14 11:14
  */
 @Inherited
diff --git a/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelDataHandlerAdapter.java b/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelDataHandlerAdapter.java
index 33a153b..1a1fd55 100644
--- a/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelDataHandlerAdapter.java
+++ b/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelDataHandlerAdapter.java
@@ -2,7 +2,7 @@
 
 /**
  * Excel鏁版嵁鏍煎紡澶勭悊閫傞厤鍣�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/02/14 11:14
  */
 public interface ExcelDataHandlerAdapter {
diff --git a/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java b/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
index d2fac34..e255340 100644
--- a/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
+++ b/server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
@@ -21,7 +21,7 @@
 
 /**
  * Excel瀵煎嚭瀹炵幇
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/02/14 11:14
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeat.java b/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeat.java
index 56c1b55..34cd68b 100644
--- a/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeat.java
+++ b/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeat.java
@@ -4,7 +4,7 @@
 
 /**
  * 闃查噸澶嶆彁浜ゆ敞瑙�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Inherited
diff --git a/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatAdapter.java b/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatAdapter.java
index 44fb30d..cd74d04 100644
--- a/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatAdapter.java
+++ b/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatAdapter.java
@@ -9,7 +9,7 @@
 
 /**
  * 闃查噸澶嶆彁浜ゅ疄鐜版帴鍙�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public abstract class PreventRepeatAdapter {
diff --git a/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatDefaultHandler.java b/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatDefaultHandler.java
index 1a90df0..afcdd7e 100644
--- a/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatDefaultHandler.java
+++ b/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatDefaultHandler.java
@@ -14,7 +14,7 @@
 
 /**
  * 榛樿闃查噸澶嶆彁浜ゅ疄鐜�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Slf4j
@@ -36,7 +36,7 @@
 
     /**
      * 鑾峰彇鍙傛暟
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     private Map<String, Object> getParameters(HttpServletRequest request) {
diff --git a/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatInterceptor.java b/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatInterceptor.java
index 34f8e8c..04d56c1 100644
--- a/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatInterceptor.java
+++ b/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatInterceptor.java
@@ -17,7 +17,7 @@
 
 /**
  * 闃查噸澶嶆彁浜ゅ鐞�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Slf4j
diff --git a/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatInterceptorConfig.java b/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatInterceptorConfig.java
index 270e469..57e58db 100644
--- a/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatInterceptorConfig.java
+++ b/server/system_service/src/main/java/com/doumee/core/annotation/pr/PreventRepeatInterceptorConfig.java
@@ -7,7 +7,7 @@
 
 /**
  * Swagger鎷︽埅鍣ㄩ厤缃�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Configuration
diff --git a/server/system_service/src/main/java/com/doumee/core/annotation/trace/Trace.java b/server/system_service/src/main/java/com/doumee/core/annotation/trace/Trace.java
index 8ab0bee..39925aa 100644
--- a/server/system_service/src/main/java/com/doumee/core/annotation/trace/Trace.java
+++ b/server/system_service/src/main/java/com/doumee/core/annotation/trace/Trace.java
@@ -4,7 +4,7 @@
 
 /**
  * 璺熻釜鏃ュ織娉ㄨВ
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Target({ ElementType.METHOD, ElementType.TYPE })
diff --git a/server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceInterceptor.java b/server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceInterceptor.java
index 6a94802..704a018 100644
--- a/server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceInterceptor.java
+++ b/server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceInterceptor.java
@@ -30,7 +30,7 @@
 
 /**
  * 璺熻釜鏃ュ織澶勭悊
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Slf4j
diff --git a/server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceInterceptorConfig.java b/server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceInterceptorConfig.java
index 3c7401f..0e8daae 100644
--- a/server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceInterceptorConfig.java
+++ b/server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceInterceptorConfig.java
@@ -7,7 +7,7 @@
 
 /**
  * 璺熻釜鎷︽埅鍣ㄩ厤缃�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Configuration
diff --git a/server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceStatus.java b/server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceStatus.java
index df9d41d..d3bee53 100644
--- a/server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceStatus.java
+++ b/server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceStatus.java
@@ -5,7 +5,7 @@
 
 /**
  * 璺熻釜鐘舵��
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Getter
diff --git a/server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceType.java b/server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceType.java
index c3f0bfb..481f8c6 100644
--- a/server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceType.java
+++ b/server/system_service/src/main/java/com/doumee/core/annotation/trace/TraceType.java
@@ -5,7 +5,7 @@
 
 /**
  * 璺熻釜绫诲瀷
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Getter
diff --git a/server/system_service/src/main/java/com/doumee/core/aware/DataPermissionAware.java b/server/system_service/src/main/java/com/doumee/core/aware/DataPermissionAware.java
index 948f83b..6cbab50 100644
--- a/server/system_service/src/main/java/com/doumee/core/aware/DataPermissionAware.java
+++ b/server/system_service/src/main/java/com/doumee/core/aware/DataPermissionAware.java
@@ -6,7 +6,7 @@
 
 /**
  * 鏁版嵁鏉冮檺鎰忚瘑
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface DataPermissionAware<T> {
diff --git a/server/system_service/src/main/java/com/doumee/core/aware/DataPermissionMapping.java b/server/system_service/src/main/java/com/doumee/core/aware/DataPermissionMapping.java
index 36f7864..b2c95be 100644
--- a/server/system_service/src/main/java/com/doumee/core/aware/DataPermissionMapping.java
+++ b/server/system_service/src/main/java/com/doumee/core/aware/DataPermissionMapping.java
@@ -6,7 +6,7 @@
 
 /**
  * 鏁版嵁鏉冮檺鎺у埗娉ㄨВ
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Inherited
diff --git a/server/system_service/src/main/java/com/doumee/core/aware/DefaultDataPermissionAware.java b/server/system_service/src/main/java/com/doumee/core/aware/DefaultDataPermissionAware.java
index 8bf4831..61c0b50 100644
--- a/server/system_service/src/main/java/com/doumee/core/aware/DefaultDataPermissionAware.java
+++ b/server/system_service/src/main/java/com/doumee/core/aware/DefaultDataPermissionAware.java
@@ -17,7 +17,7 @@
 /**
  * 榛樿鏁版嵁鏉冮檺鎺у埗
  *
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Slf4j
diff --git a/server/system_service/src/main/java/com/doumee/core/cache/LocalCache.java b/server/system_service/src/main/java/com/doumee/core/cache/LocalCache.java
index b82e7a4..cb9818f 100644
--- a/server/system_service/src/main/java/com/doumee/core/cache/LocalCache.java
+++ b/server/system_service/src/main/java/com/doumee/core/cache/LocalCache.java
@@ -13,7 +13,7 @@
  * 鍗曟満鏈湴缂撳瓨锛岄」鐩垵濮嬮樁娈典娇鐢�
  * - 瓒呰繃鎸囧畾澶у皬鍙�氳繃鏃ュ織鏂瑰紡鎶ヨ
  * - 寤堕暱瓒呮椂鏃堕棿
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2019/3/23 17:57
  */
 @Slf4j
diff --git a/server/system_service/src/main/java/com/doumee/core/constants/DataPermissionConstants.java b/server/system_service/src/main/java/com/doumee/core/constants/DataPermissionConstants.java
index eca0d96..83f453f 100644
--- a/server/system_service/src/main/java/com/doumee/core/constants/DataPermissionConstants.java
+++ b/server/system_service/src/main/java/com/doumee/core/constants/DataPermissionConstants.java
@@ -10,7 +10,7 @@
 
 /**
  * 鏁版嵁鏉冮檺甯搁噺
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface DataPermissionConstants {
diff --git a/server/system_service/src/main/java/com/doumee/core/constants/ExceptionLevel.java b/server/system_service/src/main/java/com/doumee/core/constants/ExceptionLevel.java
index 4a292a1..26ae29c 100644
--- a/server/system_service/src/main/java/com/doumee/core/constants/ExceptionLevel.java
+++ b/server/system_service/src/main/java/com/doumee/core/constants/ExceptionLevel.java
@@ -5,7 +5,7 @@
 
 /**
  * 寮傚父绛夌骇
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Getter
diff --git a/server/system_service/src/main/java/com/doumee/core/constants/OperaType.java b/server/system_service/src/main/java/com/doumee/core/constants/OperaType.java
index 38b9187..4359d17 100644
--- a/server/system_service/src/main/java/com/doumee/core/constants/OperaType.java
+++ b/server/system_service/src/main/java/com/doumee/core/constants/OperaType.java
@@ -2,28 +2,28 @@
 
 /**
  * 鎿嶄綔绫诲瀷
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface OperaType {
 
     /**
      * 鍒涘缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     interface Create {}
 
     /**
      * 淇敼
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     interface Update {}
 
     /**
      * 淇敼鐘舵��
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     interface UpdateStatus {}
diff --git a/server/system_service/src/main/java/com/doumee/core/constants/ResponseStatus.java b/server/system_service/src/main/java/com/doumee/core/constants/ResponseStatus.java
index 4796b3f..0b87194 100644
--- a/server/system_service/src/main/java/com/doumee/core/constants/ResponseStatus.java
+++ b/server/system_service/src/main/java/com/doumee/core/constants/ResponseStatus.java
@@ -5,7 +5,7 @@
 
 /**
  * 鍝嶅簲鐘舵�佸畾涔�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Getter
diff --git a/server/system_service/src/main/java/com/doumee/core/exception/BusinessException.java b/server/system_service/src/main/java/com/doumee/core/exception/BusinessException.java
index 212ae19..189aed0 100644
--- a/server/system_service/src/main/java/com/doumee/core/exception/BusinessException.java
+++ b/server/system_service/src/main/java/com/doumee/core/exception/BusinessException.java
@@ -5,7 +5,7 @@
 
 /**
  * 涓氬姟寮傚父瀵硅薄
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/core/exception/UnSafeSessionException.java b/server/system_service/src/main/java/com/doumee/core/exception/UnSafeSessionException.java
index e8ca3c8..1490e5c 100644
--- a/server/system_service/src/main/java/com/doumee/core/exception/UnSafeSessionException.java
+++ b/server/system_service/src/main/java/com/doumee/core/exception/UnSafeSessionException.java
@@ -2,7 +2,7 @@
 
 /**
  * 涓嶅畨鍏ㄧ殑浼氳瘽寮傚父
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public class UnSafeSessionException extends RuntimeException {
diff --git a/server/system_service/src/main/java/com/doumee/core/model/ApiResponse.java b/server/system_service/src/main/java/com/doumee/core/model/ApiResponse.java
index 051cc84..faae313 100644
--- a/server/system_service/src/main/java/com/doumee/core/model/ApiResponse.java
+++ b/server/system_service/src/main/java/com/doumee/core/model/ApiResponse.java
@@ -14,7 +14,7 @@
 
 /**
  * 鎺ュ彛杩斿洖瀵硅薄
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @ApiModel("鍝嶅簲瀵硅薄")
diff --git a/server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java b/server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java
index b635d74..cf8c0df 100644
--- a/server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java
+++ b/server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java
@@ -17,7 +17,7 @@
 
 /**
  * 鐧诲綍鐢ㄦ埛淇℃伅
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/core/model/PageData.java b/server/system_service/src/main/java/com/doumee/core/model/PageData.java
index ddfae7b..c590f86 100644
--- a/server/system_service/src/main/java/com/doumee/core/model/PageData.java
+++ b/server/system_service/src/main/java/com/doumee/core/model/PageData.java
@@ -10,7 +10,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
@@ -39,7 +39,7 @@
 
     /**
      * 鏍规嵁MyBatis Plus鍒嗛〉瀵硅薄缁勮
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     public static <T> PageData<T> from(IPage<T> pageInfo) {
@@ -51,7 +51,7 @@
 
     /**
      * 鏍规嵁MyBatis鍘熺敓鍒嗛〉瀵硅薄缁勮
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     public static <T> PageData<T> from(PageInfo<T> pageInfo) {
@@ -63,7 +63,7 @@
 
     /**
      * 澶勭悊寮傚父椤靛閲�
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     public long getCapacity () {
@@ -71,7 +71,7 @@
     }
 
     /**
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     @ApiModelProperty("鎬婚〉鏁�")
diff --git a/server/system_service/src/main/java/com/doumee/core/model/PageWrap.java b/server/system_service/src/main/java/com/doumee/core/model/PageWrap.java
index 912b978..e0f49ce 100644
--- a/server/system_service/src/main/java/com/doumee/core/model/PageWrap.java
+++ b/server/system_service/src/main/java/com/doumee/core/model/PageWrap.java
@@ -11,7 +11,7 @@
 
 /**
  * 鍒嗛〉璇锋眰鍙傛暟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
@@ -38,7 +38,7 @@
 
     /**
      * 澶勭悊寮傚父鎺掑簭瀵硅薄
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     public List<SortData> getSorts () {
@@ -66,7 +66,7 @@
 
     /**
      * 澶勭悊寮傚父椤电爜
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     public int getPage () {
@@ -75,7 +75,7 @@
 
     /**
      * 澶勭悊寮傚父椤靛閲�
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     public int getCapacity () {
@@ -84,7 +84,7 @@
 
     /**
      * 鑾峰彇鎺掑簭瀛楃涓�
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     @ApiModelProperty(hidden = true)
@@ -109,7 +109,7 @@
 
     /**
      * 鎺掑簭瀵硅薄
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     @Data
diff --git a/server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateInputStream.java b/server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateInputStream.java
index 7fb06c6..ff3fa21 100644
--- a/server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateInputStream.java
+++ b/server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateInputStream.java
@@ -7,7 +7,7 @@
 
 /**
  * 鍖呭惈鍓湰鐨勮緭鍏ユ祦
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public class ServletDuplicateInputStream extends ServletInputStream {
diff --git a/server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateOutputStream.java b/server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateOutputStream.java
index e8353e4..a84a360 100644
--- a/server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateOutputStream.java
+++ b/server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateOutputStream.java
@@ -7,7 +7,7 @@
 
 /**
  * 鍖呭惈鍓湰鐨勮緭鍑烘祦
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public class ServletDuplicateOutputStream extends ServletOutputStream {
diff --git a/server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateRequestWrapper.java b/server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateRequestWrapper.java
index 3c10d66..77b2ea9 100644
--- a/server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateRequestWrapper.java
+++ b/server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateRequestWrapper.java
@@ -9,7 +9,7 @@
 
 /**
  * 澧炲姞璇锋眰娴佸壇鏈�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Getter
diff --git a/server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateResponseWrapper.java b/server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateResponseWrapper.java
index 0fc1e0c..ea14823 100644
--- a/server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateResponseWrapper.java
+++ b/server/system_service/src/main/java/com/doumee/core/servlet/ServletDuplicateResponseWrapper.java
@@ -7,7 +7,7 @@
 
 /**
  * 澧炲姞鍝嶅簲娴佸壇鏈�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public class ServletDuplicateResponseWrapper extends HttpServletResponseWrapper {
diff --git a/server/system_service/src/main/java/com/doumee/core/servlet/ServletRewriteFilter.java b/server/system_service/src/main/java/com/doumee/core/servlet/ServletRewriteFilter.java
index 0a62b4c..4933548 100644
--- a/server/system_service/src/main/java/com/doumee/core/servlet/ServletRewriteFilter.java
+++ b/server/system_service/src/main/java/com/doumee/core/servlet/ServletRewriteFilter.java
@@ -10,7 +10,7 @@
 
 /**
  * 浼犻�掕姹傛祦/鍝嶅簲娴佸壇鏈�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Component
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
index 528e092..179b273 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -177,8 +177,11 @@
     public static final String XJ_RERIRECT_URI ="XJ_RERIRECT_URI" ;
     public static  boolean DEALING_HK_SYNCPRIVILEGE= false;
     public static  boolean DEALING_HK_SYNCDEVICE = false;
+    public static  boolean DEALING_ELECTRICAL_SYNCDEVICE = false;
+    public static  boolean DEALING_ELECTRICAL_WARNING_SYNC = false;
     public static  boolean DEALING_HK_SYNCPLATFORM = false;
     public static  boolean DEALING_HK_SYNCDEVICE_STATUS = false;
+    public static  boolean DEALING_ELECTRICAL_STATUS = false;
     public static  boolean DEALING_HK_SYNCPLATFORM_STATUS = false;
     public static  boolean DEALING_HK_SYNCPARK = false;
     public static  boolean DEALING_HK_IMG = false;
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Date.java b/server/system_service/src/main/java/com/doumee/core/utils/Date.java
index 699473a..2e4716d 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/Date.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/Date.java
@@ -4,7 +4,7 @@
 
 /**
  * 鏃ユ湡宸ュ叿
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public final class Date {
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Http.java b/server/system_service/src/main/java/com/doumee/core/utils/Http.java
index 55cc887..099d558 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/Http.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/Http.java
@@ -15,7 +15,7 @@
 
 /**
  * Http宸ュ叿绫�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Slf4j
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Location.java b/server/system_service/src/main/java/com/doumee/core/utils/Location.java
index c4fca89..ea240e6 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/Location.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/Location.java
@@ -9,7 +9,7 @@
 /**
  * 鍦板尯宸ュ叿绫�
  * 绗笁鏂规湇鍔★細http://whois.pconline.com.cn/
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Slf4j
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Monitor.java b/server/system_service/src/main/java/com/doumee/core/utils/Monitor.java
index 4da8296..d603685 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/Monitor.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/Monitor.java
@@ -22,7 +22,7 @@
 import java.util.concurrent.TimeUnit;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/MyBatisPlus.java b/server/system_service/src/main/java/com/doumee/core/utils/MyBatisPlus.java
index b3c70fa..1efdd62 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/MyBatisPlus.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/MyBatisPlus.java
@@ -4,14 +4,14 @@
 
 /**
  * Mybatis Plus Wrapper宸ュ叿绫�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public class MyBatisPlus {
 
     /**
      * 灏嗙┖杞负null锛岀敤浜巑ybatis plus鏌ヨ鏁版嵁鏃跺皢鍊间负""鐨勫瓧娈佃浆涓簄ull锛岄槻姝㈠皢绌哄瓧绗︿覆浣滀负鏉′欢銆�
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      *
      * @return T
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Secure.java b/server/system_service/src/main/java/com/doumee/core/utils/Secure.java
index ff5d086..a35e164 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/Secure.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/Secure.java
@@ -8,7 +8,7 @@
 
 /**
  * 瀹夊叏澶勭悊宸ュ叿绫�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public class Secure {
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Server.java b/server/system_service/src/main/java/com/doumee/core/utils/Server.java
index be14e57..c2fefbe 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/Server.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/Server.java
@@ -9,7 +9,7 @@
 
 /**
  * 鏈嶅姟绔伐鍏风被
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Slf4j
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/UserClient.java b/server/system_service/src/main/java/com/doumee/core/utils/UserClient.java
index 91d6726..a68a92f 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/UserClient.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/UserClient.java
@@ -8,7 +8,7 @@
 
 /**
  * 璇锋眰宸ュ叿绫�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public class UserClient {
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Utils.java b/server/system_service/src/main/java/com/doumee/core/utils/Utils.java
index d2c6e0b..3af2c8c 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/Utils.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/Utils.java
@@ -2,7 +2,7 @@
 
 /**
  * 宸ュ叿鍖�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public final class Utils {
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/monitor/CPU.java b/server/system_service/src/main/java/com/doumee/core/utils/monitor/CPU.java
index 1b23fad..adc6be8 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/monitor/CPU.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/monitor/CPU.java
@@ -8,7 +8,7 @@
 
 /**
  * CPU淇℃伅
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/monitor/Disk.java b/server/system_service/src/main/java/com/doumee/core/utils/monitor/Disk.java
index 76a4f22..bfc2f60 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/monitor/Disk.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/monitor/Disk.java
@@ -8,7 +8,7 @@
 
 /**
  * 纾佺洏淇℃伅
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/monitor/JVM.java b/server/system_service/src/main/java/com/doumee/core/utils/monitor/JVM.java
index e1b5780..c8557f9 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/monitor/JVM.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/monitor/JVM.java
@@ -8,7 +8,7 @@
 import java.util.Date;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/monitor/Memory.java b/server/system_service/src/main/java/com/doumee/core/utils/monitor/Memory.java
index 7dde171..f67797f 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/monitor/Memory.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/monitor/Memory.java
@@ -7,7 +7,7 @@
 import java.io.Serializable;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/SystemDataPermissionMapper.java b/server/system_service/src/main/java/com/doumee/dao/system/SystemDataPermissionMapper.java
index 403d3c5..2c4ad5b 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/SystemDataPermissionMapper.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/SystemDataPermissionMapper.java
@@ -9,7 +9,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemDataPermissionMapper extends BaseMapper<SystemDataPermission> {
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/SystemDepartmentMapper.java b/server/system_service/src/main/java/com/doumee/dao/system/SystemDepartmentMapper.java
index 05ca4ad..60bfc4b 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/SystemDepartmentMapper.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/SystemDepartmentMapper.java
@@ -11,7 +11,7 @@
 
     /**
      * 鏌ヨ閮ㄩ棬
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemDepartmentListVO> selectManageList(QuerySystemDepartmentDTO dto);
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/SystemDictDataMapper.java b/server/system_service/src/main/java/com/doumee/dao/system/SystemDictDataMapper.java
index 9e0b291..6a9c045 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/SystemDictDataMapper.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/SystemDictDataMapper.java
@@ -12,7 +12,7 @@
 
     /**
      * 鏌ヨ瀛楀吀鏁版嵁绠$悊鍒楄〃
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemDictDataListVO> selectManageList(QuerySystemDictDataDTO dto);
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/SystemDictMapper.java b/server/system_service/src/main/java/com/doumee/dao/system/SystemDictMapper.java
index 2d54eef..f6abf14 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/SystemDictMapper.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/SystemDictMapper.java
@@ -12,7 +12,7 @@
 
     /**
      * 鏌ヨ瀛楀吀绠$悊鍒楄〃
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemDictListVO> selectManageList(@Param("dto") QuerySystemDictDTO dto, @Param("orderByClause") String orderByClause);
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/SystemMenuMapper.java b/server/system_service/src/main/java/com/doumee/dao/system/SystemMenuMapper.java
index e5aa72a..6b1e9b5 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/SystemMenuMapper.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/SystemMenuMapper.java
@@ -10,21 +10,21 @@
 
     /**
      * 鏌ヨ鍒楄〃
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemMenuListVO> selectManageList();
 
     /**
      * 鏍规嵁鐢ㄦ埛ID鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemMenu> selectByUserId(Integer userId);
 
     /**
      * 鏍规嵁瑙掕壊ID鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemMenu> selectByRoleId(Integer roleId);
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/SystemPermissionMapper.java b/server/system_service/src/main/java/com/doumee/dao/system/SystemPermissionMapper.java
index ef2d648..900032e 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/SystemPermissionMapper.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/SystemPermissionMapper.java
@@ -12,21 +12,21 @@
 
     /**
      * 鏍规嵁鐢ㄦ埛ID鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemPermission> selectByUserId(Integer userId);
 
     /**
      * 鏍规嵁瑙掕壊ID鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemPermission> selectByRoleId(Integer roleId);
 
     /**
      * 鏌ヨ鍒楄〃
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemPermissionListVO> selectManageList(@Param("dto") QuerySystemPermissionDTO dto, @Param("orderByClause") String orderByClause);
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/SystemPositionMapper.java b/server/system_service/src/main/java/com/doumee/dao/system/SystemPositionMapper.java
index 20f26bd..76d666d 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/SystemPositionMapper.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/SystemPositionMapper.java
@@ -10,14 +10,14 @@
 
     /**
      * 鏌ヨ绠$悊鍒楄〃
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemPositionListVO> selectManageList();
 
     /**
      * 鏌ヨ鐢ㄦ埛宀椾綅鍒楄〃
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemPosition> selectByUserId(Integer userId);
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/SystemRoleMapper.java b/server/system_service/src/main/java/com/doumee/dao/system/SystemRoleMapper.java
index c70b7fd..54f0ec9 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/SystemRoleMapper.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/SystemRoleMapper.java
@@ -12,14 +12,14 @@
 
     /**
      * 鏌ヨ瑙掕壊鍒楄〃
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemRoleListVO> selectManageList(@Param("dto") QuerySystemRoleDTO dto, @Param("orderByClause") String orderByClause);
 
     /**
      * 鏍规嵁鐢ㄦ埛ID鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemRole> selectByUserId(Integer userId);
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/SystemUserMapper.java b/server/system_service/src/main/java/com/doumee/dao/system/SystemUserMapper.java
index d4cec01..5eac7a2 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/SystemUserMapper.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/SystemUserMapper.java
@@ -20,7 +20,7 @@
 
     /**
      * 鏌ヨ鐢ㄦ埛鍒楄〃
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemUserListVO> selectManageList(@Param("dto") QuerySystemUserDTO dto, @Param("orderByClause") String orderByClause);
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/CreateRoleMenuDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/CreateRoleMenuDTO.java
index 4168929..8f35ef9 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/CreateRoleMenuDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/CreateRoleMenuDTO.java
@@ -9,7 +9,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/05/04 18:21
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/CreateRolePermissionDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/CreateRolePermissionDTO.java
index 30de810..c5f7bac 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/CreateRolePermissionDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/CreateRolePermissionDTO.java
@@ -9,7 +9,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/05/04 18:21
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/CreateSystemUserDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/CreateSystemUserDTO.java
index 108d371..83511cb 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/CreateSystemUserDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/CreateSystemUserDTO.java
@@ -8,7 +8,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/05/04 18:21
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/CreateUserRoleDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/CreateUserRoleDTO.java
index 215e8a7..ee10ba3 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/CreateUserRoleDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/CreateUserRoleDTO.java
@@ -9,7 +9,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/05/04 18:21
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/ImportMaterialDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/ImportMaterialDTO.java
index 716e7b5..036cfa4 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/ImportMaterialDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/ImportMaterialDTO.java
@@ -8,7 +8,7 @@
 import java.math.BigDecimal;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/05/04 18:21
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/ImportSystemUserDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/ImportSystemUserDTO.java
index 51d7920..4b5aade 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/ImportSystemUserDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/ImportSystemUserDTO.java
@@ -10,7 +10,7 @@
 import javax.validation.constraints.Pattern;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/05/04 18:21
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginAuthDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginAuthDTO.java
index e328a6c..3653536 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginAuthDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginAuthDTO.java
@@ -8,7 +8,7 @@
 import java.io.Serializable;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/05/04 18:21
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginByOpenidDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginByOpenidDTO.java
index 378715b..6de851e 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginByOpenidDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginByOpenidDTO.java
@@ -8,7 +8,7 @@
 import java.io.Serializable;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/05/04 18:21
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginDTO.java
index a95788d..3befbe8 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginDTO.java
@@ -8,7 +8,7 @@
 import java.io.Serializable;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/05/04 18:21
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java
index 839b481..b6d38f5 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java
@@ -8,7 +8,7 @@
 import java.io.Serializable;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/02/14 11:14
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemDepartmentDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemDepartmentDTO.java
index 4528eff..40d9207 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemDepartmentDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemDepartmentDTO.java
@@ -6,7 +6,7 @@
 
 /**
  * 鏌ヨ绯荤粺閮ㄩ棬鍙傛暟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemDictDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemDictDTO.java
index f731ece..fa90c02 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemDictDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemDictDTO.java
@@ -7,7 +7,7 @@
 import java.io.Serializable;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemDictDataDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemDictDataDTO.java
index 938912f..9d9a31b 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemDictDataDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemDictDataDTO.java
@@ -7,7 +7,7 @@
 import java.io.Serializable;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemLoginLogDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemLoginLogDTO.java
index 784b435..bf9faa1 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemLoginLogDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemLoginLogDTO.java
@@ -8,7 +8,7 @@
 
 /**
  * 鏌ヨ鐧诲綍鏃ュ織鍙傛暟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemPermissionDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemPermissionDTO.java
index 1223806..9c65404 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemPermissionDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemPermissionDTO.java
@@ -7,7 +7,7 @@
 import java.io.Serializable;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemRoleDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemRoleDTO.java
index 67e8539..74f622e 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemRoleDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemRoleDTO.java
@@ -7,7 +7,7 @@
 import java.io.Serializable;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemTraceLogDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemTraceLogDTO.java
index 94023ce..225eb68 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemTraceLogDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemTraceLogDTO.java
@@ -9,7 +9,7 @@
 
 /**
  * 璺熻釜鏃ュ織鏌ヨ
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemUserDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemUserDTO.java
index d313c60..4a028fa 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemUserDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/QuerySystemUserDTO.java
@@ -8,7 +8,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/ResetSystemUserPwdDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/ResetSystemUserPwdDTO.java
index 8b6f43c..1f535ac 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/ResetSystemUserPwdDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/ResetSystemUserPwdDTO.java
@@ -9,7 +9,7 @@
 import java.io.Serializable;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/05/04 18:21
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/UpdatePwdDto.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/UpdatePwdDto.java
index 9335e62..c3c7f6d 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/UpdatePwdDto.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/UpdatePwdDto.java
@@ -10,7 +10,7 @@
 import java.io.Serializable;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/05/04 18:21
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/UpdateSystemMenuSortDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/UpdateSystemMenuSortDTO.java
index cc2c1ed..17ccce6 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/UpdateSystemMenuSortDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/UpdateSystemMenuSortDTO.java
@@ -9,7 +9,7 @@
 import java.io.Serializable;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/05/04 18:21
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDataPermission.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDataPermission.java
index 028c6d1..d504ff9 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDataPermission.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDataPermission.java
@@ -17,7 +17,7 @@
 
 /**
  * 鏁版嵁鏉冮檺閰嶇疆
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDepartment.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDepartment.java
index 6887f64..f9258f9 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDepartment.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDepartment.java
@@ -17,7 +17,7 @@
 
 /**
  * 閮ㄩ棬
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDepartmentUser.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDepartmentUser.java
index 28343ea..91080f4 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDepartmentUser.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDepartmentUser.java
@@ -12,7 +12,7 @@
 import java.util.Date;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDict.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDict.java
index c0a111a..b4d4f1c 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDict.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDict.java
@@ -15,7 +15,7 @@
 
 /**
  * 瀛楀吀
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDictData.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDictData.java
index 6f3174e..0e04af1 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDictData.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemDictData.java
@@ -15,7 +15,7 @@
 
 /**
  * 瀛楀吀鏁版嵁
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemLoginLog.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemLoginLog.java
index 4d536fe..2d78caa 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemLoginLog.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemLoginLog.java
@@ -14,7 +14,7 @@
 
 /**
  * 鐧诲綍鏃ュ織
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemMenu.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemMenu.java
index 5f59869..de24653 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemMenu.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemMenu.java
@@ -17,7 +17,7 @@
 
 /**
  * 绯荤粺鑿滃崟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemPermission.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemPermission.java
index d972eda..7d9ada0 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemPermission.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemPermission.java
@@ -15,7 +15,7 @@
 
 /**
  * 绯荤粺鏉冮檺
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemPosition.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemPosition.java
index 0d45205..58fef63 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemPosition.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemPosition.java
@@ -17,7 +17,7 @@
 
 /**
  * 宀椾綅
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemPositionUser.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemPositionUser.java
index b75c99c..8e4cec1 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemPositionUser.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemPositionUser.java
@@ -12,7 +12,7 @@
 import java.util.Date;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemRole.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemRole.java
index 7970e05..736caec 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemRole.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemRole.java
@@ -15,7 +15,7 @@
 
 /**
  * 绯荤粺瑙掕壊
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemRoleMenu.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemRoleMenu.java
index 84ba3a4..05b0735 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemRoleMenu.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemRoleMenu.java
@@ -12,7 +12,7 @@
 
 /**
  * 瑙掕壊鑿滃崟鍏宠仈
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemRolePermission.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemRolePermission.java
index 718099d..e1f4264 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemRolePermission.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemRolePermission.java
@@ -12,7 +12,7 @@
 
 /**
  * 瑙掕壊鏉冮檺鍏宠仈
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemTraceLog.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemTraceLog.java
index 8ed6e74..6b0d0e0 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemTraceLog.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemTraceLog.java
@@ -13,7 +13,7 @@
 
 /**
  * 璺熻釜鏃ュ織
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
index 1921468..1953407 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
@@ -21,7 +21,7 @@
 
 /**
  * 绯荤粺鐢ㄦ埛
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUserRole.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUserRole.java
index 31cbaf4..0f21db1 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUserRole.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUserRole.java
@@ -12,7 +12,7 @@
 
 /**
  * 鐢ㄦ埛瑙掕壊鍏宠仈
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDataPermissionListVO.java b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDataPermissionListVO.java
index 368c087..6d08f34 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDataPermissionListVO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDataPermissionListVO.java
@@ -8,7 +8,7 @@
 import lombok.Data;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDepartmentListVO.java b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDepartmentListVO.java
index e6ed9fb..44851a9 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDepartmentListVO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDepartmentListVO.java
@@ -9,7 +9,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDictDataListVO.java b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDictDataListVO.java
index fda775c..701d0b4 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDictDataListVO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDictDataListVO.java
@@ -7,7 +7,7 @@
 import lombok.Data;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDictListVO.java b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDictListVO.java
index f10bd5f..7f9daa9 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDictListVO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemDictListVO.java
@@ -7,7 +7,7 @@
 import lombok.Data;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuListVO.java b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuListVO.java
index 9e9b1d5..b0d5af1 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuListVO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuListVO.java
@@ -9,7 +9,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuNodeVO.java b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuNodeVO.java
index c2f2483..741c452 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuNodeVO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuNodeVO.java
@@ -8,7 +8,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemPermissionListVO.java b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemPermissionListVO.java
index 4ee5260..d4a59fb 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemPermissionListVO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemPermissionListVO.java
@@ -7,7 +7,7 @@
 import lombok.Data;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemPositionListVO.java b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemPositionListVO.java
index 6d88051..c2eb27c 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemPositionListVO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemPositionListVO.java
@@ -9,7 +9,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemRoleListVO.java b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemRoleListVO.java
index d2c11c1..d4bfb9f 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemRoleListVO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemRoleListVO.java
@@ -11,7 +11,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemUserDetailVO.java b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemUserDetailVO.java
index 8e8a55f..e2576f1 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemUserDetailVO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemUserDetailVO.java
@@ -12,7 +12,7 @@
 import java.util.Date;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/02/14 11:14
  */
 
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemUserListVO.java b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemUserListVO.java
index db72a6c..fe821fb 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemUserListVO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemUserListVO.java
@@ -11,7 +11,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Data
diff --git a/server/system_service/src/main/java/com/doumee/service/aware/DepartmentDataPermissionAware.java b/server/system_service/src/main/java/com/doumee/service/aware/DepartmentDataPermissionAware.java
index 68ceb4b..18fb98f 100644
--- a/server/system_service/src/main/java/com/doumee/service/aware/DepartmentDataPermissionAware.java
+++ b/server/system_service/src/main/java/com/doumee/service/aware/DepartmentDataPermissionAware.java
@@ -20,7 +20,7 @@
 
 /**
  * 閮ㄩ棬鏁版嵁鏉冮檺鎺у埗
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Component
diff --git a/server/system_service/src/main/java/com/doumee/service/aware/PositionDataPermissionAware.java b/server/system_service/src/main/java/com/doumee/service/aware/PositionDataPermissionAware.java
index 0946c0e..3bdce26 100644
--- a/server/system_service/src/main/java/com/doumee/service/aware/PositionDataPermissionAware.java
+++ b/server/system_service/src/main/java/com/doumee/service/aware/PositionDataPermissionAware.java
@@ -20,7 +20,7 @@
 
 /**
  * 宀椾綅鏁版嵁鏉冮檺鎺у埗
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Component
diff --git a/server/system_service/src/main/java/com/doumee/service/common/CaptchaService.java b/server/system_service/src/main/java/com/doumee/service/common/CaptchaService.java
index 105d4d9..16bbe2e 100644
--- a/server/system_service/src/main/java/com/doumee/service/common/CaptchaService.java
+++ b/server/system_service/src/main/java/com/doumee/service/common/CaptchaService.java
@@ -22,7 +22,7 @@
 
 /**
  * 鍥剧墖楠岃瘉鐮�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Service
@@ -49,7 +49,7 @@
 
     /**
      * 鐢熸垚楠岃瘉鐮佸浘鐗�
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     public Captcha genCaptcha () {
@@ -104,7 +104,7 @@
 
     /**
      * 鏍¢獙楠岃瘉鐮�
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     public void check(String uuid, String code) {
@@ -119,7 +119,7 @@
     }
 
     /**
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     @Data
diff --git a/server/system_service/src/main/java/com/doumee/service/proxy/CacheProxy.java b/server/system_service/src/main/java/com/doumee/service/proxy/CacheProxy.java
index 3ff09fb..1841946 100644
--- a/server/system_service/src/main/java/com/doumee/service/proxy/CacheProxy.java
+++ b/server/system_service/src/main/java/com/doumee/service/proxy/CacheProxy.java
@@ -11,7 +11,7 @@
 
 /**
  * 缂撳瓨浠g悊绫伙紝渚夸簬缂撳瓨鍙樻洿
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/02/14 11:14
  */
 @Slf4j
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemDataPermissionService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemDataPermissionService.java
index 8dfd607..85f1a8b 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemDataPermissionService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemDataPermissionService.java
@@ -11,7 +11,7 @@
 
 /**
  * 鏁版嵁鏉冮檺閰嶇疆Service瀹氫箟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemDataPermissionService {
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemDepartmentService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemDepartmentService.java
index 884209e..455493d 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemDepartmentService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemDepartmentService.java
@@ -10,77 +10,77 @@
 
 /**
  * Service瀹氫箟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemDepartmentService {
 
     /**
      * 鍒涘缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create(SystemDepartment systemDepartment);
 
     /**
      * 涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鎵归噺涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
 
     /**
      * 涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemDepartment systemDepartment);
 
     /**
      * 鎵归噺涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateByIdInBatch(List<SystemDepartment> systemDepartments);
 
     /**
      * 涓婚敭鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemDepartment findById(Integer id);
 
     /**
      * 鏍规嵁ID闆嗘煡璇�
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemDepartment> findByIds(List<Integer> ids);
 
     /**
      * 鏉′欢鏌ヨ鍗曟潯璁板綍
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemDepartment findOne(SystemDepartment systemDepartment);
 
     /**
      * 鏉′欢鏌ヨ鍗曟潯璁板綍
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemDepartment findOne(Wrapper<SystemDepartment> wrapper);
 
     /**
      * 鏉′欢鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemDepartmentListVO> findList(QuerySystemDepartmentDTO dto);
@@ -94,14 +94,14 @@
 
     /**
      * 鏉′欢缁熻
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     long count(SystemDepartment systemDepartment);
 
     /**
      * 鑾峰彇瀛愬瓩閮ㄩ棬ID闆�
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<Integer> findChildren(Integer departmentId);
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemDepartmentUserService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemDepartmentUserService.java
index 26783ae..b45dcff 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemDepartmentUserService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemDepartmentUserService.java
@@ -7,84 +7,84 @@
 
 /**
  * 閮ㄩ棬鐢ㄦ埛Service瀹氫箟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemDepartmentUserService {
 
     /**
      * 鍒涘缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create(SystemDepartmentUser systemDepartmentUser);
 
     /**
      * 涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void delete(SystemDepartmentUser dto);
 
     /**
      * 鎵归噺涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
 
     /**
      * 涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemDepartmentUser systemDepartmentUser);
 
     /**
      * 涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void update(UpdateWrapper<SystemDepartmentUser> systemDepartmentUser);
 
     /**
      * 鎵归噺涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateByIdInBatch(List<SystemDepartmentUser> systemDepartmentUsers);
 
     /**
      * 涓婚敭鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemDepartmentUser findById(Integer id);
 
     /**
      * 鏉′欢鏌ヨ鍗曟潯璁板綍
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemDepartmentUser findOne(SystemDepartmentUser systemDepartmentUser);
 
     /**
      * 鏉′欢鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemDepartmentUser> findList(SystemDepartmentUser systemDepartmentUser);
 
     /**
      * 鏉′欢缁熻
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     long count(SystemDepartmentUser systemDepartmentUser);
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemDictDataService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemDictDataService.java
index c8fbcf9..3cb8bdc 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemDictDataService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemDictDataService.java
@@ -12,7 +12,7 @@
 
 /**
  * 瀛楀吀鏁版嵁Service瀹氫箟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemDictDataService {
@@ -20,7 +20,7 @@
     /**
      * 鍒涘缓
      *
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create(SystemDictData systemDictData);
@@ -28,7 +28,7 @@
     /**
      * 涓婚敭鍒犻櫎
      *
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
@@ -36,7 +36,7 @@
     /**
      * 鎵归噺涓婚敭鍒犻櫎
      *
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
@@ -44,7 +44,7 @@
     /**
      * 涓婚敭鏇存柊
      *
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemDictData systemDictData);
@@ -52,7 +52,7 @@
     /**
      * 鎵归噺涓婚敭鏇存柊
      *
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateByIdInBatch(List<SystemDictData> systemDictDatas);
@@ -60,7 +60,7 @@
     /**
      * 涓婚敭鏌ヨ
      *
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemDictData findById(Integer id);
@@ -68,7 +68,7 @@
     /**
      * 鏉′欢鏌ヨ鍗曟潯璁板綍
      *
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemDictData findOne(SystemDictData systemDictData);
@@ -76,7 +76,7 @@
     /**
      * 鏉′欢鏌ヨ
      *
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemDictData> findList(SystemDictData systemDictData);
@@ -84,7 +84,7 @@
     /**
      * 鍒嗛〉鏌ヨ
      *
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     PageData<SystemDictDataListVO> findPage(PageWrap<QuerySystemDictDataDTO> pageWrap);
@@ -92,7 +92,7 @@
     /**
      * 鏉′欢缁熻
      *
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     long count(SystemDictData systemDictData);
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemDictService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemDictService.java
index 074b1e1..340c5f6 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemDictService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemDictService.java
@@ -10,77 +10,77 @@
 
 /**
  * 瀛楀吀Service瀹氫箟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemDictService {
 
     /**
      * 鍒涘缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create(SystemDict systemDict);
 
     /**
      * 涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鎵归噺涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
 
     /**
      * 涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemDict systemDict);
 
     /**
      * 鎵归噺涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateByIdInBatch(List<SystemDict> systemDicts);
 
     /**
      * 涓婚敭鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemDict findById(Integer id);
 
     /**
      * 鏉′欢鏌ヨ鍗曟潯璁板綍
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemDict findOne(SystemDict systemDict);
 
     /**
      * 鏉′欢鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemDict> findList(SystemDict systemDict);
   
     /**
      * 鍒嗛〉鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     PageData<SystemDictListVO> findPage(PageWrap<QuerySystemDictDTO> pageWrap);
 
     /**
      * 鏉′欢缁熻
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     long count(SystemDict systemDict);
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemLoginLogService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemLoginLogService.java
index ca36e86..89d19f1 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemLoginLogService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemLoginLogService.java
@@ -8,84 +8,84 @@
 
 /**
  * 鐧诲綍鏃ュ織Service瀹氫箟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemLoginLogService {
 
     /**
      * 鍒涘缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create(SystemLoginLog systemLoginLog);
 
     /**
      * 涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void delete(SystemLoginLog systemLoginLog);
 
     /**
      * 鎵归噺涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
 
     /**
      * 涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemLoginLog systemLoginLog);
 
     /**
      * 鎵归噺涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateByIdInBatch(List<SystemLoginLog> systemLoginLogs);
 
     /**
      * 涓婚敭鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemLoginLog findById(Integer id);
 
     /**
      * 鏉′欢鏌ヨ鍗曟潯璁板綍
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemLoginLog findOne(SystemLoginLog systemLoginLog);
 
     /**
      * 鏉′欢鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemLoginLog> findList(SystemLoginLog systemLoginLog);
   
     /**
      * 鍒嗛〉鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     PageData<SystemLoginLog> findPage(PageWrap<QuerySystemLoginLogDTO> pageWrap);
 
     /**
      * 鏉′欢缁熻
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     long count(SystemLoginLog systemLoginLog);
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemLoginService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemLoginService.java
index c660c8e..677f938 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemLoginService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemLoginService.java
@@ -10,14 +10,14 @@
 
 /**
  * 绯荤粺鐧诲綍
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemLoginService {
 
     /**
      * 瀵嗙爜鐧诲綍
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     String loginByPassword (LoginDTO dto, HttpServletRequest request);
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemMenuService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemMenuService.java
index 108a492..d6cc818 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemMenuService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemMenuService.java
@@ -7,105 +7,105 @@
 
 /**
  * 绯荤粺鑿滃崟Service瀹氫箟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemMenuService {
 
     /**
      * 鍒涘缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create(SystemMenu systemMenu);
 
     /**
      * 涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鎵归噺涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
 
     /**
      * 涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemMenu systemMenu);
 
     /**
      * 鎵归噺涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateByIdInBatch(List<SystemMenu> systemMenus);
 
     /**
      * 涓婚敭鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemMenu findById(Integer id);
 
     /**
      * 鏉′欢鏌ヨ鍗曟潯璁板綍
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemMenu findOne(SystemMenu systemMenu);
 
     /**
      * 鏉′欢鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemMenu> findList(SystemMenu systemMenu);
 
     /**
      * 鏌ヨ鍒楄〃
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemMenuListVO> findList();
 
     /**
      * 鏌ヨ涓�绾ц彍鍗曞垪琛�
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemMenu> findRootList();
 
     /**
      * 鏌ヨ鐢ㄦ埛ID鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemMenu> findByUserId(Integer userId);
 
     /**
      * 鏍规嵁瑙掕壊ID鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemMenu> findByRoleId(Integer roleId);
 
     /**
      * 鏉′欢缁熻
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     long count(SystemMenu systemMenu);
 
     /**
      * 鏌ヨ瀛愯彍鍗�
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<Integer> findChildren(Integer menuId);
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemPermissionService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemPermissionService.java
index 6b01389..b95bd26 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemPermissionService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemPermissionService.java
@@ -10,91 +10,91 @@
 
 /**
  * 绯荤粺鏉冮檺Service瀹氫箟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemPermissionService {
 
     /**
      * 鍒涘缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create(SystemPermission systemPermission);
 
     /**
      * 涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鎵归噺涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
 
     /**
      * 涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemPermission systemPermission);
 
     /**
      * 鎵归噺涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateByIdInBatch(List<SystemPermission> systemPermissions);
 
     /**
      * 涓婚敭鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemPermission findById(Integer id);
 
     /**
      * 鏍规嵁鐢ㄦ埛ID鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemPermission> findByUserId(Integer userId);
 
     /**
      * 鏍规嵁瑙掕壊ID鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemPermission> findByRoleId(Integer roleId);
 
     /**
      * 鏉′欢鏌ヨ鍗曟潯璁板綍
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemPermission findOne(SystemPermission systemPermission);
 
     /**
      * 鏉′欢鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemPermission> findList(SystemPermission systemPermission);
   
     /**
      * 鍒嗛〉鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     PageData<SystemPermissionListVO> findPage(PageWrap<QuerySystemPermissionDTO> pageWrap);
 
     /**
      * 鏉′欢缁熻
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     long count(SystemPermission systemPermission);
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemPositionService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemPositionService.java
index f9bad21..af81cf4 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemPositionService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemPositionService.java
@@ -7,98 +7,98 @@
 
 /**
  * 宀椾綅Service瀹氫箟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemPositionService {
 
     /**
      * 鍒涘缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create(SystemPosition systemPosition);
 
     /**
      * 涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鎵归噺涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
 
     /**
      * 涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemPosition systemPosition);
 
     /**
      * 鎵归噺涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateByIdInBatch(List<SystemPosition> systemPositions);
 
     /**
      * 涓婚敭鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemPosition findById(Integer id);
 
     /**
      * 鏍规嵁ID闆嗘煡璇�
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemPosition> findByIds(List<Integer> ids);
 
     /**
      * 鏉′欢鏌ヨ鍗曟潯璁板綍
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemPosition findOne(SystemPosition systemPosition);
 
     /**
      * 鏉′欢鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemPosition> findList(SystemPosition systemPosition);
 
     /**
      * 鏌ヨ绠$悊鍒楄〃
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemPositionListVO> findList();
 
     /**
      * 鏌ヨ鐢ㄦ埛宀椾綅鍒楄〃
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemPosition> findByUserId(Integer userId);
 
     /**
      * 鏉′欢缁熻
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     long count(SystemPosition systemPosition);
 
     /**
      * 鏌ヨ瀛愬矖浣岻D闆�
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<Integer> findChildren(Integer positionId);
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemPositionUserService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemPositionUserService.java
index af3a6c9..657f956 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemPositionUserService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemPositionUserService.java
@@ -5,77 +5,77 @@
 
 /**
  * 宀椾綅鐢ㄦ埛Service瀹氫箟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemPositionUserService {
 
     /**
      * 鍒涘缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create(SystemPositionUser systemPositionUser);
 
     /**
      * 涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void delete(SystemPositionUser dto);
 
     /**
      * 鎵归噺涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
 
     /**
      * 涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemPositionUser systemPositionUser);
 
     /**
      * 鎵归噺涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateByIdInBatch(List<SystemPositionUser> systemPositionUsers);
 
     /**
      * 涓婚敭鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemPositionUser findById(Integer id);
 
     /**
      * 鏉′欢鏌ヨ鍗曟潯璁板綍
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemPositionUser findOne(SystemPositionUser systemPositionUser);
 
     /**
      * 鏉′欢鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemPositionUser> findList(SystemPositionUser systemPositionUser);
 
     /**
      * 鏉′欢缁熻
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     long count(SystemPositionUser systemPositionUser);
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemRoleMenuService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemRoleMenuService.java
index 09eb206..d212e11 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemRoleMenuService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemRoleMenuService.java
@@ -7,84 +7,84 @@
 
 /**
  * 瑙掕壊鑿滃崟鍏宠仈Service瀹氫箟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemRoleMenuService {
 
     /**
      * 鍒涘缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create(SystemRoleMenu systemRoleMenu);
 
     /**
      * 涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void delete(SystemRoleMenu systemRoleMenu);
 
     /**
      * 鎵归噺涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
 
     /**
      * 涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemRoleMenu systemRoleMenu);
 
     /**
      * 鎵归噺涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateByIdInBatch(List<SystemRoleMenu> systemRoleMenus);
 
     /**
      * 涓婚敭鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemRoleMenu findById(Integer id);
 
     /**
      * 鏉′欢鏌ヨ鍗曟潯璁板綍
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemRoleMenu findOne(SystemRoleMenu systemRoleMenu);
 
     /**
      * 鏉′欢鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemRoleMenu> findList(SystemRoleMenu systemRoleMenu);
   
     /**
      * 鍒嗛〉鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     PageData<SystemRoleMenu> findPage(PageWrap<SystemRoleMenu> pageWrap);
 
     /**
      * 鏉′欢缁熻
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     long count(SystemRoleMenu systemRoleMenu);
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemRolePermissionService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemRolePermissionService.java
index 3eea8fc..f0624a3 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemRolePermissionService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemRolePermissionService.java
@@ -7,84 +7,84 @@
 
 /**
  * 瑙掕壊鏉冮檺鍏宠仈Service瀹氫箟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemRolePermissionService {
 
     /**
      * 鍒涘缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create(SystemRolePermission systemRolePermission);
 
     /**
      * 涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void delete(SystemRolePermission systemRolePermission);
 
     /**
      * 鎵归噺涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
 
     /**
      * 涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemRolePermission systemRolePermission);
 
     /**
      * 鎵归噺涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateByIdInBatch(List<SystemRolePermission> systemRolePermissions);
 
     /**
      * 涓婚敭鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemRolePermission findById(Integer id);
 
     /**
      * 鏉′欢鏌ヨ鍗曟潯璁板綍
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemRolePermission findOne(SystemRolePermission systemRolePermission);
 
     /**
      * 鏉′欢鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemRolePermission> findList(SystemRolePermission systemRolePermission);
   
     /**
      * 鍒嗛〉鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     PageData<SystemRolePermission> findPage(PageWrap<SystemRolePermission> pageWrap);
 
     /**
      * 鏉′欢缁熻
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     long count(SystemRolePermission systemRolePermission);
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemRoleService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemRoleService.java
index c408be0..7cea77c 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemRoleService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemRoleService.java
@@ -10,84 +10,84 @@
 
 /**
  * 绯荤粺瑙掕壊Service瀹氫箟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemRoleService {
 
     /**
      * 鍒涘缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create(SystemRole systemRole);
 
     /**
      * 涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鎵归噺涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
 
     /**
      * 涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemRole systemRole);
 
     /**
      * 鎵归噺涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateByIdInBatch(List<SystemRole> systemRoles);
 
     /**
      * 涓婚敭鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemRole findById(Integer id);
 
     /**
      * 鏍规嵁鐢ㄦ埛ID鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemRole> findByUserId(Integer userId);
 
     /**
      * 鏉′欢鏌ヨ鍗曟潯璁板綍
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemRole findOne(SystemRole systemRole);
 
     /**
      * 鏉′欢鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemRole> findList(SystemRole systemRole);
   
     /**
      * 鍒嗛〉鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     PageData<SystemRoleListVO> findPage(PageWrap<QuerySystemRoleDTO> pageWrap);
 
     /**
      * 鏉′欢缁熻
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     long count(SystemRole systemRole);
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemTraceLogService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemTraceLogService.java
index 95205be..7ec7a97 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemTraceLogService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemTraceLogService.java
@@ -8,77 +8,77 @@
 
 /**
  * 璺熻釜鏃ュ織Service瀹氫箟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemTraceLogService {
 
     /**
      * 鍒涘缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create(SystemTraceLog systemTraceLog);
 
     /**
      * 涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鎵归噺涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
 
     /**
      * 涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemTraceLog systemTraceLog);
 
     /**
      * 鎵归噺涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateByIdInBatch(List<SystemTraceLog> systemTraceLogs);
 
     /**
      * 涓婚敭鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemTraceLog findById(Integer id);
 
     /**
      * 鏉′欢鏌ヨ鍗曟潯璁板綍
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemTraceLog findOne(SystemTraceLog systemTraceLog);
 
     /**
      * 鏉′欢鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemTraceLog> findList(SystemTraceLog systemTraceLog);
   
     /**
      * 鍒嗛〉鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     PageData<SystemTraceLog> findPage(PageWrap<QuerySystemTraceLogDTO> pageWrap);
 
     /**
      * 鏉′欢缁熻
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     long count(SystemTraceLog systemTraceLog);
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemUserRoleService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemUserRoleService.java
index 01dd9e4..6480d6e 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemUserRoleService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemUserRoleService.java
@@ -7,84 +7,84 @@
 
 /**
  * 鐢ㄦ埛瑙掕壊鍏宠仈Service瀹氫箟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemUserRoleService {
 
     /**
      * 鍒涘缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create(SystemUserRole systemUserRole);
 
     /**
      * 涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void delete(SystemUserRole systemUserRole);
 
     /**
      * 鎵归噺涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
 
     /**
      * 涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemUserRole systemUserRole);
 
     /**
      * 鎵归噺涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateByIdInBatch(List<SystemUserRole> systemUserRoles);
 
     /**
      * 涓婚敭鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemUserRole findById(Integer id);
 
     /**
      * 鏉′欢鏌ヨ鍗曟潯璁板綍
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemUserRole findOne(SystemUserRole systemUserRole);
 
     /**
      * 鏉′欢鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemUserRole> findList(SystemUserRole systemUserRole);
   
     /**
      * 鍒嗛〉鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     PageData<SystemUserRole> findPage(PageWrap<SystemUserRole> pageWrap);
 
     /**
      * 鏉′欢缁熻
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     long count(SystemUserRole systemUserRole);
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemUserService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemUserService.java
index eeeb248..c13a73a 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemUserService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemUserService.java
@@ -11,63 +11,63 @@
 
 /**
  * 绯荤粺鐢ㄦ埛Service瀹氫箟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemUserService {
 
     /**
      * 鍒涘缓
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     Integer create(SystemUser systemUser);
 
     /**
      * 涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteById(Integer id);
 
     /**
      * 鎵归噺涓婚敭鍒犻櫎
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void deleteByIdInBatch(List<Integer> ids);
 
     /**
      * 涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateById(SystemUser systemUser);
 
     /**
      * 鎵归噺涓婚敭鏇存柊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     void updateByIdInBatch(List<SystemUser> systemUsers);
 
     /**
      * 涓婚敭鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemUser findById(Integer id);
 
     /**
      * 鏉′欢鏌ヨ鍗曟潯璁板綍
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     SystemUser findOne(SystemUser systemUser);
 
     /**
      * 鏉′欢鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     List<SystemUser> findList(SystemUser systemUser);
@@ -75,7 +75,7 @@
     List<UserResponse> getUserList(Integer bookingsId);
     /**
      * 鍒嗛〉鏌ヨ
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     PageData<SystemUserListVO> findPage(PageWrap<QuerySystemUserDTO> pageWrap);
@@ -90,7 +90,7 @@
 
     /**
      * 鏉′欢缁熻
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     long count(SystemUser systemUser);
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDataPermissionServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDataPermissionServiceImpl.java
index c96a1a1..a39fc4e 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDataPermissionServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDataPermissionServiceImpl.java
@@ -30,7 +30,7 @@
 
 /**
  * 鏁版嵁鏉冮檺閰嶇疆Service瀹炵幇
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Service
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDepartmentServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDepartmentServiceImpl.java
index 6178d23..0ad876e 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDepartmentServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDepartmentServiceImpl.java
@@ -20,7 +20,7 @@
 
 /**
  * Service瀹炵幇
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Service
@@ -117,7 +117,7 @@
 
     /**
      * 鑾峰彇瀛愰儴闂↖D
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     private void fillChildren(List<Integer> pool, List<Integer> parentIds) {
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDepartmentUserServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDepartmentUserServiceImpl.java
index 54c0681..758bc59 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDepartmentUserServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDepartmentUserServiceImpl.java
@@ -15,7 +15,7 @@
 
 /**
  * 閮ㄩ棬鐢ㄦ埛Service瀹炵幇
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Service
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
index 7d005ce..ecf96f8 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
@@ -33,7 +33,7 @@
 
 /**
  * 瀛楀吀鏁版嵁Service瀹炵幇
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Service
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDictServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDictServiceImpl.java
index 4d6e880..7d6a348 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDictServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemDictServiceImpl.java
@@ -20,7 +20,7 @@
 
 /**
  * 瀛楀吀Service瀹炵幇
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Service
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginLogServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginLogServiceImpl.java
index 271fa25..f985b81 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginLogServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginLogServiceImpl.java
@@ -20,7 +20,7 @@
 
 /**
  * 鐧诲綍鏃ュ織Service瀹炵幇
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Service
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemMenuServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemMenuServiceImpl.java
index 91756db..6f5dc84 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemMenuServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemMenuServiceImpl.java
@@ -18,7 +18,7 @@
 
 /**
  * 绯荤粺鑿滃崟Service瀹炵幇
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Service
@@ -122,7 +122,7 @@
 
     /**
      * 鑾峰彇瀛愰儴闂↖D
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     private void fillChildren(List<Integer> pool, List<Integer> parentIds) {
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemPermissionServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemPermissionServiceImpl.java
index 1ccf31a..9194a8d 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemPermissionServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemPermissionServiceImpl.java
@@ -20,7 +20,7 @@
 
 /**
  * 绯荤粺鏉冮檺Service瀹炵幇
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Service
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemPositionServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemPositionServiceImpl.java
index 86ee824..2ae065f 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemPositionServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemPositionServiceImpl.java
@@ -18,7 +18,7 @@
 
 /**
  * 宀椾綅Service瀹炵幇
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Service
@@ -113,7 +113,7 @@
 
     /**
      * 鑾峰彇瀛愬矖浣岻D
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     private void fillChildren(List<Integer> pool, List<Integer> parentIds) {
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemPositionUserServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemPositionUserServiceImpl.java
index 88bf339..bfb0ccb 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemPositionUserServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemPositionUserServiceImpl.java
@@ -15,7 +15,7 @@
 
 /**
  * 宀椾綅鐢ㄦ埛Service瀹炵幇
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Service
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemRoleMenuServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemRoleMenuServiceImpl.java
index aca7f58..60ec5cd 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemRoleMenuServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemRoleMenuServiceImpl.java
@@ -20,7 +20,7 @@
 
 /**
  * 瑙掕壊鑿滃崟鍏宠仈Service瀹炵幇
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Service
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemRolePermissionServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemRolePermissionServiceImpl.java
index 8f6bee6..bd237e3 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemRolePermissionServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemRolePermissionServiceImpl.java
@@ -20,7 +20,7 @@
 
 /**
  * 瑙掕壊鏉冮檺鍏宠仈Service瀹炵幇
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Service
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemRoleServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemRoleServiceImpl.java
index 6d6305a..7ecdef9 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemRoleServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemRoleServiceImpl.java
@@ -22,7 +22,7 @@
 
 /**
  * 绯荤粺瑙掕壊Service瀹炵幇
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Service
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemTraceLogServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemTraceLogServiceImpl.java
index 8dabb94..79d7a76 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemTraceLogServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemTraceLogServiceImpl.java
@@ -19,7 +19,7 @@
 
 /**
  * 璺熻釜鏃ュ織Service瀹炵幇
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Service
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemUserRoleServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemUserRoleServiceImpl.java
index dbec9c6..04321d4 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemUserRoleServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemUserRoleServiceImpl.java
@@ -20,7 +20,7 @@
 
 /**
  * 鐢ㄦ埛瑙掕壊鍏宠仈Service瀹炵幇
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Service
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
index e21a1e7..ea596fa 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
@@ -37,7 +37,7 @@
 
 /**
  * 绯荤粺鐢ㄦ埛Service瀹炵幇
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Service
diff --git a/server/system_timer/src/main/java/com/doumee/SystemTimerApplication.java b/server/system_timer/src/main/java/com/doumee/SystemTimerApplication.java
index f403267..fb11445 100644
--- a/server/system_timer/src/main/java/com/doumee/SystemTimerApplication.java
+++ b/server/system_timer/src/main/java/com/doumee/SystemTimerApplication.java
@@ -10,7 +10,7 @@
 
 /**
  * 鍚姩绫�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @EnableAsync
diff --git a/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerConfig.java b/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
index c2c35b0..a116fe7 100644
--- a/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
+++ b/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
@@ -18,7 +18,7 @@
 
 /**
  * Swagger閰嶇疆
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2022/03/11 10:24
  */
 @Configuration
diff --git a/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptor.java b/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptor.java
index 8fd55c6..aac34c5 100644
--- a/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptor.java
+++ b/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptor.java
@@ -12,7 +12,7 @@
 
 /**
  * Swagger鎷︽埅鍣�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2022/04/18 18:12
  */
 @Slf4j
diff --git a/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptorConfig.java b/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptorConfig.java
index f67e9a8..2df9c73 100644
--- a/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptorConfig.java
+++ b/server/system_timer/src/main/java/com/doumee/config/swagger/SwaggerInterceptorConfig.java
@@ -7,7 +7,7 @@
 
 /**
  * Swagger鎷︽埅鍣ㄩ厤缃�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2022/04/18 18:12
  */
 @Configuration
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/TimerApplication.java b/server/visits/admin_timer/src/main/java/com/doumee/TimerApplication.java
index 5dd32ad..21c86e7 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/TimerApplication.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/TimerApplication.java
@@ -7,14 +7,16 @@
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.context.ApplicationContext;
 import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.EnableScheduling;
 
 /**
  * 鍚姩绫�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Slf4j
 @EnableAsync
+@EnableScheduling
 @SpringBootApplication
 @MapperScan("com.doumee.dao.*")
 @EnableDiscoveryClient
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java
index 4d0d49f..c08f79e 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java
@@ -11,6 +11,7 @@
 import com.doumee.dao.business.model.YwOutinbound;
 import com.doumee.service.business.*;
 import com.doumee.service.business.impl.YwOutinboundServiceImpl;
+import com.doumee.service.business.impl.hksync.HkSyncDeviceServiceImpl;
 import com.doumee.service.system.SystemDictDataService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -82,7 +83,31 @@
         return ApiResponse.success("瀹氭椂鐢熸垚浠婃棩宸℃浠诲姟浠诲姟鎵ц涓�");
     }
 
+    @Autowired
+    private YwElectricalService ywElectricalService;
+    @ApiOperation("寮�鍚畾鏃舵煡璇㈡櫤鎱х數琛ㄨ澶囩姸鎬�")
+    @GetMapping("/getElectricalStatus")
+    public ApiResponse getElectricalStatus() {
+        ywElectricalService.getElectricalStatus();
+        return ApiResponse.success("寮�鍚畾鏃舵煡璇㈡櫤鎱х數琛ㄨ澶囩姸鎬佹垚鍔�");
+    }
 
+    @Autowired
+    private com.doumee.service.business.YwElectricalBizService ywElectricalBizService;
+
+    @ApiOperation("瀹氭椂鎵归噺鎶勮〃鍏ュ簱")
+    @GetMapping("/syncElectricalMeterData")
+    public ApiResponse syncElectricalMeterData() {
+        ywElectricalBizService.syncMeterDataScheduled();
+        return ApiResponse.success("瀹氭椂鎵归噺鎶勮〃鎵ц鎴愬姛");
+    }
+
+    @ApiOperation("娓呯悊涓変釜鏈堝墠鐢佃〃鎺ュ彛鏃ュ織")
+    @GetMapping("/cleanElectricalLog")
+    public ApiResponse cleanElectricalLog() {
+        ywElectricalBizService.cleanLogBeforeThreeMonths();
+        return ApiResponse.success("鐢佃〃鎺ュ彛鏃ュ織娓呯悊鎴愬姛");
+    }
 
     @ApiOperation("瀹氭椂鏇存柊鎴挎簮绉熻祦鐘舵��")
     @GetMapping("/ywRoomStatusTimer")
diff --git a/server/visits/admin_timer/src/main/resources/bootstrap.yml b/server/visits/admin_timer/src/main/resources/bootstrap.yml
index b5b65b7..efae338 100644
--- a/server/visits/admin_timer/src/main/resources/bootstrap.yml
+++ b/server/visits/admin_timer/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: pro
+    active: dev
   application:
     name: visitsTimer
     # 瀹夊叏閰嶇疆
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/VisitsAdminApplication.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/VisitsAdminApplication.java
index 05108b1..627b29b 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/VisitsAdminApplication.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/VisitsAdminApplication.java
@@ -10,7 +10,7 @@
 
 /**
  * 鍚姩绫�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Slf4j
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/common/CaptchaController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/common/CaptchaController.java
index ffbbef5..ae6a307 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/common/CaptchaController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/common/CaptchaController.java
@@ -12,7 +12,7 @@
 
 import com.doumee.api.BaseController;
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Api(tags = "鍥剧墖楠岃瘉鐮佹帴鍙�")
@@ -24,7 +24,7 @@
     private CaptchaService captchaService;
 
     /**
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     @ApiOperation("鑾峰彇鍥剧墖楠岃瘉鐮�")
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/common/PublicController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/common/PublicController.java
index 504191b..f7a686a 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/common/PublicController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/common/PublicController.java
@@ -33,7 +33,7 @@
 
 import com.doumee.api.BaseController;
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/02/14 11:14
  */
 @Api(tags = "鍏叡鎺ュ彛")
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalChargeCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalChargeCloudController.java
new file mode 100644
index 0000000..0b5143c
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalChargeCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+
+import com.doumee.core.utils.Constants;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.YwElectricalCharge;
+import com.doumee.service.business.YwElectricalChargeService;
+import com.doumee.core.utils.Utils;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+import com.doumee.core.model.LoginUserInfo;
+
+import  com.doumee.api.BaseController;
+/**
+ * 鐢佃〃鍏呭�艰褰旵ontroller瀹氫箟
+ * @author doumee
+ * @date 2026-05-20 15:21:44
+ */
+@Api(tags = "yw_electrical_charge鎺ュ彛")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX +"/business/ywElectricalCharge")
+public class YwElectricalChargeCloudController extends BaseController {
+
+    @Autowired
+    private YwElectricalChargeService ywElectricalChargeService;
+
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    @CloudRequiredPermission("business:ywelectricalcharge:create")
+    public ApiResponse create(@RequestBody YwElectricalCharge ywElectricalCharge, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+          ywElectricalCharge.setLoginUserInfo(this.getLoginUser(token));
+        return ApiResponse.success(ywElectricalChargeService.create(ywElectricalCharge));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @CloudRequiredPermission("business:ywelectricalcharge:delete")
+    public ApiResponse deleteById(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        ywElectricalChargeService.deleteById(id, this.getLoginUser(token));
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @CloudRequiredPermission("business:ywelectricalcharge:delete")
+    public ApiResponse deleteByIdInBatch(@RequestParam String ids, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        ywElectricalChargeService.deleteByIdInBatch(this.getIdList(ids), this.getLoginUser(token));
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @CloudRequiredPermission("business:ywelectricalcharge:update")
+    public ApiResponse updateById(@RequestBody YwElectricalCharge ywElectricalCharge, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        ywElectricalCharge.setLoginUserInfo(this.getLoginUser(token));
+        ywElectricalChargeService.updateById(ywElectricalCharge);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @CloudRequiredPermission("business:ywelectricalcharge:query")
+    public ApiResponse<PageData<YwElectricalCharge>> findPage (@RequestBody PageWrap<YwElectricalCharge> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
+        return ApiResponse.success(ywElectricalChargeService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @CloudRequiredPermission("business:ywelectricalcharge:exportExcel")
+    public void exportExcel (@RequestBody PageWrap<YwElectricalCharge> pageWrap, HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+         pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
+        ExcelExporter.build(YwElectricalCharge.class).export(ywElectricalChargeService.findPage(pageWrap).getRecords(), "鐢佃〃鍏呭�艰褰�", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    @CloudRequiredPermission("business:ywelectricalcharge:query")
+    public ApiResponse findById(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(ywElectricalChargeService.findById(id));
+    }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalCloudController.java
index 846d7ad..9336a8a 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalCloudController.java
@@ -1,43 +1,66 @@
 package com.doumee.cloud.admin;
 
-import com.doumee.api.BaseController;
 import com.doumee.core.annotation.excel.ExcelExporter;
 import com.doumee.core.annotation.pr.PreventRepeat;
+
+import com.doumee.core.utils.Constants;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
-import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.Device;
 import com.doumee.dao.business.model.YwElectrical;
+import com.doumee.dao.business.model.YwElectricalData;
+import com.doumee.dao.business.dto.YwElectricalEditDTO;
+import com.doumee.dao.business.dto.YwElectricalOperateDTO;
+import com.doumee.service.business.YwElectricalBizService;
 import com.doumee.service.business.YwElectricalService;
+import com.doumee.core.utils.Utils;
+import com.doumee.config.annotation.CloudRequiredPermission;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import com.doumee.config.annotation.CloudRequiredPermission;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-
 import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.List;
+import com.doumee.core.model.LoginUserInfo;
 
+import  com.doumee.api.BaseController;
 /**
- * 鐢佃〃璁惧淇℃伅
- * @author renkang
- * @date 2026/04/03
+ * 鐢佃〃璁惧淇℃伅Controller瀹氫箟
+ * @author doumee
+ * @date 2026-05-20 15:21:43
  */
-@Api(tags = "鐢佃〃璁惧淇℃伅")
+@Api(tags = "yw_electrical鎺ュ彛")
 @RestController
-@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX + "/business/ywElectrical")
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX +"/business/ywElectrical")
 public class YwElectricalCloudController extends BaseController {
 
     @Autowired
     private YwElectricalService ywElectricalService;
-
+    @Autowired
+    private YwElectricalBizService ywElectricalBizService;
+    @PreventRepeat
+    @ApiOperation("鍏ㄩ噺鍚屾鐢佃〃璁惧鎺ュ彛")
+    @PostMapping("/syncAll")
+    @CloudRequiredPermission("business:ywelectrical:device")
+    public ApiResponse syncHkDevices(@RequestBody YwElectrical ywElectricalData, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        ywElectricalData.setLoginUserInfo(this.getLoginUser(token));
+        String result =   ywElectricalService.syncAll(ywElectricalData);
+        return ApiResponse.success(result);
+    }
+    @ApiOperation("鎵ц鐢佃〃寮�鍏抽椄鎿嶄綔")
+    @PostMapping("/controlDo")
+    @CloudRequiredPermission("business:ywelectrical:update")
+    public ApiResponse controlDo(@RequestBody Device param, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        param.setLoginUserInfo(this.getLoginUser(token));
+        ywElectricalService.controlDo(param);
+        return ApiResponse.success(null);
+    }
     @PreventRepeat
     @ApiOperation("鏂板缓")
     @PostMapping("/create")
     @CloudRequiredPermission("business:ywelectrical:create")
     public ApiResponse create(@RequestBody YwElectrical ywElectrical, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
-        ywElectrical.setLoginUserInfo(this.getLoginUser(token));
+          ywElectrical.setLoginUserInfo(this.getLoginUser(token));
         return ApiResponse.success(ywElectricalService.create(ywElectrical));
     }
 
@@ -53,12 +76,7 @@
     @GetMapping("/delete/batch")
     @CloudRequiredPermission("business:ywelectrical:delete")
     public ApiResponse deleteByIdInBatch(@RequestParam String ids, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
-        String[] idArray = ids.split(",");
-        List<Integer> idList = new ArrayList<>();
-        for (String id : idArray) {
-            idList.add(Integer.valueOf(id));
-        }
-        ywElectricalService.deleteByIdInBatch(idList, this.getLoginUser(token));
+        ywElectricalService.deleteByIdInBatch(this.getIdList(ids), this.getLoginUser(token));
         return ApiResponse.success(null);
     }
 
@@ -74,9 +92,17 @@
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
     @CloudRequiredPermission("business:ywelectrical:query")
-    public ApiResponse<PageData<YwElectrical>> findPage(@RequestBody PageWrap<YwElectrical> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+    public ApiResponse<PageData<YwElectrical>> findPage (@RequestBody PageWrap<YwElectrical> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
         return ApiResponse.success(ywElectricalService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @CloudRequiredPermission("business:ywelectrical:exportExcel")
+    public void exportExcel (@RequestBody PageWrap<YwElectrical> pageWrap, HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+         pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
+        ExcelExporter.build(YwElectrical.class).export(ywElectricalService.findPage(pageWrap).getRecords(), "鐢佃〃璁惧淇℃伅", response);
     }
 
     @ApiOperation("鏍规嵁ID鏌ヨ")
@@ -86,11 +112,34 @@
         return ApiResponse.success(ywElectricalService.findById(id));
     }
 
-    @ApiOperation("瀵煎嚭Excel")
-    @PostMapping("/exportExcel")
-    @CloudRequiredPermission("business:ywelectrical:exportExcel")
-    public void exportExcel(@RequestBody PageWrap<YwElectrical> pageWrap, HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
-        pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
-        ExcelExporter.build(YwElectrical.class).export(ywElectricalService.findPage(pageWrap).getRecords(), "鐢佃〃璁惧淇℃伅", response);
+    @ApiOperation("缂栬緫璇︽儏")
+    @GetMapping("/detail/{id}")
+    @CloudRequiredPermission("business:ywelectrical:update")
+    public ApiResponse<YwElectricalEditDTO> detail(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(ywElectricalBizService.getDetail(id));
+    }
+
+    @PreventRepeat
+    @ApiOperation("淇濆瓨缂栬緫")
+    @PostMapping("/saveDetail")
+    @CloudRequiredPermission("business:ywelectrical:update")
+    public ApiResponse saveDetail(@RequestBody YwElectricalEditDTO dto, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        ywElectricalBizService.updateDetail(dto, this.getLoginUser(token));
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("杩滅▼鎺у埗淇℃伅")
+    @GetMapping("/remoteInfo/{id}")
+    @CloudRequiredPermission("business:ywelectrical:update")
+    public ApiResponse remoteInfo(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(ywElectricalBizService.getRemoteInfo(id));
+    }
+
+    @PreventRepeat
+    @ApiOperation("杩滅▼鎿嶄綔")
+    @PostMapping("/operate")
+    @CloudRequiredPermission("business:ywelectrical:update")
+    public ApiResponse<String> operate(@RequestBody YwElectricalOperateDTO dto, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(ywElectricalBizService.operate(dto, this.getLoginUser(token)));
     }
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalDataCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalDataCloudController.java
new file mode 100644
index 0000000..5c06865
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalDataCloudController.java
@@ -0,0 +1,92 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+
+import com.doumee.core.utils.Constants;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.Device;
+import com.doumee.dao.business.model.YwElectricalData;
+import com.doumee.service.business.YwElectricalDataService;
+import com.doumee.core.utils.Utils;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+import com.doumee.core.model.LoginUserInfo;
+
+import  com.doumee.api.BaseController;
+/**
+ * 鐢佃〃鎶勮〃鏁版嵁Controller瀹氫箟
+ * @author doumee
+ * @date 2026-05-20 15:21:44
+ */
+@Api(tags = "yw_electrical_data鎺ュ彛")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX +"/business/ywElectricalData")
+public class YwElectricalDataCloudController extends BaseController {
+
+    @Autowired
+    private YwElectricalDataService ywElectricalDataService;
+
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    @CloudRequiredPermission("business:ywelectricaldata:create")
+    public ApiResponse create(@RequestBody YwElectricalData ywElectricalData, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+          ywElectricalData.setLoginUserInfo(this.getLoginUser(token));
+        return ApiResponse.success(ywElectricalDataService.create(ywElectricalData));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @CloudRequiredPermission("business:ywelectricaldata:delete")
+    public ApiResponse deleteById(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        ywElectricalDataService.deleteById(id, this.getLoginUser(token));
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @CloudRequiredPermission("business:ywelectricaldata:delete")
+    public ApiResponse deleteByIdInBatch(@RequestParam String ids, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        ywElectricalDataService.deleteByIdInBatch(this.getIdList(ids), this.getLoginUser(token));
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @CloudRequiredPermission("business:ywelectricaldata:update")
+    public ApiResponse updateById(@RequestBody YwElectricalData ywElectricalData, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        ywElectricalData.setLoginUserInfo(this.getLoginUser(token));
+        ywElectricalDataService.updateById(ywElectricalData);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @CloudRequiredPermission("business:ywelectricaldata:query")
+    public ApiResponse<PageData<YwElectricalData>> findPage (@RequestBody PageWrap<YwElectricalData> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
+        return ApiResponse.success(ywElectricalDataService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @CloudRequiredPermission("business:ywelectricaldata:exportExcel")
+    public void exportExcel (@RequestBody PageWrap<YwElectricalData> pageWrap, HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+         pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
+        ExcelExporter.build(YwElectricalData.class).export(ywElectricalDataService.findPage(pageWrap).getRecords(), "鐢佃〃鎶勮〃鏁版嵁", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    @CloudRequiredPermission("business:ywelectricaldata:query")
+    public ApiResponse findById(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(ywElectricalDataService.findById(id));
+    }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalLogCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalLogCloudController.java
index 9d2d4df..bd486d7 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalLogCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalLogCloudController.java
@@ -1,32 +1,32 @@
 package com.doumee.cloud.admin;
 
-import com.doumee.api.BaseController;
 import com.doumee.core.annotation.excel.ExcelExporter;
 import com.doumee.core.annotation.pr.PreventRepeat;
+
+import com.doumee.core.utils.Constants;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
-import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.model.YwElectricalLog;
 import com.doumee.service.business.YwElectricalLogService;
+import com.doumee.core.utils.Utils;
+import com.doumee.config.annotation.CloudRequiredPermission;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import com.doumee.config.annotation.CloudRequiredPermission;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-
 import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.List;
+import com.doumee.core.model.LoginUserInfo;
 
+import  com.doumee.api.BaseController;
 /**
- * 鐢靛櫒绫绘搷浣滄棩蹇�
- * @author renkang
- * @date 2026/04/03
+ * 鐢靛櫒绫绘搷浣滄棩蹇桟ontroller瀹氫箟
+ * @author doumee
+ * @date 2026-05-20 15:21:44
  */
-@Api(tags = "鐢靛櫒绫绘搷浣滄棩蹇�")
+@Api(tags = "yw_electrical_log鎺ュ彛")
 @RestController
-@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX + "/business/ywElectricalLog")
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX +"/business/ywElectricalLog")
 public class YwElectricalLogCloudController extends BaseController {
 
     @Autowired
@@ -37,7 +37,7 @@
     @PostMapping("/create")
     @CloudRequiredPermission("business:ywelectricallog:create")
     public ApiResponse create(@RequestBody YwElectricalLog ywElectricalLog, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
-        ywElectricalLog.setLoginUserInfo(this.getLoginUser(token));
+          ywElectricalLog.setLoginUserInfo(this.getLoginUser(token));
         return ApiResponse.success(ywElectricalLogService.create(ywElectricalLog));
     }
 
@@ -53,12 +53,7 @@
     @GetMapping("/delete/batch")
     @CloudRequiredPermission("business:ywelectricallog:delete")
     public ApiResponse deleteByIdInBatch(@RequestParam String ids, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
-        String[] idArray = ids.split(",");
-        List<Integer> idList = new ArrayList<>();
-        for (String id : idArray) {
-            idList.add(Integer.valueOf(id));
-        }
-        ywElectricalLogService.deleteByIdInBatch(idList, this.getLoginUser(token));
+        ywElectricalLogService.deleteByIdInBatch(this.getIdList(ids), this.getLoginUser(token));
         return ApiResponse.success(null);
     }
 
@@ -74,9 +69,17 @@
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
     @CloudRequiredPermission("business:ywelectricallog:query")
-    public ApiResponse<PageData<YwElectricalLog>> findPage(@RequestBody PageWrap<YwElectricalLog> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+    public ApiResponse<PageData<YwElectricalLog>> findPage (@RequestBody PageWrap<YwElectricalLog> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
         return ApiResponse.success(ywElectricalLogService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @CloudRequiredPermission("business:ywelectricallog:exportExcel")
+    public void exportExcel (@RequestBody PageWrap<YwElectricalLog> pageWrap, HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+         pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
+        ExcelExporter.build(YwElectricalLog.class).export(ywElectricalLogService.findPage(pageWrap).getRecords(), "鐢靛櫒绫绘搷浣滄棩蹇�", response);
     }
 
     @ApiOperation("鏍规嵁ID鏌ヨ")
@@ -84,13 +87,5 @@
     @CloudRequiredPermission("business:ywelectricallog:query")
     public ApiResponse findById(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         return ApiResponse.success(ywElectricalLogService.findById(id));
-    }
-
-    @ApiOperation("瀵煎嚭Excel")
-    @PostMapping("/exportExcel")
-    @CloudRequiredPermission("business:ywelectricallog:exportExcel")
-    public void exportExcel(@RequestBody PageWrap<YwElectricalLog> pageWrap, HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
-        pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
-        ExcelExporter.build(YwElectricalLog.class).export(ywElectricalLogService.findPage(pageWrap).getRecords(), "鐢靛櫒绫绘搷浣滄棩蹇�", response);
     }
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalParamCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalParamCloudController.java
new file mode 100644
index 0000000..a34f5df
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalParamCloudController.java
@@ -0,0 +1,91 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+
+import com.doumee.core.utils.Constants;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.YwElectricalParam;
+import com.doumee.service.business.YwElectricalParamService;
+import com.doumee.core.utils.Utils;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+import com.doumee.core.model.LoginUserInfo;
+
+import  com.doumee.api.BaseController;
+/**
+ * 鐢佃〃璁惧淇℃伅Controller瀹氫箟
+ * @author doumee
+ * @date 2026-05-20 15:21:44
+ */
+@Api(tags = "鐢佃〃鍙傛暟鎺ュ彛")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX +"/business/ywElectricalParam")
+public class YwElectricalParamCloudController extends BaseController {
+
+    @Autowired
+    private YwElectricalParamService ywElectricalParamService;
+
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    @CloudRequiredPermission("business:ywelectricalparam:create")
+    public ApiResponse create(@RequestBody YwElectricalParam ywElectricalParam, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+          ywElectricalParam.setLoginUserInfo(this.getLoginUser(token));
+        return ApiResponse.success(ywElectricalParamService.create(ywElectricalParam));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @CloudRequiredPermission("business:ywelectricalparam:delete")
+    public ApiResponse deleteById(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        ywElectricalParamService.deleteById(id, this.getLoginUser(token));
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @CloudRequiredPermission("business:ywelectricalparam:delete")
+    public ApiResponse deleteByIdInBatch(@RequestParam String ids, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        ywElectricalParamService.deleteByIdInBatch(this.getIdList(ids), this.getLoginUser(token));
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @CloudRequiredPermission("business:ywelectricalparam:update")
+    public ApiResponse updateById(@RequestBody YwElectricalParam ywElectricalParam, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        ywElectricalParam.setLoginUserInfo(this.getLoginUser(token));
+        ywElectricalParamService.updateById(ywElectricalParam);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @CloudRequiredPermission("business:ywelectricalparam:query")
+    public ApiResponse<PageData<YwElectricalParam>> findPage (@RequestBody PageWrap<YwElectricalParam> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
+        return ApiResponse.success(ywElectricalParamService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @CloudRequiredPermission("business:ywelectricalparam:exportExcel")
+    public void exportExcel (@RequestBody PageWrap<YwElectricalParam> pageWrap, HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+         pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
+        ExcelExporter.build(YwElectricalParam.class).export(ywElectricalParamService.findPage(pageWrap).getRecords(), "鐢佃〃鍙傛暟璁剧疆", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    @CloudRequiredPermission("business:ywelectricalparam:query")
+    public ApiResponse findById(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(ywElectricalParamService.findById(id));
+    }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalWarningCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalWarningCloudController.java
new file mode 100644
index 0000000..56eca7c
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwElectricalWarningCloudController.java
@@ -0,0 +1,73 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.dto.WarningDefOptionDTO;
+import com.doumee.dao.business.model.YwElectricalWarning;
+import com.doumee.service.business.YwElectricalWarningService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 鏅鸿兘鐢佃〃鎶ヨ璁板綍
+ */
+@Api(tags = "yw_electrical_warning鎺ュ彛")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX + "/business/ywElectricalWarning")
+public class YwElectricalWarningCloudController extends BaseController {
+
+    @Autowired
+    private YwElectricalWarningService ywElectricalWarningService;
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @CloudRequiredPermission("business:ywelectricalwarning:query")
+    public ApiResponse<PageData<YwElectricalWarning>> findPage(@RequestBody PageWrap<YwElectricalWarning> pageWrap,
+                                                               @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        if (pageWrap.getModel() != null) {
+            pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
+        }
+        return ApiResponse.success(ywElectricalWarningService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @CloudRequiredPermission("business:ywelectricalwarning:exportExcel")
+    public void exportExcel(@RequestBody PageWrap<YwElectricalWarning> pageWrap,
+                            HttpServletResponse response,
+                            @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        if (pageWrap.getModel() != null) {
+            pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
+        }
+        pageWrap.setPage(1);
+        pageWrap.setCapacity(1000000);
+        ExcelExporter.build(YwElectricalWarning.class)
+                .export(ywElectricalWarningService.findPage(pageWrap).getRecords(), "鏅鸿兘鐢佃〃鎶ヨ璁板綍", response);
+    }
+
+    @PreventRepeat
+    @ApiOperation("鍚屾绗笁鏂规姤璀︽暟鎹�")
+    @PostMapping("/syncAll")
+    @CloudRequiredPermission("business:ywelectricalwarning:sync")
+    public ApiResponse<String> syncAll(@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(ywElectricalWarningService.syncFromPlatform());
+    }
+
+    @ApiOperation("鐢佃〃鎶ヨ椤逛笅鎷�")
+    @GetMapping("/warningDefOptions")
+    @CloudRequiredPermission("business:ywelectricalwarning:query")
+    public ApiResponse<List<WarningDefOptionDTO>> warningDefOptions(@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(ywElectricalWarningService.listWarningDefOptions());
+    }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/common/PublicCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/common/PublicCloudController.java
index 22227be..ee08bcd 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/common/PublicCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/common/PublicCloudController.java
@@ -34,7 +34,7 @@
 import java.util.*;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/02/14 11:14
  */
 @Api(tags = "鍏叡涓婁紶鎺ュ彛")
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/WebPublicController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/WebPublicController.java
index 57fd3dd..a141708 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/WebPublicController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/WebPublicController.java
@@ -37,7 +37,7 @@
 import java.util.List;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/02/14 11:14
  */
 @Api(tags = "銆愬叕浼楀彿銆戝叕鍏辨帴鍙�")
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroAuthFilter.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroAuthFilter.java
index 30d7dc0..25cacae 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroAuthFilter.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroAuthFilter.java
@@ -11,7 +11,7 @@
 
 /**
  * Shiro璁よ瘉杩囨护鍣紝澶勭悊鏈璇佹儏鍐电殑鍝嶅簲
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/04/17 12:11
  */
 public class ShiroAuthFilter extends FormAuthenticationFilter {
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroCache.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroCache.java
index 4e61661..14895dd 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroCache.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroCache.java
@@ -21,7 +21,7 @@
 
 /**
  * Shiro缂撳瓨
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/04/17 12:11
  */
 @Scope(value = "prototype")
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroCacheManager.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroCacheManager.java
index 4c11155..3917c35 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroCacheManager.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroCacheManager.java
@@ -13,7 +13,7 @@
 
 /**
  * 鑷畾涔塖hiro CacheManager
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/04/17 12:11
  */
 @Slf4j
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java
index 7b49e8d..b1604f7 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java
@@ -24,7 +24,7 @@
 
 /**
  * Shiro閰嶇疆
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Configuration
@@ -112,6 +112,7 @@
         map.put("/lingyang/login", "anon");
         map.put("/lingyang/loginDemo", "anon");
         map.put("/lingyang/importBatch", "anon");
+        map.put("/electronic/electricalNotify", "anon");
         // - 鏀捐swagger
         map.put("/doc.html", "anon");
         map.put("/webjars/**", "anon");
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroCredentialsMatcher.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroCredentialsMatcher.java
index 09156e0..20c5769 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroCredentialsMatcher.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroCredentialsMatcher.java
@@ -13,7 +13,7 @@
 
 /**
  * Shiro瀵嗙爜姣斿澶勭悊
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/04/17 12:11
  */
 @Component
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroRealm.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroRealm.java
index 690addf..72e50cc 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroRealm.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroRealm.java
@@ -23,7 +23,7 @@
 
 /**
  * 鑷畾涔塕ealm锛屽鐞嗚璇佸拰鏉冮檺
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Component
@@ -43,7 +43,7 @@
 
     /**
      * 鏉冮檺澶勭悊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     @Override
@@ -58,7 +58,7 @@
 
     /**
      * 璁よ瘉澶勭悊
-     * @author Eva.Caesar Liu
+     * @author doumee
      * @date 2023/03/21 14:49
      */
     @Override
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroSessionDAO.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroSessionDAO.java
index 1fe90bf..ac41d5c 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroSessionDAO.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroSessionDAO.java
@@ -17,7 +17,7 @@
 
 /**
  * 鑷畾涔塖hiro SessionDAO锛屽皢浼氳瘽淇℃伅瀛樺叆缂撳瓨涓�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/04/17 12:11
  */
 @Data
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroSessionManager.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroSessionManager.java
index 32b0379..9fe3707 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroSessionManager.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroSessionManager.java
@@ -18,7 +18,7 @@
 
 /**
  * 鑷畾涔変細璇濈鐞嗗櫒
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/04/17 12:11
  */
 @Slf4j
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroSessionSerializer.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroSessionSerializer.java
index d334adf..5b8c8e7 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroSessionSerializer.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroSessionSerializer.java
@@ -10,7 +10,7 @@
 
 /**
  * Session搴忓垪鍖�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/04/17 12:11
  */
 public class ShiroSessionSerializer implements RedisSerializer<Serializable> {
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroToken.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroToken.java
index 4a27415..21695f5 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroToken.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroToken.java
@@ -6,7 +6,7 @@
 
 /**
  * 鑷畾涔塗oken 锛屽鐞嗚璇佸拰鏉冮檺
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2022/04/18 18:12
  */
 @Component
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroTokenManager.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroTokenManager.java
index ba35da6..b8dbcd7 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroTokenManager.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/shiro/ShiroTokenManager.java
@@ -7,7 +7,7 @@
 
 /**
  * 榛樿Token绠$悊鍣�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/04/17 12:11
  */
 @Component
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
index 0448627..72f0840 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
@@ -18,7 +18,7 @@
 
 /**
  * Swagger閰嶇疆
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2022/03/11 10:24
  */
 @Configuration
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerInterceptor.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerInterceptor.java
index 8fd55c6..aac34c5 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerInterceptor.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerInterceptor.java
@@ -12,7 +12,7 @@
 
 /**
  * Swagger鎷︽埅鍣�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2022/04/18 18:12
  */
 @Slf4j
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerInterceptorConfig.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerInterceptorConfig.java
index f67e9a8..2df9c73 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerInterceptorConfig.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerInterceptorConfig.java
@@ -7,7 +7,7 @@
 
 /**
  * Swagger鎷︽埅鍣ㄩ厤缃�
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2022/04/18 18:12
  */
 @Configuration
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/device/ElectronicNotifyController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/device/ElectronicNotifyController.java
index 68fe16b..9e104b4 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/device/ElectronicNotifyController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/device/ElectronicNotifyController.java
@@ -1,72 +1,35 @@
 package com.doumee.device;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
+import com.doumee.core.annotation.trace.Trace;
+import com.doumee.service.business.YwElectricalBizService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.nio.charset.StandardCharsets;
-import java.security.MessageDigest;
-import java.util.*;
-
+@Trace(exclude = true)
 @RestController
 @RequestMapping("/electronic")
+@Slf4j
 public class ElectronicNotifyController {
 
-    @RequestMapping("/notify")
-    public String notify(String response_content, String timestamp, String sign) {
-        System.out.println("timestamp: " + timestamp);
-        System.out.println("response_content: " + response_content);
-        System.out.println("sign: " + sign);
-        // 楠岀
-        if(!checkSign(response_content, timestamp, sign)) {
-            System.out.println("sign check failed");
-            return "sign check failed";
-        }
-        System.out.println("sign check success");
-        List<Map<String, Object>> responseContent= new ArrayList<>();
-        JSONArray contentArray = JSON.parseArray(response_content);
-        for(int i = 0; i < contentArray.size(); ++i) {
-            HashMap<String, Object> contentMap = new HashMap<>();
-            JSONObject contentObject = contentArray.getJSONObject(i);
-            Set<String> keySet = contentObject.keySet();
-            for(String key: keySet) {
-                contentMap.put(key, contentObject.getObject(key, Object.class));
-            }
-            responseContent.add(contentMap);
-        }
-        System.out.println("鎺ユ敹寮傛閫氱煡鏁版嵁锛�" + responseContent);
-        return "SUCCESS";
-    }
+    @Autowired
+    private YwElectricalBizService ywElectricalBizService;
 
-    private boolean checkSign(String response_content, String timestamp, String sign) {
-        // 闅忔満瀛楃涓� 鍚庡彴鑾峰彇
-        String nonce = "XOfX547SeCIlhufeeBBwgZIN";
-        String buf = response_content + timestamp + nonce;
-        String encode = getMD5(buf);
-        return encode.equals(sign);
-    }
-    // md5鍔犲瘑
-    private String getMD5(String password) {
-        MessageDigest md5 = null;
-        try {
-            md5 = MessageDigest.getInstance("MD5");
-        } catch (Exception e) {
-            throw new RuntimeException(e);
+    @PostMapping(value = "/electricalNotify", produces = MediaType.TEXT_PLAIN_VALUE)
+    public ResponseEntity<String> electricalNotify(
+            @RequestParam("response_content") String responseContent,
+            @RequestParam("timestamp") String timestamp,
+            @RequestParam("sign") String sign) {
+        boolean ok = ywElectricalBizService.handleElectricalNotify(responseContent, timestamp, sign);
+        if (!ok) {
+            return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("FAIL");
         }
-        byte[] byteArray = password.getBytes(StandardCharsets.UTF_8);
-
-        byte[] md5Bytes = md5.digest(byteArray);
-        StringBuilder hexValue = new StringBuilder();
-        for (byte md5Byte : md5Bytes) {
-            int val = ((int) md5Byte) & 0xff;
-            if (val < 16) {
-                hexValue.append("0");
-            }
-
-            hexValue.append(Integer.toHexString(val));
-        }
-        return hexValue.toString();
+        return ResponseEntity.ok("SUCCESS");
     }
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/config/handler/GlobalExceptionHandler.java b/server/visits/dmvisit_service/src/main/java/com/doumee/config/handler/GlobalExceptionHandler.java
index 20ddfd6..73838f3 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/config/handler/GlobalExceptionHandler.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/config/handler/GlobalExceptionHandler.java
@@ -17,7 +17,7 @@
 
 /**
  * 鍏ㄥ眬寮傚父澶勭悊
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Slf4j
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/ElectronicToolUitl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/ElectronicToolTestUtil.java
similarity index 96%
rename from server/visits/dmvisit_service/src/main/java/com/doumee/core/device/ElectronicToolUitl.java
rename to server/visits/dmvisit_service/src/main/java/com/doumee/core/device/ElectronicToolTestUtil.java
index c2db600..17c64bd 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/ElectronicToolUitl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/ElectronicToolTestUtil.java
@@ -23,7 +23,7 @@
 import java.security.MessageDigest;
 import java.util.*;
 
-public class ElectronicToolUitl {
+public class ElectronicToolTestUtil {
 
     // 鎺堟潈鐮� 鐧诲綍 鍚庡彴鑾峰彇锛� 鑱旂郴浣犵殑鐢叉柟鎴栬�呮槸閿�鍞�
     private static String auth_code = "1f29d378fc6792d5d2b735877993ffb7";
@@ -44,43 +44,43 @@
 // 娉ㄦ剰 鏈�2涓郴缁� 鎺堟潈鐮佺瓑鍙傛暟  鍚勮嚜鐙珛   鎺ュ彛鍩熷悕鍒嗗埆涓�  https://iot.tqdianbiao.com/  http://api1.tqdianbiao.com
 
 //        -------- 绯荤粺缁存姢鍏抽敭鍙傛暟妯″紡 鎺ュ彛-------------
-//        閲囬泦鍣ㄦ坊鍔�();
-//        閲囬泦鍣ㄥ垹闄�();
-//        鏌ヨN涓噰闆嗗櫒();
-//        鏌ヨ鍏ㄩ儴閲囬泦鍣�();
-//
-//        鐢佃兘琛ㄦ坊鍔�();
-//        鐢佃兘琛ㄥ垹闄�();
-//        鐢佃兘琛ㄦ。妗堟煡璇�();
-//
-//        姘磋〃娣诲姞();
-//        姘磋〃鍒犻櫎();
-//        姘磋〃妗f鏌ヨ();
+        collectorAdd();
+        閲囬泦鍣ㄥ垹闄�();
+        鏌ヨN涓噰闆嗗櫒();
+        鏌ヨ鍏ㄩ儴閲囬泦鍣�();
 
-//        鎿嶄綔鐘舵�佹煡璇�();
-//        鍙栨秷鎿嶄綔();
+        鐢佃兘琛ㄦ坊鍔�();
+        鐢佃兘琛ㄥ垹闄�();
+        鐢佃兘琛ㄦ。妗堟煡璇�();
+
+        姘磋〃娣诲姞();
+        姘磋〃鍒犻櫎();
+        姘磋〃妗f鏌ヨ();
+
+        鎿嶄綔鐘舵�佹煡璇�();
+        鍙栨秷鎿嶄綔();
 
 
 //        ------------ 鎺ュ叆鏂圭淮鎶ゅ叧閿弬鏁版ā寮� 鏁版嵁鎺ュ彛-------------
-//        鎶勭數琛ㄦ暟鎹�();
-//        璁剧疆鐢佃〃鍙傛暟();
-//        鐢佃〃鎷夐椄();
-//        鐢佃〃鍚堥椄();
-//        鐢佃〃娓呴浂_鍚屾妯″紡();
-//        鐢佃〃娓呴浂_闈炲悓姝ユā寮�();
+        鎶勭數琛ㄦ暟鎹�();
+        璁剧疆鐢佃〃鍙傛暟();
+        鐢佃〃鎷夐椄();
+        鐢佃〃鍚堥椄();
+        鐢佃〃娓呴浂_鍚屾妯″紡();
+        鐢佃〃娓呴浂_闈炲悓姝ユā寮�();
 //        鐢佃〃寮�鎴穇鍚屾妯″紡();
-//        鐢佃〃寮�鎴穇闈炲悓姝ユā寮�();
-//        鐢佃〃鍏呭�糭鍚屾妯″紡();
-//        鐢佃〃鍏呭�糭闈炲悓姝ユā寮�();
+        鐢佃〃寮�鎴穇闈炲悓姝ユā寮�();
+        鐢佃〃鍏呭�糭鍚屾妯″紡();
+        鐢佃〃鍏呭�糭闈炲悓姝ユā寮�();
 
-//        鎶勬按琛ㄦ暟鎹�();
-//        姘磋〃鍏抽榾();
-//        姘磋〃寮�闃�();
-//        姘磋〃娓呴浂();
-//        Mbus姘磋〃鍏呭�糭鍚屾妯″紡();
-//        Mbus姘磋〃鍏呭�糭闈炲悓姝ユā寮�();
-//        Lora姘磋〃鍏呭�糭鍚屾妯″紡();
-//        Lora姘磋〃鍏呭�糭闈炲悓姝ユā寮�();
+        鎶勬按琛ㄦ暟鎹�();
+        姘磋〃鍏抽榾();
+        姘磋〃寮�闃�();
+        姘磋〃娓呴浂();
+        Mbus姘磋〃鍏呭�糭鍚屾妯″紡();
+        Mbus姘磋〃鍏呭�糭闈炲悓姝ユā寮�();
+        Lora姘磋〃鍏呭�糭鍚屾妯″紡();
+        Lora姘磋〃鍏呭�糭闈炲悓姝ユā寮�();
 
         Lora鏅�氶浠樿垂姘磋〃璁剧疆姘翠环();
         Lora闃舵棰勪粯璐规按琛ㄨ缃按浠�();
@@ -123,8 +123,6 @@
         String url = api_url+"/Api/Collector";
         Map<String, Object> params = new HashMap<>();
         params.put("auth", auth_code);
-
-        // Map<String, Object> 杞垚url鍙傛暟
         String urlParams = getUrlParams(params);
 
         url = url + "?" + urlParams;
@@ -239,6 +237,8 @@
         simpleRequestPrint(url, resp);
 
     }
+
+
 
     private static void simpleRequestPrint(String url, String resp) {
         String name=Thread.currentThread().getStackTrace()[2].getMethodName();
@@ -916,6 +916,7 @@
         item = new HashMap<>();
         item.put("cid", "19020618114");     // 鍒犻櫎鏈尯鍩熷凡缁忔坊鍔犵殑閲囬泦鍣�
         req.add(item);
+
         item = new HashMap<>();
         item.put("cid", "1902061811411");   // 鍒犻櫎涓嶅悎娉曠殑閲囬泦鍣�
         req.add(item);
@@ -924,16 +925,18 @@
         testApi(url, request_content);
     }
 
-    private static void 閲囬泦鍣ㄦ坊鍔�()
-    {
+    /**
+     *
+     */
+    private static void collectorAdd(){
         String url = api2_url+"/Api_v2/collector/add";
         // 璇锋眰鍐呭锛岃皟鐢ㄦ帴鍙f墍闇�瑕佺殑鏁版嵁(娣诲姞鎸囧畾鐨勯噰闆嗗櫒淇℃伅)
         List<Map<String, String>> req = new ArrayList<>();
         Map<String, String> item = new HashMap<>();
-        item.put("cid", "12345678901");     // 閲囬泦鍣ㄥ彿琚叾浠栧尯鍩熺敤鎴锋坊鍔犺繃鐨�
+        item.put("cid", "300000000003");     // 閲囬泦鍣ㄥ彿琚叾浠栧尯鍩熺敤鎴锋坊鍔犺繃鐨�
         req.add(item);
         item = new HashMap<>();
-        item.put("cid", "19020618114");     // 澶氭璋冪敤鍧囦細杩斿洖娣诲姞鎴愬姛
+        item.put("cid", "300000000004");     // 澶氭璋冪敤鍧囦細杩斿洖娣诲姞鎴愬姛
         req.add(item);
         String request_content = JSON.toJSONString(req);
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/ElectronicToolUtil.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/ElectronicToolUtil.java
new file mode 100644
index 0000000..9e14c73
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/ElectronicToolUtil.java
@@ -0,0 +1,644 @@
+package com.doumee.core.device;
+
+import cn.emay.sdk.util.StringUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
+import com.doumee.core.device.model.*;
+import com.doumee.core.device.model.request.*;
+import com.doumee.core.device.model.response.*;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.util.EntityUtils;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
+import java.util.*;
+
+@Slf4j
+public class ElectronicToolUtil {
+    /**
+     * 鐢佃〃娣诲姞閲囬泦鍣�
+     */
+    public static ElectronicBaseResponse collectorAdd(List<CollectorAddRequest> param){
+        if(param ==null || param.size()==0){
+            return null;
+        }
+        String url = ElectronicConstant.api2_url+"/Api_v2/collector/add";
+        try {
+            String request_content = JSON.toJSONString(param);
+            String r = request(url, request_content);
+            TypeReference typeReference =
+                    new TypeReference< ElectronicBaseResponse<List<CollectorDealResponse>> >(){};
+            ElectronicBaseResponse  result = JSONObject.parseObject(r, typeReference.getType());
+            return  result;
+        }catch (Exception e){
+            log.error("鐢佃〃==============娣诲姞閲囬泦鍣�",e);
+        }
+        return null;
+    }
+    /**
+     * 鍒犻櫎閲囬泦鍣�
+     */
+    public static ElectronicBaseResponse  collectorDelete(List<CollectorAddRequest> param){
+        if(param ==null || param.size()==0){
+            return null;
+        }
+        String url = ElectronicConstant.api2_url+"/Api_v2/collector/delete";
+        try {
+            String request_content = JSON.toJSONString(param);
+            String r = request(url, request_content);
+            TypeReference typeReference =
+                    new TypeReference< ElectronicBaseResponse<List<CollectorDealResponse>> >(){};
+            ElectronicBaseResponse  result = JSONObject.parseObject(r, typeReference.getType());
+            return  result;
+        }catch (Exception e){
+            log.error("鐢佃〃==============鍒犻櫎閲囬泦鍣�",e);
+        }
+        return null;
+    }
+    /**
+     * 鏇存柊閲囬泦鍣�
+     */
+    public static ElectronicBaseResponse collectorUpdate(List<CollectorUpdateRequest> param){
+        if(param ==null || param.size()==0){
+            return null;
+        }
+        String url = ElectronicConstant.api2_url+"/Api_v2/collector/renew";
+        try {
+            String request_content = JSON.toJSONString(param);
+            String r = request(url, request_content);
+            TypeReference typeReference =
+                    new TypeReference< ElectronicBaseResponse<List<CollectorUpdateResponse>> >(){};
+            ElectronicBaseResponse  result = JSONObject.parseObject(r, typeReference.getType());
+            return  result;
+        }catch (Exception e){
+            log.error("鐢佃〃==============鏇存柊閲囬泦鍣�",e);
+        }
+        return null;
+    }
+
+    /**
+     * 鐢佃兘琛ㄦ坊鍔�
+     */
+    public static ElectronicBaseResponse eleMeterAdd(List<MeterAddRequest> param) {
+        if(param ==null || param.size()==0){
+            return null;
+        }
+        String url = ElectronicConstant.api2_url+"/Api_v2/ele_meter/add";
+        try {
+            String request_content = JSON.toJSONString(param);
+            String r = request(url, request_content);
+            TypeReference typeReference =
+                    new TypeReference< ElectronicBaseResponse<List<MeterAddResponse>> >(){};
+            ElectronicBaseResponse  result = JSONObject.parseObject(r, typeReference.getType());
+            return  result;
+        }catch (Exception e){
+            log.error("鐢佃〃==============鏂板鐢佃〃",e);
+        }
+        return null;
+    }
+    /**
+     * 鐢佃兘琛ㄦ洿鏂�
+     */
+    public static ElectronicBaseResponse  eleMeterUpdate(List<MeterUpdateRequest> param) {
+        if(param ==null || param.size()==0){
+            return null;
+        }
+        String url = ElectronicConstant.api2_url+"/Api_v2/ele_meter/renew";
+        try {
+            String request_content = JSON.toJSONString(param);
+            String r = request(url, request_content);
+            TypeReference typeReference =
+                    new TypeReference< ElectronicBaseResponse<List<MeterAddResponse>> >(){};
+            ElectronicBaseResponse  result = JSONObject.parseObject(r, typeReference.getType());
+            return  result;
+        }catch (Exception e){
+            log.error("鐢佃〃==============鏂板鐢佃〃",e);
+        }
+        return null;
+    }
+    /**
+     * 鐢佃兘琛ㄥ垹闄�
+     */
+    public static ElectronicBaseResponse  eleMeterDelete(List<MeterAddRequest> param) {
+        if(param ==null || param.size()==0){
+            return null;
+        }
+        String url = ElectronicConstant.api2_url+"/Api_v2/ele_meter/delete";
+        try {
+            String request_content = JSON.toJSONString(param);
+            String r = request(url, request_content);
+            TypeReference typeReference =
+                    new TypeReference< ElectronicBaseResponse<List<MeterAddResponse>> >(){};
+            ElectronicBaseResponse  result = JSONObject.parseObject(r, typeReference.getType());
+            return  result;
+        }catch (Exception e){
+            log.error("鐢佃〃==============鍒犻櫎鐢佃〃",e);
+        }
+        return null;
+    }
+    public static void main(String[] args) {
+        QueryDataRequest param = new QueryDataRequest();
+        param.setStart_time("2026-05-19 10:00::00");
+        param.setEnd_time("2026-05-19 12:24:25");
+        param.setLimit(1);
+        param.setFunctionids("253");
+        param.setOffset(0);
+        queryDataRequest(param );
+
+    }
+    /**
+     * 鐢佃〃寮�鎴穇琛ㄦ竻闆�
+     * 鐢佃〃娓呴浂鎺ュ彛鐢ㄤ簬鐢佃〃鐨勬竻闆舵搷浣�,鍒囨崲浠樿垂妯″紡锛岄�氳繃璇ユ帴鍙e彲浠ュ皢鐢佃〃鐨勮閲忔暟鎹�,浣欓娓呴浂锛屼娇寰楃數琛ㄧ殑璁¢噺鏁版嵁閲嶆柊浠�0寮�濮嬨��
+     * 娉ㄦ剰 棰勪粯璐圭數琛� 娓呴浂鏃朵細 鎷夐椄
+     * 鏂伴浠樿垂琛ㄥ紑濮嬪惎鐢ㄦ椂閮借杩涜娓呴浂銆佸紑鎴枫�佸厖鍊�
+     */
+    public static ElectronicBaseResponse   eleSecurityReset(List<SecurityResetRequest> param) {
+        if(param ==null || param.size()==0){
+            return null;
+        }
+        String url = ElectronicConstant.api2_url+"/Api_v2/ele_security/reset";
+
+        try {
+            String request_content = JSON.toJSONString(param);
+            String r = requestAsync(url, request_content);
+            TypeReference typeReference =
+                    new TypeReference< ElectronicBaseResponse<List<MeterDealResponse>> >(){};
+            ElectronicBaseResponse  result = JSONObject.parseObject(r, typeReference.getType());
+            return  result;
+        }catch (Exception e){
+            log.error("鐢佃〃==============寮�鎴�",e);
+        }
+        return null;
+    }
+    /**
+     * 鐢佃〃寮�鎴穇鍚屾妯″紡m
+     */
+    public static ElectronicBaseResponse   openAcount(List<OpenAccountRequest> param) {
+        if(param ==null || param.size()==0){
+            return null;
+        }
+        String url = ElectronicConstant.api2_url+"/Api_v2/ele_security/open_acount";
+
+        try {
+            String request_content = JSON.toJSONString(param);
+            String r = requestAsync(url, request_content);
+            TypeReference typeReference =
+                    new TypeReference< ElectronicBaseResponse<List<MeterDealResponse>> >(){};
+            ElectronicBaseResponse  result = JSONObject.parseObject(r, typeReference.getType());
+            return  result;
+        }catch (Exception e){
+            log.error("鐢佃〃==============寮�鎴�",e);
+        }
+        return null;
+    }
+    /**
+     * 鐢佃〃寮�鎴穇鐢佃〃鍏呭��
+     */
+    public static ElectronicBaseResponse   recharger(List<OpenAccountRequest> param) {
+        if(param ==null || param.size()==0){
+            return null;
+        }
+        String url = ElectronicConstant.api2_url+"/Api_v2/ele_security/recharge";
+
+        try {
+            String request_content = JSON.toJSONString(param);
+            String r = requestAsync(url, request_content);
+            TypeReference typeReference =
+                    new TypeReference< ElectronicBaseResponse<List<MeterDealResponse>> >(){};
+            ElectronicBaseResponse  result = JSONObject.parseObject(r, typeReference.getType());
+            return  result;
+        }catch (Exception e){
+            log.error("鐢佃〃==============寮�鎴�",e);
+        }
+        return null;
+    }
+    /**
+     * 鐢佃〃_鎷夊悎闂�
+     */
+    public static ElectronicBaseResponse   eleControl(List<OpenAccountRequest> param) {
+        if(param ==null || param.size()==0){
+            return null;
+        }
+        String url = ElectronicConstant.api2_url+"/Api_v2/ele_security/ele_control";
+
+        try {
+            String request_content = JSON.toJSONString(param);
+            String r = requestAsync(url, request_content);
+            TypeReference typeReference =
+                    new TypeReference< ElectronicBaseResponse<List<MeterDealResponse>> >(){};
+            ElectronicBaseResponse  result = JSONObject.parseObject(r, typeReference.getType());
+            return  result;
+        }catch (Exception e){
+            log.error("鐢佃〃==============鎷夊悎闂�",e);
+        }
+        return null;
+    }
+    /**
+     * 鐢佃〃_鎷夊悎闂�
+     */
+    public static ElectronicBaseResponse   eleRead(List<EleReadRequest> param) {
+        if(param ==null || param.size()==0){
+            return null;
+        }
+        String url = ElectronicConstant.api2_url+"/Api_v2/ele_read";
+
+        try {
+            String request_content = JSON.toJSONString(param);
+            String r = requestAsync(url, request_content);
+            TypeReference typeReference =
+                    new TypeReference< ElectronicBaseResponse<List<MeterDealResponse>> >(){};
+            ElectronicBaseResponse  result = JSONObject.parseObject(r, typeReference.getType());
+            return  result;
+        }catch (Exception e){
+            log.error("鐢佃〃==============鎷夊悎闂�",e);
+        }
+        return null;
+    }
+    /**
+     * Api v1 鏁版嵁绫绘帴鍙o紙/Api/Meter銆�/Api/Collector 绛夛級鎴愬姛鏍囪瘑锛氭枃妗d负 status=1锛屽皯鏁拌繑鍥� SUCCESS
+     */
+    public static boolean isDataApiSuccess(ElectronicDataResponse<?> response) {
+        if (response == null || StringUtils.isBlank(response.getStatus())) {
+            return false;
+        }
+        String status = response.getStatus().trim();
+        return "1".equals(status) || "SUCCESS".equalsIgnoreCase(status);
+    }
+
+    public static String dataApiErrorMessage(ElectronicDataResponse<?> response, String defaultMsg) {
+        if (response != null && StringUtils.isNotBlank(response.getError_msg())) {
+            return response.getError_msg();
+        }
+        if (response != null && StringUtils.isNotBlank(response.getStatus())) {
+            return defaultMsg + "锛坰tatus=" + response.getStatus() + "锛�";
+        }
+        return defaultMsg;
+    }
+
+    /**
+     * 鐢佃〃_鏌ヨ璁惧鍒楄〃鍜屽綋鍓嶇姸鎬�
+     */
+    public static ElectronicDataResponse   meterList( ) {
+
+        String url = ElectronicConstant.api_url+"/Api/Meter";
+
+        try {
+            Map<String, Object> params = new HashMap<>();
+            params.put("auth",ElectronicConstant.auth_code);
+            String urlParams = getUrlParams(params);
+            url = url + "?" + urlParams;
+//            String request_content = JSON.toJSONString(param);
+            String r = HttpClientGet(url);
+            log.info("meterList=========================:"+r);
+            TypeReference typeReference =
+                    new TypeReference< ElectronicDataResponse<List<MeterInfoResponse>> >(){};
+            ElectronicDataResponse  result = JSONObject.parseObject(r, typeReference.getType());
+            return  result;
+        }catch (Exception e){
+            log.error("鐢佃〃==============鏌ヨ璁惧鍒楄〃鍜屽綋鍓嶇姸鎬�",e);
+        }
+        return null;
+    }
+    /**
+     * 鐢佃〃_鏌ヨ閲囬泦鍣ㄥ垪琛ㄥ拰褰撳墠鐘舵��
+     */
+    public static ElectronicDataResponse   collectorStatus( ) {
+
+        String url = ElectronicConstant.api_url+"/Api/Collector";
+
+        try {
+            Map<String, Object> params = new HashMap<>();
+            params.put("auth",ElectronicConstant.auth_code);
+            String urlParams = getUrlParams(params);
+            url = url + "?" + urlParams;
+//            String request_content = JSON.toJSONString(param);
+            String r = HttpClientGet(url);
+            log.info("meterList=========================:"+r);
+            TypeReference typeReference =
+                    new TypeReference< ElectronicDataResponse<List<CollectorStatusResponse>> >(){};
+            ElectronicDataResponse  result = JSONObject.parseObject(r, typeReference.getType());
+            return  result;
+        }catch (Exception e){
+            log.error("鐢佃〃==============鏌ヨ璁惧鍒楄〃鍜屽綋鍓嶇姸鎬�",e);
+        }
+        return null;
+    }
+    /**
+     * 鐢佃〃_鏌ヨ鍙傛暟妗f
+     */
+    public static ElectronicDataResponse   paramList() {
+
+        String url = ElectronicConstant.api_url+"/Api/Param";
+
+        try {
+            Map<String, Object> params = new HashMap<>();
+            params.put("auth",ElectronicConstant.auth_code);
+            String urlParams = getUrlParams(params);
+            url = url + "?" + urlParams;
+            String r = HttpClientGet(url);
+            log.error("paramList=========================:"+r);
+            TypeReference typeReference =
+                    new TypeReference< ElectronicDataResponse<List<ParamInfoResponse>> >(){};
+            ElectronicDataResponse  result = JSONObject.parseObject(r, typeReference.getType());
+            return  result;
+        }catch (Exception e){
+            log.error("鐢佃〃==============鏌ヨ鍙傛暟妗f",e);
+        }
+        return null;
+    }
+    /**
+     * 鏌ヨ鍘嗗彶鏁版嵁鎺ュ彛
+     */
+    public static ElectronicDataResponse queryDataRequest(QueryDataRequest param) {
+        // 鏌ヨ鍘嗗彶鏁版嵁鎺ュ彛
+        try {
+            String url =ElectronicConstant.api_url+"/Api/DataRequest";
+            Map<String, Object> params = new HashMap<>();
+            params.put("auth",         ElectronicConstant.auth_code);
+            if(param!=null){
+                params.put("type",         param.getType());
+                params.put("functionids",  param.getFunctionids());
+                params.put("start_time",   param.getStart_time());
+                params.put("end_time",     param.getEnd_time());
+                params.put("offset",        param.getOffset());
+                params.put("limit",         param.getLimit());
+            }
+            String urlParams = getUrlParams(params);
+            url = url + "?" + urlParams;
+            String r = HttpClientGet(url);
+            log.error("鏌ヨ鍘嗗彶鏁版嵁鎺ュ彛=============锛�"+r);
+            TypeReference typeReference =
+                    new TypeReference< ElectronicDataResponse<List<QueryDataInfoResponse>> >(){};
+            ElectronicDataResponse  result = JSONObject.parseObject(r, typeReference.getType());
+            return  result;
+        }catch (Exception e){
+            log.error("鐢佃〃==============鏌ヨ鍘嗗彶鏁版嵁鎺ュ彛",e);
+        }
+        return null;
+
+    }
+    /**
+     * 鎶ヨ淇℃伅鏌ヨ鎺ュ彛
+     */
+    public static ElectronicDataResponse warningList(WarningListRequest param) {
+        // 鏌ヨ鍘嗗彶鏁版嵁鎺ュ彛
+        try {
+            String url =ElectronicConstant.api_url+"/Api/Warning";
+            Map<String, Object> params = new HashMap<>();
+            params.put("auth",         ElectronicConstant.auth_code);
+            if(param!=null){
+                params.put("device_type", param.getDevice_type());
+                params.put("warning_def_id",  param.getWarning_def_id());
+            }
+            String urlParams = getUrlParams(params);
+            url = url + "?" + urlParams;
+            String r = HttpClientGet(url);
+            log.error("鎶ヨ淇℃伅鏌ヨ鎺ュ彛========:"+r);
+            TypeReference typeReference =
+                    new TypeReference< ElectronicDataResponse<List<WarningInfoResponse>> >(){};
+            ElectronicDataResponse  result = JSONObject.parseObject(r, typeReference.getType());
+            return  result;
+        }catch (Exception e){
+            log.error("鐢佃〃==============鎶ヨ淇℃伅鏌ヨ鎺ュ彛",e);
+        }
+        return null;
+    }
+    public static void simpleRequestPrint(String url, String resp) {
+        String name=Thread.currentThread().getStackTrace()[2].getMethodName();
+        System.out.println(name);
+
+        System.out.println("璇锋眰鍙傛暟锛�" + url);
+        System.out.println("杩斿洖鏁版嵁锛�" + resp);
+    }
+
+    public static String HttpClientGet(String url) {
+        try {
+            CloseableHttpClient client = HttpClients.createDefault();
+            HttpGet httpGet = new HttpGet(url);
+            CloseableHttpResponse Response = client.execute(httpGet);
+            HttpEntity entity = Response.getEntity();
+            String resp = EntityUtils.toString(entity, "UTF-8");
+            Response.close();
+            return  resp;
+        } catch (Exception e) {
+            System.out.println(e.getMessage());
+            return "";
+        }
+    }
+
+
+
+    public static String getUrlParams(Map<String, Object> map) {
+        if (map == null || map.size() == 0) {
+            return "";
+        }
+        List<String> list = new ArrayList<>();
+        map.forEach((key, value)->{
+            try {
+                if(value!=null && StringUtils.isNotBlank(value.toString())){
+                    list.add(key + "=" + URLEncoder.encode(value.toString(), "UTF-8"));
+                }
+            } catch (UnsupportedEncodingException e) {
+                e.printStackTrace();
+            }
+        });
+        return String.join("&", list);
+    }
+
+
+
+    public static void testApiAsync(String url, String request_content)
+    {
+        String name=Thread.currentThread().getStackTrace()[2].getMethodName();
+        System.out.println(name);
+
+        String response = requestAsync(url, request_content);
+        printResponse(response);
+    }
+
+    // 鎵撳嵃鍝嶅簲鍐呭
+    public static void printResponse(String response) {
+        JSONObject jsonObject = JSON.parseObject(response);
+
+        String status = jsonObject.getString("status");
+        if(!"SUCCESS".equals(status)) {
+            System.out.println(jsonObject.getString("error_msg"));
+        } else {
+            String response_content = jsonObject.getString("response_content");
+            System.out.println("response_content: " + response_content);
+            JSONArray contentArray = JSON.parseArray(response_content);
+            int index = 1;
+            System.out.println("杩斿洖缁撴灉锛�");
+            for(int i = 0; i < contentArray.size(); ++i) {
+                System.out.println("[" + index++ + "]");
+                JSONObject contentObject = contentArray.getJSONObject(i);
+                Set<String> keySet = contentObject.keySet();
+                for(String key: keySet) {
+                    System.out.println(key + ": " + contentObject.get(key));
+                }
+
+            }
+        }
+    }
+
+    // 璇锋眰鎺ュ彛
+    public static  String request(String url, String request_content ){
+        // 鏃堕棿鎴�
+        String timestamp = String.valueOf(new Date().getTime()/1000);
+
+        // 鐢ㄤ簬绛惧悕鐨勫唴瀹�
+        Map<String, String> data = new HashMap<>();
+        data.put("timestamp", timestamp);
+        data.put("auth_code",  ElectronicConstant.auth_code);
+        data.put("request_content", request_content);
+
+        // 鑾峰彇绛惧悕
+        String sign = getSign(data);
+
+        data.put("sign", sign);
+
+        try {
+            String r =  sendHttpRequest(url, data);
+            return r;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return "";
+    }
+
+    // 璇锋眰鎺ュ彛
+    public static String requestAsync(String url, String request_content){
+        // 鏃堕棿鎴�
+        String timestamp = String.valueOf(new Date().getTime()/1000);
+
+        // 鐢ㄤ簬绛惧悕鐨勫唴瀹�
+        Map<String, String> data = new HashMap<>();
+        data.put("timestamp", timestamp);
+        data.put("auth_code", ElectronicConstant.auth_code);
+        data.put("request_content", request_content);
+        data.put("notify_url", ElectronicConstant.notify_url);
+
+        // 鑾峰彇绛惧悕
+        String sign = getSign(data);
+
+        data.put("sign", sign);
+
+        try {
+            return sendHttpRequest(url, data);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return "";
+    }
+
+    // 鐢熸垚绛惧悕瀛楃涓�
+    public static String getSign(Map<String, String> data)
+    {
+        // 鑾峰彇鍏抽敭瀛楀垪琛�
+        List<String> keys = new ArrayList<>(data.keySet());
+        // 鍏抽敭瀛楀垪琛ㄦ帓搴�
+        keys.sort(Comparator.naturalOrder());
+        StringBuilder sb = new StringBuilder();
+        for (String key : keys)
+        {
+            // 鍙栧悇涓瓧娈靛唴瀹规嫾鎺ュ瓧绗︿覆
+            sb.append(data.get(key));
+        }
+        // 鍔犱笂鍙屾柟绾﹀畾闅忔満瀛楃涓�
+        String txt = sb.toString() + ElectronicConstant.nonce;
+
+        // 璁$畻鍝堝笇鍊�
+        return getMD5(txt);
+    }
+
+    public static boolean verifyNotifySign(String responseContent, String timestamp, String sign) {
+        if (StringUtils.isBlank(responseContent) || StringUtils.isBlank(timestamp) || StringUtils.isBlank(sign)) {
+            return false;
+        }
+        Map<String, String> withAuth = new HashMap<>();
+        withAuth.put("auth_code", ElectronicConstant.auth_code);
+        withAuth.put("response_content", responseContent);
+        withAuth.put("timestamp", timestamp);
+        if (sign.equalsIgnoreCase(getSign(withAuth))) {
+            return true;
+        }
+        Map<String, String> withoutAuth = new HashMap<>();
+        withoutAuth.put("response_content", responseContent);
+        withoutAuth.put("timestamp", timestamp);
+        return sign.equalsIgnoreCase(getSign(withoutAuth));
+    }
+
+    // md5鍔犲瘑
+    public static String getMD5(String password) {
+        MessageDigest md5 = null;
+        try {
+            md5 = MessageDigest.getInstance("MD5");
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        byte[] byteArray = password.getBytes(StandardCharsets.UTF_8);
+
+        byte[] md5Bytes = md5.digest(byteArray);
+        StringBuilder hexValue = new StringBuilder();
+        for (byte md5Byte : md5Bytes) {
+            int val = ((int) md5Byte) & 0xff;
+            if (val < 16) {
+                hexValue.append("0");
+            }
+
+            hexValue.append(Integer.toHexString(val));
+        }
+        return hexValue.toString();
+    }
+
+    // 鍙戦�乭ttp璇锋眰
+    public static String sendHttpRequest(String url, Map<String, String> bodyMap) throws Exception {
+        System.out.println("璇锋眰鍦板潃锛�" + url);
+        System.out.println("鍙戦�佸弬鏁帮細" + bodyMap.toString());
+        HttpClient client = HttpClientBuilder.create().build();
+        HttpPost postRequest = new HttpPost(url);
+
+        List<NameValuePair> nvps = new ArrayList<>();
+
+        for(String key : bodyMap.keySet()) {
+            nvps.add(new BasicNameValuePair(key,bodyMap.get(key)));
+        }
+        postRequest.setEntity(new UrlEncodedFormEntity(nvps,"utf-8"));
+
+
+        int retry = 3;
+        HttpResponse execute = null;
+        while(retry-- > 0) {
+            try {
+                execute = client.execute(postRequest);
+                break;
+            } catch (Exception e) {
+                Thread.sleep(5000);
+            }
+        }
+        if(execute == null) {
+            throw new Exception("鎺ュ彛璇锋眰澶辫触");
+        }
+        String resp = EntityUtils.toString(execute.getEntity(), "UTF-8");
+        System.out.println("鎺ュ彛杩斿洖锛�" + resp);
+        return resp;
+    }
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/ElectronicConstant.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/ElectronicConstant.java
new file mode 100644
index 0000000..f9bd2c5
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/ElectronicConstant.java
@@ -0,0 +1,144 @@
+package com.doumee.core.device.model;
+
+import com.doumee.core.utils.Constants;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ElectronicConstant {
+    // 鎺堟潈鐮� 鐧诲綍 鍚庡彴鑾峰彇锛� 鑱旂郴浣犵殑鐢叉柟鎴栬�呮槸閿�鍞�
+    public static String auth_code = "1f29d378fc6792d5d2b735877993ffb7";
+    // 闅忔満瀛楃涓� 鍚庡彴鑾峰彇
+    public static String nonce = "lvyOY7fcun719WkxF8ToVYatStgt";
+    public static String debug_meter = "000066660942";
+    // 寮傛閫氱煡鍦板潃锛堟湇鍔″鏋滈儴缃插湪鍐呯綉锛屽湪鍏綉鏃犳硶鐩存帴璁块棶鍒帮紝闇�瑕佸湪璺敱鍣ㄤ笂閰嶇疆绔彛鏄犲皠锛屾垨鑰呴厤缃唴缃戠┛閫忓伐鍏锋潵瀹炵幇璁块棶锛� 姝ゅ浠呬负娴嬭瘯 绀轰緥
+    public static String notify_url = "http://115.221.15.8:8055/electronic/electricalNotify";
+    public static String api_url = "http://api1.tqdianbiao.com";
+    public static String api2_url = "http://api2.tqdianbiao.com";
+
+
+    /**
+     * 鎶ヨ浜嬩欢id鏌ヨ琛�
+     */
+    public  enum warningDefId{
+        w1001(1001,"A鐩告湁鍔熷姛鐜囧弽鍚�",0,"鎸囩ず鐢垫祦鏂瑰悜鏄惁姝e父锛岃繘鍑虹嚎鎺ュ弽鏃惰Е鍙戞姤璀︺��"),
+        w1002(1002,"B鐩告湁鍔熷姛鐜囧弽鍚�",0,"鎸囩ず鐢垫祦鏂瑰悜鏄惁姝e父锛岃繘鍑虹嚎鎺ュ弽鏃惰Е鍙戞姤璀︺��"),
+        w1003(1003,"C鐩告湁鍔熷姛鐜囧弽鍚�",0,"鎸囩ず鐢垫祦鏂瑰悜鏄惁姝e父锛岃繘鍑虹嚎鎺ュ弽鏃惰Е鍙戞姤璀︺��"),
+        w1004(1004,"鏂數鎶ヨ",0,"鎸囩ず绾胯矾閫氭柇鐘舵�侊紝琛ㄧ鎷夐椄鐘舵�佹椂瑙﹀彂鎶ヨ锛屾媺闂稿師鍥犻�氬父鍖呭惈浣欓涓嶈冻锛屾墜鍔ㄦ媺闂革紝瓒呰礋鑽凤紝寮�琛ㄧ洊銆�"),
+        w1005(1005,"寮�鐩栨姤璀�",0,"鏀寔寮�鐩栨娴嬬殑璁惧琛ㄧ洊鎵撳紑鏃惰Е鍙戞姤璀︼紝鍙槻姝㈤潪娉曟墦寮�鐢佃〃鐩栫殑鍋风數琛屼负銆�"),
+        w1006(1006,"A鐩歌繃杞�",0,"璁惧杩愯鏈熼棿闀挎椂闂磋秴杩囪瀹氱殑璐熻嵎闄愬埗锛岄�氬父浼氬紩璧风數琛ㄨ烦闂告柇鐢点��"),
+        w1007(1007,"B鐩歌繃杞�",0,"璁惧杩愯鏈熼棿B鐩哥嚎璺暱鏃堕棿瓒呰繃璁惧畾鐨勮礋鑽烽檺鍒讹紝閫氬父浼氬紩璧风數琛ㄨ烦闂告柇鐢点��"),
+        w1008(1008,"C鐩歌繃杞�",0,"璁惧杩愯鏈熼棿C鐩哥嚎璺暱鏃堕棿瓒呰繃璁惧畾鐨勮礋鑽烽檺鍒讹紝閫氬父浼氬紩璧风數琛ㄨ烦闂告柇鐢点��"),
+        w1009(1009,"璁¢噺鏁呴殰",0,"璁惧鍥犵數缃戝墽鐑堟尝鍔ㄦ垨鍐呴儴鍏冨櫒浠舵崯鍧忓師鍥犲鑷存棤娉曟甯歌閲忋��"),
+        w1010(1010,"鐢佃垂閫忔敮",0,"寮�鍚浠樿垂妯″紡鐨勭數琛ㄤ綑棰濇瑺璐硅秴杩�1鍏冦��"),
+        w1011(1011,"浣欓涓嶈冻涓�绾ф姤璀�",0,"寮�鍚浠樿垂妯″紡鐨勭數琛ㄤ綑棰濆皬浜庤瀹氱殑涓�绾ф姤璀﹂噾棰濋槇鍊笺��"),
+        w1012(1012,"浣欓涓嶈冻浜岀骇鎶ヨ",0,"寮�鍚浠樿垂妯″紡鐨勭數琛ㄤ綑棰濆皬浜庤瀹氱殑浜岀骇鎶ヨ閲戦闃堝�笺��"),
+        w1013(1013,"鐢佃〃杩炵画閫氳寮傚父",0,"鍚庡彴涓庤澶囪繛缁�氳澶辫触瓒呰繃10娆′互涓娿��"),
+        w1014(1014,"璁惧淇″彿寮�",0,"璁惧淇″彿瀹屽叏鏃犳硶淇濋殰閫氳鏃舵姤璀︺��"),
+        w1015(1015,"杩炵画鐢ㄧ數閲忚繃浣�",0,"绯荤粺璁剧疆涓�瀹氭椂闂存鍐呯敤鐢甸噺浣庝簬闃堝�艰Е鍙戞姤璀︼紝鍙敤浜庢鏌ョ敤鎴峰紓甯告垨绐冪數琛屼负銆�"),
+        w1016(1016,"杩炵画鐢ㄧ數閲忚繃楂�",0,"绯荤粺璁剧疆涓�瀹氭椂闂存鍐呯敤鐢甸噺楂樹簬闃堝�艰Е鍙戞姤璀︼紝鍙敤浜庢鏌ョ敤鎴峰紓甯哥敤鐢佃涓恒��"),
+        w1017(1017,"A鐩告棤鍔熷姛鐜囧弽鍚�",0,"鎸囩ず涓夌浉鐢佃〃A鐩告棤鍔熺數鑳芥柟鍚戞槸鍚︽甯革紝杩涘嚭绾挎帴鍙嶆垨璐熻嵎寮傚父鏃惰Е鍙戞姤璀︺��"),
+        w1018(1018,"B鐩告棤鍔熷姛鐜囧弽鍚�",0,"鎸囩ず涓夌浉鐢佃〃B鐩告棤鍔熺數鑳芥柟鍚戞槸鍚︽甯革紝杩涘嚭绾挎帴鍙嶆垨璐熻嵎寮傚父鏃惰Е鍙戞姤璀︺��"),
+        w1019(1019,"C鐩告棤鍔熷姛鐜囧弽鍚�",0,"鎸囩ず涓夌浉鐢佃〃C鐩告棤鍔熺數鑳芥柟鍚戞槸鍚︽甯革紝杩涘嚭绾挎帴鍙嶆垨璐熻嵎寮傚父鏃惰Е鍙戞姤璀︺��"),
+        w1020(1020,"A鐩稿け鍘�",0,"鎸囩ず鐢佃〃璁¢噺鏄惁寮傚父鎴栦笁鐩哥數琛ˋ鐩告槸鍚﹀瓨鍦ㄤ笉骞宠 鐜拌薄銆�"),
+        w1021(1021,"A鐩告瑺鍘�",0,"鎸囩ず鐢佃〃璁¢噺鏄惁寮傚父鎴栦笁鐩哥數琛ˋ鐩哥數缃戝弬鏁板紓甯搞��"),
+        w1022(1022,"A鐩歌繃鍘�",0,"鎸囩ず鐢佃〃璁¢噺鏄惁寮傚父鎴栦笁鐩哥數琛ˋ鐩哥數缃戝弬鏁板紓甯搞��"),
+        w1023(1023,"B鐩稿け鍘�",0,"鎸囩ず鐢佃〃璁¢噺鏄惁寮傚父鎴栦笁鐩哥數琛˙鐩告槸鍚﹀瓨鍦ㄤ笉骞宠 鐜拌薄銆�"),
+        w1024(1024,"B鐩告瑺鍘�",0,"鎸囩ず鐢佃〃璁¢噺鏄惁寮傚父鎴栦笁鐩哥數琛˙鐩哥數缃戝弬鏁板紓甯搞��"),
+        w1025(1025,"B鐩歌繃鍘�",0,"鎸囩ず鐢佃〃璁¢噺鏄惁寮傚父鎴栦笁鐩哥數琛˙鐩告槸鍚﹀瓨鍦ㄤ笉骞宠 鐜拌薄銆�"),
+        w1026(1026,"C鐩稿け鍘�",0,"鎸囩ず鐢佃〃璁¢噺鏄惁寮傚父鎴栦笁鐩哥數琛–鐩哥數缃戝弬鏁板紓甯搞��"),
+        w1027(1027,"C鐩告瑺鍘�",0,"鎸囩ず鐢佃〃璁¢噺鏄惁寮傚父鎴栦笁鐩哥數琛–鐩告槸鍚﹀瓨鍦ㄤ笉骞宠 鐜拌薄銆�"),
+        w1028(1028,"C鐩歌繃鍘�",0,"鎸囩ず鐢佃〃璁¢噺鏄惁寮傚父鎴栦笁鐩哥數琛–鐩哥數缃戝弬鏁板紓甯搞��"),
+        w1043(1043,"娓╁害寮傚父",0,"鎸囩ず鐢佃〃鏄惁妫�娴嬪埌娓╁害寮傚父銆�"),
+        w1044(1044,"鎬诲姛鐜囧洜鏁拌秴涓嬮檺",0,"鎸囩ず涓夌浉鐢佃〃鎬诲姛鐜囧洜鏁拌繃浣庯紝鐢ㄧ數璐ㄩ噺宸�傦紙闇�鐗瑰畾娆捐〃鏀寔锛�"),
+        w1045(1045,"鐢垫祦涓嶅钩琛�",0,"鎸囩ず涓夌浉鐢佃〃涓夌浉璐熻嵎涓嶅钩琛★紝澧炲姞绾胯矾鎹熻�椼�傦紙闇�鐗瑰畾娆捐〃鏀寔锛�"),
+        w1046(1046,"鐢靛帇涓嶅钩琛�",0,"鎸囩ず涓夌浉鐢佃〃涓夌浉璐熻嵎涓嶅钩琛★紝澧炲姞绾胯矾鎹熻�椼�傦紙闇�鐗瑰畾娆捐〃鏀寔锛�"),
+        w1047(1047,"鐢垫祦閫嗙浉搴�",0,"鎸囩ず涓夌浉鐢佃〃浜ゆ祦鐢电數娴佺殑鐩镐綅涓庣數鍘嬬浉鍙嶃�傦紙闇�鐗瑰畾娆捐〃鏀寔锛�"),
+        w1048(1048,"鐢靛帇閫嗙浉搴�",0,"鎸囩ず涓夌浉鐢佃〃涓夌浉鐢靛帇鐨勭浉搴忎笌姝e父椤哄簭鐩稿弽銆傦紙闇�鐗瑰畾娆捐〃鏀寔锛�"),
+        w1049(1049,"鎭舵�ц礋杞�",0,"鍙堢О闃绘�ц礋杞斤紝鎸囩ず鐢佃〃璐熻浇涓嚭鐜板ぇ鍔熺巼鐩寸儹寮忕數鍣紝鏄撻�犳垚鐏伨绛夋儏鍐点�傦紙闇�鐗瑰畾娆捐〃鏀寔锛�"),
+        w1050(1050,"鐢靛姩杞﹀厖鐢垫娴�",0,"璇嗗埆鐗瑰畾绫诲瀷鐢靛櫒鎺ュ叆璐熻浇绔紝鎻愰珮鐢ㄧ數瀹夊叏銆傦紙闇�鐗瑰畾娆捐〃鏀寔锛�"),
+        w1051(1051,"婕忕數妫�娴�",0,"璇嗗埆鐢佃矾涓槸鍚﹀瓨鍦ㄦ紡鐢垫儏鍐碉紝鎻愰珮鐢ㄧ數瀹夊叏銆傦紙闇�鐗瑰畾娆捐〃鏀寔锛�"),
+        w1052(1052,"璋冨帇鍣ㄦ娴�",0,"璇嗗埆鐢佃矾涓槸鍚﹀瓨鍦ㄨ皟鍘嬪櫒绛夎缃粫杩囨伓鎬ц礋杞芥娴嬨�傦紙闇�鐗瑰畾娆捐〃鏀寔锛�"),
+        w1053(1053,"鐢靛姬妫�娴�",0,"璇嗗埆鐢佃矾涓槸鍚﹀瓨鍦ㄧ數寮ф儏鍐碉紝闃叉寮曡捣鐏伨锛屾彁楂樼敤鐢靛畨鍏ㄣ�傦紙闇�鐗瑰畾娆捐〃鏀寔锛�"),
+        w1029(1029,"鍏抽榾",0,"鎸囩ず闃�闂ㄩ�氭柇鐘舵�侊紝琛ㄧ鍏抽榾鐘舵�佹椂瑙﹀彂鎶ヨ锛屽叧闃�鍘熷洜閫氬父鍖呭惈浣欓涓嶈冻锛屾墜鍔ㄥ叧闃�锛岀數姹犺�楀敖锛岀骞叉壈绛夊師鍥犮��"),
+        w1030(1030,"闃�闂ㄥ紓甯�",0,"鎸囩ず璁惧鐢靛瓙璁¢噺浼犳劅鍣ㄩ儴鍒嗘槸鍚︽甯稿伐浣滄垨瀛樺湪澶栭儴骞叉壈銆�"),
+        w1031(1031,"浼犳劅鍣ㄥ紓甯�",0,"鎸囩ず璁惧鐢靛瓙璁¢噺浼犳劅鍣ㄩ儴鍒嗘槸鍚︽甯稿伐浣滄垨瀛樺湪澶栭儴骞叉壈銆�"),
+        w1032(1032,"纾佸共鎵�",0,"鎸囩ず璁惧鐢靛瓙璁¢噺閮ㄥ垎鏄惁姝e父宸ヤ綔鎴栧瓨鍦ㄥ閮ㄥ共鎵般��"),
+        w1033(1033,"鐢垫睜娆犲帇",0,"鎸囩ず鐢垫睜鏄惁鍗冲皢鑰楀敖锛岀數姹犲畬鍏ㄨ�楀敖鍚庣數瀛愰儴鍒嗘棤娉曞悓姝ユ満姊伴儴鍒嗘暟鎹紝鏃犳硶閫氳锛屼笉鑳芥甯告墸鍑忎綑棰濆拰鍏抽榾銆�"),
+        w1034(1034,"閫氳淇″彿寮�",0,"鎸囩ず璁惧涓庨噰闆嗗櫒鎴栨湇鍔″櫒閫氳鑳藉姏鍑忓急鎴栨棤娉曢�氳銆�"),
+        w1035(1035,"姘磋垂閫忔敮",0,"寮�鍚浠樿垂妯″紡鐨勬按璐逛綑棰濇瑺璐硅秴杩�1鍏冩垨0.1m鲁銆�"),
+        w1036(1036,"浣欓涓嶈冻涓�绾ф姤璀�",0,"寮�鍚浠樿垂妯″紡鐨勬按琛ㄤ綑棰濆皬浜庤瀹氱殑涓�绾ф姤璀﹂槇鍊笺��"),
+        w1037(1037,"浣欓涓嶈冻浜岀骇鎶ヨ",0,"寮�鍚浠樿垂妯″紡鐨勬按琛ㄤ綑棰濆皬浜庤瀹氱殑浜岀骇鎶ヨ闃堝�笺��"),
+        w1038(1038,"姘磋〃杩炵画閫氳寮傚父",0,"鍚庡彴涓庤澶囪繛缁�氳澶辫触瓒呰繃10娆′互涓娿��"),
+        w1039(1039,"杩炵画鐢ㄦ按閲忚繃浣�",0,"绯荤粺璁剧疆涓�瀹氭椂闂存鍐呯敤姘撮噺浣庝簬闃堝�艰Е鍙戞姤璀︼紝鍙敤浜庢鏌ョ敤鎴峰紓甯歌涓烘垨绐冩按琛屼负銆�"),
+        w1041(1041,"璁惧淇″彿寮�",0,"璁惧淇″彿瀹屽叏鏃犳硶淇濋殰閫氳鏃舵姤璀︺��"),
+        w1042(1042,"閫氳璁惧闀挎椂闂寸绾�",0,"璁惧闀挎椂闂寸绾匡紝鍚庡彴鏃犳硶姝e父閲囬泦鏁版嵁銆�"),
+
+        ;
+        // 鎴愬憳鍙橀噺
+        private int key;
+        private int type;// 0琛ㄧず鐢佃〃锛�1琛ㄧず姘磋〃锛�9琛ㄧず閲囬泦鍣�
+        private String name;
+        private String info;
+
+        // 鏋勯�犳柟娉�
+        warningDefId(int key,String name ,int type,String info) {
+            this.key = key;
+            this.type = type;
+            this.info = info;
+            this.name = name;
+        }
+
+        public static warningDefId getByKey(int key) {
+            for (warningDefId c : values()) {
+                if (c.getKey() == key) {
+                    return c;
+                }
+            }
+            return null;
+        }
+
+        public static List<warningDefId> listByDeviceType(int deviceType) {
+            List<warningDefId> list = new ArrayList<>();
+            for (warningDefId c : values()) {
+                if (c.getType() == deviceType) {
+                    list.add(c);
+                }
+            }
+            return list;
+        }
+
+        public int getKey() {
+            return key;
+        }
+
+        public void setKey(int key) {
+            this.key = key;
+        }
+
+        public int getType() {
+            return type;
+        }
+
+        public void setType(int type) {
+            this.type = type;
+        }
+
+        public String getName() {
+            return name;
+        }
+
+        public void setName(String name) {
+            this.name = name;
+        }
+
+        public String getInfo() {
+            return info;
+        }
+
+        public void setInfo(String info) {
+            this.info = info;
+        }
+    }
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/CollectorAddRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/CollectorAddRequest.java
new file mode 100644
index 0000000..12cdbbe
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/CollectorAddRequest.java
@@ -0,0 +1,22 @@
+package com.doumee.core.device.model.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("閲囬泦鍣ㄨ姹俢id瀵硅薄")
+@Data
+public class CollectorAddRequest implements Serializable {
+
+    @ApiModelProperty(value = "閲囬泦鍣ㄧ紪鍙�")
+    private String cid;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/CollectorUpdateRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/CollectorUpdateRequest.java
new file mode 100644
index 0000000..c173cae
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/CollectorUpdateRequest.java
@@ -0,0 +1,28 @@
+package com.doumee.core.device.model.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("閲囬泦鍣ㄨ姹傚璞�")
+@Data
+public class CollectorUpdateRequest implements Serializable {
+
+    @ApiModelProperty(value = "鏇存柊鍓嶉噰闆嗗櫒缂栧彿")
+    private String old_cid;
+
+    @ApiModelProperty(value = "鏇存柊鍚庨噰闆嗗櫒缂栧彿")
+    private String new_cid;
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String description;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/EleControllerRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/EleControllerRequest.java
new file mode 100644
index 0000000..fc8c9b8
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/EleControllerRequest.java
@@ -0,0 +1,41 @@
+package com.doumee.core.device.model.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("鐢佃〃璇锋眰瀵硅薄")
+@Data
+public class EleControllerRequest implements Serializable {
+
+    @ApiModelProperty(value = "鎿嶄綔ID锛岄暱搴�16-32锛岃姹傛椂鑷繁鐢熸垚锛岀敤浜庢爣璇嗕竴娆″紓姝ユ搷浣滀换鍔★紝椤讳繚璇佸敮涓�鎬�")
+    private String opr_id;
+    @ApiModelProperty(value = "閲囬泦鍣ㄥ彿,璁惧鐨勫敮涓�鏍囪瘑绗︼紝鐢ㄤ簬鍖哄垎涓嶅悓鐨勯噰闆嗗櫒")
+    private String cid;
+    @ApiModelProperty(value = "琛ㄥ彿锛岀數琛ㄧ殑鍞竴鍦板潃锛岀敤浜庤瘑鍒壒瀹氱殑琛ㄨ澶囥�傞�氬父涓烘暟瀛楀瓧绗︿覆")
+    private String address;
+    @ApiModelProperty(value = "瓒呮椂鏃堕棿 鍗曚綅绉掞紝浠诲姟鍥犻�氳寮傚父绛夋儏鍐垫湭鎵ц鑷姩澶辨晥鐨勬椂闂� ,榛樿1骞�")
+    private int time_out;
+    @ApiModelProperty(value = "濡傛灉浼爐rue ,鍒欑郴缁熸帴鍙椾换鍔℃椂璁惧涓嶅湪绾跨洿鎺ヨ繑鍥炲け璐� 锛岄粯璁� false")
+    private Boolean must_online;
+    @ApiModelProperty(value = "閲嶈瘯娆℃暟锛�0-3锛� ,榛樿1娆�")
+    private int retry_times;
+    /**
+     * 鎿嶄綔绫诲瀷ID	鎻忚堪
+     * 10	鎷夐椄
+     * 11	鍚堥椄
+     * 63	淇濈數
+     * 220	瑙i櫎淇濈數
+     */
+    @ApiModelProperty(value = "鎿嶄綔绫诲瀷ID锛�10琛ㄧず鎷夐椄锛�11琛ㄧず鍚堥椄")
+    private int type;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/EleReadRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/EleReadRequest.java
new file mode 100644
index 0000000..b98fdca
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/EleReadRequest.java
@@ -0,0 +1,33 @@
+package com.doumee.core.device.model.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("鎶勮〃璇锋眰鍙傛暟")
+@Data
+public class EleReadRequest implements Serializable {
+
+    @ApiModelProperty(value = "鎿嶄綔ID锛岄暱搴�16-32锛岃姹傛椂鑷繁鐢熸垚锛岀敤浜庢爣璇嗕竴娆″紓姝ユ搷浣滀换鍔★紝椤讳繚璇佸敮涓�鎬�")
+    private String opr_id;
+    @ApiModelProperty(value = "閲囬泦鍣ㄥ彿,4G銆丯B璁惧閲囬泦鍣ㄥ彿涓庤〃鍙蜂竴鑷�")
+    private String cid;
+    @ApiModelProperty(value = "琛ㄥ彿锛堣〃鍦板潃锛�(绯荤粺閲屾樉绀轰负閫氳鍦板潃)")
+    private String address;
+    @ApiModelProperty(value = "瓒呮椂鏃堕棿 鍗曚綅绉掞紝浠诲姟鍥犻�氳寮傚父绛夋儏鍐垫湭鎵ц鑷姩澶辨晥鐨勬椂闂� ,榛樿1骞�")
+    private int time_out;
+    @ApiModelProperty(value = "濡傛灉浼爐rue ,鍒欑郴缁熸帴鍙椾换鍔℃椂璁惧涓嶅湪绾跨洿鎺ヨ繑鍥炲け璐�")
+    private String must_online;
+    @ApiModelProperty(value = "鎿嶄綔绫诲瀷ID")
+    private int type;
+    @ApiModelProperty(value = "閲嶈瘯娆℃暟锛�0-3锛� ,榛樿1娆�")
+    private int retry_times;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/MeterAddRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/MeterAddRequest.java
new file mode 100644
index 0000000..140b0d5
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/MeterAddRequest.java
@@ -0,0 +1,31 @@
+package com.doumee.core.device.model.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("鐢佃〃璇锋眰瀵硅薄")
+@Data
+public class MeterAddRequest implements Serializable {
+
+    /**
+     *  娉ㄦ剰鍏堟坊鍔犻噰闆嗗櫒锛屽啀娣诲姞琛紝鍚﹀垯浼氬鑷磋〃娣诲姞澶辫触銆�
+     */
+    @ApiModelProperty(value = "閲囬泦鍣ㄥ彿,璁惧鐨勫敮涓�鏍囪瘑绗︼紝鐢ㄤ簬鍖哄垎涓嶅悓鐨勯噰闆嗗櫒")
+    private String cid;
+    @ApiModelProperty(value = "琛ㄥ彿锛岀數琛ㄧ殑鍞竴鍦板潃锛岀敤浜庤瘑鍒壒瀹氱殑琛ㄨ澶囥�傞�氬父涓烘暟瀛楀瓧绗︿覆")
+    private String address;
+    @ApiModelProperty(value = "琛ㄧ殑绫诲瀷锛岃〃绀烘按琛ㄧ殑鍏蜂綋鍨嬪彿鎴栫被鍒�傞�氬父涓哄瓧绗︿覆銆� 鑾峰彇琛ㄧ被鍨�")
+    private String model;
+    @ApiModelProperty(value = "鐢佃〃鐨勫娉ㄤ俊鎭紝閫氬父鐢ㄤ簬鎻忚堪鐢佃〃鐨勪綅缃垨鐢ㄩ��")
+    private String description;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/MeterUpdateRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/MeterUpdateRequest.java
new file mode 100644
index 0000000..3075e93
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/MeterUpdateRequest.java
@@ -0,0 +1,33 @@
+package com.doumee.core.device.model.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("鏇存柊鐢佃〃璇锋眰瀵硅薄")
+@Data
+public class MeterUpdateRequest implements Serializable {
+
+    @ApiModelProperty(value = "鏇存柊鍓嶉噰闆嗗櫒缂栧彿")
+    private String old_cid;
+
+    @ApiModelProperty(value = "鏇存柊鍚庨噰闆嗗櫒缂栧彿")
+    private String new_cid;
+    @ApiModelProperty(value = "鏃ц〃鍙�")
+    private String old_address;
+
+    @ApiModelProperty(value = "鏂拌〃鍙�")
+    private String new_address;
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String description;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/OpenAccountParamRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/OpenAccountParamRequest.java
new file mode 100644
index 0000000..73f4be0
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/OpenAccountParamRequest.java
@@ -0,0 +1,42 @@
+package com.doumee.core.device.model.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ *@author doumee
+ *@date 2023/03/21 14:49
+ */
+@ApiModel("寮�浼氳姹傚弬鏁�")
+@Data
+public class OpenAccountParamRequest implements Serializable {
+
+    @ApiModelProperty(value = "鍒濆閲戦")
+    private String money;//	蹇呭~	蹇呭~	String	100
+    @ApiModelProperty(value = "璐︽埛Id")
+    private String account_id;//	蹇呭~	涓嶅~	String	1	寤鸿濮嬬粓濉�1 ,璁剧疆鍚� 绯荤粺鍐呯殑鎴峰彿灏嗗け鏁�
+    @ApiModelProperty(value = "鍏呭�兼鏁�")
+    private String count;//	蹇呭~	涓嶅~	String	1	寮�鎴峰潎濉�1
+    @ApiModelProperty(value = "鐢典环")
+    private String 	price	;//蹇呭~	涓嶅~	String	1	鍗曚环 鑼冨洿锛�0.01-99.9999 (璇ュ瓧娈典粎鍗曡垂鐜囪〃鏈夋晥)
+    @ApiModelProperty(value = "閫忔敮閲戦")
+    private String overdraw;//	閫夊~	涓嶅~	String	100	閫忔敮閲戦 锛堢數琛ㄥ厑璁哥殑娆犺垂閲戦锛夎寖鍥达細0-999999 榛樿锛�0
+    @ApiModelProperty(value = "涓�绾ф姤璀﹂噾棰�")
+    private String display_warning	;//閫夊~	涓嶅~	String	20	鏄剧ず鎶ヨ閲戦 锛堝墿浣欓噾棰濅綆浜庢鍊兼姤璀︾伅闂儊锛夎寖鍥� 0-999999,榛樿 100 鍏�
+    @ApiModelProperty(value = "浜岀骇鎶ヨ閲戦")
+    private String pulloff_warning	;//閫夊~	涓嶅~	String	10	鏂數鎶ヨ閲戦 锛堝墿浣欓噾棰濅綆浜庢鍊兼柇鐢垫姤璀︼紝闇�鐢ㄥ悎闂稿懡浠わ級鑼冨洿 0-999999 锛岄粯璁� 0 鍏�
+    @ApiModelProperty(value = "璐熻嵎闄愬埗鍔熺巼")
+    private String load_limit	;//閫夊~	涓嶅~	String	10	璐熻嵎闄愬埗鍔熺巼 0-99.9999kw 榛樿 10kw
+    @ApiModelProperty(value = "瓒呰礋鑽锋仮澶嶅欢鏃�")
+    private String load_delay;//	閫夊~	涓嶅~	String	5	瓒呰繃璐熻嵎鏂數鍚� 寤惰繜涓婄數鏃堕棿 0-99 鍒嗛挓 锛岄粯璁� 5 鍒嗛挓
+    @ApiModelProperty(value = "鐢佃〃鍊嶇巼")
+    private String rate;//	閫夊~	涓嶅~	String	1	鐢佃〃鍊嶇巼 锛� 榛樿1
+    @ApiModelProperty(value = "灞忓箷杞樉鏃堕棿")
+    private String display_time;//	閫夊~	涓嶅~	String	10	灞忓箷杞樉鏃堕棿 0-99绉� 榛樿5绉�
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/OpenAccountRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/OpenAccountRequest.java
new file mode 100644
index 0000000..6bc42e1
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/OpenAccountRequest.java
@@ -0,0 +1,34 @@
+package com.doumee.core.device.model.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("寮�浼氳姹傚弬鏁�")
+@Data
+public class OpenAccountRequest implements Serializable {
+
+    @ApiModelProperty(value = "鎿嶄綔ID锛岄暱搴�16-32锛岃姹傛椂鑷繁鐢熸垚锛岀敤浜庢爣璇嗕竴娆″紓姝ユ搷浣滀换鍔★紝椤讳繚璇佸敮涓�鎬�")
+    private String opr_id;
+    @ApiModelProperty(value = "閲囬泦鍣ㄥ彿,4G銆丯B璁惧閲囬泦鍣ㄥ彿涓庤〃鍙蜂竴鑷�")
+    private String cid;
+    @ApiModelProperty(value = "琛ㄥ彿锛堣〃鍦板潃锛�(绯荤粺閲屾樉绀轰负閫氳鍦板潃)")
+    private String address;
+    @ApiModelProperty(value = "瓒呮椂鏃堕棿 鍗曚綅绉掞紝浠诲姟鍥犻�氳寮傚父绛夋儏鍐垫湭鎵ц鑷姩澶辨晥鐨勬椂闂� ,榛樿1骞�")
+    private int time_out;
+    @ApiModelProperty(value = "濡傛灉浼爐rue ,鍒欑郴缁熸帴鍙椾换鍔℃椂璁惧涓嶅湪绾跨洿鎺ヨ繑鍥炲け璐�")
+    private String must_online;
+    @ApiModelProperty(value = "鎿嶄綔鎵�闇�鐨勬暟鎹�")
+    private OpenAccountParamRequest params;
+    @ApiModelProperty(value = "閲嶈瘯娆℃暟锛�0-3锛� ,榛樿1娆�")
+    private int retry_times;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/QueryDataRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/QueryDataRequest.java
new file mode 100644
index 0000000..be78b1c
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/QueryDataRequest.java
@@ -0,0 +1,70 @@
+package com.doumee.core.device.model.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("鎶勮〃璇锋眰瀵硅薄")
+@Data
+public class QueryDataRequest implements Serializable {
+
+    /**
+     * 鍔熻兘鍒嗙被(ID 瀵瑰簲鍔熻兘(type瀛楁))锛�
+     * 鍔熻兘ID	鎻忚堪	澶囨敞
+     * 3	姝e悜鏈夊姛鎬荤數鑳�,瀵瑰簲鏃堕棿鐨勬�荤敤鐢甸噺銆傝幏鍙栨瘡鏃ョ敤鐢甸噺	鏈绠楀�嶇巼 鑾峰彇鍊嶇巼, 鍗崇敤鐢靛害鏁帮紝鐢靛害鏁帮紝鐢佃〃璇绘暟,鎬荤數鑳�,闈炴椂闂存鍐呯敤鐢甸噺锛屾椂闂存鍐呯敤鐢甸噺
+     * 253	鐢佃〃鐘舵�佽鎯�(鏂�)
+     * 4	鍙嶅悜鏈夊姛鎬荤數鑳�	鏃犵壒娈婇渶姹備竴鑸笉闇�瑕侊紙涓嶈绾犵粨锛�
+     * 5	缁勫悎鏃犲姛1鎬荤數鑳�	鏃犵壒娈婇渶姹備竴鑸笉闇�瑕侊紙涓嶈绾犵粨锛�
+     * 6	缁勫悎鏃犲姛2鎬荤數鑳�	鏃犵壒娈婇渶姹備竴鑸笉闇�瑕侊紙涓嶈绾犵粨锛�
+     * 15	ABC涓夌浉鐢靛帇
+     * 16	ABC涓夌浉鐢垫祦
+     * 17	ABC涓夌浉鏈夊姛鍔熺巼
+     * 18	ABC涓夌浉鏃犲姛鍔熺巼
+     * 22	鍓╀綑閲戦
+     * 27	A鐩哥數娴�
+     * 28	B鐩哥數娴�
+     * 29	C鐩哥數娴�
+     * 30	A鐩哥數鍘�
+     * 31	B鐩哥數鍘�
+     * 32	C鐩哥數鍘�
+     * 33	鐬椂鏈夊姛鍔熺巼
+     * 34	鐬椂鏃犲姛鍔熺巼
+     * 58	鍔熺巼鍥犵礌
+     * 106	缁х數鍣ㄧ姸鎬�	0 鎷夐椄 1 鍚堥椄
+     * 42	姘磋〃鏁版嵁	绀轰緥鍊� 12.01|12.01|32.02 锛屾按琛ㄦ暟鎹� 鍙栫涓�椤�(鐢ㄩ噺)鍜岀涓夐」(浣欓)锛屼腑闂撮」蹇界暐
+     * 98	姘磋〃鍓╀綑閲戦	涓�鑸湪姘磋〃鏁版嵁涓� 鏈夋彁渚涳紝姘磋〃鏁版嵁鏇磋缁�
+     * 141	褰撴湀鎬绘渶澶ч渶閲�	kw
+     * 142	褰撴湀灏栨渶澶ч渶閲�	kw
+     * 143	褰撴湀宄版渶澶ч渶閲�	kw
+     * 144	褰撴湀骞虫渶澶ч渶閲�	kw
+     * 145	褰撴湀璋锋渶澶ч渶閲�	kw
+     * 250	娓╁害	鈩�
+     * 鎻愮ず
+     *
+     * 鏍规嵁姘翠环锛屾湁鏈�灏忔墸璐归搴︼紝濡傛灉姘磋〃浣欓灏忎簬鏈�灏忔墸璐归搴︼紝鍒欎細鍑虹幇浣欓涓鸿礋鍊肩殑鎯呭喌銆�
+     * 濡傦細姣忔鎵�0.03鍏冿紝姘磋〃浣欓涓�0.01鍏冩椂锛屾墸璐瑰悗浣欓涓�0.01鍏�-0.03鍏�=-0.02鍏冿紝鍒欎綑棰濅负璐熷�笺��
+     * 4g 涓婃姤姘磋〃鍦ㄥ叧闃�鍚庣害3澶╁唴锛屾瘡灏忔椂涓婃姤涓�娆�
+     */
+    @ApiModelProperty(value = "杩斿洖绫诲瀷")
+    private String type	;//鍚�	String	json/xml锛屽彲绌猴紝榛樿json
+    @ApiModelProperty(value = "鍔熻兘id")
+    private String functionids;//	鍚�	String	浠ラ�楀彿鍒嗗壊锛屼緥濡� 3,4,5
+    @ApiModelProperty(value = "璧峰鏃堕棿")
+    private String start_time	;//鍚�	String(19)	鏁版嵁杩囨护鏉′欢锛屽彲绌猴紝鏍煎紡锛�2017-07-23 22:22:31锛屼娇鐢║RLEncode鍚庢彁浜�
+    @ApiModelProperty(value = "缁撴潫鏃堕棿")
+    private String end_time;//	鍚�	String(19)	鏁版嵁杩囨护鏉′欢锛屽彲绌猴紝鏍煎紡锛�2017-12-23 22:22:31锛屼娇鐢║RLEncode鍚庢彁浜�
+    @ApiModelProperty(value = "鍋忕Щ浣嶇疆")
+    private int offset	;//鍚�	int	鏁版嵁鍋忕Щ浣嶇疆锛宨nt绫诲瀷锛屽彲绌猴紝榛樿涓�0 (鍒嗛〉鍙傛暟锛宱ffset = (page -1)* limit)
+    @ApiModelProperty(value = "杩斿洖鏁版嵁閲�")
+    private int limit	;//鍚�	int	鍗曟杩斿洖鏁版嵁鏉℃暟锛宨nt绫诲瀷锛岃寖鍥� 0-1000锛屽彲绌猴紝榛樿1000
+     
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/SecurityResetParamRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/SecurityResetParamRequest.java
new file mode 100644
index 0000000..ed3ec62
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/SecurityResetParamRequest.java
@@ -0,0 +1,24 @@
+package com.doumee.core.device.model.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ *@author doumee
+ *@date 2023/03/21 14:49
+ */
+@ApiModel("鐢佃〃娓呴浂璇锋眰鍙傛暟鏄庣粏")
+@Data
+public class SecurityResetParamRequest implements Serializable {
+
+    @ApiModelProperty(value = "鐢佃〃璁¤垂妯″紡")
+    private String paymentmode;//	鍚�	String	鐢佃〃璁¤垂妯″紡锛岄浠樿垂 default (榛樿鍊�) 锛屽悗浠樿垂 noprepay, 浠樿垂妯″紡,鍚庝粯璐规ā寮忚〃灞忓箷涓嶆樉绀轰綑棰�
+    @ApiModelProperty(value = "璐︽埛Id")
+    private String account_id;//	鍚�	String	鎴峰彿
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/SecurityResetRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/SecurityResetRequest.java
new file mode 100644
index 0000000..b95e640
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/SecurityResetRequest.java
@@ -0,0 +1,34 @@
+package com.doumee.core.device.model.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("寮�浼氳姹傚弬鏁�")
+@Data
+public class SecurityResetRequest implements Serializable {
+
+    @ApiModelProperty(value = "鎿嶄綔ID锛岄暱搴�16-32锛岃姹傛椂鑷繁鐢熸垚锛岀敤浜庢爣璇嗕竴娆″紓姝ユ搷浣滀换鍔★紝椤讳繚璇佸敮涓�鎬�")
+    private String opr_id;
+    @ApiModelProperty(value = "閲囬泦鍣ㄥ彿,4G銆丯B璁惧閲囬泦鍣ㄥ彿涓庤〃鍙蜂竴鑷�")
+    private String cid;
+    @ApiModelProperty(value = "琛ㄥ彿锛堣〃鍦板潃锛�(绯荤粺閲屾樉绀轰负閫氳鍦板潃)")
+    private String address;
+    @ApiModelProperty(value = "瓒呮椂鏃堕棿 鍗曚綅绉掞紝浠诲姟鍥犻�氳寮傚父绛夋儏鍐垫湭鎵ц鑷姩澶辨晥鐨勬椂闂� ,榛樿1骞�")
+    private int time_out;
+    @ApiModelProperty(value = "濡傛灉浼爐rue ,鍒欑郴缁熸帴鍙椾换鍔℃椂璁惧涓嶅湪绾跨洿鎺ヨ繑鍥炲け璐�")
+    private String must_online;
+    @ApiModelProperty(value = "鎿嶄綔鎵�闇�鐨勬暟鎹�")
+    private SecurityResetParamRequest params;
+    @ApiModelProperty(value = "閲嶈瘯娆℃暟锛�0-3锛� ,榛樿1娆�")
+    private int retry_times;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/WarningListRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/WarningListRequest.java
new file mode 100644
index 0000000..2840ce3
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/request/WarningListRequest.java
@@ -0,0 +1,81 @@
+package com.doumee.core.device.model.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("鎶勮〃璇锋眰瀵硅薄")
+@Data
+public class WarningListRequest implements Serializable {
+
+    @ApiModelProperty(value = "鎶ヨ浜嬩欢id")
+    private String device_type	;//鍚�	榛樿涓虹┖锛岃〃绀烘墍鏈変簨浠讹紝浜嬩欢id瑙佷笅琛紝濡傞渶杩囨护浠ヨ嫳鏂囬�楀彿闅斿紑鍗冲彲
+    /**
+     * warning_def_id	鎶ヨ椤瑰悕绉�	璁惧绫诲瀷(device_type)	鎶ヨ椤硅鏄�
+     * 1001	A鐩告湁鍔熷姛鐜囧弽鍚�	0	鎸囩ず鐢垫祦鏂瑰悜鏄惁姝e父锛岃繘鍑虹嚎鎺ュ弽鏃惰Е鍙戞姤璀︺��
+     * 1002	B鐩告湁鍔熷姛鐜囧弽鍚�	0	鎸囩ず鐢垫祦鏂瑰悜鏄惁姝e父锛岃繘鍑虹嚎鎺ュ弽鏃惰Е鍙戞姤璀︺��
+     * 1003	C鐩告湁鍔熷姛鐜囧弽鍚�	0	鎸囩ず鐢垫祦鏂瑰悜鏄惁姝e父锛岃繘鍑虹嚎鎺ュ弽鏃惰Е鍙戞姤璀︺��
+     * 1004	鏂數鎶ヨ	0	鎸囩ず绾胯矾閫氭柇鐘舵�侊紝琛ㄧ鎷夐椄鐘舵�佹椂瑙﹀彂鎶ヨ锛屾媺闂稿師鍥犻�氬父鍖呭惈浣欓涓嶈冻锛屾墜鍔ㄦ媺闂革紝瓒呰礋鑽凤紝寮�琛ㄧ洊銆�
+     * 1005	寮�鐩栨姤璀�	0	鏀寔寮�鐩栨娴嬬殑璁惧琛ㄧ洊鎵撳紑鏃惰Е鍙戞姤璀︼紝鍙槻姝㈤潪娉曟墦寮�鐢佃〃鐩栫殑鍋风數琛屼负銆�
+     * 1006	A鐩歌繃杞�	0	璁惧杩愯鏈熼棿闀挎椂闂磋秴杩囪瀹氱殑璐熻嵎闄愬埗锛岄�氬父浼氬紩璧风數琛ㄨ烦闂告柇鐢点��
+     * 1007	B鐩歌繃杞�	0	璁惧杩愯鏈熼棿B鐩哥嚎璺暱鏃堕棿瓒呰繃璁惧畾鐨勮礋鑽烽檺鍒讹紝閫氬父浼氬紩璧风數琛ㄨ烦闂告柇鐢点��
+     * 1008	C鐩歌繃杞�	0	璁惧杩愯鏈熼棿C鐩哥嚎璺暱鏃堕棿瓒呰繃璁惧畾鐨勮礋鑽烽檺鍒讹紝閫氬父浼氬紩璧风數琛ㄨ烦闂告柇鐢点��
+     * 1009	璁¢噺鏁呴殰	0	璁惧鍥犵數缃戝墽鐑堟尝鍔ㄦ垨鍐呴儴鍏冨櫒浠舵崯鍧忓師鍥犲鑷存棤娉曟甯歌閲忋��
+     * 1010	鐢佃垂閫忔敮	0	寮�鍚浠樿垂妯″紡鐨勭數琛ㄤ綑棰濇瑺璐硅秴杩�1鍏冦��
+     * 1011	浣欓涓嶈冻涓�绾ф姤璀�	0	寮�鍚浠樿垂妯″紡鐨勭數琛ㄤ綑棰濆皬浜庤瀹氱殑涓�绾ф姤璀﹂噾棰濋槇鍊笺��
+     * 1012	浣欓涓嶈冻浜岀骇鎶ヨ	0	寮�鍚浠樿垂妯″紡鐨勭數琛ㄤ綑棰濆皬浜庤瀹氱殑浜岀骇鎶ヨ閲戦闃堝�笺��
+     * 1013	鐢佃〃杩炵画閫氳寮傚父	0	鍚庡彴涓庤澶囪繛缁�氳澶辫触瓒呰繃10娆′互涓娿��
+     * 1014	璁惧淇″彿寮�	0	璁惧淇″彿瀹屽叏鏃犳硶淇濋殰閫氳鏃舵姤璀︺��
+     * 1015	杩炵画鐢ㄧ數閲忚繃浣�	0	绯荤粺璁剧疆涓�瀹氭椂闂存鍐呯敤鐢甸噺浣庝簬闃堝�艰Е鍙戞姤璀︼紝鍙敤浜庢鏌ョ敤鎴峰紓甯告垨绐冪數琛屼负銆�
+     * 1016	杩炵画鐢ㄧ數閲忚繃楂�	0	绯荤粺璁剧疆涓�瀹氭椂闂存鍐呯敤鐢甸噺楂樹簬闃堝�艰Е鍙戞姤璀︼紝鍙敤浜庢鏌ョ敤鎴峰紓甯哥敤鐢佃涓恒��
+     * 1017	A鐩告棤鍔熷姛鐜囧弽鍚�	0	鎸囩ず涓夌浉鐢佃〃A鐩告棤鍔熺數鑳芥柟鍚戞槸鍚︽甯革紝杩涘嚭绾挎帴鍙嶆垨璐熻嵎寮傚父鏃惰Е鍙戞姤璀︺��
+     * 1018	B鐩告棤鍔熷姛鐜囧弽鍚�	0	鎸囩ず涓夌浉鐢佃〃B鐩告棤鍔熺數鑳芥柟鍚戞槸鍚︽甯革紝杩涘嚭绾挎帴鍙嶆垨璐熻嵎寮傚父鏃惰Е鍙戞姤璀︺��
+     * 1019	C鐩告棤鍔熷姛鐜囧弽鍚�	0	鎸囩ず涓夌浉鐢佃〃C鐩告棤鍔熺數鑳芥柟鍚戞槸鍚︽甯革紝杩涘嚭绾挎帴鍙嶆垨璐熻嵎寮傚父鏃惰Е鍙戞姤璀︺��
+     * 1020	A鐩稿け鍘�	0	鎸囩ず鐢佃〃璁¢噺鏄惁寮傚父鎴栦笁鐩哥數琛ˋ鐩告槸鍚﹀瓨鍦ㄤ笉骞宠 鐜拌薄銆�
+     * 1021	A鐩告瑺鍘�	0	鎸囩ず鐢佃〃璁¢噺鏄惁寮傚父鎴栦笁鐩哥數琛ˋ鐩哥數缃戝弬鏁板紓甯搞��
+     * 1022	A鐩歌繃鍘�	0	鎸囩ず鐢佃〃璁¢噺鏄惁寮傚父鎴栦笁鐩哥數琛ˋ鐩哥數缃戝弬鏁板紓甯搞��
+     * 1023	B鐩稿け鍘�	0	鎸囩ず鐢佃〃璁¢噺鏄惁寮傚父鎴栦笁鐩哥數琛˙鐩告槸鍚﹀瓨鍦ㄤ笉骞宠 鐜拌薄銆�
+     * 1024	B鐩告瑺鍘�	0	鎸囩ず鐢佃〃璁¢噺鏄惁寮傚父鎴栦笁鐩哥數琛˙鐩哥數缃戝弬鏁板紓甯搞��
+     * 1025	B鐩歌繃鍘�	0	鎸囩ず鐢佃〃璁¢噺鏄惁寮傚父鎴栦笁鐩哥數琛˙鐩告槸鍚﹀瓨鍦ㄤ笉骞宠 鐜拌薄銆�
+     * 1026	C鐩稿け鍘�	0	鎸囩ず鐢佃〃璁¢噺鏄惁寮傚父鎴栦笁鐩哥數琛–鐩哥數缃戝弬鏁板紓甯搞��
+     * 1027	C鐩告瑺鍘�	0	鎸囩ず鐢佃〃璁¢噺鏄惁寮傚父鎴栦笁鐩哥數琛–鐩告槸鍚﹀瓨鍦ㄤ笉骞宠 鐜拌薄銆�
+     * 1028	C鐩歌繃鍘�	0	鎸囩ず鐢佃〃璁¢噺鏄惁寮傚父鎴栦笁鐩哥數琛–鐩哥數缃戝弬鏁板紓甯搞��
+     * 1043	娓╁害寮傚父	0	鎸囩ず鐢佃〃鏄惁妫�娴嬪埌娓╁害寮傚父銆�
+     * 1044	鎬诲姛鐜囧洜鏁拌秴涓嬮檺	0	鎸囩ず涓夌浉鐢佃〃鎬诲姛鐜囧洜鏁拌繃浣庯紝鐢ㄧ數璐ㄩ噺宸�傦紙闇�鐗瑰畾娆捐〃鏀寔锛�
+     * 1045	鐢垫祦涓嶅钩琛�	0	鎸囩ず涓夌浉鐢佃〃涓夌浉璐熻嵎涓嶅钩琛★紝澧炲姞绾胯矾鎹熻�椼�傦紙闇�鐗瑰畾娆捐〃鏀寔锛�
+     * 1046	鐢靛帇涓嶅钩琛�	0	鎸囩ず涓夌浉鐢佃〃涓夌浉璐熻嵎涓嶅钩琛★紝澧炲姞绾胯矾鎹熻�椼�傦紙闇�鐗瑰畾娆捐〃鏀寔锛�
+     * 1047	鐢垫祦閫嗙浉搴�	0	鎸囩ず涓夌浉鐢佃〃浜ゆ祦鐢电數娴佺殑鐩镐綅涓庣數鍘嬬浉鍙嶃�傦紙闇�鐗瑰畾娆捐〃鏀寔锛�
+     * 1048	鐢靛帇閫嗙浉搴�	0	鎸囩ず涓夌浉鐢佃〃涓夌浉鐢靛帇鐨勭浉搴忎笌姝e父椤哄簭鐩稿弽銆傦紙闇�鐗瑰畾娆捐〃鏀寔锛�
+     * 1049	鎭舵�ц礋杞�	0	鍙堢О闃绘�ц礋杞斤紝鎸囩ず鐢佃〃璐熻浇涓嚭鐜板ぇ鍔熺巼鐩寸儹寮忕數鍣紝鏄撻�犳垚鐏伨绛夋儏鍐点�傦紙闇�鐗瑰畾娆捐〃鏀寔锛�
+     * 1050	鐢靛姩杞﹀厖鐢垫娴�	0	璇嗗埆鐗瑰畾绫诲瀷鐢靛櫒鎺ュ叆璐熻浇绔紝鎻愰珮鐢ㄧ數瀹夊叏銆傦紙闇�鐗瑰畾娆捐〃鏀寔锛�
+     * 1051	婕忕數妫�娴�	0	璇嗗埆鐢佃矾涓槸鍚﹀瓨鍦ㄦ紡鐢垫儏鍐碉紝鎻愰珮鐢ㄧ數瀹夊叏銆傦紙闇�鐗瑰畾娆捐〃鏀寔锛�
+     * 1052	璋冨帇鍣ㄦ娴�	0	璇嗗埆鐢佃矾涓槸鍚﹀瓨鍦ㄨ皟鍘嬪櫒绛夎缃粫杩囨伓鎬ц礋杞芥娴嬨�傦紙闇�鐗瑰畾娆捐〃鏀寔锛�
+     * 1053	鐢靛姬妫�娴�	0	璇嗗埆鐢佃矾涓槸鍚﹀瓨鍦ㄧ數寮ф儏鍐碉紝闃叉寮曡捣鐏伨锛屾彁楂樼敤鐢靛畨鍏ㄣ�傦紙闇�鐗瑰畾娆捐〃鏀寔锛�
+     * 1029	鍏抽榾	1	鎸囩ず闃�闂ㄩ�氭柇鐘舵�侊紝琛ㄧ鍏抽榾鐘舵�佹椂瑙﹀彂鎶ヨ锛屽叧闃�鍘熷洜閫氬父鍖呭惈浣欓涓嶈冻锛屾墜鍔ㄥ叧闃�锛岀數姹犺�楀敖锛岀骞叉壈绛夊師鍥犮��
+     * 1030	闃�闂ㄥ紓甯�	1	鎸囩ず璁惧鐢靛瓙璁¢噺浼犳劅鍣ㄩ儴鍒嗘槸鍚︽甯稿伐浣滄垨瀛樺湪澶栭儴骞叉壈銆�
+     * 1031	浼犳劅鍣ㄥ紓甯�	1	鎸囩ず璁惧鐢靛瓙璁¢噺浼犳劅鍣ㄩ儴鍒嗘槸鍚︽甯稿伐浣滄垨瀛樺湪澶栭儴骞叉壈銆�
+     * 1032	纾佸共鎵�	1	鎸囩ず璁惧鐢靛瓙璁¢噺閮ㄥ垎鏄惁姝e父宸ヤ綔鎴栧瓨鍦ㄥ閮ㄥ共鎵般��
+     * 1033	鐢垫睜娆犲帇	1	鎸囩ず鐢垫睜鏄惁鍗冲皢鑰楀敖锛岀數姹犲畬鍏ㄨ�楀敖鍚庣數瀛愰儴鍒嗘棤娉曞悓姝ユ満姊伴儴鍒嗘暟鎹紝鏃犳硶閫氳锛屼笉鑳芥甯告墸鍑忎綑棰濆拰鍏抽榾銆�
+     * 1034	閫氳淇″彿寮�	1	鎸囩ず璁惧涓庨噰闆嗗櫒鎴栨湇鍔″櫒閫氳鑳藉姏鍑忓急鎴栨棤娉曢�氳銆�
+     * 1035	姘磋垂閫忔敮	1	寮�鍚浠樿垂妯″紡鐨勬按璐逛綑棰濇瑺璐硅秴杩�1鍏冩垨0.1m鲁銆�
+     * 1036	浣欓涓嶈冻涓�绾ф姤璀�	1	寮�鍚浠樿垂妯″紡鐨勬按琛ㄤ綑棰濆皬浜庤瀹氱殑涓�绾ф姤璀﹂槇鍊笺��
+     * 1037	浣欓涓嶈冻浜岀骇鎶ヨ	1	寮�鍚浠樿垂妯″紡鐨勬按琛ㄤ綑棰濆皬浜庤瀹氱殑浜岀骇鎶ヨ闃堝�笺��
+     * 1038	姘磋〃杩炵画閫氳寮傚父	1	鍚庡彴涓庤澶囪繛缁�氳澶辫触瓒呰繃10娆′互涓娿��
+     * 1039	杩炵画鐢ㄦ按閲忚繃浣�	1	绯荤粺璁剧疆涓�瀹氭椂闂存鍐呯敤姘撮噺浣庝簬闃堝�艰Е鍙戞姤璀︼紝鍙敤浜庢鏌ョ敤鎴峰紓甯歌涓烘垨绐冩按琛屼负銆�
+     * 1040	杩炵画鐢ㄦ按閲忚繃楂�	1	绯荤粺璁剧疆涓�瀹氭椂闂存鍐呯敤姘撮噺楂樹簬闃堝�艰Е鍙戞姤璀︼紝鍙敤浜庢鏌ョ敤鎴峰紓甯歌涓烘垨婕忔按鍙戠敓銆�
+     * 1041	璁惧淇″彿寮�	9	璁惧淇″彿瀹屽叏鏃犳硶淇濋殰閫氳鏃舵姤璀︺��
+     * 1042	閫氳璁惧闀挎椂闂寸绾�	9	璁惧闀挎椂闂寸绾匡紝鍚庡彴鏃犳硶姝e父閲囬泦鏁版嵁銆�
+     */
+    @ApiModelProperty(value = "榛樿涓虹┖琛ㄧず鎵�鏈夎澶�   0琛ㄧず鐢佃〃锛�1琛ㄧず姘磋〃锛�9琛ㄧず閲囬泦鍣紝浣跨敤鑻辨枃閫楀彿闅斿紑")
+    private String warning_def_id;//	鍚�	String	//榛樿涓虹┖琛ㄧず鎵�鏈夎澶�   0琛ㄧず鐢佃〃锛�1琛ㄧず姘磋〃锛�9琛ㄧず閲囬泦鍣紝浣跨敤鑻辨枃閫楀彿闅斿紑
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/CollectorDealResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/CollectorDealResponse.java
new file mode 100644
index 0000000..b1f20c7
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/CollectorDealResponse.java
@@ -0,0 +1,31 @@
+package com.doumee.core.device.model.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("閲囬泦鍣ㄥ搷搴斿璞�")
+@Data
+public class CollectorDealResponse implements Serializable {
+
+    @ApiModelProperty(value = "閲囬泦鍣ㄧ紪鍙�")
+    private String cid;
+    @ApiModelProperty(value = "SUCCESS/FAIL锛屾瀛楁鏄�氫俊鏍囪瘑")
+    private String status;
+
+    @ApiModelProperty(value = "褰撹繑鍥炵姸鎬佺爜涓�'FAIL'鏃讹紝杩斿洖淇℃伅涓洪敊璇師鍥�")
+    private String error_msg;
+    @ApiModelProperty(value = "杩炴帴鏃堕棿锛�2020-04-20 09:25:55")
+    private String connect_time;
+    @ApiModelProperty(value = "鏄惁鍦ㄧ嚎")
+    private Boolean online;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/CollectorStatusResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/CollectorStatusResponse.java
new file mode 100644
index 0000000..f090bf7
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/CollectorStatusResponse.java
@@ -0,0 +1,34 @@
+package com.doumee.core.device.model.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("鏌ヨ閲囬泦鍣ㄥ垪琛ㄥ拰褰撳墠鐘舵�佽繑鍥炲璞�")
+@Data
+public class CollectorStatusResponse implements Serializable {
+
+    @ApiModelProperty(value = "閲囬泦鍣ㄦ。妗圛D")
+    private String  id	;//鏄�	String	瀵瑰簲璁惧鏁版嵁涓殑cid
+    @ApiModelProperty(value = "閲囬泦鍣ㄥ彿")
+    private String collectorid;//	鏄�	String	閲囬泦鍣ㄥ彿,4G銆丯B璁惧閲囬泦鍣ㄥ彿涓庤〃鍙蜂竴鑷�
+    @ApiModelProperty(value = "淇″彿鍊�")
+    private String csq	;//鏄�	number	淇″彿鍊� 1-31 銆� 20浠ヤ笂绠椾俊鍙风ǔ瀹�
+    @ApiModelProperty(value = "澶囨敞")
+    private String description	;//鏄�	String	澶囨敞
+    @ApiModelProperty(value = "鍦ㄧ嚎鐘舵��")
+    private Boolean online;//	鏄�	Boolean	鏄惁鍦ㄧ嚎
+    @ApiModelProperty(value = "涓婃鎺夌嚎鏃堕棿")
+    private String disconnect_time	;//鏄�	String(19)	涓婃鎺夌嚎鏃堕棿 online = false 鏃跺瓨鍦�
+    @ApiModelProperty(value = "涓婃涓婄嚎鏃堕棿")
+    private String connect_time	;//鏄�	String(19)	涓婃涓婄嚎鏃堕棿 online = true 鏃跺瓨鍦�
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/CollectorUpdateResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/CollectorUpdateResponse.java
new file mode 100644
index 0000000..41ec642
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/CollectorUpdateResponse.java
@@ -0,0 +1,29 @@
+package com.doumee.core.device.model.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("閲囬泦鍣ㄦ洿鏂拌繑鍥炲璞�")
+@Data
+public class CollectorUpdateResponse implements Serializable {
+
+    @ApiModelProperty(value = "鏇存柊鍓嶉噰闆嗗櫒缂栧彿")
+    private String old_cid;
+
+    @ApiModelProperty(value = "鏇存柊鍚庨噰闆嗗櫒缂栧彿")
+    private String new_cid;
+
+    @ApiModelProperty(value = "SUCCESS/FAIL锛屾瀛楁鏄�氫俊鏍囪瘑")
+    private String status;
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/ElectronicBaseResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/ElectronicBaseResponse.java
new file mode 100644
index 0000000..1d36670
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/ElectronicBaseResponse.java
@@ -0,0 +1,41 @@
+package com.doumee.core.device.model.response;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.doumee.core.constants.ResponseStatus;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import org.springframework.http.HttpStatus;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("鐢佃〃鍝嶅簲瀵硅薄")
+@Data
+public class ElectronicBaseResponse<T> implements Serializable {
+
+    @ApiModelProperty(value = "SUCCESS/FAIL锛屾瀛楁鏄�氫俊鏍囪瘑")
+    private String status;
+
+    @ApiModelProperty(value = "鑷�1970骞�1鏈�1鏃ワ紙08:00:00 GMT锛夎嚦褰撳墠鏃堕棿鐨勬�荤鏁�,1586744791")
+    private String timestamp;
+
+    @ApiModelProperty(value = "鏁版嵁")
+    private T response_content;
+
+    @ApiModelProperty(value = "褰撹繑鍥炵姸鎬佺爜涓�'FAIL'鏃讹紝杩斿洖淇℃伅涓洪敊璇師鍥�")
+    private String error_msg;
+    @ApiModelProperty(value = "閫氳繃绛惧悕绠楁硶璁$畻寰楀嚭鐨勭鍚嶅�硷紝璇﹁绛惧悕鐢熸垚绠楁硶")
+    private String sign;
+
+    public ElectronicBaseResponse() {}
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/ElectronicDataResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/ElectronicDataResponse.java
new file mode 100644
index 0000000..253e5f0
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/ElectronicDataResponse.java
@@ -0,0 +1,32 @@
+package com.doumee.core.device.model.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("鐢佃〃鍝嶅簲瀵硅薄")
+@Data
+public class ElectronicDataResponse<T> implements Serializable {
+
+    @ApiModelProperty(value = "1/0锛�1琛ㄧず鎴愬姛锛�0琛ㄧず澶辫触")
+    private String status;
+
+    @ApiModelProperty(value = "鑷�1970骞�1鏈�1鏃ワ紙08:00:00 GMT锛夎嚦褰撳墠鏃堕棿鐨勬�荤鏁�,1586744791")
+    private Integer total;
+
+    @ApiModelProperty(value = "鏁版嵁")
+    private T data;
+
+    @ApiModelProperty(value = "褰撹繑鍥炵姸鎬佺爜涓�'FAIL'鏃讹紝杩斿洖淇℃伅涓洪敊璇師鍥�")
+    private String error_msg;
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/MeterAddResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/MeterAddResponse.java
new file mode 100644
index 0000000..ae54b77
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/MeterAddResponse.java
@@ -0,0 +1,33 @@
+package com.doumee.core.device.model.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("鐢佃〃鏂板杩斿洖瀵硅薄")
+@Data
+public class MeterAddResponse implements Serializable {
+
+    /**
+     *  娉ㄦ剰鍏堟坊鍔犻噰闆嗗櫒锛屽啀娣诲姞琛紝鍚﹀垯浼氬鑷磋〃娣诲姞澶辫触銆�
+     */
+    @ApiModelProperty(value = "閲囬泦鍣ㄥ彿,璁惧鐨勫敮涓�鏍囪瘑绗︼紝鐢ㄤ簬鍖哄垎涓嶅悓鐨勯噰闆嗗櫒")
+    private String cid;
+    @ApiModelProperty(value = "琛ㄥ彿锛岀數琛ㄧ殑鍞竴鍦板潃锛岀敤浜庤瘑鍒壒瀹氱殑琛ㄨ澶囥�傞�氬父涓烘暟瀛楀瓧绗︿覆")
+    private String address;
+    @ApiModelProperty(value = "琛ㄧ殑绫诲瀷锛岃〃绀烘按琛ㄧ殑鍏蜂綋鍨嬪彿鎴栫被鍒�傞�氬父涓哄瓧绗︿覆銆� 鑾峰彇琛ㄧ被鍨�")
+    private String model;
+    @ApiModelProperty(value = "SUCCESS/FAIL锛屾瀛楁鏄�氫俊鏍囪瘑")
+    private String status;
+    @ApiModelProperty(value = "褰撹繑鍥炵姸鎬佺爜涓�'FAIL'鏃讹紝杩斿洖淇℃伅涓洪敊璇師鍥�")
+    private String error_msg;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/MeterDealResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/MeterDealResponse.java
new file mode 100644
index 0000000..9651a12
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/MeterDealResponse.java
@@ -0,0 +1,30 @@
+package com.doumee.core.device.model.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("鐢佃〃寮�鎴峰拰鎷夊悎闂歌繑鍥炲璞�")
+@Data
+public class MeterDealResponse implements Serializable {
+
+    @ApiModelProperty(value = "鎿嶄綔ID锛岄暱搴�16-32锛岃姹傛椂鑷繁鐢熸垚锛岀敤浜庢爣璇嗕竴娆″紓姝ユ搷浣滀换鍔★紝椤讳繚璇佸敮涓�鎬�")
+    private String opr_id;
+    @ApiModelProperty(value = "閲囬泦鍣ㄥ彿,璁惧鐨勫敮涓�鏍囪瘑绗︼紝鐢ㄤ簬鍖哄垎涓嶅悓鐨勯噰闆嗗櫒")
+    private String cid;
+    @ApiModelProperty(value = "琛ㄥ彿锛岀數琛ㄧ殑鍞竴鍦板潃锛岀敤浜庤瘑鍒壒瀹氱殑琛ㄨ澶囥�傞�氬父涓烘暟瀛楀瓧绗︿覆")
+    private String address;
+    @ApiModelProperty(value = "SUCCESS/FAIL锛屾瀛楁鏄�氫俊鏍囪瘑")
+    private String status;
+    @ApiModelProperty(value = "褰撹繑鍥炵姸鎬佺爜涓�'FAIL'鏃讹紝杩斿洖淇℃伅涓洪敊璇師鍥�")
+    private String error_msg;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/MeterInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/MeterInfoResponse.java
new file mode 100644
index 0000000..f373991
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/MeterInfoResponse.java
@@ -0,0 +1,83 @@
+package com.doumee.core.device.model.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("鐢佃〃鏂板杩斿洖瀵硅薄")
+@Data
+public class MeterInfoResponse implements Serializable {
+
+
+    @ApiModelProperty(value = "璁惧妗fID")
+    private String  id	;//鏄�	String	璁惧妗fID 猸� 涔熺敤浣滃厖鍊兼椂鐨� account_id
+
+    @ApiModelProperty(value = "閲囬泦鍣ㄦ。妗圛D")
+    private String cid	;//鏄�	String	閲囬泦鍣ㄦ。妗圛D 猸�
+
+    @ApiModelProperty(value = "閲囬泦鍣ㄥ彿")
+    private String collectorid;//	鏄�	String	4G銆丯B璁惧閲囬泦鍣ㄥ彿涓庤〃鍙蜂竴鑷淬�� 猸�
+
+    @ApiModelProperty(value = "琛ㄥ湴鍧�")
+    private String address;//	鏄�	String	琛ㄥ湴鍧� 猸�
+
+    @ApiModelProperty(value = "妗fID")
+    private String priceid;//	鏄�	String	鍏宠仈浠锋牸妗fID priceid鍜宲aram_id 姣忓潡琛ㄥ彧浼氱敤鍏朵腑涓�绉�
+
+    @ApiModelProperty(value = "鍙傛暟ID")
+    private String param_id;//	鏄�	String	鍏宠仈鍙傛暟妗fID priceid鍜宲aram_id 姣忓潡琛ㄥ彧浼氱敤鍏朵腑涓�绉�
+
+    @ApiModelProperty(value = "鏃跺尯鏃舵ID")
+    private String datetime_id	;//鏄�	String	鍏宠仈鏃跺尯鏃舵妗fID
+
+    @ApiModelProperty(value = "鍊嶇巼")
+    private String rate	;//鏄�	int	浜掓劅琛ㄦ湁鏁堬紝浜掓劅琛� 鐨勫疄闄呯敤閲忔槸 鍊嶇巼 * 琛ㄦ樉鐢ㄩ噺 ,鎺ュ彛鎵�鏈夊拰鍊嶇巼鐩稿叧鐨勬暟鎹兘鏄病鏈夎绠楄繃鍊嶇巼鐨勭殑鐢辨帴鍏ユ柟鑷璁$畻 锛屽叾浠栨帴鍙f枃妗d細鏈夊娉�
+
+    @ApiModelProperty(value = "鎴峰彿")
+    private String account_id	;//鏄�	String	鎴峰彿 鍏宠仈鐢ㄦ埛妗fID
+
+    @ApiModelProperty(value = "鏍囩ID")
+    private String label_id;//	鏄�	String	鏍囩ID
+
+    @ApiModelProperty(value = "璐拱娆℃暟/鍏呭�兼鏁�")
+    private String count	;//鏄�	String	璐拱娆℃暟/鍏呭�兼鏁�,鎺ュ叆鏂圭淮鎶ゅ弬鏁版椂璇疯嚜琛岀淮鎶�
+
+    @ApiModelProperty(value = "璁惧绫诲瀷")
+    private String device_type;//	鏄�	String	璁惧绫诲瀷 0 琛ㄧず鐢佃〃 锛� 1 琛ㄧず姘磋〃
+
+    /**
+     * type瀛楁 璇存槑锛�
+     * 绗竴浣嶏細 璁惧绫诲瀷 0:鐢佃〃 1:姘磋〃
+     * 绗笁浣嶏細 鐢佃〃鎺ョ嚎鏂瑰紡 0 鍗曠浉琛紝1,2 涓夌浉琛�
+     * 绗洓浣嶏細 鐢佃〃璐圭巼绫诲瀷 0 鍗曡垂鐜囷紝 1澶氳垂鐜�
+     *
+     * 绀轰緥:
+     * 13300 鏍规嵁绗竴浣嶆暟瀛�0琛ㄧず姘磋〃
+     * 012151 琛ㄧず涓夌浉澶氳垂鐜囩數琛�
+     */
+    @ApiModelProperty(value = "璁惧鍨嬪彿")
+    private String type;//	鏄�	String	璁惧鍨嬪彿 瀵瑰簲璁惧鍦ㄧ郴缁熶腑鐨勮〃绫诲瀷锛岃 绫诲瀷瑙f瀽
+
+    @ApiModelProperty(value = " 缁х數鍣�/闃�闂ㄧ姸鎬�")
+    private String 	relay_state	;//鏄�	String	缁х數鍣ㄧ姸鎬� 1 琛ㄧず鍚堥椄/寮�闃�锛� 0 琛ㄧず鎷夐椄/鍏抽榾锛屽叾浠栬〃绀烘湭鐭ョ姸鎬佹垨寮傚父 娉ㄦ剰
+
+    @ApiModelProperty(value = "鐢垫睜鐘舵��")
+    private String battery_state	;//鏄�	String	姘磋〃鐢垫睜鐘舵�� 0 姝e父 锛� 1 鐢垫睜浣庣數鍘�,鍏朵粬 鐢垫睜浣庣數鍘�
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String description	;//鏄�	String	澶囨敞 鍙湪閫氳繃鎺ュ彛娣诲姞鏃跺娉�
+//    鍦ㄧ嚎鐘舵��	-	鏃�	String	鏃犳瀛楁锛岄噰闆嗗櫒鍦ㄧ嚎鍗宠〃鍦ㄧ嚎
+    
+    @ApiModelProperty(value = "淇″彿鍊�")
+    private BigDecimal csq;//	鏄�	number	1-31 銆� 20浠ヤ笂绠椾俊鍙风ǔ瀹�
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/ParamInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/ParamInfoResponse.java
new file mode 100644
index 0000000..14f8e93
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/ParamInfoResponse.java
@@ -0,0 +1,35 @@
+package com.doumee.core.device.model.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("鐢佃〃鏂板杩斿洖瀵硅薄")
+@Data
+public class ParamInfoResponse implements Serializable {
+
+
+    @ApiModelProperty(value = "鍙傛暟ID")
+    private String id;//	鏄�	String	鍙傛暟ID
+    @ApiModelProperty(value = "鍙傛暟鍚嶇О")
+    private String name	;//鏄�	String	鍙傛暟鍚嶇О
+    @ApiModelProperty(value = "浠锋牸")
+    private String p1;//	鏄�	String	浠锋牸
+    @ApiModelProperty(value = "鏄剧ず鎶ヨ閲戦")
+    private String display_warn_money	;//鏄�	String	鏄剧ず鎶ヨ閲戦 鍏�
+    @ApiModelProperty(value = "鏂數鎶ヨ閲戦")
+    private String shut_warn_money;//	鏄�	String	鏂數鎶ヨ閲戦 鍏�
+    @ApiModelProperty(value = "璐熻嵎闄愬埗鍔熺巼")
+    private String load_limit;//	鏄�	String	璐熻嵎闄愬埗鍔熺巼 kw
+    @ApiModelProperty(value = "鐢佃〃鍊嶇巼")
+    private String meter_rate	;//鏄�	String	鐢佃〃鍊嶇巼
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/QueryDataInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/QueryDataInfoResponse.java
new file mode 100644
index 0000000..2b4aa09
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/QueryDataInfoResponse.java
@@ -0,0 +1,50 @@
+package com.doumee.core.device.model.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("鐢佃〃鏂板杩斿洖瀵硅薄")
+@Data
+public class QueryDataInfoResponse implements Serializable {
+
+    @ApiModelProperty(value = "鍞竴鏍囪瘑")
+    private String  	id;//	String	3911
+    @ApiModelProperty(value = "閲囬泦鏃堕棿")
+    private String  add_time;//	String(19)	鏁版嵁閲囬泦鍣ㄦ椂闂� 2017-03-27 22:37:17
+    @ApiModelProperty(value = "閲囬泦鑰楁椂")
+    private String  consume;//	String	3.61
+    @ApiModelProperty(value = "閲囬泦鍣ㄦ爣璇�")
+    private String  cid;//	String	20170208051
+    @ApiModelProperty(value = "鐢佃〃妗fid")
+    private String  mid;//	String	1190263
+    @ApiModelProperty(value = "琛ㄥ湴鍧�")
+    private String  address	;//String	201688889253
+    @ApiModelProperty(value = "鐢ㄦ埛鏍囪瘑")
+    private String  uid;//	String	234
+    @ApiModelProperty(value = "鐢ㄦ埛鍚嶅瓧")
+    private String  name	;//String	鏌愭煇鏌�
+    @ApiModelProperty(value = "鐢ㄦ埛韬唤璇佸彿")
+    private String  idnum	;//String	147258369147258369
+    @ApiModelProperty(value = "鍔熻兘绫诲瀷")
+    private String  fid;//	int	3
+    @ApiModelProperty(value = "鏁版嵁")
+    private List<String>  	data;//	List	[ "000067.56", "000010.60", "000015.53", "000022.28", "000019.15"]
+    @ApiModelProperty(value = "鏁版嵁")
+    private List<QueryDataV2Response> data_v2;//	string	data_v2瀛楁
+    @ApiModelProperty(value = "瑙i噴鏁版嵁")
+    private String  	dsp	;//String	鎬� : 67.56 kWh,灏� : 10.6 kWh,宄� : 15.53 kWh,骞� : 22.28 kWh,璋� : 19.15 kWh
+    @ApiModelProperty(value = "鍊嶇巼")
+    private BigDecimal radio	;//number	鍊嶇巼 ,浜掓劅琛ㄤ娇鐢�,浜掓劅琛� 鐪熷疄鐢ㄩ噺 = 鐢ㄩ噺* 鍊嶇巼
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/QueryDataV2Response.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/QueryDataV2Response.java
new file mode 100644
index 0000000..b2c5cc3
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/QueryDataV2Response.java
@@ -0,0 +1,90 @@
+package com.doumee.core.device.model.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("鐢佃〃鏂板杩斿洖瀵硅薄")
+@Data
+public class QueryDataV2Response implements Serializable {
+
+    @ApiModelProperty(value = "缁撶畻鏂瑰紡")
+    private Boolean    jsfs	;//true	缁撶畻鏂瑰紡锛氳〃绀烘槸鍚︿负棰勪粯璐圭數琛ㄣ�傞�氬父锛屽鏋滃�间负true锛屽垯琛ㄧず涓洪浠樿垂锛涘鏋滀负false锛屽垯琛ㄧず鍚庝粯璐广��	-
+    @ApiModelProperty(value = " 璐圭巼鏁�")
+    private String   fls	;//1	璐圭巼鏁�	-
+    @ApiModelProperty(value = " 绾挎暟")
+    private String   xs	;//4	绾挎暟 1=鐩告暟:鍗曠浉,3=鐩告暟:涓夌浉涓夌嚎,鍏朵粬=鐩告暟:涓夌浉鍥涚嚎	-
+    @ApiModelProperty(value = "鎬绘湁鍔熺數閲� ")
+    private String   zyje	;//120.68	鎬绘湁鍔熺數閲忥細琛ㄧず鎬荤殑鏈夊姛鐢甸噺锛岄�氬父浠ュ崈鐡︽椂锛坘Wh锛変负鍗曚綅銆�	kWh
+    @ApiModelProperty(value = " 浣欓")
+    private String   ye;//	2397.32	浣欓	鍏�
+    @ApiModelProperty(value = "鍏呭�兼鏁� ")
+    private String    count	;//2	鍏呭�兼鏁�	娆�
+    @ApiModelProperty(value = "褰撳墠鐢典环")
+    private String    dqdj;//	0.8202	褰撳墠鐢典环锛氳〃绀哄綋鍓嶆椂鍒荤殑鐢典环锛岄�氬父浠ュ厓/鍗冪摝鏃讹紙鍏�/kWh锛変负鍗曚綅銆�	鍏�/kWh
+    @ApiModelProperty(value = "缁勫悎鏈夊姛鎬荤數閲�")
+    private String  zhygzdl;//	147.14	缁勫悎鏈夊姛鎬荤數閲�	kWh
+    @ApiModelProperty(value = "鍛ㄦ湡鐢ㄩ噺")
+    private String    zqyl;//	147.14	鍛ㄦ湡鐢ㄩ噺	kWh
+    @ApiModelProperty(value = "A鐩哥數娴�")
+    private String   axdl;//	28.293	A鐩哥數娴�	A
+    @ApiModelProperty(value = "B鐩哥數娴� ")
+    private String    bxdl	;//1.425	B鐩哥數娴�	A
+    @ApiModelProperty(value = " C鐩哥數娴�")
+    private String   cxdl;//	1.425	C鐩哥數娴�	A
+    @ApiModelProperty(value = "C鐩哥數娴� ")
+    private String   cxdy	;//232.7	C鐩哥數鍘�	V
+    @ApiModelProperty(value = "A鐩哥數鍘� ")
+    private String  axdy	;//231.2	A鐩哥數鍘�	V
+    @ApiModelProperty(value = "B鐩哥數鍘� ")
+    private String   bxdy	;//234.4	B鐩哥數鍘�	V
+    @ApiModelProperty(value = " 鎬绘湁鍔熷姛鐜�")
+    private String   zyggl	;//6.4604	鎬绘湁鍔熷姛鐜囷細琛ㄧず鎬荤殑鏈夊姛鍔熺巼锛岄�氬父浠ュ崈鐡︼紙kW锛変负鍗曚綅銆�	kW
+    @ApiModelProperty(value = " A鐩告湁鍔熷姛鐜�")
+    private String   axyggl;//	5.0419	A鐩告湁鍔熷姛鐜囷細琛ㄧずA鐩哥殑鏈夊姛鍔熺巼锛岄�氬父浠ュ崈鐡︼紙kW锛変负鍗曚綅銆�	kW
+    @ApiModelProperty(value = " B鐩告湁鍔熷姛鐜�")
+    private String   bxyggl	;//0.1725	B鐩告湁鍔熷姛鐜囷細琛ㄧずB鐩哥殑鏈夊姛鍔熺巼锛岄�氬父浠ュ崈鐡︼紙kW锛変负鍗曚綅銆�	kW
+    @ApiModelProperty(value = " C鐩告湁鍔熷姛鐜�")
+    private String   cxyggl	;//1.2459	C鐩告湁鍔熷姛鐜囷細琛ㄧずC鐩哥殑鏈夊姛鍔熺巼锛岄�氬父浠ュ崈鐡︼紙kW锛変负鍗曚綅銆�	kW
+    @ApiModelProperty(value = "鎬绘棤鍔熷姛鐜� ")
+    private String  zwggl	;//-0.8579	鎬绘棤鍔熷姛鐜囷細琛ㄧず鎬荤殑鏃犲姛鍔熺巼锛岄�氬父浠ュ崈涔忥紙kvar锛変负鍗曚綅銆傝礋鍊煎彲鑳借〃绀哄姛鐜囧洜鏁扮殑璋冩暣鎴栧弽鍚戞棤鍔熴��	kvar
+    @ApiModelProperty(value = "A鐩告棤鍔熷姛鐜� ")
+    private String    axwggl	;//-0.4924	A鐩告棤鍔熷姛鐜囷細琛ㄧずA鐩哥殑鏃犲姛鍔熺巼锛岄�氬父浠ュ崈涔忥紙kvar锛変负鍗曚綅銆傝礋鍊煎彲鑳借〃绀哄姛鐜囧洜鏁扮殑璋冩暣鎴栧弽鍚戞棤鍔熴��	kvar
+    @ApiModelProperty(value = "B鐩告棤鍔熷姛鐜� ")
+    private String    bxwggl;//	-0.1789	B鐩告棤鍔熷姛鐜囷細琛ㄧずB鐩哥殑鏃犲姛鍔熺巼锛岄�氬父浠ュ崈涔忥紙kvar锛変负鍗曚綅銆傝礋鍊煎彲鑳借〃绀哄姛鐜囧洜鏁扮殑璋冩暣鎴栧弽鍚戞棤鍔熴��	kvar
+    @ApiModelProperty(value = " C鐩告棤鍔熷姛鐜�")
+    private String   cxwggl;//	-0.1865	C鐩告棤鍔熷姛鐜囷細琛ㄧずC鐩哥殑鏃犲姛鍔熺巼锛岄�氬父浠ュ崈涔忥紙kvar锛変负鍗曚綅銆傝礋鍊煎彲鑳借〃绀哄姛鐜囧洜鏁扮殑璋冩暣鎴栧弽鍚戞棤鍔熴��	kvar
+    @ApiModelProperty(value = "鎬昏鍦ㄥ姛鐜� ")
+    private String    zszgl	;//8.698	鎬昏鍦ㄥ姛鐜�	kVA
+    @ApiModelProperty(value = " A鐩歌鍦ㄥ姛鐜�")
+    private String   axszgl	;//6.5404	A鐩歌鍦ㄥ姛鐜�	kVA
+    @ApiModelProperty(value = " B鐩歌鍦ㄥ姛鐜�")
+    private String   bxszgl;//	0.3352	B鐩歌鍦ㄥ姛鐜�	kVA
+    @ApiModelProperty(value = "C鐩歌鍦ㄥ姛鐜� ")
+    private String   cxszgl	;//1.8223	C鐩歌鍦ㄥ姛鐜�	kVA
+    @ApiModelProperty(value = "鎬诲姛鐜囧洜鏁� ")
+    private String   zglys;//	0.742	鎬诲姛鐜囧洜鏁帮細琛ㄧず鐢佃〃鐨勬�诲姛鐜囧洜鏁帮紝鏄湁鍔熷姛鐜囦笌瑙嗗湪鍔熺巼鐨勬瘮鍊硷紝閫氬父鐢ㄤ簬璇勪及鐢佃兘璐ㄩ噺鍜岀數璐硅绠椼��	-
+    @ApiModelProperty(value = " A鐩稿姛鐜囧洜鏁�")
+    private String   axglys	;//0.77	A鐩稿姛鐜囧洜鏁帮細琛ㄧずA鐩哥殑鍔熺巼鍥犳暟锛屾槸鏈夊姛鍔熺巼涓庤鍦ㄥ姛鐜囩殑姣斿�硷紝閫氬父鐢ㄤ簬璇勪及鐢佃兘璐ㄩ噺鍜岀數璐硅绠椼��	-
+    @ApiModelProperty(value = "B鐩稿姛鐜囧洜鏁� ")
+    private String   bxglys	;//0.516	B鐩稿姛鐜囧洜鏁帮細琛ㄧずB鐩哥殑鍔熺巼鍥犳暟锛屾槸鏈夊姛鍔熺巼涓庤鍦ㄥ姛鐜囩殑姣斿�硷紝閫氬父鐢ㄤ簬璇勪及鐢佃兘璐ㄩ噺鍜岀數璐硅绠椼��	-
+    @ApiModelProperty(value = "C鐩稿姛鐜囧洜鏁� ")
+    private String   cxglys	;//0.683	C鐩稿姛鐜囧洜鏁帮細琛ㄧずC鐩哥殑鍔熺巼鍥犳暟锛屾槸鏈夊姛鍔熺巼涓庤鍦ㄥ姛鐜囩殑姣斿�硷紝閫氬父鐢ㄤ簬璇勪及鐢佃兘璐ㄩ噺鍜岀數璐硅绠椼��	-
+    @ApiModelProperty(value = " 棰戠巼")
+    private String   pl;//	50.02	棰戠巼	Hz
+    @ApiModelProperty(value = " 娓╁害")
+    private String   wd;//	20	娓╁害	掳C
+    @ApiModelProperty(value = "鏂數鍘熷洜 ")
+    private String   ddyy	;//鏃�	鏂數鍘熷洜
+    @ApiModelProperty(value = " 鏃犲姛鍔熺巼鍙嶅悜")
+    private String  dbzt	;//鏃犲姛鍔熺巼鍙嶅悜,A鐩告棤鍔熷姛鐜囧弽鍚�,B鐩告棤鍔熷姛鐜囧弽鍚�,C鐩告棤鍔熷姛鐜囧弽鍚�,閫氱數	鐢佃〃鐘舵��
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/WarningInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/WarningInfoResponse.java
new file mode 100644
index 0000000..f8e258e
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/device/model/response/WarningInfoResponse.java
@@ -0,0 +1,34 @@
+package com.doumee.core.device.model.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 鎺ュ彛杩斿洖瀵硅薄
+ * @author doumee
+ * @date 2023/03/21 14:49
+ */
+@ApiModel("鎶ヨ淇℃伅鏌ヨ杩斿洖瀵硅薄")
+@Data
+public class WarningInfoResponse implements Serializable {
+
+    @ApiModelProperty(value = "0琛ㄧず鐢佃〃锛�1琛ㄧず姘磋〃锛�9琛ㄧず閲囬泦鍣紝浣跨敤鑻辨枃閫楀彿闅斿紑")
+    private String  	device_type;//	String
+    @ApiModelProperty(value = "閲囬泦鍣ㄨ澶噄d瀵瑰簲<鏌ヨ閲囬泦鍣ㄥ垪琛ㄥ拰褰撳墠鐘舵��> 鎺ュ彛妗fid")
+    private String  device_id;//	String(19)	閲囬泦鍣ㄨ澶噄d瀵瑰簲<鏌ヨ閲囬泦鍣ㄥ垪琛ㄥ拰褰撳墠鐘舵��> 鎺ュ彛妗fid
+    @ApiModelProperty(value = "琛ㄥ彿鎴栭噰闆嗗櫒鍙� 鐢眃evice_type鍐冲畾")
+    private String  device_address;//	String	琛ㄥ彿鎴栭噰闆嗗櫒鍙� 鐢眃evice_type鍐冲畾
+    @ApiModelProperty(value = "鎶ヨ浜嬩欢id")
+    private String  warning_def_id;//	String	 1001
+    @ApiModelProperty(value = "浜嬩欢瑙﹀彂鏃堕棿")
+    private String  start_time;//	String	"2000-01-01 00:00:00",//浜嬩欢瑙﹀彂鏃堕棿
+    @ApiModelProperty(value = "鎻忚堪鎬ф枃瀛�")
+    private String  msg	;//String	 鎻忚堪鎬ф枃瀛�
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/response/erp/ERPApiResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/response/erp/ERPApiResponse.java
index e29d99a..2a1c734 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/response/erp/ERPApiResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/response/erp/ERPApiResponse.java
@@ -14,7 +14,7 @@
 
 /**
  * 鎺ュ彛杩斿洖瀵硅薄
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @ApiModel("ERP鍝嶅簲瀵硅薄")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/UpdateCompanySortDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/UpdateCompanySortDTO.java
index 3994235..2269887 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/UpdateCompanySortDTO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/UpdateCompanySortDTO.java
@@ -9,7 +9,7 @@
 import java.io.Serializable;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/05/04 18:21
  */
 @Data
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalChargeMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalChargeMapper.java
new file mode 100644
index 0000000..711935b
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalChargeMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.YwElectricalCharge;
+import com.github.yulichang.base.MPJBaseMapper;
+/**
+ * 鐢佃〃鍏呭�艰褰昅apper瀹氫箟
+ * @author doumee
+ * @date 2026-05-20 15:25:57
+ */
+public interface YwElectricalChargeMapper extends MPJBaseMapper<YwElectricalCharge> {
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalDataMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalDataMapper.java
new file mode 100644
index 0000000..474e2c1
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalDataMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.YwElectricalData;
+import com.github.yulichang.base.MPJBaseMapper;
+/**
+ * 鐢佃〃鎶勮〃鏁版嵁Mapper瀹氫箟
+ * @author doumee
+ * @date 2026-05-20 15:25:57
+ */
+public interface YwElectricalDataMapper extends MPJBaseMapper<YwElectricalData> {
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalLogMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalLogMapper.java
index 983e617..a865ed2 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalLogMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalLogMapper.java
@@ -1,13 +1,12 @@
 package com.doumee.dao.business;
 
-import com.github.yulichang.base.MPJBaseMapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.business.model.YwElectricalLog;
-
+import com.github.yulichang.base.MPJBaseMapper;
 /**
- * 鐢靛櫒绫绘搷浣滄棩蹇桵apper
- * @author renkang
- * @date 2026/04/03
+ * 鐢靛櫒绫绘搷浣滄棩蹇桵apper瀹氫箟
+ * @author doumee
+ * @date 2026-05-20 15:25:58
  */
 public interface YwElectricalLogMapper extends MPJBaseMapper<YwElectricalLog> {
-
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalMapper.java
index b5a5579..60d414e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalMapper.java
@@ -1,13 +1,12 @@
 package com.doumee.dao.business;
 
-import com.github.yulichang.base.MPJBaseMapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.business.model.YwElectrical;
-
+import com.github.yulichang.base.MPJBaseMapper;
 /**
- * 鐢佃〃璁惧淇℃伅Mapper
- * @author renkang
- * @date 2026/04/03
+ * 鐢佃〃璁惧淇℃伅Mapper瀹氫箟
+ * @author doumee
+ * @date 2026-05-20 15:25:57
  */
 public interface YwElectricalMapper extends MPJBaseMapper<YwElectrical> {
-
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalParamMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalParamMapper.java
new file mode 100644
index 0000000..fbab1ba
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalParamMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.YwElectricalParam;
+import com.github.yulichang.base.MPJBaseMapper;
+/**
+ * 鐢佃〃璁惧淇℃伅Mapper瀹氫箟
+ * @author doumee
+ * @date 2026-05-20 15:25:58
+ */
+public interface YwElectricalParamMapper extends MPJBaseMapper<YwElectricalParam> {
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalWarningMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalWarningMapper.java
new file mode 100644
index 0000000..37d937a
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwElectricalWarningMapper.java
@@ -0,0 +1,10 @@
+package com.doumee.dao.business;
+
+import com.doumee.dao.business.model.YwElectricalWarning;
+import com.github.yulichang.base.MPJBaseMapper;
+
+/**
+ * 鏅鸿兘鐢佃〃鎶ヨ璁板綍Mapper
+ */
+public interface YwElectricalWarningMapper extends MPJBaseMapper<YwElectricalWarning> {
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/AreasDto.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/AreasDto.java
index 12db167..6942410 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/AreasDto.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/AreasDto.java
@@ -7,7 +7,7 @@
 import java.io.Serializable;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/02/14 11:14
  */
 @Data
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/WarningDefOptionDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/WarningDefOptionDTO.java
new file mode 100644
index 0000000..47e9829
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/WarningDefOptionDTO.java
@@ -0,0 +1,20 @@
+package com.doumee.dao.business.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("鎶ヨ椤归�夐」")
+public class WarningDefOptionDTO {
+
+    @ApiModelProperty("鎶ヨ浜嬩欢id")
+    private Integer key;
+
+    @ApiModelProperty("鎶ヨ椤瑰悕绉�")
+    private String name;
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/YwSmsEmailBillCallDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/YwSmsEmailBillCallDTO.java
index d4f0398..907b19a 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/YwSmsEmailBillCallDTO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/YwSmsEmailBillCallDTO.java
@@ -7,7 +7,7 @@
 import java.io.Serializable;
 
 /**
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/02/14 11:14
  */
 @Data
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectrical.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectrical.java
index fe2abd3..45621e9 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectrical.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectrical.java
@@ -1,8 +1,8 @@
 package com.doumee.dao.business.model;
 
 import com.baomidou.mybatisplus.annotation.TableField;
-import com.doumee.core.annotation.excel.ExcelColumn;
-import com.doumee.core.model.LoginUserModel;
+import  com.doumee.core.annotation.excel.ExcelColumn;
+import  com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -10,110 +10,137 @@
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import java.math.BigDecimal;
 import java.util.Date;
-
+import java.math.BigDecimal;
 /**
- * 鐢佃〃璁惧淇℃伅
- * @author renkang
- * @date 2026/04/03
+ * 鐢佃〃璁惧淇℃伅Model瀹氫箟
+ * @author doumee
+ * @date 2026-05-21 11:10:04
  */
 @Data
-@ApiModel("鐢佃〃璁惧淇℃伅")
-@TableName("`yw_electrical`")
-public class YwElectrical extends LoginUserModel {
+@TableName("yw_electrical")
+@ApiModel(value = "鐢佃〃璁惧淇℃伅瀹炰綋绫�")
+public class YwElectrical  extends LoginUserModel {
 
+    @ApiModelProperty("涓婚敭")
+    @ExcelColumn(name="涓婚敭",index=1 ,width=10)
     @TableId(type = IdType.AUTO)
-    @ApiModelProperty(value = "涓婚敭", example = "1")
-    @ExcelColumn(name = "涓婚敭")
     private Integer id;
-
-    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�")
-    @ExcelColumn(name = "鍒涘缓浜虹紪鐮�")
+    @ApiModelProperty("鍒涘缓浜虹紪鐮�")
+    @ExcelColumn(name="鍒涘缓浜虹紪鐮�",index=2 ,width=10)
     private Integer creator;
-
-    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
-    @ExcelColumn(name = "鍒涘缓鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("鍒涘缓鏃堕棿")
+    @ExcelColumn(name="鍒涘缓鏃堕棿",index=3 ,width=10)
     private Date createDate;
-
-    @ApiModelProperty(value = "鏇存柊浜虹紪鐮�")
-    @ExcelColumn(name = "鏇存柊浜虹紪鐮�")
-    private Integer editor;
-
-    @ApiModelProperty(value = "鏇存柊鏃堕棿")
-    @ExcelColumn(name = "鏇存柊鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("鏇存柊浜虹紪鐮�")
+    @ExcelColumn(name="鏇存柊浜虹紪鐮�",index=4 ,width=10)
+    private Integer edirot;
+    @ApiModelProperty("鏇存柊鏃堕棿")
+    @ExcelColumn(name="鏇存柊鏃堕棿",index=5 ,width=10)
     private Date editDate;
-
-    @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "0")
-    @ExcelColumn(name = "鏄惁鍒犻櫎0鍚� 1鏄�")
+    @ApiModelProperty("鏄惁鍒犻櫎0鍚� 1鏄�")
+    @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�",index=6 ,width=10)
     private Integer isdeleted;
-
-    @ApiModelProperty(value = "澶囨敞")
-    @ExcelColumn(name = "澶囨敞")
+    @ApiModelProperty("澶囨敞")
+    @ExcelColumn(name="澶囨敞",index=7 ,width=10)
     private String remark;
-
-    @ApiModelProperty(value = "閲囬泦鍣ㄥ彿")
-    @ExcelColumn(name = "閲囬泦鍣ㄥ彿")
-    private String collectorNo;
-
-    @ApiModelProperty(value = "琛ㄥ彿")
-    @ExcelColumn(name = "琛ㄥ彿")
+    @ApiModelProperty("閲囬泦鍣ㄥ彿")
+    @ExcelColumn(name="閲囬泦鍣ㄥ彿",index=8 ,width=10)
+    private String collectorId;
+    @ApiModelProperty("琛ㄥ彿")
+    @ExcelColumn(name="琛ㄥ彿",index=9 ,width=10)
     private String code;
-
-    @ApiModelProperty(value = "琛ㄥ湴鍧�(閫氳鍦板潃)")
-    @ExcelColumn(name = "琛ㄥ湴鍧�(閫氳鍦板潃)")
-    private String electricAddress;
-
-    @ApiModelProperty(value = "鐢佃〃绫诲瀷")
-    @ExcelColumn(name = "鐢佃〃绫诲瀷")
-    private String electricType;
-
-    @ApiModelProperty(value = "鍊嶇巼", example = "1")
-    @ExcelColumn(name = "鍊嶇巼")
-    private Integer magnification;
-
-    @ApiModelProperty(value = "浠樿垂绫诲瀷", example = "0")
-    @ExcelColumn(name = "浠樿垂绫诲瀷")
+    @ApiModelProperty("琛ㄥ湴鍧�(閫氳鍦板潃)")
+    @ExcelColumn(name="琛ㄥ湴鍧�(閫氳鍦板潃)",index=10 ,width=10)
+    private String address;
+    @ApiModelProperty("璁惧绫诲瀷 0 琛ㄧず鐢佃〃 锛� 1 琛ㄧず姘磋〃")
+    @ExcelColumn(name="璁惧绫诲瀷 0 琛ㄧず鐢佃〃 锛� 1 琛ㄧず姘磋〃",index=11 ,width=10)
+    private String deviceType;
+    @ApiModelProperty("鍊嶇巼")
+    @ExcelColumn(name="鍊嶇巼",index=12 ,width=10)
+    private BigDecimal rate;
+    @ApiModelProperty("浠樿垂绫诲瀷")
+    @ExcelColumn(name="浠樿垂绫诲瀷",index=13 ,width=10)
     private Integer payType;
-
-    @ApiModelProperty(value = "鍚嶇О")
-    @ExcelColumn(name = "鍚嶇О")
+    @ApiModelProperty("鍚嶇О")
+    @ExcelColumn(name="鍚嶇О",index=14 ,width=10)
     private String name;
-
-    @ApiModelProperty(value = "缃戝叧涓婚敭", example = "1")
-    @ExcelColumn(name = "缃戝叧涓婚敭")
+    @ApiModelProperty("缃戝叧涓婚敭")
+    @ExcelColumn(name="缃戝叧涓婚敭",index=15 ,width=10)
     private Integer gatewayId;
-
-    @ApiModelProperty(value = "缃戝叧閫氫俊绔彛")
-    @ExcelColumn(name = "缃戝叧閫氫俊绔彛")
+    @ApiModelProperty("缃戝叧閫氫俊绔彛")
+    @ExcelColumn(name="缃戝叧閫氫俊绔彛",index=16 ,width=10)
     private String gatewayPort;
-
-    @ApiModelProperty(value = "涓婃蹇冭烦鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @ExcelColumn(name = "涓婃蹇冭烦鏃堕棿")
+    @ApiModelProperty("涓婃蹇冭烦鏃堕棿")
+    @ExcelColumn(name="涓婃蹇冭烦鏃堕棿",index=17 ,width=10)
     private Date lastHeartbeatDate;
-
-    @ApiModelProperty(value = "鐢佃〃浣欓")
-    @ExcelColumn(name = "鐢佃〃浣欓")
+    @ApiModelProperty("鐢佃〃浣欓锛堝厓锛�")
+    @ExcelColumn(name="鐢佃〃浣欓锛堝厓锛�",index=18 ,width=10)
     private BigDecimal balance;
-
-    @ApiModelProperty(value = "杩愯鐘舵�侊細0=鏈紑鎴凤紱1=鎷夐椄锛�2=鍚堥椄锛�3=鍏朵粬", example = "0")
-    @ExcelColumn(name = "杩愯鐘舵��")
-    private Integer runStatus;
-
-    @ApiModelProperty(value = "涓婃寮�鎴锋椂闂�")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @ExcelColumn(name = "涓婃寮�鎴锋椂闂�")
+    @ApiModelProperty("缁х數鍣ㄧ姸鎬侊細0=鎷夐椄锛�1=鍚堥椄锛�2=鍏朵粬")
+    @ExcelColumn(name="缁х數鍣ㄧ姸鎬侊細0=鎷夐椄锛�1=鍚堥椄锛�2=鍏朵粬",index=19 ,width=10)
+    private String relayStatus;
+    @ApiModelProperty("涓婃寮�鎴锋椂闂�")
+    @ExcelColumn(name="涓婃寮�鎴锋椂闂�",index=20 ,width=10)
     private Date lastOpenDate;
-
-    @ApiModelProperty(value = "涓婃娓呴浂鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @ExcelColumn(name = "涓婃娓呴浂鏃堕棿")
+    @ApiModelProperty("涓婃娓呴浂鏃堕棿")
+    @ExcelColumn(name="涓婃娓呴浂鏃堕棿",index=21 ,width=10)
     private Date lastCleanDate;
-
-    @ApiModelProperty(value = "缃戝叧鍚嶇О")
+    @ApiModelProperty("鍦ㄧ嚎鐘舵�侊細0=绂荤嚎 1=鍦ㄧ嚎")
+    @ExcelColumn(name="鍦ㄧ嚎鐘舵�侊細0=绂荤嚎 1=鍦ㄧ嚎",index=22 ,width=10)
+    private Integer online;
+    @ApiModelProperty("鏄惁寮�鎴凤細0=鏈紑鎴凤紱1=宸插紑鎴�")
+    @ExcelColumn(name="鏄惁寮�鎴凤細0=鏈紑鎴凤紱1=宸插紑鎴�",index=23 ,width=10)
+    private Integer accountStatus;
+    @ApiModelProperty("鐘舵�侊細0=姝e父锛�1=绂佺敤")
+    @ExcelColumn(name="鐘舵�侊細0=姝e父锛�1=绂佺敤",index=24 ,width=10)
+    private Integer status;
+    @ApiModelProperty("棰勮鐘跺喌缂栫爜")
+    @ExcelColumn(name="棰勮鐘跺喌缂栫爜",index=25 ,width=10)
+    private String warnType;
+    @ApiModelProperty("璁惧鍨嬪彿")
+    @ExcelColumn(name="璁惧鍨嬪彿",index=26 ,width=10)
+    private String type;
+    @ApiModelProperty("璁惧妗fID")
+    @ExcelColumn(name="璁惧妗fID",index=27 ,width=10)
+    private String dId;
+    @ApiModelProperty("閲囬泦鍣ㄦ。妗圛D")
+    @ExcelColumn(name="閲囬泦鍣ㄦ。妗圛D",index=28 ,width=10)
+    private String cId;
+    @ApiModelProperty("澶囨敞")
+    @ExcelColumn(name="澶囨敞",index=29 ,width=10)
+    private String description;
+    @ApiModelProperty("淇″彿鍊�,1-31 銆� 20浠ヤ笂绠椾俊鍙风ǔ瀹�")
+    @ExcelColumn(name="淇″彿鍊�,1-31 銆� 20浠ヤ笂绠椾俊鍙风ǔ瀹�",index=30 ,width=10)
+    private BigDecimal csq;
+    @ApiModelProperty("涓婃鎺夌嚎鏃堕棿 online = false 鏃跺瓨鍦�")
+    @ExcelColumn(name="涓婃鎺夌嚎鏃堕棿 online = false 鏃跺瓨鍦�",index=31 ,width=10)
+    private Date disconnectTime;
+    @ApiModelProperty("涓婃涓婄嚎鏃堕棿 online = true 鏃跺瓨鍦�")
+    @ExcelColumn(name="涓婃涓婄嚎鏃堕棿 online = true 鏃跺瓨鍦�",index=32 ,width=10)
+    private Date connectTime;
+    @ApiModelProperty("褰撳墠鍓╀綑鎬荤數閲忥紙KW锛�")
+    @ExcelColumn(name="褰撳墠鍓╀綑鎬荤數閲忥紙KW锛�",index=33 ,width=10)
+    private String balanceBattery;
+    @ApiModelProperty("鏈�杩戞妱琛ㄦ椂闂�")
+    @ExcelColumn(name="鏈�杩戞妱琛ㄦ椂闂�",index=34 ,width=10)
+    private Date balanceTime;
+    @ApiModelProperty("鎴峰彿 鍏宠仈鐢ㄦ埛妗fID")
+    @ExcelColumn(name="鎴峰彿 鍏宠仈鐢ㄦ埛妗fID",index=35 ,width=10)
+    private String accountId;
+    @ApiModelProperty("鍏宠仈浠锋牸妗fID priceid鍜宲aram_id 姣忓潡琛ㄥ彧浼氱敤鍏朵腑涓�绉�")
+    @ExcelColumn(name="鍏宠仈浠锋牸妗fID priceid鍜宲aram_id 姣忓潡琛ㄥ彧浼氱敤鍏朵腑涓�绉�",index=37 ,width=10)
+    private String priceid;
+    @ApiModelProperty("鍏宠仈鍙傛暟妗fID priceid鍜宲aram_id 姣忓潡琛ㄥ彧浼氱敤鍏朵腑涓�绉�")
+    @ExcelColumn(name="鍏宠仈鍙傛暟妗fID priceid鍜宲aram_id 姣忓潡琛ㄥ彧浼氱敤鍏朵腑涓�绉�",index=36 ,width=10)
+    private String paramId;
+    @ApiModelProperty("缁戝畾鎴块棿鍚嶇О锛堝叧鑱攜w_electrical_room銆亂w_room锛�")
     @TableField(exist = false)
-    private String gatewayName;
+    private String roomNames;
+
+    @TableField(exist = false)
+    private String warnTypeName;
+
+    @TableField(exist = false)
+    private String meterKeyword;
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalCharge.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalCharge.java
new file mode 100644
index 0000000..f50a488
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalCharge.java
@@ -0,0 +1,107 @@
+package com.doumee.dao.business.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import  com.doumee.core.annotation.excel.ExcelColumn;
+import  com.doumee.core.model.LoginUserModel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+import java.math.BigDecimal;
+/**
+ * 鐢佃〃鍏呭�艰褰昅odel瀹氫箟
+ * @author doumee
+ * @date 2026-05-20 15:25:57
+ */
+@Data
+@TableName("yw_electrical_charge")
+@ApiModel(value = "鐢佃〃鍏呭�艰褰曞疄浣撶被")
+public class YwElectricalCharge  extends LoginUserModel {
+
+    @ApiModelProperty("涓婚敭")
+    @ExcelColumn(name="涓婚敭",index=1 ,width=10)
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+    @ApiModelProperty("鍒涘缓浜虹紪鐮�")
+    @ExcelColumn(name="鍒涘缓浜虹紪鐮�",index=2 ,width=10)
+    private Integer creator;
+    @ApiModelProperty("鍒涘缓鏃堕棿")
+    @ExcelColumn(name="鍒涘缓鏃堕棿",index=3 ,width=10)
+    private Date createDate;
+    @ApiModelProperty("鏇存柊浜虹紪鐮�")
+    @ExcelColumn(name="鏇存柊浜虹紪鐮�",index=4 ,width=10)
+    private Integer editor;
+    @ApiModelProperty("鏇存柊鏃堕棿")
+    @ExcelColumn(name="鏇存柊鏃堕棿",index=5 ,width=10)
+    private Date editDate;
+    @ApiModelProperty("鏄惁鍒犻櫎0鍚� 1鏄�")
+    @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�",index=6 ,width=10)
+    private Integer isdeleted;
+    @ApiModelProperty("澶囨敞")
+    @ExcelColumn(name="澶囨敞",index=7 ,width=10)
+    private String remark;
+    @ApiModelProperty("涓氬姟绫诲瀷 0鐢佃〃 1绌鸿皟")
+    @ExcelColumn(name="涓氬姟绫诲瀷 0鐢佃〃 1绌鸿皟",index=8 ,width=10)
+    private Integer type;
+    @ApiModelProperty("鎴挎簮缂栫爜闆嗗悎锛岃嫳鏂囬�楀彿闅斿紑(鍏宠仈yw_room)")
+    @ExcelColumn(name="鎴挎簮缂栫爜闆嗗悎锛岃嫳鏂囬�楀彿闅斿紑(鍏宠仈yw_room)",index=9 ,width=10)
+    private String roomIds;
+    @ApiModelProperty("鍏宠仈涓婚敭锛堢數琛ㄥ叧鑱旓細yw_electrical锛涚┖璋冨叧鑱旓細yw_conditioner)")
+    @ExcelColumn(name="鍏宠仈涓婚敭锛堢數琛ㄥ叧鑱旓細yw_electrical锛涚┖璋冨叧鑱旓細yw_conditioner)",index=10 ,width=10)
+    private Integer objId;
+    @ApiModelProperty("琛ㄥ彿")
+    @ExcelColumn(name="琛ㄥ彿",index=11 ,width=10)
+    private String address;
+    @ApiModelProperty("琛ㄥ悕")
+    @ExcelColumn(name="琛ㄥ悕",index=12 ,width=10)
+    private String name;
+    @ApiModelProperty("鎵�灞炲叕鍙镐富閿紙鍏宠仈wy_company)")
+    @ExcelColumn(name="鎵�灞炲叕鍙镐富閿紙鍏宠仈wy_company)",index=13 ,width=10)
+    private Integer companyId;
+    @ApiModelProperty("瀹㈡埛涓婚敭锛堝叧鑱攜w_customer)")
+    @ExcelColumn(name="瀹㈡埛涓婚敭锛堝叧鑱攜w_customer)",index=14 ,width=10)
+    private Integer customerId;
+    @ApiModelProperty("鍏ヨ处鏃ユ湡")
+    @ExcelColumn(name="鍏ヨ处鏃ユ湡",index=15 ,width=10)
+    private Date incomeTime;
+    @ApiModelProperty("鍏呭�奸噾棰濓紙鍏冿級")
+    @ExcelColumn(name="鍏呭�奸噾棰濓紙鍏冿級",index=16 ,width=10)
+    private BigDecimal money;
+    @ApiModelProperty("鐘舵�� 0=鍏呭�间腑;1=鍏呭�兼垚鍔�;2=鍏呭�煎け璐�;")
+    @ExcelColumn(name="鐘舵�� 0=鍏呭�间腑;1=鍏呭�兼垚鍔�;2=鍏呭�煎け璐�;",index=17 ,width=10)
+    private Integer status;
+    @ApiModelProperty("鍏呭�艰褰曠紪鐮�")
+    @ExcelColumn(name="鍏呭�艰褰曠紪鐮�",index=18 ,width=10)
+    private String oprId;
+    @ApiModelProperty("閲囬泦鍣ㄥ彿")
+    @ExcelColumn(name="閲囬泦鍣ㄥ彿",index=19 ,width=10)
+    private String cId;
+    @ApiModelProperty("鍏呭�煎弬鏁�")
+    @ExcelColumn(name="鍏呭�煎弬鏁�",index=20 ,width=10)
+    private String params;
+    @ApiModelProperty("鍏呭�肩姸鎬佹洿鏂版椂闂�")
+    @ExcelColumn(name="鍏呭�肩姸鎬佹洿鏂版椂闂�",index=21 ,width=10)
+    private Date statusTime;
+    @ApiModelProperty("鍏呭�肩姸鎬佸娉�")
+    @ExcelColumn(name="鍏呭�肩姸鎬佸娉�",index=22 ,width=10)
+    private String statusInfo;
+    @ApiModelProperty("鎴挎簮鍚嶇О闆嗗悎鍏宠仈yw_room)")
+    @ExcelColumn(name="鎴挎簮鍚嶇О闆嗗悎鍏宠仈yw_room)",index=23 ,width=10)
+    private String roomNames;
+    @ApiModelProperty("璐︽埛涓婚敭锛堝叧鑱攚y_account)")
+    @ExcelColumn(name="璐︽埛涓婚敭锛堝叧鑱攚y_account)",index=24 ,width=10)
+    private Integer accountId;
+    @ApiModelProperty("鍏呭�煎墠璐﹀彿浣欓锛堝厓锛�")
+    @ExcelColumn(name="鍏呭�煎墠璐﹀彿浣欓锛堝厓锛�",index=25 ,width=10)
+    private BigDecimal banlance;
+    @ApiModelProperty("閫夋嫨鐢佃〃鍙傛暟鐩存帴锛坹w_electrical_param)")
+    @ExcelColumn(name="閫夋嫨鐢佃〃鍙傛暟鐩存帴锛坹w_electrical_param)",index=26 ,width=10)
+    private Integer paramId;
+
+    @TableField(exist = false)
+    private String meterKeyword;
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalData.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalData.java
new file mode 100644
index 0000000..c4606ac
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalData.java
@@ -0,0 +1,188 @@
+package com.doumee.dao.business.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import  com.doumee.core.annotation.excel.ExcelColumn;
+import  com.doumee.core.model.LoginUserModel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+import java.math.BigDecimal;
+/**
+ * 鐢佃〃鎶勮〃鏁版嵁Model瀹氫箟
+ * @author doumee
+ * @date 2026-05-20 15:25:57
+ */
+@Data
+@TableName("yw_electrical_data")
+@ApiModel(value = "鐢佃〃鎶勮〃鏁版嵁瀹炰綋绫�")
+public class YwElectricalData  extends LoginUserModel {
+
+    @ApiModelProperty("涓婚敭")
+    @ExcelColumn(name="涓婚敭",index=1 ,width=10)
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+    @ApiModelProperty("鍒涘缓浜虹紪鐮�")
+    @ExcelColumn(name="鍒涘缓浜虹紪鐮�",index=2 ,width=10)
+    private Integer creator;
+    @ApiModelProperty("鍒涘缓鏃堕棿")
+    @ExcelColumn(name="鍒涘缓鏃堕棿",index=3 ,width=10)
+    private Date createDate;
+    @ApiModelProperty("鏇存柊浜虹紪鐮�")
+    @ExcelColumn(name="鏇存柊浜虹紪鐮�",index=4 ,width=10)
+    private Integer editor;
+    @ApiModelProperty("鏇存柊鏃堕棿")
+    @ExcelColumn(name="鏇存柊鏃堕棿",index=5 ,width=10)
+    private Date editDate;
+    @ApiModelProperty("鏄惁鍒犻櫎0鍚� 1鏄�")
+    @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�",index=6 ,width=10)
+    private Integer isdeleted;
+    @ApiModelProperty("澶囨敞")
+    @ExcelColumn(name="澶囨敞",index=7 ,width=10)
+    private String remark;
+    @ApiModelProperty("璁惧缂栫爜锛堝叧鑱攄evice)")
+    @ExcelColumn(name="璁惧缂栫爜锛堝叧鑱攄evice)",index=8 ,width=10)
+    private String deviceId;
+    @ApiModelProperty("鍙戠敓鏃堕棿")
+    @ExcelColumn(name="鍙戠敓鏃堕棿",index=9 ,width=10)
+    private String addTime;
+    @ApiModelProperty("缁撶畻鏂瑰紡锛氳〃绀烘槸鍚︿负棰勪粯璐圭數琛ㄣ�傞�氬父锛屽鏋滃�间负true锛屽垯琛ㄧず涓洪浠樿垂锛涘鏋滀负false锛屽垯琛ㄧず鍚庝粯璐广��")
+    @ExcelColumn(name="缁撶畻鏂瑰紡锛氳〃绀烘槸鍚︿负棰勪粯璐圭數琛ㄣ�傞�氬父锛屽鏋滃�间负true锛屽垯琛ㄧず涓洪浠樿垂锛涘鏋滀负false锛屽垯琛ㄧず鍚庝粯璐广��",index=10 ,width=10)
+    private String jsfs;
+    @ApiModelProperty("璐圭巼鏁�")
+    @ExcelColumn(name="璐圭巼鏁�",index=11 ,width=10)
+    private String fls;
+    @ApiModelProperty("绾挎暟 1=鐩告暟:鍗曠浉,3=鐩告暟:涓夌浉涓夌嚎,鍏朵粬=鐩告暟:涓夌浉鍥涚嚎")
+    @ExcelColumn(name="绾挎暟 1=鐩告暟:鍗曠浉,3=鐩告暟:涓夌浉涓夌嚎,鍏朵粬=鐩告暟:涓夌浉鍥涚嚎",index=12 ,width=10)
+    private String xs;
+    @ApiModelProperty("鎬绘湁鍔熺數閲忥細琛ㄧず鎬荤殑鏈夊姛鐢甸噺锛岄�氬父浠ュ崈鐡︽椂锛坘Wh锛変负鍗曚綅銆�")
+    @ExcelColumn(name="鎬绘湁鍔熺數閲忥細琛ㄧず鎬荤殑鏈夊姛鐢甸噺锛岄�氬父浠ュ崈鐡︽椂锛坘Wh锛変负鍗曚綅銆�",index=13 ,width=10)
+    private String zyje;
+    @ApiModelProperty("浣欓 鍏�")
+    @ExcelColumn(name="浣欓 鍏�",index=14 ,width=10)
+    private String ye;
+    @ApiModelProperty("鍏呭�兼鏁�")
+    @ExcelColumn(name="鍏呭�兼鏁�",index=15 ,width=10)
+    private String countnum;
+    @ApiModelProperty("褰撳墠鐢典环锛氳〃绀哄綋鍓嶆椂鍒荤殑鐢典环锛岄�氬父浠ュ厓/鍗冪摝鏃讹紙鍏�/kWh锛変负鍗曚綅銆�")
+    @ExcelColumn(name="褰撳墠鐢典环锛氳〃绀哄綋鍓嶆椂鍒荤殑鐢典环锛岄�氬父浠ュ厓/鍗冪摝鏃讹紙鍏�/kWh锛変负鍗曚綅銆�",index=16 ,width=10)
+    private String dqdj;
+    @ApiModelProperty("缁勫悎鏈夊姛鎬荤數閲�")
+    @ExcelColumn(name="缁勫悎鏈夊姛鎬荤數閲�",index=17 ,width=10)
+    private String zhygzdl;
+    @ApiModelProperty("鍛ㄦ湡鐢ㄩ噺	kWh")
+    @ExcelColumn(name="鍛ㄦ湡鐢ㄩ噺	kWh",index=18 ,width=10)
+    private String zqyl;
+    @ApiModelProperty("A鐩哥數娴�	A")
+    @ExcelColumn(name="A鐩哥數娴�	A",index=19 ,width=10)
+    private String axdl;
+    @ApiModelProperty("B鐩哥數娴� A")
+    @ExcelColumn(name="B鐩哥數娴� A",index=20 ,width=10)
+    private String bxdl;
+    @ApiModelProperty("C鐩哥數娴� A")
+    @ExcelColumn(name="C鐩哥數娴� A",index=21 ,width=10)
+    private String cxdl;
+    @ApiModelProperty("A鐩哥數鍘�	V")
+    @ExcelColumn(name="A鐩哥數鍘�	V",index=22 ,width=10)
+    private String axdy;
+    @ApiModelProperty("B鐩哥數鍘�	V")
+    @ExcelColumn(name="B鐩哥數鍘�	V",index=23 ,width=10)
+    private String bxdy;
+    @ApiModelProperty("C鐩哥數鍘�	V")
+    @ExcelColumn(name="C鐩哥數鍘�	V",index=24 ,width=10)
+    private String cxdy;
+    @ApiModelProperty("鎬绘湁鍔熷姛鐜囷細琛ㄧず鎬荤殑鏈夊姛鍔熺巼锛岄�氬父浠ュ崈鐡︼紙kW锛変负鍗曚綅銆�	")
+    @ExcelColumn(name="鎬绘湁鍔熷姛鐜囷細琛ㄧず鎬荤殑鏈夊姛鍔熺巼锛岄�氬父浠ュ崈鐡︼紙kW锛変负鍗曚綅銆�	",index=25 ,width=10)
+    private String zyggl;
+    @ApiModelProperty("A鐩告湁鍔熷姛鐜囷細琛ㄧずA鐩哥殑鏈夊姛鍔熺巼锛岄�氬父浠ュ崈鐡︼紙kW锛変负鍗曚綅銆�")
+    @ExcelColumn(name="A鐩告湁鍔熷姛鐜囷細琛ㄧずA鐩哥殑鏈夊姛鍔熺巼锛岄�氬父浠ュ崈鐡︼紙kW锛変负鍗曚綅銆�",index=26 ,width=10)
+    private String axyggl;
+    @ApiModelProperty("B鐩告湁鍔熷姛鐜囷細琛ㄧずB鐩哥殑鏈夊姛鍔熺巼锛岄�氬父浠ュ崈鐡︼紙kW锛変负鍗曚綅銆�")
+    @ExcelColumn(name="B鐩告湁鍔熷姛鐜囷細琛ㄧずB鐩哥殑鏈夊姛鍔熺巼锛岄�氬父浠ュ崈鐡︼紙kW锛変负鍗曚綅銆�",index=27 ,width=10)
+    private String bxyggl;
+    @ApiModelProperty("C鐩告湁鍔熷姛鐜囷細琛ㄧずC鐩哥殑鏈夊姛鍔熺巼锛岄�氬父浠ュ崈鐡︼紙kW锛変负鍗曚綅銆�	")
+    @ExcelColumn(name="C鐩告湁鍔熷姛鐜囷細琛ㄧずC鐩哥殑鏈夊姛鍔熺巼锛岄�氬父浠ュ崈鐡︼紙kW锛変负鍗曚綅銆�	",index=28 ,width=10)
+    private String cxyggl;
+    @ApiModelProperty("鎬绘棤鍔熷姛鐜囷細琛ㄧず鎬荤殑鏃犲姛鍔熺巼锛岄�氬父浠ュ崈涔忥紙kvar锛変负鍗曚綅銆傝礋鍊煎彲鑳借〃绀哄姛鐜囧洜鏁扮殑璋冩暣鎴栧弽鍚戞棤鍔熴��")
+    @ExcelColumn(name="鎬绘棤鍔熷姛鐜囷細琛ㄧず鎬荤殑鏃犲姛鍔熺巼锛岄�氬父浠ュ崈涔忥紙kvar锛変负鍗曚綅銆傝礋鍊煎彲鑳借〃绀哄姛鐜囧洜鏁扮殑璋冩暣鎴栧弽鍚戞棤鍔熴��",index=29 ,width=10)
+    private String zwggl;
+    @ApiModelProperty("A鐩告棤鍔熷姛鐜囷細琛ㄧずA鐩哥殑鏃犲姛鍔熺巼锛岄�氬父浠ュ崈涔忥紙kvar锛変负鍗曚綅銆傝礋鍊煎彲鑳借〃绀哄姛鐜囧洜鏁扮殑璋冩暣鎴栧弽鍚戞棤鍔熴��")
+    @ExcelColumn(name="A鐩告棤鍔熷姛鐜囷細琛ㄧずA鐩哥殑鏃犲姛鍔熺巼锛岄�氬父浠ュ崈涔忥紙kvar锛変负鍗曚綅銆傝礋鍊煎彲鑳借〃绀哄姛鐜囧洜鏁扮殑璋冩暣鎴栧弽鍚戞棤鍔熴��",index=30 ,width=10)
+    private String axwggl;
+    @ApiModelProperty("B鐩告棤鍔熷姛鐜囷細琛ㄧずB鐩哥殑鏃犲姛鍔熺巼锛岄�氬父浠ュ崈涔忥紙kvar锛変负鍗曚綅銆傝礋鍊煎彲鑳借〃绀哄姛鐜囧洜鏁扮殑璋冩暣鎴栧弽鍚戞棤鍔熴��")
+    @ExcelColumn(name="B鐩告棤鍔熷姛鐜囷細琛ㄧずB鐩哥殑鏃犲姛鍔熺巼锛岄�氬父浠ュ崈涔忥紙kvar锛変负鍗曚綅銆傝礋鍊煎彲鑳借〃绀哄姛鐜囧洜鏁扮殑璋冩暣鎴栧弽鍚戞棤鍔熴��",index=31 ,width=10)
+    private String bxwggl;
+    @ApiModelProperty("C鐩告棤鍔熷姛鐜囷細琛ㄧずC鐩哥殑鏃犲姛鍔熺巼锛岄�氬父浠ュ崈涔忥紙kvar锛変负鍗曚綅銆傝礋鍊煎彲鑳借〃绀哄姛鐜囧洜鏁扮殑璋冩暣鎴栧弽鍚戞棤鍔熴��")
+    @ExcelColumn(name="C鐩告棤鍔熷姛鐜囷細琛ㄧずC鐩哥殑鏃犲姛鍔熺巼锛岄�氬父浠ュ崈涔忥紙kvar锛変负鍗曚綅銆傝礋鍊煎彲鑳借〃绀哄姛鐜囧洜鏁扮殑璋冩暣鎴栧弽鍚戞棤鍔熴��",index=32 ,width=10)
+    private String cxwggl;
+    @ApiModelProperty("鎬昏鍦ㄥ姛鐜�	kVA")
+    @ExcelColumn(name="鎬昏鍦ㄥ姛鐜�	kVA",index=33 ,width=10)
+    private String zszgl;
+    @ApiModelProperty("A鐩歌鍦ㄥ姛鐜�	kVA")
+    @ExcelColumn(name="A鐩歌鍦ㄥ姛鐜�	kVA",index=34 ,width=10)
+    private String axszgl;
+    @ApiModelProperty("B鐩歌鍦ㄥ姛鐜�	kVA")
+    @ExcelColumn(name="B鐩歌鍦ㄥ姛鐜�	kVA",index=35 ,width=10)
+    private String bxszgl;
+    @ApiModelProperty("C鐩歌鍦ㄥ姛鐜�	kVA")
+    @ExcelColumn(name="C鐩歌鍦ㄥ姛鐜�	kVA",index=36 ,width=10)
+    private String cxszgl;
+    @ApiModelProperty("鎬诲姛鐜囧洜鏁帮細琛ㄧず鐢佃〃鐨勬�诲姛鐜囧洜鏁帮紝鏄湁鍔熷姛鐜囦笌瑙嗗湪鍔熺巼鐨勬瘮鍊硷紝閫氬父鐢ㄤ簬璇勪及鐢佃兘璐ㄩ噺鍜岀數璐硅绠椼��")
+    @ExcelColumn(name="鎬诲姛鐜囧洜鏁帮細琛ㄧず鐢佃〃鐨勬�诲姛鐜囧洜鏁帮紝鏄湁鍔熷姛鐜囦笌瑙嗗湪鍔熺巼鐨勬瘮鍊硷紝閫氬父鐢ㄤ簬璇勪及鐢佃兘璐ㄩ噺鍜岀數璐硅绠椼��",index=37 ,width=10)
+    private String zglys;
+    @ApiModelProperty("A鐩稿姛鐜囧洜鏁帮細琛ㄧずA鐩哥殑鍔熺巼鍥犳暟锛屾槸鏈夊姛鍔熺巼涓庤鍦ㄥ姛鐜囩殑姣斿�硷紝閫氬父鐢ㄤ簬璇勪及鐢佃兘璐ㄩ噺鍜岀數璐硅绠椼��")
+    @ExcelColumn(name="A鐩稿姛鐜囧洜鏁帮細琛ㄧずA鐩哥殑鍔熺巼鍥犳暟锛屾槸鏈夊姛鍔熺巼涓庤鍦ㄥ姛鐜囩殑姣斿�硷紝閫氬父鐢ㄤ簬璇勪及鐢佃兘璐ㄩ噺鍜岀數璐硅绠椼��",index=38 ,width=10)
+    private String axglys;
+    @ApiModelProperty("C鐩稿姛鐜囧洜鏁帮細琛ㄧずC鐩哥殑鍔熺巼鍥犳暟锛屾槸鏈夊姛鍔熺巼涓庤鍦ㄥ姛鐜囩殑姣斿�硷紝閫氬父鐢ㄤ簬璇勪及鐢佃兘璐ㄩ噺鍜岀數璐硅绠椼��")
+    @ExcelColumn(name="C鐩稿姛鐜囧洜鏁帮細琛ㄧずC鐩哥殑鍔熺巼鍥犳暟锛屾槸鏈夊姛鍔熺巼涓庤鍦ㄥ姛鐜囩殑姣斿�硷紝閫氬父鐢ㄤ簬璇勪及鐢佃兘璐ㄩ噺鍜岀數璐硅绠椼��",index=39 ,width=10)
+    private String bxglys;
+    @ApiModelProperty("棰戠巼	Hz")
+    @ExcelColumn(name="棰戠巼	Hz",index=40 ,width=10)
+    private String pl;
+    @ApiModelProperty("娓╁害	掳C")
+    @ExcelColumn(name="娓╁害	掳C",index=41 ,width=10)
+    private String wd;
+    @ApiModelProperty("鏂數鍘熷洜")
+    @ExcelColumn(name="鏂數鍘熷洜",index=42 ,width=10)
+    private String ddyy;
+    @ApiModelProperty("鐢佃〃鐘舵��(鏃犲姛鍔熺巼鍙嶅悜,A鐩告棤鍔熷姛鐜囧弽鍚�,B鐩告棤鍔熷姛鐜囧弽鍚�,C鐩告棤鍔熷姛鐜囧弽鍚�,閫氱數)")
+    @ExcelColumn(name="鐢佃〃鐘舵��(鏃犲姛鍔熺巼鍙嶅悜,A鐩告棤鍔熷姛鐜囧弽鍚�,B鐩告棤鍔熷姛鐜囧弽鍚�,C鐩告棤鍔熷姛鐜囧弽鍚�,閫氱數)",index=43 ,width=10)
+    private String dbzt;
+    @ApiModelProperty("鍞竴鏍囪瘑")
+    @ExcelColumn(name="鍞竴鏍囪瘑",index=44 ,width=10)
+    private String dataId;
+    @ApiModelProperty("閲囬泦鑰楁椂")
+    @ExcelColumn(name="閲囬泦鑰楁椂",index=45 ,width=10)
+    private String consume;
+    @ApiModelProperty("閲囬泦鍣ㄦ爣璇�")
+    @ExcelColumn(name="閲囬泦鍣ㄦ爣璇�",index=46 ,width=10)
+    private String cid;
+    @ApiModelProperty("鐢佃〃妗fid")
+    @ExcelColumn(name="鐢佃〃妗fid",index=47 ,width=10)
+    private String mid;
+    @ApiModelProperty("琛ㄥ湴鍧�")
+    @ExcelColumn(name="琛ㄥ湴鍧�",index=48 ,width=10)
+    private String address;
+    @ApiModelProperty("鐢ㄦ埛鏍囪瘑")
+    @ExcelColumn(name="鐢ㄦ埛鏍囪瘑",index=49 ,width=10)
+    private String uid;
+    @ApiModelProperty("鐢ㄦ埛鍚嶅瓧")
+    @ExcelColumn(name="鐢ㄦ埛鍚嶅瓧",index=50 ,width=10)
+    private String name;
+    @ApiModelProperty("鍔熻兘绫诲瀷")
+    @ExcelColumn(name="鍔熻兘绫诲瀷",index=51 ,width=10)
+    private Integer fid;
+    @ApiModelProperty("鏁版嵁")
+    @ExcelColumn(name="鏁版嵁",index=52 ,width=10)
+    private String data;
+    @ApiModelProperty("瑙i噴鏁版嵁")
+    @ExcelColumn(name="瑙i噴鏁版嵁",index=53 ,width=10)
+    private String dsp;
+    @ApiModelProperty("鍊嶇巼")
+    @ExcelColumn(name="鍊嶇巼",index=54 ,width=10)
+    private BigDecimal radio;
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalLog.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalLog.java
index d5c2816..84e3e3f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalLog.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalLog.java
@@ -1,7 +1,8 @@
 package com.doumee.dao.business.model;
 
-import com.doumee.core.annotation.excel.ExcelColumn;
-import com.doumee.core.model.LoginUserModel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import  com.doumee.core.annotation.excel.ExcelColumn;
+import  com.doumee.core.model.LoginUserModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -10,77 +11,61 @@
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import java.util.Date;
-
+import java.math.BigDecimal;
 /**
- * 鐢靛櫒绫绘搷浣滄棩蹇�
- * @author renkang
- * @date 2026/04/03
+ * 鐢靛櫒绫绘搷浣滄棩蹇桵odel瀹氫箟
+ * @author doumee
+ * @date 2026-05-20 15:25:58
  */
 @Data
-@ApiModel("鐢靛櫒绫绘搷浣滄棩蹇�")
-@TableName("`yw_electrical_log`")
-public class YwElectricalLog extends LoginUserModel {
+@TableName("yw_electrical_log")
+@ApiModel(value = "鐢靛櫒绫绘搷浣滄棩蹇楀疄浣撶被")
+public class YwElectricalLog  extends LoginUserModel {
 
+    @ApiModelProperty("涓婚敭")
+    @ExcelColumn(name="涓婚敭",index=1 ,width=10)
     @TableId(type = IdType.AUTO)
-    @ApiModelProperty(value = "涓婚敭", example = "1")
-    @ExcelColumn(name = "涓婚敭")
     private Integer id;
-
-    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
-    @ExcelColumn(name = "鍒涘缓浜虹紪鐮�")
+    @ApiModelProperty("鍒涘缓浜虹紪鐮�")
+    @ExcelColumn(name="鍒涘缓浜虹紪鐮�",index=2 ,width=10)
     private Integer creator;
-
-    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
-    @ExcelColumn(name = "鍒涘缓鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("鍒涘缓鏃堕棿")
+    @ExcelColumn(name="鍒涘缓鏃堕棿",index=3 ,width=10)
     private Date createDate;
-
-    @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
-    @ExcelColumn(name = "鏇存柊浜虹紪鐮�")
+    @ApiModelProperty("鏇存柊浜虹紪鐮�")
+    @ExcelColumn(name="鏇存柊浜虹紪鐮�",index=4 ,width=10)
     private Integer editor;
-
-    @ApiModelProperty(value = "鏇存柊鏃堕棿")
-    @ExcelColumn(name = "鏇存柊鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("鏇存柊鏃堕棿")
+    @ExcelColumn(name="鏇存柊鏃堕棿",index=5 ,width=10)
     private Date editDate;
-
-    @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "0")
-    @ExcelColumn(name = "鏄惁鍒犻櫎0鍚� 1鏄�")
+    @ApiModelProperty("鏄惁鍒犻櫎0鍚� 1鏄�")
+    @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�",index=6 ,width=10)
     private Integer isdeleted;
-
-    @ApiModelProperty(value = "澶囨敞")
-    @ExcelColumn(name = "澶囨敞")
+    @ApiModelProperty("澶囨敞")
+    @ExcelColumn(name="澶囨敞",index=7 ,width=10)
     private String remark;
-
-    @ApiModelProperty(value = "璁惧绫诲瀷 0鐢佃〃 1绌鸿皟", example = "0")
-    @ExcelColumn(name = "璁惧绫诲瀷")
+    @ApiModelProperty("璁惧绫诲瀷 0鐢佃〃 1绌鸿皟")
+    @ExcelColumn(name="璁惧绫诲瀷 0鐢佃〃 1绌鸿皟",index=8 ,width=10)
     private Integer deviceType;
-
-    @ApiModelProperty(value = "绫诲瀷 0璋冪敤 1鎺ㄩ�佹帴鍙�", example = "0")
-    @ExcelColumn(name = "绫诲瀷")
+    @ApiModelProperty("绫诲瀷 0璋冪敤 1鎺ㄩ�佹帴鍙�")
+    @ExcelColumn(name="绫诲瀷 0璋冪敤 1鎺ㄩ�佹帴鍙�",index=9 ,width=10)
     private Integer type;
-
-    @ApiModelProperty(value = "鎺ュ彛鍚嶇О")
-    @ExcelColumn(name = "鎺ュ彛鍚嶇О")
+    @ApiModelProperty("鎺ュ彛鍚嶇О")
+    @ExcelColumn(name="鎺ュ彛鍚嶇О",index=10 ,width=10)
     private String name;
-
-    @ApiModelProperty(value = "鍦板潃淇℃伅")
-    @ExcelColumn(name = "鍦板潃淇℃伅")
+    @ApiModelProperty("鍦板潃淇℃伅")
+    @ExcelColumn(name="鍦板潃淇℃伅",index=11 ,width=10)
     private String url;
-
-    @ApiModelProperty(value = "璇锋眰鍙傛暟")
-    @ExcelColumn(name = "璇锋眰鍙傛暟")
+    @ApiModelProperty("璇锋眰鍙傛暟")
+    @ExcelColumn(name="璇锋眰鍙傛暟",index=12 ,width=10)
     private String request;
-
-    @ApiModelProperty(value = "鍝嶅簲鍙傛暟")
-    @ExcelColumn(name = "鍝嶅簲鍙傛暟")
-    private String reponse;
-
-    @ApiModelProperty(value = "璋冪敤缁撴灉 0鎴愬姛 1澶辫触", example = "0")
-    @ExcelColumn(name = "璋冪敤缁撴灉")
+    @ApiModelProperty("鍝嶅簲鍙傛暟")
+    @ExcelColumn(name="鍝嶅簲鍙傛暟",index=13 ,width=10)
+    private String repose;
+    @ApiModelProperty("璋冪敤缁撴灉 0鎴愬姛 1澶辫触")
+    @ExcelColumn(name="璋冪敤缁撴灉 0鎴愬姛 1澶辫触",index=14 ,width=10)
     private Integer success;
-
-    @ApiModelProperty(value = "鍏宠仈瀵硅薄缂栫爜锛堝涓敤鑻辨枃閫楀彿闅斿紑锛�")
-    @ExcelColumn(name = "鍏宠仈瀵硅薄缂栫爜")
+    @ApiModelProperty("鍏宠仈瀵硅薄缂栫爜锛堝涓敤鑻辨枃閫楀彿闅斿紑锛�")
+    @ExcelColumn(name="鍏宠仈瀵硅薄缂栫爜锛堝涓敤鑻辨枃閫楀彿闅斿紑锛�",index=15 ,width=10)
     private String objId;
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalParam.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalParam.java
new file mode 100644
index 0000000..60e72b5
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalParam.java
@@ -0,0 +1,79 @@
+package com.doumee.dao.business.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import  com.doumee.core.annotation.excel.ExcelColumn;
+import  com.doumee.core.model.LoginUserModel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+import java.math.BigDecimal;
+/**
+ * 鐢佃〃鍙傛暟Model瀹氫箟
+ */
+@Data
+@TableName("yw_electrical_param")
+@ApiModel(value = "鐢佃〃鍙傛暟瀹炰綋绫�")
+public class YwElectricalParam  extends LoginUserModel {
+
+    @ApiModelProperty("閰嶇疆鍚嶇О鍏抽敭瀛楋紙鏌ヨ鐢級")
+    @TableField(exist = false)
+    private String nameKeyword;
+
+    @ApiModelProperty("涓婚敭")
+    @ExcelColumn(name="涓婚敭",index=1 ,width=10)
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+    @ApiModelProperty("鍒涘缓浜虹紪鐮�")
+    @ExcelColumn(name="鍒涘缓浜虹紪鐮�",index=2 ,width=10)
+    private Integer creator;
+    @ApiModelProperty("鍒涘缓鏃堕棿")
+    @ExcelColumn(name="鍒涘缓鏃堕棿",index=3 ,width=10)
+    private Date createDate;
+    @ApiModelProperty("鏇存柊浜虹紪鐮�")
+    @ExcelColumn(name="鏇存柊浜虹紪鐮�",index=4 ,width=10)
+    private Integer edirot;
+    @ApiModelProperty("鏇存柊鏃堕棿")
+    @ExcelColumn(name="鏇存柊鏃堕棿",index=5 ,width=10)
+    private Date editDate;
+    @ApiModelProperty("鏄惁鍒犻櫎0鍚� 1鏄�")
+    @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�",index=6 ,width=10)
+    private Integer isdeleted;
+    @ApiModelProperty("澶囨敞")
+    @ExcelColumn(name="澶囨敞",index=7 ,width=10)
+    private String remark;
+    @ApiModelProperty("鍚嶇О")
+    @ExcelColumn(name="鍚嶇О",index=8 ,width=10)
+    private String name;
+    @ApiModelProperty("閫忔敮閲戦锛堝厓锛�")
+    @ExcelColumn(name="閫忔敮閲戦锛堝厓锛�",index=9 ,width=10)
+    private BigDecimal tzMoney;
+    @ApiModelProperty("涓�绾ф姤璀﹂噾棰濓紙鍏冿級")
+    @ExcelColumn(name="涓�绾ф姤璀﹂噾棰濓紙鍏冿級",index=10 ,width=10)
+    private BigDecimal yjbjMoney;
+    @ApiModelProperty("浜岀骇鎶ヨ閲戦锛堝厓锛�")
+    @ExcelColumn(name="浜岀骇鎶ヨ閲戦锛堝厓锛�",index=11 ,width=10)
+    private BigDecimal ejbjMoney;
+    @ApiModelProperty("璐熻嵎闄愬埗鍔熺巼锛圞W锛�")
+    @ExcelColumn(name="璐熻嵎闄愬埗鍔熺巼锛圞W锛�",index=12 ,width=10)
+    private BigDecimal limitFhgl;
+    @ApiModelProperty("瓒呰礋鑽峰欢鏃堕棿锛堝垎閽燂級")
+    @ExcelColumn(name="瓒呰礋鑽峰欢鏃堕棿锛堝垎閽燂級",index=13 ,width=10)
+    private Integer limitFhTime;
+    @ApiModelProperty("鐢典环锛堝厓锛�")
+    @ExcelColumn(name="鐢典环锛堝厓锛�",index=14 ,width=10)
+    private BigDecimal price;
+    @ApiModelProperty("鐘舵�侊細0=姝e父锛�1=绂佺敤")
+    @ExcelColumn(name="鐘舵�侊細0=姝e父锛�1=绂佺敤",index=15 ,width=10)
+    private Integer status;
+    @ApiModelProperty("鍩虹鐢典环锛堝厓锛�")
+    @ExcelColumn(name="鍩虹鐢典环锛堝厓锛�",index=16 ,width=10)
+    private BigDecimal basePrice;
+    @ApiModelProperty("闄勫姞鍗曚环锛堝厓锛�")
+    @ExcelColumn(name="闄勫姞鍗曚环锛堝厓锛�",index=17 ,width=10)
+    private BigDecimal extraPrice;
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalRoom.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalRoom.java
index 69fd1b7..9843e35 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalRoom.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalRoom.java
@@ -73,7 +73,17 @@
     @TableField(exist = false)
     private String roomName;
 
+    @TableField(exist = false)
+    private String buildingName;
+
+    @TableField(exist = false)
+    private String floorName;
+
     @ApiModelProperty(value = "璁惧鍚嶇О")
     @TableField(exist = false)
     private String objName;
+
+    @ApiModelProperty(value = "鎴块棿缂栧彿")
+    @TableField(exist = false)
+    private String roomNum;
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalWarning.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalWarning.java
new file mode 100644
index 0000000..19a6695
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwElectricalWarning.java
@@ -0,0 +1,103 @@
+package com.doumee.dao.business.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 鏅鸿兘鐢佃〃鎶ヨ璁板綍
+ */
+@Data
+@TableName("yw_electrical_warning")
+@ApiModel("鏅鸿兘鐢佃〃鎶ヨ璁板綍")
+public class YwElectricalWarning extends LoginUserModel {
+
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty("涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty("鍒涘缓浜虹紪鐮�")
+    private Integer creator;
+
+    @ApiModelProperty("鍒涘缓鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createDate;
+
+    @ApiModelProperty("鏇存柊浜虹紪鐮�")
+    private Integer editor;
+
+    @ApiModelProperty("鏇存柊鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date editDate;
+
+    @ApiModelProperty("鏄惁鍒犻櫎0鍚� 1鏄�")
+    private Integer isdeleted;
+
+    @ApiModelProperty("0=鐢佃〃 1=姘磋〃 9=閲囬泦鍣�")
+    private Integer deviceType;
+
+    @ApiModelProperty("绗笁鏂硅澶囨。妗圛D")
+    private String deviceId;
+
+    @ApiModelProperty("鍏宠仈 yw_electrical.id")
+    private Integer electricalId;
+
+    @ExcelColumn(name = "鐢佃〃鍦板潃")
+    @ApiModelProperty("琛ㄥ彿鎴栭噰闆嗗櫒鍙�")
+    private String deviceAddress;
+
+    @ApiModelProperty("鎶ヨ浜嬩欢id")
+    private Integer warningDefId;
+
+    @ExcelColumn(name = "瑙﹀彂鏃堕棿")
+    @ApiModelProperty("浜嬩欢瑙﹀彂鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date startTime;
+
+    @ExcelColumn(name = "鎶ヨ璇︽儏")
+    @ApiModelProperty("鎶ヨ鍐呭")
+    private String msg;
+
+    @TableField(exist = false)
+    @ExcelColumn(name = "鐢佃〃鍚嶇О")
+    @ApiModelProperty("鐢佃〃鍚嶇О")
+    private String electricalName;
+
+    @TableField(exist = false)
+    @ExcelColumn(name = "缁戝畾鎴块棿")
+    @ApiModelProperty("缁戝畾鎴块棿")
+    private String roomNames;
+
+    @TableField(exist = false)
+    @ExcelColumn(name = "鎶ヨ椤�")
+    @ApiModelProperty("鎶ヨ椤瑰悕绉�")
+    private String warningName;
+
+    @TableField(exist = false)
+    @ExcelColumn(name = "鎺掓煡鎻愮ず")
+    @ApiModelProperty("鎺掓煡鎻愮ず")
+    private String warningInfo;
+
+    @TableField(exist = false)
+    @ApiModelProperty("鐢佃〃淇℃伅鎼滅储锛堝悕绉�/琛ㄥ彿锛�")
+    private String meterKeyword;
+
+    @TableField(exist = false)
+    @ApiModelProperty("鎶ヨ寮�濮嬫椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date startTimeBegin;
+
+    @TableField(exist = false)
+    @ApiModelProperty("鎶ヨ缁撴潫鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date startTimeEnd;
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalChargeService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalChargeService.java
new file mode 100644
index 0000000..186b949
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalChargeService.java
@@ -0,0 +1,111 @@
+package com.doumee.service.business;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.YwElectricalCharge;
+import java.util.List;
+
+import com.doumee.core.model.LoginUserInfo;
+/**
+ * 鐢佃〃鍏呭�艰褰昐ervice瀹氫箟
+ * @author doumee
+ * @date 2026-05-20 14:59:06
+ */
+public interface YwElectricalChargeService {
+
+    /**
+     * 鍒涘缓
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(YwElectricalCharge model);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id, LoginUserInfo user);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param model 瀹炰綋瀵硅薄
+     */
+    void delete(YwElectricalCharge model);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param model 瀹炰綋瀵硅薄
+     */
+    void updateById(YwElectricalCharge model);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param model 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<YwElectricalCharge> model);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return model
+     */
+    YwElectricalCharge findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return YwElectricalCharge
+     */
+    YwElectricalCharge findOne(YwElectricalCharge model);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return List<YwElectricalCharge>
+     */
+    List<YwElectricalCharge> findList(YwElectricalCharge model);
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<YwElectricalCharge>
+     */
+    PageData<YwElectricalCharge> findPage(PageWrap<YwElectricalCharge> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(YwElectricalCharge model);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalDataService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalDataService.java
new file mode 100644
index 0000000..96dcc0e
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalDataService.java
@@ -0,0 +1,111 @@
+package com.doumee.service.business;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.YwElectricalData;
+import java.util.List;
+
+import com.doumee.core.model.LoginUserInfo;
+/**
+ * 鐢佃〃鎶勮〃鏁版嵁Service瀹氫箟
+ * @author doumee
+ * @date 2026-05-20 14:59:07
+ */
+public interface YwElectricalDataService {
+
+    /**
+     * 鍒涘缓
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(YwElectricalData model);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id, LoginUserInfo user);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param model 瀹炰綋瀵硅薄
+     */
+    void delete(YwElectricalData model);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param model 瀹炰綋瀵硅薄
+     */
+    void updateById(YwElectricalData model);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param model 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<YwElectricalData> model);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return model
+     */
+    YwElectricalData findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return YwElectricalData
+     */
+    YwElectricalData findOne(YwElectricalData model);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return List<YwElectricalData>
+     */
+    List<YwElectricalData> findList(YwElectricalData model);
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<YwElectricalData>
+     */
+    PageData<YwElectricalData> findPage(PageWrap<YwElectricalData> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(YwElectricalData model);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalLogService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalLogService.java
index 4e4ef1e..a9b9059 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalLogService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalLogService.java
@@ -1,21 +1,111 @@
 package com.doumee.service.business;
 
-import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.YwElectricalLog;
 import java.util.List;
 
+import com.doumee.core.model.LoginUserInfo;
 /**
  * 鐢靛櫒绫绘搷浣滄棩蹇桽ervice瀹氫箟
- * @author renkang
- * @date 2026/04/03
+ * @author doumee
+ * @date 2026-05-20 14:59:07
  */
 public interface YwElectricalLogService {
-    Integer create(YwElectricalLog ywElectricalLog);
+
+    /**
+     * 鍒涘缓
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(YwElectricalLog model);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
     void deleteById(Integer id, LoginUserInfo user);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param model 瀹炰綋瀵硅薄
+     */
+    void delete(YwElectricalLog model);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
     void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user);
-    void updateById(YwElectricalLog ywElectricalLog);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param model 瀹炰綋瀵硅薄
+     */
+    void updateById(YwElectricalLog model);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param model 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<YwElectricalLog> model);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return model
+     */
     YwElectricalLog findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return YwElectricalLog
+     */
+    YwElectricalLog findOne(YwElectricalLog model);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return List<YwElectricalLog>
+     */
+    List<YwElectricalLog> findList(YwElectricalLog model);
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<YwElectricalLog>
+     */
     PageData<YwElectricalLog> findPage(PageWrap<YwElectricalLog> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(YwElectricalLog model);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalParamService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalParamService.java
new file mode 100644
index 0000000..74df575
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalParamService.java
@@ -0,0 +1,111 @@
+package com.doumee.service.business;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.YwElectricalParam;
+import java.util.List;
+
+import com.doumee.core.model.LoginUserInfo;
+/**
+ * 鐢佃〃璁惧淇℃伅Service瀹氫箟
+ * @author doumee
+ * @date 2026-05-20 14:59:07
+ */
+public interface YwElectricalParamService {
+
+    /**
+     * 鍒涘缓
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(YwElectricalParam model);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id, LoginUserInfo user);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param model 瀹炰綋瀵硅薄
+     */
+    void delete(YwElectricalParam model);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param model 瀹炰綋瀵硅薄
+     */
+    void updateById(YwElectricalParam model);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param model 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<YwElectricalParam> model);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return model
+     */
+    YwElectricalParam findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return YwElectricalParam
+     */
+    YwElectricalParam findOne(YwElectricalParam model);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return List<YwElectricalParam>
+     */
+    List<YwElectricalParam> findList(YwElectricalParam model);
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<YwElectricalParam>
+     */
+    PageData<YwElectricalParam> findPage(PageWrap<YwElectricalParam> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(YwElectricalParam model);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalService.java
index 171af34..157a795 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalService.java
@@ -1,21 +1,118 @@
 package com.doumee.service.business;
 
-import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.Device;
 import com.doumee.dao.business.model.YwElectrical;
 import java.util.List;
 
+import com.doumee.core.model.LoginUserInfo;
 /**
  * 鐢佃〃璁惧淇℃伅Service瀹氫箟
- * @author renkang
- * @date 2026/04/03
+ * @author doumee
+ * @date 2026-05-20 14:59:06
  */
 public interface YwElectricalService {
-    Integer create(YwElectrical ywElectrical);
+
+    /**
+     * 鍒涘缓
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(YwElectrical model);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
     void deleteById(Integer id, LoginUserInfo user);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param model 瀹炰綋瀵硅薄
+     */
+    void delete(YwElectrical model);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
     void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user);
-    void updateById(YwElectrical ywElectrical);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param model 瀹炰綋瀵硅薄
+     */
+    void updateById(YwElectrical model);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param model 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<YwElectrical> model);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return model
+     */
     YwElectrical findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return YwElectrical
+     */
+    YwElectrical findOne(YwElectrical model);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return List<YwElectrical>
+     */
+    List<YwElectrical> findList(YwElectrical model);
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<YwElectrical>
+     */
     PageData<YwElectrical> findPage(PageWrap<YwElectrical> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param model 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(YwElectrical model);
+
+    String syncAll(YwElectrical ywElectrical);
+
+    void controlDo(Device param);
+
+    void getElectricalStatus();
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalWarningService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalWarningService.java
new file mode 100644
index 0000000..ab39583
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwElectricalWarningService.java
@@ -0,0 +1,22 @@
+package com.doumee.service.business;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.dto.WarningDefOptionDTO;
+import com.doumee.dao.business.model.YwElectricalWarning;
+
+import java.util.List;
+
+/**
+ * 鏅鸿兘鐢佃〃鎶ヨ璁板綍Service
+ */
+public interface YwElectricalWarningService {
+
+    PageData<YwElectricalWarning> findPage(PageWrap<YwElectricalWarning> pageWrap);
+
+    long count(YwElectricalWarning model);
+
+    String syncFromPlatform();
+
+    List<WarningDefOptionDTO> listWarningDefOptions();
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java
index 69ddf41..c308645 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java
@@ -434,10 +434,7 @@
         return ywDeviceStatusDataVO;
 
     }
-
-
-
-
+  
 
 }
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalChargeServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalChargeServiceImpl.java
new file mode 100644
index 0000000..549a29a
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalChargeServiceImpl.java
@@ -0,0 +1,162 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.YwElectricalCharge;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.YwElectricalChargeMapper;
+import com.doumee.service.business.YwElectricalChargeService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.core.utils.Constants;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.doumee.core.model.LoginUserInfo;
+import java.util.List;
+
+/**
+ * 鐢佃〃鍏呭�艰褰昐ervice瀹炵幇
+ * @author doumee
+ * @date 2026-05-20 14:59:06
+ */
+@Service
+public class YwElectricalChargeServiceImpl implements YwElectricalChargeService {
+
+    @Autowired
+    private YwElectricalChargeMapper ywElectricalChargeMapper;
+
+    @Override
+    public Integer create(YwElectricalCharge ywElectricalCharge) {
+        ywElectricalChargeMapper.insert(ywElectricalCharge);
+        return ywElectricalCharge.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        ywElectricalChargeMapper.deleteById(id);
+    }
+  @Override
+    public void deleteByIdInBatch(List<Integer> ids ) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        for(Integer id :ids){
+            deleteById(id);
+        }
+    }
+    @Override
+    public void deleteById(Integer id, LoginUserInfo user) {
+        ywElectricalChargeMapper.deleteById(id);
+    }
+  @Override
+    public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+       for(Integer id :ids){
+            deleteById(id,user);
+        }
+    }
+    @Override
+    public void delete(YwElectricalCharge ywElectricalCharge) {
+        UpdateWrapper<YwElectricalCharge> deleteWrapper = new UpdateWrapper<>(ywElectricalCharge);
+        ywElectricalChargeMapper.delete(deleteWrapper);
+    }
+
+
+    @Override
+    public void updateById(YwElectricalCharge ywElectricalCharge) {
+        ywElectricalChargeMapper.updateById(ywElectricalCharge);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<YwElectricalCharge> ywElectricalCharges) {
+        if (CollectionUtils.isEmpty(ywElectricalCharges)) {
+            return;
+        }
+        for (YwElectricalCharge ywElectricalCharge: ywElectricalCharges) {
+            this.updateById(ywElectricalCharge);
+        }
+    }
+
+    @Override
+    public YwElectricalCharge findById(Integer id) {
+        return ywElectricalChargeMapper.selectById(id);
+    }
+
+    @Override
+    public YwElectricalCharge findOne(YwElectricalCharge ywElectricalCharge) {
+        QueryWrapper<YwElectricalCharge> wrapper = new QueryWrapper<>(ywElectricalCharge).last("limit 1");
+        return ywElectricalChargeMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<YwElectricalCharge> findList(YwElectricalCharge ywElectricalCharge) {
+        QueryWrapper<YwElectricalCharge> wrapper = new QueryWrapper<>(ywElectricalCharge);
+        return ywElectricalChargeMapper.selectList(wrapper);
+    }
+  
+    @Override
+    public PageData<YwElectricalCharge> findPage(PageWrap<YwElectricalCharge> pageWrap) {
+        IPage<YwElectricalCharge> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        MPJLambdaWrapper<YwElectricalCharge> queryWrapper = new MPJLambdaWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        queryWrapper.eq(YwElectricalCharge::getIsdeleted, Constants.ZERO);
+        queryWrapper.eq(YwElectricalCharge::getType, Constants.ZERO);
+        if (StringUtils.isNotBlank(pageWrap.getModel().getMeterKeyword())) {
+            String kw = pageWrap.getModel().getMeterKeyword().trim();
+            queryWrapper.and(w -> w.like(YwElectricalCharge::getName, kw).or().like(YwElectricalCharge::getAddress, kw));
+        }
+        queryWrapper.eq(pageWrap.getModel().getId() != null,YwElectricalCharge::getId, pageWrap.getModel().getId());
+        queryWrapper.eq(pageWrap.getModel().getCreator() != null,YwElectricalCharge::getCreator, pageWrap.getModel().getCreator());
+        if (pageWrap.getModel().getCreateDate() != null) {
+            queryWrapper.ge(YwElectricalCharge::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+            queryWrapper.le(YwElectricalCharge::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+        }
+        queryWrapper.eq(pageWrap.getModel().getEditor() != null,YwElectricalCharge::getEditor, pageWrap.getModel().getEditor());
+        if (pageWrap.getModel().getEditDate() != null) {
+            queryWrapper.ge(YwElectricalCharge::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+            queryWrapper.le(YwElectricalCharge::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+        }
+        queryWrapper.eq(pageWrap.getModel().getIsdeleted() != null,YwElectricalCharge::getIsdeleted, pageWrap.getModel().getIsdeleted());
+        queryWrapper.eq(pageWrap.getModel().getRemark() != null,YwElectricalCharge::getRemark, pageWrap.getModel().getRemark());
+        queryWrapper.eq(pageWrap.getModel().getType() != null,YwElectricalCharge::getType, pageWrap.getModel().getType());
+        queryWrapper.eq(pageWrap.getModel().getRoomIds() != null,YwElectricalCharge::getRoomIds, pageWrap.getModel().getRoomIds());
+        queryWrapper.eq(pageWrap.getModel().getObjId() != null,YwElectricalCharge::getObjId, pageWrap.getModel().getObjId());
+        queryWrapper.eq(pageWrap.getModel().getAddress() != null,YwElectricalCharge::getAddress, pageWrap.getModel().getAddress());
+        queryWrapper.eq(pageWrap.getModel().getName() != null,YwElectricalCharge::getName, pageWrap.getModel().getName());
+        queryWrapper.eq(pageWrap.getModel().getCompanyId() != null,YwElectricalCharge::getCompanyId, pageWrap.getModel().getCompanyId());
+        queryWrapper.eq(pageWrap.getModel().getCustomerId() != null,YwElectricalCharge::getCustomerId, pageWrap.getModel().getCustomerId());
+        if (pageWrap.getModel().getIncomeTime() != null) {
+            queryWrapper.ge(YwElectricalCharge::getIncomeTime, Utils.Date.getStart(pageWrap.getModel().getIncomeTime()));
+            queryWrapper.le(YwElectricalCharge::getIncomeTime, Utils.Date.getEnd(pageWrap.getModel().getIncomeTime()));
+        }
+        queryWrapper.eq(pageWrap.getModel().getMoney() != null,YwElectricalCharge::getMoney, pageWrap.getModel().getMoney());
+        queryWrapper.eq(pageWrap.getModel().getStatus() != null,YwElectricalCharge::getStatus, pageWrap.getModel().getStatus());
+        queryWrapper.eq(pageWrap.getModel().getOprId() != null,YwElectricalCharge::getOprId, pageWrap.getModel().getOprId());
+        queryWrapper.eq(pageWrap.getModel().getCId() != null,YwElectricalCharge::getCId, pageWrap.getModel().getCId());
+        queryWrapper.eq(pageWrap.getModel().getParams() != null,YwElectricalCharge::getParams, pageWrap.getModel().getParams());
+        if (pageWrap.getModel().getStatusTime() != null) {
+            queryWrapper.ge(YwElectricalCharge::getStatusTime, Utils.Date.getStart(pageWrap.getModel().getStatusTime()));
+            queryWrapper.le(YwElectricalCharge::getStatusTime, Utils.Date.getEnd(pageWrap.getModel().getStatusTime()));
+        }
+        queryWrapper.eq(pageWrap.getModel().getStatusInfo() != null,YwElectricalCharge::getStatusInfo, pageWrap.getModel().getStatusInfo());
+        queryWrapper.eq(pageWrap.getModel().getRoomNames() != null,YwElectricalCharge::getRoomNames, pageWrap.getModel().getRoomNames());
+        queryWrapper.eq(pageWrap.getModel().getAccountId() != null,YwElectricalCharge::getAccountId, pageWrap.getModel().getAccountId());
+        queryWrapper.eq(pageWrap.getModel().getBanlance() != null,YwElectricalCharge::getBanlance, pageWrap.getModel().getBanlance());
+        queryWrapper.eq(pageWrap.getModel().getParamId() != null,YwElectricalCharge::getParamId, pageWrap.getModel().getParamId());
+         queryWrapper.orderByDesc(YwElectricalCharge::getId);
+         IPage<YwElectricalCharge> result = ywElectricalChargeMapper.selectJoinPage(page, YwElectricalCharge.class,queryWrapper);
+         return PageData.from(result);
+    }
+    @Override
+    public long count(YwElectricalCharge ywElectricalCharge) {
+        QueryWrapper<YwElectricalCharge> wrapper = new QueryWrapper<>(ywElectricalCharge);
+        return ywElectricalChargeMapper.selectCount(wrapper);
+    }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalDataServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalDataServiceImpl.java
new file mode 100644
index 0000000..69d376e
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalDataServiceImpl.java
@@ -0,0 +1,176 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.YwElectricalData;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.YwElectricalDataMapper;
+import com.doumee.service.business.YwElectricalDataService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.doumee.core.model.LoginUserInfo;
+import java.util.List;
+
+/**
+ * 鐢佃〃鎶勮〃鏁版嵁Service瀹炵幇
+ * @author doumee
+ * @date 2026-05-20 14:59:07
+ */
+@Service
+public class YwElectricalDataServiceImpl implements YwElectricalDataService {
+
+    @Autowired
+    private YwElectricalDataMapper ywElectricalDataMapper;
+
+    @Override
+    public Integer create(YwElectricalData ywElectricalData) {
+        ywElectricalDataMapper.insert(ywElectricalData);
+        return ywElectricalData.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        ywElectricalDataMapper.deleteById(id);
+    }
+  @Override
+    public void deleteByIdInBatch(List<Integer> ids ) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        for(Integer id :ids){
+            deleteById(id);
+        }
+    }
+    @Override
+    public void deleteById(Integer id, LoginUserInfo user) {
+        ywElectricalDataMapper.deleteById(id);
+    }
+  @Override
+    public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+       for(Integer id :ids){
+            deleteById(id,user);
+        }
+    }
+    @Override
+    public void delete(YwElectricalData ywElectricalData) {
+        UpdateWrapper<YwElectricalData> deleteWrapper = new UpdateWrapper<>(ywElectricalData);
+        ywElectricalDataMapper.delete(deleteWrapper);
+    }
+
+
+    @Override
+    public void updateById(YwElectricalData ywElectricalData) {
+        ywElectricalDataMapper.updateById(ywElectricalData);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<YwElectricalData> ywElectricalDatas) {
+        if (CollectionUtils.isEmpty(ywElectricalDatas)) {
+            return;
+        }
+        for (YwElectricalData ywElectricalData: ywElectricalDatas) {
+            this.updateById(ywElectricalData);
+        }
+    }
+
+    @Override
+    public YwElectricalData findById(Integer id) {
+        return ywElectricalDataMapper.selectById(id);
+    }
+
+    @Override
+    public YwElectricalData findOne(YwElectricalData ywElectricalData) {
+        QueryWrapper<YwElectricalData> wrapper = new QueryWrapper<>(ywElectricalData).last("limit 1");
+        return ywElectricalDataMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<YwElectricalData> findList(YwElectricalData ywElectricalData) {
+        QueryWrapper<YwElectricalData> wrapper = new QueryWrapper<>(ywElectricalData);
+        return ywElectricalDataMapper.selectList(wrapper);
+    }
+  
+    @Override
+    public PageData<YwElectricalData> findPage(PageWrap<YwElectricalData> pageWrap) {
+        IPage<YwElectricalData> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        MPJLambdaWrapper<YwElectricalData> queryWrapper = new MPJLambdaWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        queryWrapper.eq(pageWrap.getModel().getId() != null,YwElectricalData::getId, pageWrap.getModel().getId());
+        queryWrapper.eq(pageWrap.getModel().getCreator() != null,YwElectricalData::getCreator, pageWrap.getModel().getCreator());
+        if (pageWrap.getModel().getCreateDate() != null) {
+            queryWrapper.ge(YwElectricalData::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+            queryWrapper.le(YwElectricalData::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+        }
+        queryWrapper.eq(pageWrap.getModel().getEditor() != null,YwElectricalData::getEditor, pageWrap.getModel().getEditor());
+        if (pageWrap.getModel().getEditDate() != null) {
+            queryWrapper.ge(YwElectricalData::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+            queryWrapper.le(YwElectricalData::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+        }
+        queryWrapper.eq(pageWrap.getModel().getIsdeleted() != null,YwElectricalData::getIsdeleted, pageWrap.getModel().getIsdeleted());
+        queryWrapper.eq(pageWrap.getModel().getRemark() != null,YwElectricalData::getRemark, pageWrap.getModel().getRemark());
+        queryWrapper.eq(pageWrap.getModel().getDeviceId() != null,YwElectricalData::getDeviceId, pageWrap.getModel().getDeviceId());
+        queryWrapper.eq(pageWrap.getModel().getAddTime() != null,YwElectricalData::getAddTime, pageWrap.getModel().getAddTime());
+        queryWrapper.eq(pageWrap.getModel().getJsfs() != null,YwElectricalData::getJsfs, pageWrap.getModel().getJsfs());
+        queryWrapper.eq(pageWrap.getModel().getFls() != null,YwElectricalData::getFls, pageWrap.getModel().getFls());
+        queryWrapper.eq(pageWrap.getModel().getXs() != null,YwElectricalData::getXs, pageWrap.getModel().getXs());
+        queryWrapper.eq(pageWrap.getModel().getZyje() != null,YwElectricalData::getZyje, pageWrap.getModel().getZyje());
+        queryWrapper.eq(pageWrap.getModel().getYe() != null,YwElectricalData::getYe, pageWrap.getModel().getYe());
+        queryWrapper.eq(pageWrap.getModel().getCountnum() != null,YwElectricalData::getCountnum, pageWrap.getModel().getCountnum());
+        queryWrapper.eq(pageWrap.getModel().getDqdj() != null,YwElectricalData::getDqdj, pageWrap.getModel().getDqdj());
+        queryWrapper.eq(pageWrap.getModel().getZhygzdl() != null,YwElectricalData::getZhygzdl, pageWrap.getModel().getZhygzdl());
+        queryWrapper.eq(pageWrap.getModel().getZqyl() != null,YwElectricalData::getZqyl, pageWrap.getModel().getZqyl());
+        queryWrapper.eq(pageWrap.getModel().getAxdl() != null,YwElectricalData::getAxdl, pageWrap.getModel().getAxdl());
+        queryWrapper.eq(pageWrap.getModel().getBxdl() != null,YwElectricalData::getBxdl, pageWrap.getModel().getBxdl());
+        queryWrapper.eq(pageWrap.getModel().getCxdl() != null,YwElectricalData::getCxdl, pageWrap.getModel().getCxdl());
+        queryWrapper.eq(pageWrap.getModel().getAxdy() != null,YwElectricalData::getAxdy, pageWrap.getModel().getAxdy());
+        queryWrapper.eq(pageWrap.getModel().getBxdy() != null,YwElectricalData::getBxdy, pageWrap.getModel().getBxdy());
+        queryWrapper.eq(pageWrap.getModel().getCxdy() != null,YwElectricalData::getCxdy, pageWrap.getModel().getCxdy());
+        queryWrapper.eq(pageWrap.getModel().getZyggl() != null,YwElectricalData::getZyggl, pageWrap.getModel().getZyggl());
+        queryWrapper.eq(pageWrap.getModel().getAxyggl() != null,YwElectricalData::getAxyggl, pageWrap.getModel().getAxyggl());
+        queryWrapper.eq(pageWrap.getModel().getBxyggl() != null,YwElectricalData::getBxyggl, pageWrap.getModel().getBxyggl());
+        queryWrapper.eq(pageWrap.getModel().getCxyggl() != null,YwElectricalData::getCxyggl, pageWrap.getModel().getCxyggl());
+        queryWrapper.eq(pageWrap.getModel().getZwggl() != null,YwElectricalData::getZwggl, pageWrap.getModel().getZwggl());
+        queryWrapper.eq(pageWrap.getModel().getAxwggl() != null,YwElectricalData::getAxwggl, pageWrap.getModel().getAxwggl());
+        queryWrapper.eq(pageWrap.getModel().getBxwggl() != null,YwElectricalData::getBxwggl, pageWrap.getModel().getBxwggl());
+        queryWrapper.eq(pageWrap.getModel().getCxwggl() != null,YwElectricalData::getCxwggl, pageWrap.getModel().getCxwggl());
+        queryWrapper.eq(pageWrap.getModel().getZszgl() != null,YwElectricalData::getZszgl, pageWrap.getModel().getZszgl());
+        queryWrapper.eq(pageWrap.getModel().getAxszgl() != null,YwElectricalData::getAxszgl, pageWrap.getModel().getAxszgl());
+        queryWrapper.eq(pageWrap.getModel().getBxszgl() != null,YwElectricalData::getBxszgl, pageWrap.getModel().getBxszgl());
+        queryWrapper.eq(pageWrap.getModel().getCxszgl() != null,YwElectricalData::getCxszgl, pageWrap.getModel().getCxszgl());
+        queryWrapper.eq(pageWrap.getModel().getZglys() != null,YwElectricalData::getZglys, pageWrap.getModel().getZglys());
+        queryWrapper.eq(pageWrap.getModel().getAxglys() != null,YwElectricalData::getAxglys, pageWrap.getModel().getAxglys());
+        queryWrapper.eq(pageWrap.getModel().getBxglys() != null,YwElectricalData::getBxglys, pageWrap.getModel().getBxglys());
+        queryWrapper.eq(pageWrap.getModel().getPl() != null,YwElectricalData::getPl, pageWrap.getModel().getPl());
+        queryWrapper.eq(pageWrap.getModel().getWd() != null,YwElectricalData::getWd, pageWrap.getModel().getWd());
+        queryWrapper.eq(pageWrap.getModel().getDdyy() != null,YwElectricalData::getDdyy, pageWrap.getModel().getDdyy());
+        queryWrapper.eq(pageWrap.getModel().getDbzt() != null,YwElectricalData::getDbzt, pageWrap.getModel().getDbzt());
+        queryWrapper.eq(pageWrap.getModel().getDataId() != null,YwElectricalData::getDataId, pageWrap.getModel().getDataId());
+        queryWrapper.eq(pageWrap.getModel().getConsume() != null,YwElectricalData::getConsume, pageWrap.getModel().getConsume());
+        queryWrapper.eq(pageWrap.getModel().getCid() != null,YwElectricalData::getCid, pageWrap.getModel().getCid());
+        queryWrapper.eq(pageWrap.getModel().getMid() != null,YwElectricalData::getMid, pageWrap.getModel().getMid());
+        queryWrapper.eq(pageWrap.getModel().getAddress() != null,YwElectricalData::getAddress, pageWrap.getModel().getAddress());
+        queryWrapper.eq(pageWrap.getModel().getUid() != null,YwElectricalData::getUid, pageWrap.getModel().getUid());
+        queryWrapper.eq(pageWrap.getModel().getName() != null,YwElectricalData::getName, pageWrap.getModel().getName());
+        queryWrapper.eq(pageWrap.getModel().getFid() != null,YwElectricalData::getFid, pageWrap.getModel().getFid());
+        queryWrapper.eq(pageWrap.getModel().getData() != null,YwElectricalData::getData, pageWrap.getModel().getData());
+        queryWrapper.eq(pageWrap.getModel().getDsp() != null,YwElectricalData::getDsp, pageWrap.getModel().getDsp());
+        queryWrapper.eq(pageWrap.getModel().getRadio() != null,YwElectricalData::getRadio, pageWrap.getModel().getRadio());
+         queryWrapper.orderByDesc(YwElectricalData::getId);
+         IPage<YwElectricalData> result = ywElectricalDataMapper.selectJoinPage(page, YwElectricalData.class,queryWrapper);
+         return PageData.from(result);
+    }
+    @Override
+    public long count(YwElectricalData ywElectricalData) {
+        QueryWrapper<YwElectricalData> wrapper = new QueryWrapper<>(ywElectricalData);
+        return ywElectricalDataMapper.selectCount(wrapper);
+    }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalLogServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalLogServiceImpl.java
index 8881b2e..1454765 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalLogServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalLogServiceImpl.java
@@ -1,34 +1,26 @@
 package com.doumee.service.business.impl;
 
-import com.doumee.core.constants.ResponseStatus;
-import com.doumee.core.exception.BusinessException;
-import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
-import com.doumee.core.utils.Constants;
-import com.doumee.core.utils.DateUtil;
+import com.doumee.dao.business.model.YwElectricalLog;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.YwElectricalLogMapper;
-import com.doumee.dao.business.model.YwElectricalLog;
 import com.doumee.service.business.YwElectricalLogService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.github.yulichang.wrapper.MPJLambdaWrapper;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
-
-import java.util.Date;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.doumee.core.model.LoginUserInfo;
 import java.util.List;
-import java.util.Objects;
 
 /**
  * 鐢靛櫒绫绘搷浣滄棩蹇桽ervice瀹炵幇
- * @author renkang
- * @date 2026/04/03
+ * @author doumee
+ * @date 2026-05-20 14:59:07
  */
 @Service
 public class YwElectricalLogServiceImpl implements YwElectricalLogService {
@@ -38,74 +30,108 @@
 
     @Override
     public Integer create(YwElectricalLog ywElectricalLog) {
-        if (Objects.isNull(ywElectricalLog)
-                || StringUtils.isBlank(ywElectricalLog.getName())) {
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
-        }
-        LoginUserInfo loginUserInfo = ywElectricalLog.getLoginUserInfo();
-        ywElectricalLog.setCreateDate(new Date());
-        ywElectricalLog.setCreator(loginUserInfo.getId());
-        ywElectricalLog.setEditDate(new Date());
-        ywElectricalLog.setEditor(loginUserInfo.getId());
-        ywElectricalLog.setIsdeleted(Constants.ZERO);
         ywElectricalLogMapper.insert(ywElectricalLog);
         return ywElectricalLog.getId();
     }
 
     @Override
-    public void deleteById(Integer id, LoginUserInfo user) {
-        ywElectricalLogMapper.update(new UpdateWrapper<YwElectricalLog>()
-                .lambda()
-                .set(YwElectricalLog::getIsdeleted, Constants.ONE)
-                .set(YwElectricalLog::getEditDate, DateUtil.getCurrDateTime())
-                .set(YwElectricalLog::getEditor, user.getId())
-                .eq(YwElectricalLog::getId, id)
-        );
+    public void deleteById(Integer id) {
+        ywElectricalLogMapper.deleteById(id);
     }
-
+  @Override
+    public void deleteByIdInBatch(List<Integer> ids ) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        for(Integer id :ids){
+            deleteById(id);
+        }
+    }
     @Override
+    public void deleteById(Integer id, LoginUserInfo user) {
+        ywElectricalLogMapper.deleteById(id);
+    }
+  @Override
     public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) {
         if (CollectionUtils.isEmpty(ids)) {
             return;
         }
-        for (Integer id : ids) {
-            this.deleteById(id, user);
+       for(Integer id :ids){
+            deleteById(id,user);
         }
     }
+    @Override
+    public void delete(YwElectricalLog ywElectricalLog) {
+        UpdateWrapper<YwElectricalLog> deleteWrapper = new UpdateWrapper<>(ywElectricalLog);
+        ywElectricalLogMapper.delete(deleteWrapper);
+    }
+
 
     @Override
     public void updateById(YwElectricalLog ywElectricalLog) {
-        if (Objects.isNull(ywElectricalLog) || Objects.isNull(ywElectricalLog.getId())) {
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
-        }
-        LoginUserInfo loginUserInfo = ywElectricalLog.getLoginUserInfo();
-        ywElectricalLog.setEditDate(new Date());
-        ywElectricalLog.setEditor(loginUserInfo.getId());
         ywElectricalLogMapper.updateById(ywElectricalLog);
     }
 
     @Override
-    public YwElectricalLog findById(Integer id) {
-        return ywElectricalLogMapper.selectOne(new QueryWrapper<YwElectricalLog>().lambda()
-                .eq(YwElectricalLog::getId, id)
-                .last(" limit 1 "));
+    public void updateByIdInBatch(List<YwElectricalLog> ywElectricalLogs) {
+        if (CollectionUtils.isEmpty(ywElectricalLogs)) {
+            return;
+        }
+        for (YwElectricalLog ywElectricalLog: ywElectricalLogs) {
+            this.updateById(ywElectricalLog);
+        }
     }
 
+    @Override
+    public YwElectricalLog findById(Integer id) {
+        return ywElectricalLogMapper.selectById(id);
+    }
+
+    @Override
+    public YwElectricalLog findOne(YwElectricalLog ywElectricalLog) {
+        QueryWrapper<YwElectricalLog> wrapper = new QueryWrapper<>(ywElectricalLog).last("limit 1");
+        return ywElectricalLogMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<YwElectricalLog> findList(YwElectricalLog ywElectricalLog) {
+        QueryWrapper<YwElectricalLog> wrapper = new QueryWrapper<>(ywElectricalLog);
+        return ywElectricalLogMapper.selectList(wrapper);
+    }
+  
     @Override
     public PageData<YwElectricalLog> findPage(PageWrap<YwElectricalLog> pageWrap) {
         IPage<YwElectricalLog> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         MPJLambdaWrapper<YwElectricalLog> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
-        YwElectricalLog model = pageWrap.getModel();
-        queryWrapper.selectAll(YwElectricalLog.class)
-                .and(Objects.nonNull(model) && StringUtils.isNotBlank(model.getName()),
-                        i -> i.like(YwElectricalLog::getName, model.getName()))
-                .eq(Objects.nonNull(model) && Objects.nonNull(model.getDeviceType()), YwElectricalLog::getDeviceType, model.getDeviceType())
-                .eq(Objects.nonNull(model) && Objects.nonNull(model.getType()), YwElectricalLog::getType, model.getType())
-                .eq(Objects.nonNull(model) && Objects.nonNull(model.getSuccess()), YwElectricalLog::getSuccess, model.getSuccess())
-                .eq(YwElectricalLog::getIsdeleted, Constants.ZERO)
-                .orderByDesc(YwElectricalLog::getCreateDate);
-        IPage<YwElectricalLog> iPage = ywElectricalLogMapper.selectJoinPage(page, YwElectricalLog.class, queryWrapper);
-        return PageData.from(iPage);
+        queryWrapper.eq(pageWrap.getModel().getId() != null,YwElectricalLog::getId, pageWrap.getModel().getId());
+        queryWrapper.eq(pageWrap.getModel().getCreator() != null,YwElectricalLog::getCreator, pageWrap.getModel().getCreator());
+        if (pageWrap.getModel().getCreateDate() != null) {
+            queryWrapper.ge(YwElectricalLog::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+            queryWrapper.le(YwElectricalLog::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+        }
+        queryWrapper.eq(pageWrap.getModel().getEditor() != null,YwElectricalLog::getEditor, pageWrap.getModel().getEditor());
+        if (pageWrap.getModel().getEditDate() != null) {
+            queryWrapper.ge(YwElectricalLog::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+            queryWrapper.le(YwElectricalLog::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+        }
+        queryWrapper.eq(pageWrap.getModel().getIsdeleted() != null,YwElectricalLog::getIsdeleted, pageWrap.getModel().getIsdeleted());
+        queryWrapper.eq(pageWrap.getModel().getRemark() != null,YwElectricalLog::getRemark, pageWrap.getModel().getRemark());
+        queryWrapper.eq(pageWrap.getModel().getDeviceType() != null,YwElectricalLog::getDeviceType, pageWrap.getModel().getDeviceType());
+        queryWrapper.eq(pageWrap.getModel().getType() != null,YwElectricalLog::getType, pageWrap.getModel().getType());
+        queryWrapper.eq(pageWrap.getModel().getName() != null,YwElectricalLog::getName, pageWrap.getModel().getName());
+        queryWrapper.eq(pageWrap.getModel().getUrl() != null,YwElectricalLog::getUrl, pageWrap.getModel().getUrl());
+        queryWrapper.eq(pageWrap.getModel().getRequest() != null,YwElectricalLog::getRequest, pageWrap.getModel().getRequest());
+        queryWrapper.eq(pageWrap.getModel().getRepose() != null,YwElectricalLog::getRepose, pageWrap.getModel().getRepose());
+        queryWrapper.eq(pageWrap.getModel().getSuccess() != null,YwElectricalLog::getSuccess, pageWrap.getModel().getSuccess());
+        queryWrapper.eq(pageWrap.getModel().getObjId() != null,YwElectricalLog::getObjId, pageWrap.getModel().getObjId());
+         queryWrapper.orderByDesc(YwElectricalLog::getId);
+         IPage<YwElectricalLog> result = ywElectricalLogMapper.selectJoinPage(page, YwElectricalLog.class,queryWrapper);
+         return PageData.from(result);
+    }
+    @Override
+    public long count(YwElectricalLog ywElectricalLog) {
+        QueryWrapper<YwElectricalLog> wrapper = new QueryWrapper<>(ywElectricalLog);
+        return ywElectricalLogMapper.selectCount(wrapper);
     }
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalParamServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalParamServiceImpl.java
new file mode 100644
index 0000000..8c5435b
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalParamServiceImpl.java
@@ -0,0 +1,172 @@
+package com.doumee.service.business.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.YwElectricalParamMapper;
+import com.doumee.dao.business.model.YwElectricalParam;
+import com.doumee.service.business.YwElectricalParamService;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+@Service
+public class YwElectricalParamServiceImpl implements YwElectricalParamService {
+
+    @Autowired
+    private YwElectricalParamMapper ywElectricalParamMapper;
+
+    @Override
+    public Integer create(YwElectricalParam row) {
+        fillPrice(row);
+        fillCreate(row);
+        ywElectricalParamMapper.insert(row);
+        return row.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        ywElectricalParamMapper.deleteById(id);
+    }
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        for (Integer id : ids) {
+            deleteById(id);
+        }
+    }
+
+    @Override
+    public void deleteById(Integer id, LoginUserInfo user) {
+        YwElectricalParam upd = new YwElectricalParam();
+        upd.setId(id);
+        upd.setIsdeleted(Constants.ONE);
+        upd.setEdirot(user.getId());
+        upd.setEditDate(new Date());
+        ywElectricalParamMapper.updateById(upd);
+    }
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        for (Integer id : ids) {
+            deleteById(id, user);
+        }
+    }
+
+    @Override
+    public void delete(YwElectricalParam ywElectricalParam) {
+        UpdateWrapper<YwElectricalParam> deleteWrapper = new UpdateWrapper<>(ywElectricalParam);
+        ywElectricalParamMapper.delete(deleteWrapper);
+    }
+
+    @Override
+    public void updateById(YwElectricalParam row) {
+        if (row == null || row.getId() == null) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        fillPrice(row);
+        if (row.getLoginUserInfo() != null) {
+            row.setEdirot(row.getLoginUserInfo().getId());
+            row.setEditDate(new Date());
+        }
+        ywElectricalParamMapper.updateById(row);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<YwElectricalParam> rows) {
+        if (CollectionUtils.isEmpty(rows)) {
+            return;
+        }
+        for (YwElectricalParam row : rows) {
+            updateById(row);
+        }
+    }
+
+    @Override
+    public YwElectricalParam findById(Integer id) {
+        YwElectricalParam row = ywElectricalParamMapper.selectById(id);
+        if (row == null || Objects.equals(row.getIsdeleted(), Constants.ONE)) {
+            return null;
+        }
+        return row;
+    }
+
+    @Override
+    public YwElectricalParam findOne(YwElectricalParam ywElectricalParam) {
+        QueryWrapper<YwElectricalParam> wrapper = new QueryWrapper<>(ywElectricalParam).last("limit 1");
+        return ywElectricalParamMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<YwElectricalParam> findList(YwElectricalParam ywElectricalParam) {
+        QueryWrapper<YwElectricalParam> wrapper = new QueryWrapper<>();
+        wrapper.lambda().eq(YwElectricalParam::getIsdeleted, Constants.ZERO);
+        if (ywElectricalParam != null && ywElectricalParam.getStatus() != null) {
+            wrapper.lambda().eq(YwElectricalParam::getStatus, ywElectricalParam.getStatus());
+        }
+        wrapper.lambda().orderByDesc(YwElectricalParam::getId);
+        return ywElectricalParamMapper.selectList(wrapper);
+    }
+
+    @Override
+    public PageData<YwElectricalParam> findPage(PageWrap<YwElectricalParam> pageWrap) {
+        IPage<YwElectricalParam> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        MPJLambdaWrapper<YwElectricalParam> queryWrapper = new MPJLambdaWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        queryWrapper.eq(YwElectricalParam::getIsdeleted, Constants.ZERO);
+        if (pageWrap.getModel() != null && StringUtils.isNotBlank(pageWrap.getModel().getNameKeyword())) {
+            queryWrapper.like(YwElectricalParam::getName, pageWrap.getModel().getNameKeyword().trim());
+        }
+        queryWrapper.eq(pageWrap.getModel().getStatus() != null, YwElectricalParam::getStatus, pageWrap.getModel().getStatus());
+        queryWrapper.orderByDesc(YwElectricalParam::getId);
+        IPage<YwElectricalParam> result = ywElectricalParamMapper.selectJoinPage(page, YwElectricalParam.class, queryWrapper);
+        return PageData.from(result);
+    }
+
+    @Override
+    public long count(YwElectricalParam ywElectricalParam) {
+        QueryWrapper<YwElectricalParam> wrapper = new QueryWrapper<>(ywElectricalParam);
+        return ywElectricalParamMapper.selectCount(wrapper);
+    }
+
+    private void fillPrice(YwElectricalParam row) {
+        BigDecimal base = row.getBasePrice() != null ? row.getBasePrice() : BigDecimal.ZERO;
+        BigDecimal extra = row.getExtraPrice() != null ? row.getExtraPrice() : BigDecimal.ZERO;
+        row.setPrice(base.add(extra));
+    }
+
+    private void fillCreate(YwElectricalParam row) {
+        Date now = new Date();
+        row.setCreateDate(now);
+        row.setEditDate(now);
+        row.setIsdeleted(Constants.ZERO);
+        if (row.getStatus() == null) {
+            row.setStatus(Constants.ZERO);
+        }
+        if (row.getLoginUserInfo() != null) {
+            row.setCreator(row.getLoginUserInfo().getId());
+            row.setEdirot(row.getLoginUserInfo().getId());
+        }
+    }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalServiceImpl.java
index f25aa2d..9bd17e6 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalServiceImpl.java
@@ -1,137 +1,440 @@
 package com.doumee.service.business.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.device.ElectronicToolUtil;
+import com.doumee.core.device.WaterElectricityUtil;
+import com.doumee.core.device.model.response.CollectorStatusResponse;
+import com.doumee.core.device.model.response.ElectronicDataResponse;
+import com.doumee.core.device.model.response.MeterInfoResponse;
 import com.doumee.core.exception.BusinessException;
-import com.doumee.core.model.LoginUserInfo;
+import com.doumee.core.haikang.model.param.respose.AcsDeviceInfoResponse;
+import com.doumee.core.haikang.model.param.respose.AscDeviceStatusInfoResponse;
+import com.doumee.core.haikang.model.param.respose.DoorsInfoResponse;
+import com.doumee.core.haikang.model.param.respose.LedRecordsInfoResponse;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
+import com.doumee.dao.business.model.Device;
+import com.doumee.dao.business.model.DeviceData;
+import com.doumee.dao.business.model.YwDevice;
+import com.doumee.dao.business.model.YwElectrical;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.YwElectricalMapper;
-import com.doumee.dao.business.model.YwElectrical;
-import com.doumee.dao.business.model.YwGateway;
+import com.doumee.service.business.YwElectricalBizService;
 import com.doumee.service.business.YwElectricalService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.doumee.core.model.LoginUserInfo;
 
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
-import java.util.Objects;
 
 /**
  * 鐢佃〃璁惧淇℃伅Service瀹炵幇
- * @author renkang
- * @date 2026/04/03
+ * @author doumee
+ * @date 2026-05-20 14:59:06
  */
 @Service
 public class YwElectricalServiceImpl implements YwElectricalService {
 
     @Autowired
     private YwElectricalMapper ywElectricalMapper;
+    @Autowired
+    private YwElectricalBizService ywElectricalBizService;
 
     @Override
     public Integer create(YwElectrical ywElectrical) {
-        if (Objects.isNull(ywElectrical)
-                || StringUtils.isBlank(ywElectrical.getName())
-                || StringUtils.isBlank(ywElectrical.getCode())) {
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
-        }
-        LoginUserInfo loginUserInfo = ywElectrical.getLoginUserInfo();
-        // 鏍¢獙琛ㄥ彿鍞竴
-        if (ywElectricalMapper.selectCount(new QueryWrapper<YwElectrical>().lambda()
-                .eq(YwElectrical::getIsdeleted, Constants.ZERO)
-                .eq(YwElectrical::getCode, ywElectrical.getCode())) > Constants.ZERO) {
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "琛ㄥ彿閲嶅!");
-        }
-        ywElectrical.setCreateDate(new Date());
-        ywElectrical.setCreator(loginUserInfo.getId());
-        ywElectrical.setEditDate(new Date());
-        ywElectrical.setEditor(loginUserInfo.getId());
-        ywElectrical.setIsdeleted(Constants.ZERO);
         ywElectricalMapper.insert(ywElectrical);
         return ywElectrical.getId();
     }
 
     @Override
-    public void deleteById(Integer id, LoginUserInfo user) {
-        ywElectricalMapper.update(new UpdateWrapper<YwElectrical>()
-                .lambda()
-                .set(YwElectrical::getIsdeleted, Constants.ONE)
-                .set(YwElectrical::getEditDate, DateUtil.getCurrDateTime())
-                .set(YwElectrical::getEditor, user.getId())
-                .eq(YwElectrical::getId, id)
-        );
+    public void deleteById(Integer id) {
+        ywElectricalMapper.deleteById(id);
     }
-
+  @Override
+    public void deleteByIdInBatch(List<Integer> ids ) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        for(Integer id :ids){
+            deleteById(id);
+        }
+    }
     @Override
+    public void deleteById(Integer id, LoginUserInfo user) {
+        ywElectricalMapper.deleteById(id);
+    }
+  @Override
     public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) {
         if (CollectionUtils.isEmpty(ids)) {
             return;
         }
-        for (Integer id : ids) {
-            this.deleteById(id, user);
+       for(Integer id :ids){
+            deleteById(id,user);
         }
     }
+    @Override
+    public void delete(YwElectrical ywElectrical) {
+        UpdateWrapper<YwElectrical> deleteWrapper = new UpdateWrapper<>(ywElectrical);
+        ywElectricalMapper.delete(deleteWrapper);
+    }
+
 
     @Override
     public void updateById(YwElectrical ywElectrical) {
-        if (Objects.isNull(ywElectrical)
-                || Objects.isNull(ywElectrical.getId())
-                || StringUtils.isBlank(ywElectrical.getName())
-                || StringUtils.isBlank(ywElectrical.getCode())) {
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
-        }
-        LoginUserInfo loginUserInfo = ywElectrical.getLoginUserInfo();
-        // 鏍¢獙琛ㄥ彿鍞竴锛堟帓闄よ嚜韬級
-        if (ywElectricalMapper.selectCount(new QueryWrapper<YwElectrical>().lambda()
-                .eq(YwElectrical::getIsdeleted, Constants.ZERO)
-                .eq(YwElectrical::getCode, ywElectrical.getCode())
-                .ne(YwElectrical::getId, ywElectrical.getId())) > Constants.ZERO) {
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "琛ㄥ彿閲嶅!");
-        }
-        ywElectrical.setEditDate(new Date());
-        ywElectrical.setEditor(loginUserInfo.getId());
         ywElectricalMapper.updateById(ywElectrical);
     }
 
     @Override
-    public YwElectrical findById(Integer id) {
-        return ywElectricalMapper.selectJoinOne(YwElectrical.class,
-                new MPJLambdaWrapper<YwElectrical>()
-                        .selectAll(YwElectrical.class)
-                        .selectAs(YwGateway::getName, YwElectrical::getGatewayName)
-                        .leftJoin(YwGateway.class, YwGateway::getId, YwElectrical::getGatewayId)
-                        .eq(YwElectrical::getId, id)
-                        .last(" limit 1 ")
-        );
+    public void updateByIdInBatch(List<YwElectrical> ywElectricals) {
+        if (CollectionUtils.isEmpty(ywElectricals)) {
+            return;
+        }
+        for (YwElectrical ywElectrical: ywElectricals) {
+            this.updateById(ywElectrical);
+        }
     }
 
+    @Override
+    public YwElectrical findById(Integer id) {
+        return ywElectricalMapper.selectById(id);
+    }
+
+    @Override
+    public YwElectrical findOne(YwElectrical ywElectrical) {
+        QueryWrapper<YwElectrical> wrapper = new QueryWrapper<>(ywElectrical).last("limit 1");
+        return ywElectricalMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<YwElectrical> findList(YwElectrical ywElectrical) {
+        QueryWrapper<YwElectrical> wrapper = new QueryWrapper<>(ywElectrical);
+        return ywElectricalMapper.selectList(wrapper);
+    }
+  
     @Override
     public PageData<YwElectrical> findPage(PageWrap<YwElectrical> pageWrap) {
         IPage<YwElectrical> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         MPJLambdaWrapper<YwElectrical> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
-        YwElectrical model = pageWrap.getModel();
-        queryWrapper.selectAll(YwElectrical.class)
-                .selectAs(YwGateway::getName, YwElectrical::getGatewayName)
-                .leftJoin(YwGateway.class, YwGateway::getId, YwElectrical::getGatewayId)
-                .and(Objects.nonNull(model) && StringUtils.isNotBlank(model.getName()),
-                        i -> i.like(YwElectrical::getName, model.getName())
-                             .or()
-                             .like(YwElectrical::getCode, model.getName()))
-                .eq(Objects.nonNull(model) && Objects.nonNull(model.getRunStatus()), YwElectrical::getRunStatus, model.getRunStatus())
-                .eq(Objects.nonNull(model) && Objects.nonNull(model.getGatewayId()), YwElectrical::getGatewayId, model.getGatewayId())
-                .eq(YwElectrical::getIsdeleted, Constants.ZERO)
-                .orderByDesc(YwElectrical::getCreateDate);
-        IPage<YwElectrical> iPage = ywElectricalMapper.selectJoinPage(page, YwElectrical.class, queryWrapper);
-        return PageData.from(iPage);
+        queryWrapper.eq(YwElectrical::getIsdeleted, Constants.ZERO);
+        if (StringUtils.isNotBlank(pageWrap.getModel().getMeterKeyword())) {
+            String kw = pageWrap.getModel().getMeterKeyword().trim();
+            queryWrapper.and(w -> w.like(YwElectrical::getName, kw).or().like(YwElectrical::getAddress, kw));
+        }
+        queryWrapper.eq(pageWrap.getModel().getId() != null,YwElectrical::getId, pageWrap.getModel().getId());
+        queryWrapper.eq(pageWrap.getModel().getCreator() != null,YwElectrical::getCreator, pageWrap.getModel().getCreator());
+        if (pageWrap.getModel().getCreateDate() != null) {
+            queryWrapper.ge(YwElectrical::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+            queryWrapper.le(YwElectrical::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+        }
+        queryWrapper.eq(pageWrap.getModel().getEdirot() != null,YwElectrical::getEdirot, pageWrap.getModel().getEdirot());
+        if (pageWrap.getModel().getEditDate() != null) {
+            queryWrapper.ge(YwElectrical::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+            queryWrapper.le(YwElectrical::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+        }
+        queryWrapper.eq(pageWrap.getModel().getIsdeleted() != null,YwElectrical::getIsdeleted, pageWrap.getModel().getIsdeleted());
+        queryWrapper.eq(pageWrap.getModel().getRemark() != null,YwElectrical::getRemark, pageWrap.getModel().getRemark());
+        queryWrapper.eq(pageWrap.getModel().getCollectorId() != null,YwElectrical::getCollectorId, pageWrap.getModel().getCollectorId());
+        queryWrapper.eq(pageWrap.getModel().getCode() != null,YwElectrical::getCode, pageWrap.getModel().getCode());
+        queryWrapper.eq(pageWrap.getModel().getAddress() != null,YwElectrical::getAddress, pageWrap.getModel().getAddress());
+        queryWrapper.eq(pageWrap.getModel().getDeviceType() != null,YwElectrical::getDeviceType, pageWrap.getModel().getDeviceType());
+        queryWrapper.eq(pageWrap.getModel().getRate() != null,YwElectrical::getRate, pageWrap.getModel().getRate());
+        queryWrapper.eq(pageWrap.getModel().getPayType() != null,YwElectrical::getPayType, pageWrap.getModel().getPayType());
+        queryWrapper.eq(pageWrap.getModel().getName() != null,YwElectrical::getName, pageWrap.getModel().getName());
+        queryWrapper.eq(pageWrap.getModel().getGatewayId() != null,YwElectrical::getGatewayId, pageWrap.getModel().getGatewayId());
+        queryWrapper.eq(pageWrap.getModel().getGatewayPort() != null,YwElectrical::getGatewayPort, pageWrap.getModel().getGatewayPort());
+        if (pageWrap.getModel().getLastHeartbeatDate() != null) {
+            queryWrapper.ge(YwElectrical::getLastHeartbeatDate, Utils.Date.getStart(pageWrap.getModel().getLastHeartbeatDate()));
+            queryWrapper.le(YwElectrical::getLastHeartbeatDate, Utils.Date.getEnd(pageWrap.getModel().getLastHeartbeatDate()));
+        }
+        queryWrapper.eq(pageWrap.getModel().getBalance() != null,YwElectrical::getBalance, pageWrap.getModel().getBalance());
+        queryWrapper.eq(pageWrap.getModel().getRelayStatus() != null,YwElectrical::getRelayStatus, pageWrap.getModel().getRelayStatus());
+        if (pageWrap.getModel().getLastOpenDate() != null) {
+            queryWrapper.ge(YwElectrical::getLastOpenDate, Utils.Date.getStart(pageWrap.getModel().getLastOpenDate()));
+            queryWrapper.le(YwElectrical::getLastOpenDate, Utils.Date.getEnd(pageWrap.getModel().getLastOpenDate()));
+        }
+        if (pageWrap.getModel().getLastCleanDate() != null) {
+            queryWrapper.ge(YwElectrical::getLastCleanDate, Utils.Date.getStart(pageWrap.getModel().getLastCleanDate()));
+            queryWrapper.le(YwElectrical::getLastCleanDate, Utils.Date.getEnd(pageWrap.getModel().getLastCleanDate()));
+        }
+        queryWrapper.eq(pageWrap.getModel().getOnline() != null,YwElectrical::getOnline, pageWrap.getModel().getOnline());
+        queryWrapper.eq(pageWrap.getModel().getAccountStatus() != null,YwElectrical::getAccountStatus, pageWrap.getModel().getAccountStatus());
+        queryWrapper.eq(pageWrap.getModel().getStatus() != null,YwElectrical::getStatus, pageWrap.getModel().getStatus());
+        queryWrapper.eq(pageWrap.getModel().getWarnType() != null,YwElectrical::getWarnType, pageWrap.getModel().getWarnType());
+        queryWrapper.eq(pageWrap.getModel().getType() != null,YwElectrical::getType, pageWrap.getModel().getType());
+        queryWrapper.eq(pageWrap.getModel().getDId() != null,YwElectrical::getDId, pageWrap.getModel().getDId());
+        queryWrapper.eq(pageWrap.getModel().getCId() != null,YwElectrical::getCId, pageWrap.getModel().getCId());
+        queryWrapper.eq(pageWrap.getModel().getDescription() != null,YwElectrical::getDescription, pageWrap.getModel().getDescription());
+        queryWrapper.eq(pageWrap.getModel().getCsq() != null,YwElectrical::getCsq, pageWrap.getModel().getCsq());
+        if (pageWrap.getModel().getDisconnectTime() != null) {
+            queryWrapper.ge(YwElectrical::getDisconnectTime, Utils.Date.getStart(pageWrap.getModel().getDisconnectTime()));
+            queryWrapper.le(YwElectrical::getDisconnectTime, Utils.Date.getEnd(pageWrap.getModel().getDisconnectTime()));
+        }
+        if (pageWrap.getModel().getConnectTime() != null) {
+            queryWrapper.ge(YwElectrical::getConnectTime, Utils.Date.getStart(pageWrap.getModel().getConnectTime()));
+            queryWrapper.le(YwElectrical::getConnectTime, Utils.Date.getEnd(pageWrap.getModel().getConnectTime()));
+        }
+        queryWrapper.eq(pageWrap.getModel().getBalanceBattery() != null,YwElectrical::getBalanceBattery, pageWrap.getModel().getBalanceBattery());
+        if (pageWrap.getModel().getBalanceTime() != null) {
+            queryWrapper.ge(YwElectrical::getBalanceTime, Utils.Date.getStart(pageWrap.getModel().getBalanceTime()));
+            queryWrapper.le(YwElectrical::getBalanceTime, Utils.Date.getEnd(pageWrap.getModel().getBalanceTime()));
+        }
+         queryWrapper.orderByDesc(YwElectrical::getId);
+         IPage<YwElectrical> result = ywElectricalMapper.selectJoinPage(page, YwElectrical.class,queryWrapper);
+         PageData<YwElectrical> pageData = PageData.from(result);
+         ywElectricalBizService.enrichList(pageData.getRecords());
+         return pageData;
+    }
+    @Override
+    public long count(YwElectrical ywElectrical) {
+        QueryWrapper<YwElectrical> wrapper = new QueryWrapper<>(ywElectrical);
+        return ywElectricalMapper.selectCount(wrapper);
+    }
+    @Override
+    @Transactional
+    public void getElectricalStatus(){
+        if(Constants.DEALING_ELECTRICAL_STATUS){
+            return ;
+        }
+        Constants.DEALING_ELECTRICAL_STATUS =true;
+        try {
+            List<Device> editList = new ArrayList<>();
+            Date date = new Date();
+            //鏌ヨ鍏ㄩ儴闂ㄧ璁惧鏁版嵁
+            ElectronicDataResponse<List<CollectorStatusResponse>>  response = ElectronicToolUtil.collectorStatus();
+            if (!ElectronicToolUtil.isDataApiSuccess(response)) {
+                throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),
+                        ElectronicToolUtil.dataApiErrorMessage(response, "鍚屾閲囬泦鍣ㄧ姸鎬佸紓甯�"));
+            }
+            if(response.getData()!=null && response.getData().size()>0){
+                //閫昏緫鍒犻櫎
+                for(CollectorStatusResponse d : response.getData()){
+                    ywElectricalMapper.update(null,new UpdateWrapper<YwElectrical>().lambda()
+                            .set(YwElectrical::getOnline, d.getOnline()?1:0)
+                            .set(YwElectrical::getDescription,d.getDescription())
+                            .set(YwElectrical::getCsq,d.getCsq())
+                            .set(YwElectrical::getDisconnectTime,d.getDisconnect_time())
+                            .set(YwElectrical::getConnectTime,d.getConnect_time())
+                            .set(YwElectrical::getEditDate,date)
+                            .eq(YwElectrical::getCollectorId,d.getCollectorid()));
+                }
+            }
+        }catch (Exception e){
+            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "鍚屾璁惧鐘舵�佸け璐ワ紒");
+        }finally {
+            Constants.DEALING_ELECTRICAL_STATUS =false;
+        }
+    }
+    @Override
+    @Transactional
+    public String syncAll(YwElectrical ywElectrical){
+        if(Constants.DEALING_ELECTRICAL_SYNCDEVICE){
+            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鍚屾浠诲姟姝e湪鎵ц鍝︼紝璇风◢鍚庢煡鐪嬬粨鏋滐紒") ;
+        }
+        Constants.DEALING_ELECTRICAL_SYNCDEVICE =true;
+        try {
+            List<YwElectrical> deleteList = new ArrayList<>();
+            List<YwElectrical> addList = new ArrayList<>();
+            List<YwElectrical> editList = new ArrayList<>();
+            Date date = new Date();
+            //鏌ヨ鍏ㄩ儴闂ㄧ璁惧鏁版嵁
+            List<YwElectrical> allList = ywElectricalMapper.selectList(new QueryWrapper<YwElectrical>().lambda()
+                    .eq(YwElectrical::getIsdeleted,Constants.ZERO));
+            ElectronicDataResponse<List<MeterInfoResponse>>  response = ElectronicToolUtil.meterList();
+            if (!ElectronicToolUtil.isDataApiSuccess(response)) {
+                throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),
+                        ElectronicToolUtil.dataApiErrorMessage(response, "鍚屾鐢佃〃鏁版嵁寮傚父"));
+            }
+            List<MeterInfoResponse> meterData = response.getData();
+            if (meterData == null) {
+                meterData = Collections.emptyList();
+            }
+            if (meterData.isEmpty()) {
+                return "鍚屾瀹屾垚锛氱涓夋柟骞冲彴鏆傛棤鐢佃〃鏁版嵁";
+            }
+            getDataChangeList(allList, meterData, addList, editList, deleteList, date);
+            if(deleteList.size()>0){
+                for(YwElectrical d : deleteList){
+                    ywElectricalMapper.updateById(d);
+                }
+            }
+            if(addList.size()>0){
+                for (YwElectrical d : addList) {
+                    ywElectricalMapper.insert(d);
+                }
+            }
+            if(editList.size()>0){
+                for(YwElectrical d : editList){
+                    ywElectricalMapper.updateById(d);
+                }
+            }
+            return "鍚屾鏁版嵁锛氭柊澧炪��"+addList.size()+"銆戞潯锛屾洿鏂般��"+editList.size()+"銆戞潯锛屽垹闄ゃ��"+deleteList.size()+"銆戞潯";
+        } catch (BusinessException e) {
+            throw e;
+        } catch (Exception e) {
+            e.printStackTrace();
+            String detail = StringUtils.isNotBlank(e.getMessage()) ? e.getMessage() : e.getClass().getSimpleName();
+            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "鍚屾澶辫触锛�" + detail);
+        } finally {
+            Constants.DEALING_ELECTRICAL_SYNCDEVICE =false;
+        }
+    }
+    private void getDataChangeList(List<YwElectrical> allList,
+                                   List<MeterInfoResponse> dataList ,
+                                   List<YwElectrical> addList,
+                                   List<YwElectrical> editList,
+                                   List<YwElectrical> deleteList,
+                                   Date date ) {
+        if(dataList!=null && dataList.size()>0){
+            //鑾峰彇娴峰悍鍏ㄩ儴闂ㄧ缁勬暟鎹�
+            for(MeterInfoResponse device : dataList){
+                YwElectrical model = getExistedDevice(device,allList);
+                if(model !=null){
+                    //濡傛灉宸插瓨鍦紝鍒欐洿鏂版暟鎹�
+                    model =  initDeviceDataByData(model,device,date,dataList);
+                    editList.add(model);
+                }else{
+                    //濡傛灉涓嶅瓨鍦紝鍒欐柊澧炴暟鎹�
+                    model = new YwElectrical();
+                    model =  initDeviceDataByData(model,device,date,dataList);
+                    addList.add(model);
+                }
+            }
+        }
+        if (dataList != null && !dataList.isEmpty()) {
+            getDeleteDeviceList(allList, dataList, deleteList, date);
+        }
+    }
+    private boolean isDeletedDevice(YwElectrical device, List<MeterInfoResponse> allHkList) {
+        if (allHkList != null && allHkList.size() > 0) {
+            for(MeterInfoResponse r : allHkList){
+                if(StringUtils.equals(device.getDId(), r.getId())){
+                    //琛ㄧず鏈垹闄�
+                    return  false;
+                }
+            }
+        }
+        return  true;
+
+    }
+    private void getDeleteDeviceList(List<YwElectrical> allList,  List<MeterInfoResponse> allHkList,List<YwElectrical> deleteList ,Date date) {
+        if(allList!=null && allList.size()>0){
+            for(YwElectrical device : allList){
+                if(isDeletedDevice(device,allHkList)){
+                    device.setIsdeleted(Constants.ONE);
+                    device.setEditDate(date);
+                    deleteList.add(device);
+                }
+            }
+        }
+    }
+    private YwElectrical initDeviceDataByData(YwElectrical model, MeterInfoResponse door, Date date, List<MeterInfoResponse> allHkList) {
+        MeterInfoResponse device = getDeviceByid(door.getCollectorid(),allHkList);
+        Date originCreateDate = model.getCreateDate();
+        model.setIsdeleted(Constants.ZERO);
+        model.setEditDate(date);
+        if (originCreateDate == null) {
+            model.setCreateDate(date);
+        }
+        model.setDescription(door.getDescription());
+        model.setName(door.getDescription());
+        model.setCId(door.getCid());
+        model.setDId(door.getId());
+        model.setAccountStatus(Constants.TWO);
+        model.setPriceid(door.getPriceid());
+        model.setParamId(door.getParam_id());
+        model.setDeviceType(door.getDevice_type());
+        model.setAccountId(door.getAccount_id());
+        model.setAddress(door.getAddress());
+        model.setCollectorId(door.getCollectorid());
+        model.setType(door.getType());
+        model.setRelayStatus(door.getRelay_state());
+        model.setCsq(door.getCsq());
+        model.setRemark(JSONObject.toJSONString(device));
+        return  model;
+    }
+    private MeterInfoResponse getDeviceByid(String indexCode, List<MeterInfoResponse> allHkList ) {
+        if(allHkList!=null && allHkList.size()>0){
+            for(MeterInfoResponse info : allHkList){
+                if(StringUtils.equals(indexCode,info.getCollectorid())){
+                    return info;
+                }
+            }
+        }
+
+        return new MeterInfoResponse();
+    }
+    private YwElectrical getExistedDevice(MeterInfoResponse device, List<YwElectrical> allList) {
+        if(allList.size()>0){
+            for(YwElectrical r : allList){
+                if(StringUtils.equals(r.getCollectorId(), device.getCollectorid())){
+                    //琛ㄧず鏈垹闄�
+                    return  r;
+                }
+            }
+        }
+        return  null;
+    }
+
+    @Override
+    public void controlDo(Device param){
+        YwElectrical model = ywElectricalMapper.selectById(param.getId());
+        if(model ==null && Constants.equalsInteger(param.getType(),Constants.DEVICE_TYPE.dianbiao)){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if (param.getStatus() == null || param.getCmdDate() == null
+                ||param.getCmdDate().getTime() <= System.currentTimeMillis()) {
+            //濡傛灉鏄紑闂�
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+
+        boolean r ;
+        String date = DateUtil.formatDate(new Date(),"yyyyMMddHHmmss");
+        if(Constants.equalsInteger(param.getStatus(),Constants.ONE)) {
+            //濡傛灉鏄紑闂�
+            r = WaterElectricityUtil.electricityAct(param.getIp(),Integer.parseInt(param.getPort()),param.getNo(),0,date);
+        }else {
+            //濡傛灉鏄悎闂�
+            r = WaterElectricityUtil.electricityAct(param.getIp(),Integer.parseInt(param.getPort()),param.getNo(),1,date);
+        }
+        if(!r){
+            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"杩滅▼鎺у埗鐢佃〃澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+        }
+        /*String curremak = "銆�"+param.getLoginUserInfo().getRealname()
+                +"銆戜簬"+ DateUtil.getPlusTime2(new Date()) +"杩涜浜�"+(Constants.equalsInteger(param.getStatus(),Constants.ONE)?"銆愬悎闂搞��":"銆愬垎闂搞��")+"鎿嶄綔,寮�鍏炽��"+param.getChannelNo()+"銆戯紱";
+        deviceMapper.update(null,new UpdateWrapper<Device>().lambda()
+                .set(Device::getRemark,curremak)
+                .set(Device::getEditDate,new Date())
+                .set(Device::getEdirot,param.getLoginUserInfo().getId())
+                .eq(Device::getId,param.getId()));
+        DeviceData data = new DeviceData();
+        data.setCreateDate(new Date());
+        data.setEditDate(new Date());
+        data.setCreator(param.getLoginUserInfo().getId());
+        data.setEditor(param.getLoginUserInfo().getId());
+        data.setDeviceId(param.getId()+"");
+        data.setDataType(Constants.ONE);//
+        data.setVal1("杩滅▼鎺у埗");
+        data.setVal2(curremak);
+        data.setHappenTime(DateUtil.getPlusTime2(data.getCreateDate()));
+        data.setVal3((Constants.equalsInteger(param.getStatus(),Constants.ONE)?"銆愬悎闂搞��":"銆愬垎闂搞��"));
+        data.setVal4(param.getLoginUserInfo().getRealname());
+        data.setVal5(param.getChannelNo());
+        deviceDataMapper.insert(data);
+*/
     }
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalWarningServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalWarningServiceImpl.java
new file mode 100644
index 0000000..d499d3b
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalWarningServiceImpl.java
@@ -0,0 +1,329 @@
+package com.doumee.service.business.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.device.ElectronicToolUtil;
+import com.doumee.core.device.model.ElectronicConstant;
+import com.doumee.core.device.model.request.WarningListRequest;
+import com.doumee.core.device.model.response.ElectronicDataResponse;
+import com.doumee.core.device.model.response.WarningInfoResponse;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.YwElectricalMapper;
+import com.doumee.dao.business.YwElectricalRoomMapper;
+import com.doumee.dao.business.YwElectricalWarningMapper;
+import com.doumee.dao.business.dto.WarningDefOptionDTO;
+import com.doumee.dao.business.model.YwElectrical;
+import com.doumee.dao.business.model.YwElectricalRoom;
+import com.doumee.dao.business.model.YwElectricalWarning;
+import com.doumee.dao.business.model.YwRoom;
+import com.doumee.service.business.YwElectricalWarningService;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * 鏅鸿兘鐢佃〃鎶ヨ璁板綍Service瀹炵幇
+ */
+@Service
+public class YwElectricalWarningServiceImpl implements YwElectricalWarningService {
+
+    private static final int ELECTRICAL_DEVICE_TYPE = 0;
+    private static final int ELECTRICAL_ROOM_TYPE = 0;
+    private static final String START_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
+
+    @Autowired
+    private YwElectricalWarningMapper ywElectricalWarningMapper;
+
+    @Autowired
+    private YwElectricalMapper ywElectricalMapper;
+
+    @Autowired
+    private YwElectricalRoomMapper ywElectricalRoomMapper;
+
+    @Override
+    public PageData<YwElectricalWarning> findPage(PageWrap<YwElectricalWarning> pageWrap) {
+        IPage<YwElectricalWarning> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        MPJLambdaWrapper<YwElectricalWarning> queryWrapper = buildPageQuery(pageWrap);
+        queryWrapper.orderByDesc(YwElectricalWarning::getStartTime);
+        IPage<YwElectricalWarning> result = ywElectricalWarningMapper.selectJoinPage(page, YwElectricalWarning.class, queryWrapper);
+        PageData<YwElectricalWarning> pageData = PageData.from(result);
+        enrichDisplayFields(pageData.getRecords());
+        return pageData;
+    }
+
+    @Override
+    public long count(YwElectricalWarning model) {
+        MPJLambdaWrapper<YwElectricalWarning> queryWrapper = new MPJLambdaWrapper<>();
+        YwElectricalWarning query = model == null ? new YwElectricalWarning() : model;
+        applyBaseFilters(queryWrapper, query);
+        return ywElectricalWarningMapper.selectJoinCount(queryWrapper);
+    }
+
+    @Override
+    @Transactional
+    public String syncFromPlatform() {
+        if (Constants.DEALING_ELECTRICAL_WARNING_SYNC) {
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鎶ヨ鍚屾浠诲姟姝e湪鎵ц锛岃绋嶅悗鍐嶈瘯");
+        }
+        Constants.DEALING_ELECTRICAL_WARNING_SYNC = true;
+        try {
+            WarningListRequest request = new WarningListRequest();
+            request.setDevice_type(String.valueOf(ELECTRICAL_DEVICE_TYPE));
+            ElectronicDataResponse<List<WarningInfoResponse>> response = ElectronicToolUtil.warningList(request);
+            if (response == null || !StringUtils.equals(response.getStatus(), "1")) {
+                throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "鍚屾鎶ヨ鏁版嵁寮傚父");
+            }
+            List<WarningInfoResponse> dataList = response.getData();
+            if (CollectionUtils.isEmpty(dataList)) {
+                return "鍚屾瀹屾垚锛氱涓夋柟鏃犳姤璀︽暟鎹�";
+            }
+            Map<String, YwElectrical> addressMap = buildElectricalAddressMap();
+            Map<String, YwElectrical> didMap = buildElectricalDidMap();
+            Date now = new Date();
+            int addCount = 0;
+            int updateCount = 0;
+            for (WarningInfoResponse item : dataList) {
+                if (item == null || StringUtils.isBlank(item.getDevice_address())) {
+                    continue;
+                }
+                Integer deviceType = parseDeviceType(item.getDevice_type());
+                if (deviceType != null && deviceType != ELECTRICAL_DEVICE_TYPE) {
+                    continue;
+                }
+                Integer warningDefId = parseWarningDefId(item.getWarning_def_id());
+                Date startTime = parseStartTime(item.getStart_time());
+                if (warningDefId == null || startTime == null) {
+                    continue;
+                }
+                YwElectricalWarning entity = findExisting(item.getDevice_address(), warningDefId, startTime);
+                boolean isNew = entity == null;
+                if (isNew) {
+                    entity = new YwElectricalWarning();
+                    entity.setCreateDate(now);
+                    entity.setIsdeleted(Constants.ZERO);
+                }
+                entity.setDeviceType(deviceType == null ? ELECTRICAL_DEVICE_TYPE : deviceType);
+                entity.setDeviceId(item.getDevice_id());
+                entity.setDeviceAddress(item.getDevice_address());
+                entity.setWarningDefId(warningDefId);
+                entity.setStartTime(startTime);
+                entity.setMsg(item.getMsg());
+                entity.setEditDate(now);
+                resolveElectricalId(entity, addressMap, didMap);
+                if (isNew) {
+                    ywElectricalWarningMapper.insert(entity);
+                    addCount++;
+                } else {
+                    ywElectricalWarningMapper.updateById(entity);
+                    updateCount++;
+                }
+            }
+            return "鍚屾瀹屾垚锛氭柊澧炪��" + addCount + "銆戞潯锛屾洿鏂般��" + updateCount + "銆戞潯";
+        } finally {
+            Constants.DEALING_ELECTRICAL_WARNING_SYNC = false;
+        }
+    }
+
+    @Override
+    public List<WarningDefOptionDTO> listWarningDefOptions() {
+        List<WarningDefOptionDTO> list = new ArrayList<>();
+        for (ElectronicConstant.warningDefId item : ElectronicConstant.warningDefId.listByDeviceType(ELECTRICAL_DEVICE_TYPE)) {
+            list.add(new WarningDefOptionDTO(item.getKey(), item.getName()));
+        }
+        return list;
+    }
+
+    private MPJLambdaWrapper<YwElectricalWarning> buildPageQuery(PageWrap<YwElectricalWarning> pageWrap) {
+        MPJLambdaWrapper<YwElectricalWarning> queryWrapper = new MPJLambdaWrapper<>();
+        YwElectricalWarning model = pageWrap.getModel() == null ? new YwElectricalWarning() : pageWrap.getModel();
+        Utils.MP.blankToNull(model);
+        queryWrapper.selectAll(YwElectricalWarning.class)
+                .selectAs(YwElectrical::getName, YwElectricalWarning::getElectricalName)
+                .leftJoin(YwElectrical.class, YwElectrical::getId, YwElectricalWarning::getElectricalId);
+        applyBaseFilters(queryWrapper, model);
+        if (StringUtils.isNotBlank(model.getMeterKeyword())) {
+            String keyword = model.getMeterKeyword();
+            queryWrapper.and(w -> w.like(YwElectricalWarning::getDeviceAddress, keyword)
+                    .or()
+                    .like(YwElectrical::getName, keyword)
+                    .or()
+                    .like(YwElectrical::getAddress, keyword));
+        }
+        return queryWrapper;
+    }
+
+    private void applyBaseFilters(MPJLambdaWrapper<YwElectricalWarning> queryWrapper, YwElectricalWarning model) {
+        queryWrapper.eq(YwElectricalWarning::getIsdeleted, Constants.ZERO);
+        queryWrapper.eq(YwElectricalWarning::getDeviceType, ELECTRICAL_DEVICE_TYPE);
+        queryWrapper.eq(model.getWarningDefId() != null, YwElectricalWarning::getWarningDefId, model.getWarningDefId());
+        if (model.getStartTimeBegin() != null) {
+            queryWrapper.ge(YwElectricalWarning::getStartTime, Utils.Date.getStart(model.getStartTimeBegin()));
+        }
+        if (model.getStartTimeEnd() != null) {
+            queryWrapper.le(YwElectricalWarning::getStartTime, Utils.Date.getEnd(model.getStartTimeEnd()));
+        }
+    }
+
+    private void enrichDisplayFields(List<YwElectricalWarning> list) {
+        if (CollectionUtils.isEmpty(list)) {
+            return;
+        }
+        fillRoomNames(list);
+        for (YwElectricalWarning row : list) {
+            ElectronicConstant.warningDefId def = ElectronicConstant.warningDefId.getByKey(row.getWarningDefId());
+            if (def != null) {
+                row.setWarningName(def.getName());
+                row.setWarningInfo(def.getInfo());
+            }
+        }
+    }
+
+    private void fillRoomNames(List<YwElectricalWarning> list) {
+        List<Integer> electricalIds = list.stream()
+                .map(YwElectricalWarning::getElectricalId)
+                .filter(Objects::nonNull)
+                .distinct()
+                .collect(Collectors.toList());
+        if (electricalIds.isEmpty()) {
+            return;
+        }
+        MPJLambdaWrapper<YwElectricalRoom> roomWrapper = new MPJLambdaWrapper<>();
+        roomWrapper.select(YwElectricalRoom::getObjId, YwElectricalRoom::getSortnum)
+                .selectAs(YwRoom::getName, YwElectricalRoom::getRoomName)
+                .selectAs(YwRoom::getRoomNum, YwElectricalRoom::getRoomNum)
+                .leftJoin(YwRoom.class, YwRoom::getId, YwElectricalRoom::getRoomId)
+                .in(YwElectricalRoom::getObjId, electricalIds)
+                .eq(YwElectricalRoom::getType, ELECTRICAL_ROOM_TYPE)
+                .eq(YwElectricalRoom::getIsdeleted, Constants.ZERO)
+                .orderByAsc(YwElectricalRoom::getSortnum)
+                .orderByAsc(YwElectricalRoom::getId);
+        List<YwElectricalRoom> roomList = ywElectricalRoomMapper.selectJoinList(YwElectricalRoom.class, roomWrapper);
+        if (CollectionUtils.isEmpty(roomList)) {
+            return;
+        }
+        Map<Integer, List<String>> roomNameMap = new HashMap<>();
+        for (YwElectricalRoom room : roomList) {
+            if (room.getObjId() == null) {
+                continue;
+            }
+            String display = StringUtils.isNotBlank(room.getRoomName()) ? room.getRoomName() : room.getRoomNum();
+            if (StringUtils.isBlank(display)) {
+                continue;
+            }
+            roomNameMap.computeIfAbsent(room.getObjId(), k -> new ArrayList<>()).add(display);
+        }
+        for (YwElectricalWarning warning : list) {
+            List<String> names = roomNameMap.get(warning.getElectricalId());
+            if (!CollectionUtils.isEmpty(names)) {
+                warning.setRoomNames(String.join(",", names));
+            }
+        }
+    }
+
+    private Map<String, YwElectrical> buildElectricalAddressMap() {
+        List<YwElectrical> list = ywElectricalMapper.selectList(new QueryWrapper<YwElectrical>().lambda()
+                .eq(YwElectrical::getIsdeleted, Constants.ZERO));
+        Map<String, YwElectrical> map = new HashMap<>();
+        if (CollectionUtils.isEmpty(list)) {
+            return map;
+        }
+        for (YwElectrical electrical : list) {
+            if (StringUtils.isNotBlank(electrical.getAddress())) {
+                map.put(electrical.getAddress(), electrical);
+            }
+            if (StringUtils.isNotBlank(electrical.getCode())) {
+                map.putIfAbsent(electrical.getCode(), electrical);
+            }
+        }
+        return map;
+    }
+
+    private Map<String, YwElectrical> buildElectricalDidMap() {
+        List<YwElectrical> list = ywElectricalMapper.selectList(new QueryWrapper<YwElectrical>().lambda()
+                .eq(YwElectrical::getIsdeleted, Constants.ZERO));
+        Map<String, YwElectrical> map = new HashMap<>();
+        if (CollectionUtils.isEmpty(list)) {
+            return map;
+        }
+        for (YwElectrical electrical : list) {
+            if (StringUtils.isNotBlank(electrical.getDId())) {
+                map.put(electrical.getDId(), electrical);
+            }
+        }
+        return map;
+    }
+
+    private void resolveElectricalId(YwElectricalWarning entity, Map<String, YwElectrical> addressMap, Map<String, YwElectrical> didMap) {
+        YwElectrical electrical = null;
+        if (StringUtils.isNotBlank(entity.getDeviceAddress())) {
+            electrical = addressMap.get(entity.getDeviceAddress());
+        }
+        if (electrical == null && StringUtils.isNotBlank(entity.getDeviceId())) {
+            electrical = didMap.get(entity.getDeviceId());
+        }
+        if (electrical != null) {
+            entity.setElectricalId(electrical.getId());
+        }
+    }
+
+    private YwElectricalWarning findExisting(String deviceAddress, Integer warningDefId, Date startTime) {
+        return ywElectricalWarningMapper.selectOne(new QueryWrapper<YwElectricalWarning>().lambda()
+                .eq(YwElectricalWarning::getDeviceAddress, deviceAddress)
+                .eq(YwElectricalWarning::getWarningDefId, warningDefId)
+                .eq(YwElectricalWarning::getStartTime, startTime)
+                .eq(YwElectricalWarning::getIsdeleted, Constants.ZERO)
+                .last("limit 1"));
+    }
+
+    private Integer parseDeviceType(String deviceType) {
+        if (StringUtils.isBlank(deviceType)) {
+            return ELECTRICAL_DEVICE_TYPE;
+        }
+        try {
+            return Integer.parseInt(deviceType.trim());
+        } catch (NumberFormatException e) {
+            return null;
+        }
+    }
+
+    private Integer parseWarningDefId(String warningDefId) {
+        if (StringUtils.isBlank(warningDefId)) {
+            return null;
+        }
+        try {
+            return Integer.parseInt(warningDefId.trim());
+        } catch (NumberFormatException e) {
+            return null;
+        }
+    }
+
+    private Date parseStartTime(String startTime) {
+        if (StringUtils.isBlank(startTime)) {
+            return null;
+        }
+        try {
+            return new SimpleDateFormat(START_TIME_PATTERN).parse(startTime.trim());
+        } catch (ParseException e) {
+            return null;
+        }
+    }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/systembiz/SystemDictDataBizService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/systembiz/SystemDictDataBizService.java
index 95d6353..8ff3f3a 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/systembiz/SystemDictDataBizService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/systembiz/SystemDictDataBizService.java
@@ -4,7 +4,7 @@
 
 /**
  * 瀛楀吀鏁版嵁Service瀹氫箟
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 public interface SystemDictDataBizService {
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/systembiz/impl/SystemDictDataBizServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/systembiz/impl/SystemDictDataBizServiceImpl.java
index ad81421..3972eca 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/systembiz/impl/SystemDictDataBizServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/systembiz/impl/SystemDictDataBizServiceImpl.java
@@ -22,7 +22,7 @@
 
 /**
  * 瀛楀吀鏁版嵁Service瀹炵幇
- * @author Eva.Caesar Liu
+ * @author doumee
  * @date 2023/03/21 14:49
  */
 @Service

--
Gitblit v1.9.3