diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/DeviceLocationVo.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/DeviceLocationVo.java index 3f3c876d..28bf6bd0 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/DeviceLocationVo.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/vo/DeviceLocationVo.java @@ -33,4 +33,7 @@ public class DeviceLocationVo { @Schema(description = "进入的电子围栏信息") private DeviceGeoFence fenceInfo; + @Schema(description = "设备是否正在告警") + private Boolean isAlarming; + } \ No newline at end of file diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java index 2b86b937..5fbe8fab 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java @@ -774,6 +774,8 @@ public class DeviceServiceImpl extends ServiceImpl impleme // 注入电子围栏服务 IDeviceGeoFenceService geoFenceService = SpringUtils.getBean(IDeviceGeoFenceService.class); + // 注入设备告警Mapper + DeviceAlarmMapper deviceAlarmMapper = SpringUtils.getBean(DeviceAlarmMapper.class); for (Device device : devices) { DeviceLocationVo vo = new DeviceLocationVo(); @@ -808,6 +810,23 @@ public class DeviceServiceImpl extends ServiceImpl impleme vo.setInFence(false); } + // 检查设备是否正在告警(只要当前设备处于报警状态,且不是电子围栏告警) + if (StringUtils.isNotBlank(device.getDeviceImei())) { + DeviceAlarmVo latestAlarm = deviceAlarmMapper.selectLatestByDeviceImei(device.getDeviceImei()); + // 判断是否正在告警:未处理的告警(treatmentState=1)且不是电子围栏告警(deviceAction!=3) + if (latestAlarm != null && + latestAlarm.getTreatmentState() != null && + latestAlarm.getTreatmentState() == 1 && + latestAlarm.getDeviceAction() != null && + latestAlarm.getDeviceAction() != 3) { + vo.setIsAlarming(true); + } else { + vo.setIsAlarming(false); + } + } else { + vo.setIsAlarming(false); + } + result.add(vo); }