Commit d48161c1 by 汪志阳

fix:bug fix

parent cb4d4438
...@@ -11,7 +11,6 @@ import com.makeit.entity.platform.elder.PlatElder; ...@@ -11,7 +11,6 @@ import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.enums.CommonEnum; import com.makeit.enums.CommonEnum;
import com.makeit.enums.platform.alarm.PlatAlarmConfigEnum; import com.makeit.enums.platform.alarm.PlatAlarmConfigEnum;
import com.makeit.enums.redis.RedisConst; import com.makeit.enums.redis.RedisConst;
import com.makeit.service.platform.alarm.PlatAlarmConfigService;
import com.makeit.service.platform.alarm.PlatAlarmRecordService; import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.utils.AlarmConfigCacheUtil; import com.makeit.utils.AlarmConfigCacheUtil;
import com.makeit.utils.AlarmRedisDTO; import com.makeit.utils.AlarmRedisDTO;
...@@ -20,7 +19,6 @@ import com.makeit.utils.redis.RedisUtil; ...@@ -20,7 +19,6 @@ import com.makeit.utils.redis.RedisUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
...@@ -38,8 +36,6 @@ public class OffBedAlarm implements IAlarm { ...@@ -38,8 +36,6 @@ public class OffBedAlarm implements IAlarm {
private final PlatAlarmConfigEnum.AlarmTypeEnum alarmTypeEnum = PlatAlarmConfigEnum.AlarmTypeEnum.OFF_BED; private final PlatAlarmConfigEnum.AlarmTypeEnum alarmTypeEnum = PlatAlarmConfigEnum.AlarmTypeEnum.OFF_BED;
@Resource @Resource
private AlarmConfigCacheUtil alarmConfigCacheUtil; private AlarmConfigCacheUtil alarmConfigCacheUtil;
@Autowired
private PlatAlarmConfigService platAlarmConfigService;
@Override @Override
public boolean support(String alarmType) { public boolean support(String alarmType) {
...@@ -53,9 +49,6 @@ public class OffBedAlarm implements IAlarm { ...@@ -53,9 +49,6 @@ public class OffBedAlarm implements IAlarm {
*/ */
@Override @Override
public void checkConfig(PlatAlarmCheckDTO platAlarmCheckDTO) { public void checkConfig(PlatAlarmCheckDTO platAlarmCheckDTO) {
if (1 == 1) {
return;
}
PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice(); PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice();
platAlarmRecordService.getElderListByDeviceId(platAlarmCheckDTO); platAlarmRecordService.getElderListByDeviceId(platAlarmCheckDTO);
log.info("执行离床checkConfig方法:"); log.info("执行离床checkConfig方法:");
...@@ -65,7 +58,6 @@ public class OffBedAlarm implements IAlarm { ...@@ -65,7 +58,6 @@ public class OffBedAlarm implements IAlarm {
return; return;
} }
PlatAlarmConfig config = alarmConfigCacheUtil.get(platDevice.getOrgId(), PlatAlarmConfigEnum.AlarmTypeEnum.OFF_BED.getValue()); PlatAlarmConfig config = alarmConfigCacheUtil.get(platDevice.getOrgId(), PlatAlarmConfigEnum.AlarmTypeEnum.OFF_BED.getValue());
// log.info("当前config:{},dto config:{}", config.getRuleConfig(), platAlarmCheckDTO.getPlatAlarmConfig().getRuleConfig());
offBedCheckAlarm(config, platAlarmCheckDTO, platDevice); offBedCheckAlarm(config, platAlarmCheckDTO, platDevice);
} }
...@@ -114,7 +106,7 @@ public class OffBedAlarm implements IAlarm { ...@@ -114,7 +106,7 @@ public class OffBedAlarm implements IAlarm {
boolean isOffBed = "0".equals(personState); boolean isOffBed = "0".equals(personState);
// 1-有人 0-无人 // 1-有人 0-无人
AlarmRedisDTO alarmRedisDTO = RedisUtil.get(RedisConst.ALARM_DEVICE_OFF_BED_ID + deviceId); AlarmRedisDTO alarmRedisDTO = RedisUtil.get(RedisConst.ALARM_DEVICE_OFF_BED_ID + deviceId);
if (!isOffBed && alarmRedisDTO != null) { if ("1".equals(personState)) {
log.info("deviceId:{},离床告警有人状态下,删除redis", deviceId); log.info("deviceId:{},离床告警有人状态下,删除redis", deviceId);
RedisUtil.delete(RedisConst.ALARM_DEVICE_OFF_BED_ID + deviceId); RedisUtil.delete(RedisConst.ALARM_DEVICE_OFF_BED_ID + deviceId);
return; return;
...@@ -126,7 +118,10 @@ public class OffBedAlarm implements IAlarm { ...@@ -126,7 +118,10 @@ public class OffBedAlarm implements IAlarm {
} }
if (isOffBed) { if (isOffBed) {
// 离床推送redis // 离床推送redis
sendToRedis(alarmRedisDTO, deviceId); if (sendToRedis(alarmRedisDTO, deviceId)) {
//第一次离床
return;
}
alarmRedisDTO = RedisUtil.get(RedisConst.ALARM_DEVICE_OFF_BED_ID + deviceId); alarmRedisDTO = RedisUtil.get(RedisConst.ALARM_DEVICE_OFF_BED_ID + deviceId);
...@@ -168,12 +163,18 @@ public class OffBedAlarm implements IAlarm { ...@@ -168,12 +163,18 @@ public class OffBedAlarm implements IAlarm {
LocalTime firstTime = longToTime(firstOffBedLong).toLocalTime(); LocalTime firstTime = longToTime(firstOffBedLong).toLocalTime();
boolean isInTime = firstTime.isAfter(startTime) || firstTime.isBefore(endTime); boolean isInTime = firstTime.isAfter(startTime) || firstTime.isBefore(endTime);
// LocalTime endTimeLimit = endTime.plusMinutes(-duration); LocalTime endTimeLimit = endTime.plusMinutes(-duration);
// 离床时间在范围内 // 离床时间在范围内
if (isInTime && isOverTime) { if (isInTime && isOverTime) {
// 离床时间为23:00-1:00 持续时间5分钟 ,第一次离床为0:55,满足条件的时间>1:00,不预警
if (firstTime.isAfter(endTimeLimit) && firstTime.isBefore(endTime)) {
log.info("deviceId:{},UnCrossDay第一次离床时间,{}+持续时间:{}将超过范围,{}", deviceId, firstTime, duration, endTime);
return;
}
platAlarmCheckDTO.setAbnormalValue(String.valueOf(currentTimeMillis - firstOffBedLong)); platAlarmCheckDTO.setAbnormalValue(String.valueOf(currentTimeMillis - firstOffBedLong));
log.info("deviceId:{},cross离床告警离床时间在范围时间内,配置:{}", deviceId, config.getRuleConfig()); log.info("deviceId:{},cross离床告警离床时间在范围时间内,配置:{}", deviceId, config.getRuleConfig());
platAlarmCheckDTO.setPlatAlarmConfig(config); platAlarmCheckDTO.setPlatAlarmConfig(config);
// platAlarmCheckDTO.setAlarmRecordId(IdWorker.getIdStr(PlatAlarmRecord.class));
noticeAlarm(alarmRedisDTO, platAlarmCheckDTO, deviceId); noticeAlarm(alarmRedisDTO, platAlarmCheckDTO, deviceId);
return; return;
} }
...@@ -255,7 +256,7 @@ public class OffBedAlarm implements IAlarm { ...@@ -255,7 +256,7 @@ public class OffBedAlarm implements IAlarm {
} }
} }
private void sendToRedis(AlarmRedisDTO alarmRedisDTO, String deviceId) { private boolean sendToRedis(AlarmRedisDTO alarmRedisDTO, String deviceId) {
Date now = toDate(); Date now = toDate();
// 第一次上报 // 第一次上报
if (alarmRedisDTO == null) { if (alarmRedisDTO == null) {
...@@ -264,9 +265,11 @@ public class OffBedAlarm implements IAlarm { ...@@ -264,9 +265,11 @@ public class OffBedAlarm implements IAlarm {
alarmRedisDTO.setStart(now); alarmRedisDTO.setStart(now);
alarmRedisDTO.setStartLong(currentLong()); alarmRedisDTO.setStartLong(currentLong());
RedisUtil.set(RedisConst.ALARM_DEVICE_OFF_BED_ID + deviceId, alarmRedisDTO); RedisUtil.set(RedisConst.ALARM_DEVICE_OFF_BED_ID + deviceId, alarmRedisDTO);
return true;
} else { } else {
alarmRedisDTO.setStart(now); alarmRedisDTO.setStart(now);
RedisUtil.set(RedisConst.ALARM_DEVICE_OFF_BED_ID + deviceId, alarmRedisDTO); RedisUtil.set(RedisConst.ALARM_DEVICE_OFF_BED_ID + deviceId, alarmRedisDTO);
return false;
} }
} }
......
package com.makeit.mqtt; package com.makeit.mqtt;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
...@@ -39,7 +37,6 @@ import java.util.List; ...@@ -39,7 +37,6 @@ import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Component @Component
...@@ -206,10 +203,6 @@ public class PushCallback implements MqttCallback { ...@@ -206,10 +203,6 @@ public class PushCallback implements MqttCallback {
logger.error("该设备没有告警配置,设备iot-id,iot_tenantId:" + deviceId+","+iot_tenantId); logger.error("该设备没有告警配置,设备iot-id,iot_tenantId:" + deviceId+","+iot_tenantId);
return; return;
} }
List<PlatAlarmConfig> configList = deviceAlarmConfigList.stream().filter(f -> "5".equals(f.getAlarmType())).collect(Collectors.toList());
if (CollUtil.isNotEmpty(configList)) {
logger.info("离床预警config集合:{}", JSONUtil.toJsonStr(configList));
}
for (PlatAlarmConfig config : deviceAlarmConfigList) { for (PlatAlarmConfig config : deviceAlarmConfigList) {
String alarmType = config.getAlarmType(); String alarmType = config.getAlarmType();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment