From 8f22c7b297417ac7df12cb07eb9edd3a77dd01a1 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 31 十二月 2024 17:44:22 +0800 Subject: [PATCH] 修改华为云设备相关功能 --- ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java | 86 ++++++++++++++++++++++++++++++------------ 1 files changed, 61 insertions(+), 25 deletions(-) diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java index 1286328..5c6bf3b 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java @@ -2,7 +2,6 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.api.feignClient.AppUserCarClient; import com.ruoyi.account.api.model.TAppUserCar; @@ -10,9 +9,8 @@ import com.ruoyi.chargingPile.api.model.*; import com.ruoyi.chargingPile.api.query.BatchSetAccountingStrategy; import com.ruoyi.chargingPile.api.query.PageChargingPileList; -import com.ruoyi.chargingPile.api.vo.TChargingGunVO; import com.ruoyi.chargingPile.api.vo.TChargingPileVO; -import com.ruoyi.chargingPile.domain.SiteMenu; +import com.ruoyi.chargingPile.api.domain.SiteMenu; import com.ruoyi.chargingPile.dto.ChargeMonitoring; import com.ruoyi.chargingPile.dto.ChargingGunCountMonitoring; import com.ruoyi.chargingPile.dto.ChargingGunMonitoring; @@ -22,7 +20,6 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.domain.AjaxResult; -import com.ruoyi.common.core.web.domain.BasePojo; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.service.TokenService; @@ -36,6 +33,7 @@ import com.ruoyi.integration.api.vo.AddDevice; import com.ruoyi.integration.api.vo.AddDeviceResp; import com.ruoyi.integration.api.vo.DeleteDeviceResp; +import com.ruoyi.integration.api.vo.ShowDeviceResp; import com.ruoyi.order.api.feignClient.ChargingOrderAccountingStrategyClient; import com.ruoyi.order.api.feignClient.ChargingOrderClient; import com.ruoyi.order.api.model.TChargingOrder; @@ -55,7 +53,6 @@ import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; -import java.util.stream.Stream; /** * <p> @@ -180,18 +177,23 @@ return AjaxResult.error("设备编号已存在"); } //调用华为Iot创建设备 -// AddDevice addDevice = new AddDevice(); -// addDevice.setProductId("66da68d21837002b28b34ec0"); -// addDevice.setNodeId(chargingPile.getCode()); -// addDevice.setDeviceName(chargingPile.getName()); -// addDevice.setDescription(chargingPile.getNumber().toString()); -// AddDeviceResp deviceResp = iotInterfaceClient.addDevice(addDevice).getData(); -// if(null != deviceResp){ -// int httpStatusCode = deviceResp.getHttpStatusCode(); -// if(httpStatusCode == 201){ -// chargingPile.setIotdDeviceId(deviceResp.getDeviceId()); -// } -// } + AddDevice addDevice = new AddDevice(); + addDevice.setProductId("66da68d21837002b28b34ec0"); + addDevice.setNodeId(chargingPile.getCode()); + addDevice.setDeviceName(chargingPile.getName()); + addDevice.setDescription(chargingPile.getNumber().toString()); + AddDeviceResp deviceResp = iotInterfaceClient.addDevice(addDevice).getData(); + if(null != deviceResp){ + int httpStatusCode = deviceResp.getHttpStatusCode(); + if(httpStatusCode == 201){ + chargingPile.setIotdDeviceId(deviceResp.getDeviceId()); + }else{ + log.error("华为创建设备失败" + JSON.toJSONString(deviceResp)); + return AjaxResult.error("华为创建设备失败"); + } + }else{ + return AjaxResult.error("华为创建设备失败"); + } this.save(chargingPile); return AjaxResult.success(); } @@ -255,6 +257,34 @@ if(null != one && !one.getId().equals(chargingPile.getId())){ return AjaxResult.error("设备编号已存在"); } + TChargingPile tChargingPile = this.getById(chargingPile.getId()); + ShowDeviceResp showDeviceResp = iotInterfaceClient.showDeviceRequest(tChargingPile.getCode()).getData(); + if(null != showDeviceResp){ + DeleteDeviceResp deleteDeviceResp = iotInterfaceClient.deleteDevice(tChargingPile.getCode()).getData(); + if(null == deleteDeviceResp || (deleteDeviceResp.getHttpStatusCode() != 200 && deleteDeviceResp.getHttpStatusCode() != 201 && deleteDeviceResp.getHttpStatusCode() != 204)){ + return AjaxResult.error("删除设备异常,请查看华为设备管理"); + } + } + + + //调用华为Iot创建设备 + AddDevice addDevice = new AddDevice(); + addDevice.setProductId("66da68d21837002b28b34ec0"); + addDevice.setNodeId(chargingPile.getCode()); + addDevice.setDeviceName(chargingPile.getName()); + addDevice.setDescription(chargingPile.getNumber().toString()); + AddDeviceResp deviceResp = iotInterfaceClient.addDevice(addDevice).getData(); + if(null != deviceResp){ + int httpStatusCode = deviceResp.getHttpStatusCode(); + if(httpStatusCode == 201){ + chargingPile.setIotdDeviceId(deviceResp.getDeviceId()); + }else{ + log.error("华为创建设备失败" + JSON.toJSONString(deviceResp)); + return AjaxResult.error("华为创建设备失败"); + } + }else{ + return AjaxResult.error("华为创建设备失败"); + } this.updateById(chargingPile); List<TChargingGun> list = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getChargingPileId, chargingPile.getId()).eq(TChargingGun::getDelFlag, 0)); @@ -295,11 +325,17 @@ for (Integer id : ids) { TChargingPile chargingPile = this.getById(id); //调用华为Iot删除设备 -// if(StringUtils.isNotEmpty(chargingPile.getIotdDeviceId())){ -// DeleteDeviceResp deviceResp = iotInterfaceClient.deleteDevice(chargingPile.getIotdDeviceId()).getData(); -// if(null != deviceResp && deviceResp.getHttpStatusCode() == 0){ -// } -// } + if(StringUtils.isNotEmpty(chargingPile.getIotdDeviceId())){ + ShowDeviceResp showDeviceResp = iotInterfaceClient.showDeviceRequest(chargingPile.getCode()).getData(); + if(null != showDeviceResp){ + DeleteDeviceResp deleteDeviceResp = iotInterfaceClient.deleteDevice(chargingPile.getCode()).getData(); + if(null == deleteDeviceResp || (deleteDeviceResp.getHttpStatusCode() != 200 && deleteDeviceResp.getHttpStatusCode() != 201 && deleteDeviceResp.getHttpStatusCode() != 204)){ + return AjaxResult.error("删除设备异常,请查看华为设备管理"); + } + chargingPile.setIotdDeviceId(""); + } + + } this.removeById(chargingPile); } return AjaxResult.success(); @@ -377,7 +413,7 @@ Integer roleType = sysUser.getRoleType(); Integer objectId = sysUser.getObjectId(); if(2 == roleType){ - siteIds = partnerService.authSite(objectId, SiteMenu.SITE_LIST); + siteIds = partnerService.authSite(objectId, SiteMenu.CHARGING_FACILITY_MONITORING); }else{ //非管理员需要根据角色和用户配置查询允许的站点数据 if(!SecurityUtils.isAdmin(tokenService.getLoginUser().getUserid())){ @@ -469,7 +505,7 @@ Integer roleType = sysUser.getRoleType(); Integer objectId = sysUser.getObjectId(); if(2 == roleType){ - siteIds = partnerService.authSite(objectId, SiteMenu.SITE_LIST); + siteIds = partnerService.authSite(objectId, SiteMenu.CHARGING_FACILITY_MONITORING); }else{ //非管理员需要根据角色和用户配置查询允许的站点数据 if(!SecurityUtils.isAdmin(tokenService.getLoginUser().getUserid())){ @@ -521,7 +557,7 @@ Integer roleType = sysUser.getRoleType(); Integer objectId = sysUser.getObjectId(); if(2 == roleType){ - siteIds = partnerService.authSite(objectId, SiteMenu.SITE_LIST); + siteIds = partnerService.authSite(objectId, SiteMenu.CHARGING_FACILITY_MONITORING); }else{ //非管理员需要根据角色和用户配置查询允许的站点数据 if(admin.getData()!=1){ -- Gitblit v1.7.1