diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/IotService.java b/ruoyi-admin/src/main/java/org/dromara/web/service/IotService.java index 95cac126a..a77e619fa 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/IotService.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/IotService.java @@ -60,6 +60,7 @@ public class IotService { map.put("entityType","DEVICE"); map.put("entityId",deviceCode); String send = getSend(CommonYmlConfig.URL_IOT_TELEMETRY, map); + if (send.startsWith("{\"status\":")) return null; JSONObject jsonObject = JSON.parseObject(send); //转换 Map resultMap = new HashMap<>(); diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java index b061c206b..19fe0dc47 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java @@ -77,6 +77,10 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService { for (EqEquipmentVo record : records) { String equipmentCode = record.getEquipmentCode(); DeviceMsgDto telemetryMsg = iotService.httpTelemetryGetSend(equipmentCode); + if (telemetryMsg == null) { + record.setLineStatus(0);//未获取到数据统一为离线 + continue; + } record.setStatus(telemetryMsg.getOpenPercentage()); record.setFaultStatus(telemetryMsg.getGarageException()); } @@ -230,7 +234,7 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService { //获取服务属性状态 DeviceServerMsgDto serverMsg = iotService.httpServerGetSend(bo.getEquipmentCode()); result.setLineStatus(serverMsg.getLineStatus()?1:0); - + if (!serverMsg.getLineStatus()) return result; //获取客户端属性 DeviceClientMsgDto clientMsg = iotService.httpClientGetSend(bo.getEquipmentCode()); result.setEquipmentType(clientMsg.getEquipmentType()); @@ -241,7 +245,10 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService { //获取遥测数据 DeviceMsgDto telemetryMsg = iotService.httpTelemetryGetSend(bo.getEquipmentCode()); - + if (telemetryMsg == null) { + System.out.println("未获取到设备信息"); + result.setLineStatus(0); + } //开合状态 result.setOpenStatus(telemetryMsg.getOpenPercentage()); result.setOpenStatusText( @@ -297,14 +304,17 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService { eqEquipmentBo.setUserName(sysUserVo.getUserName()); eqEquipmentBo.setNickName(sysUserVo.getNickName()); DeviceMsgDto deviceMsgDto = iotService.httpTelemetryGetSend(equipmentCode); + if (deviceMsgDto==null){ + eqEquipmentBo.setStatus(deviceMsgDto.getOpenPercentage());//使用半开作为状态值 + eqEquipmentBo.setFaultStatus(deviceMsgDto.getGarageException()); + eqEquipmentBo.setLineStatus(1);//在线 + }else{ + eqEquipmentBo.setLineStatus(0);//离线 + } - eqEquipmentBo.setStatus(deviceMsgDto.getOpenPercentage());//使用半开作为状态值 - eqEquipmentBo.setFaultStatus(deviceMsgDto.getGarageException()); - eqEquipmentBo.setLineStatus(1);//在线 //判断是否获取到信息 无信息会抛异常 无需判断 EqEquipment add = MapstructUtils.convert(eqEquipmentBo, EqEquipment.class); - validEntityBeforeSave(add); baseMapper.insert(add); return true; }