Commit 6e4e7cfe by 汪志阳

fix:修复bug

parent 6fb56ca5
ALTER TABLE `plat_device_other`
ALTER TABLE `plat_device_other`
......@@ -63,3 +63,6 @@ INSERT INTO `plat_alarm_config`(`id`, `alarm_type`, `status`, `org_id`, `city_or
VALUES ('16996678722776842252', '5', '1', '1701542574740770817', NULL, NULL, NULL, NULL, '{\"offBedStart\":\"0:00\",\"startTimeType\":\"1\",\"offBedEnd\":\"10:00\",\"endTimeType\":\"2\",\"duration\":\"5\"}', '[#长者姓名]离床时间过长,请及时处理!', '', '1', '1', NULL, NULL, 'platAdmin02', NOW(), 'platAdmin02', NOW(), '0', '0', NULL);
## 离床异常字典
INSERT INTO `sys_dictionary` VALUES ('204', 'alarm.alarmType.offBed', '离床异常', '5', 5, '', '200', NOW(), NOW(), '0', NULL, NULL, NULL);
## 离床次数月统计
ALTER TABLE `plat_elder_report_month` add column off_bed_exception_count int(11) default 0 COMMENT '离床异常次数' after behavior_exception_count;
......@@ -23,16 +23,16 @@ import java.time.LocalTime;
public class PlatAlarmConfigOffBedDTOVO {
@ApiModelProperty("离床开始时间")
@DateTimeFormat(pattern = "HH:mm:ss")
@JsonFormat(pattern = "HH:mm:ss",timezone="GMT+8")
@DateTimeFormat(pattern = "HH:mm")
@JsonFormat(pattern = "HH:mm",timezone="GMT+8")
private LocalTime offBedStart;
@ApiModelProperty("离床时间类型 :1-当日,2-次日")
private String startTimeType;
@ApiModelProperty("离床结束时间")
@DateTimeFormat(pattern = "HH:mm:ss")
@JsonFormat(pattern = "HH:mm:ss",timezone="GMT+8")
@DateTimeFormat(pattern = "HH:mm")
@JsonFormat(pattern = "HH:mm",timezone="GMT+8")
private LocalTime offBedEnd;
@ApiModelProperty("离床时间类型 :1-当日,2-次日")
......
package com.makeit.entity.platform.elder;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import com.makeit.common.entity.BaseBusEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDate;
/**
* <p>
* 长者月报
......@@ -57,5 +56,7 @@ public class PlatElderReportMonth extends BaseBusEntity {
@ApiModelProperty(value = "行为异常次数")
private Integer behaviorExceptionCount;
@ApiModelProperty(value = "离床异常次数")
private Integer offBedExceptionCount;
}
......@@ -10,7 +10,8 @@ public enum PlatAlarmRecordType {
FALL("fall","长者跌倒"),
BEHAVIOR("behavior","行为异常");
BEHAVIOR("behavior","行为异常"),
OFF_BED("off_bed","离床异常");
private final String value;
private final String name;
......
......@@ -10,7 +10,6 @@ import com.makeit.entity.platform.alarm.PlatAlarmConfig;
import com.makeit.entity.platform.alarm.PlatAlarmRecord;
import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.entity.platform.space.PlatRoom;
import com.makeit.enums.CommonEnum;
import com.makeit.enums.platform.alarm.PlatAlarmConfigEnum;
import com.makeit.enums.redis.RedisConst;
......@@ -116,11 +115,15 @@ public class OffBedAlarm implements IAlarm {
Long startLong = alarmRedisDTO.getStartLong();
long count = endLong - startLong;
String messageType = platAlarmCheckDTO.getMessageType();
if (count / 1000 >= duration && !StringUtils.equals(alarmRedisDTO.getAlarm(), CommonEnum.YES.getValue())) {
// platAlarmCheckDTO.setAbnormalValue(Convert.toStr(br));
if (count / 1000 >= duration) {
if (StringUtils.equals(alarmRedisDTO.getAlarm(), CommonEnum.YES.getValue())) {
log.info("离床告警,已告警过,设备plat_id:" + deviceId);
return;
}
alarmRedisDTO.setStartLong(endLong);
alarmRedisDTO.setStart(now);
alarmRedisDTO.setAlarm(CommonEnum.YES.getValue());
platAlarmCheckDTO.setAbnormalValue(String.valueOf(count));
RedisUtil.set(RedisConst.ALARM_DEVICE_OFF_BED_ID + deviceId, alarmRedisDTO);
notice(platAlarmCheckDTO);
}
......@@ -156,6 +159,7 @@ public class OffBedAlarm implements IAlarm {
PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice();
platAlarmRecordService.getElderListByDeviceId(platAlarmCheckDTO);
List<PlatElder> platElderList = platAlarmCheckDTO.getPlatElderList();
log.info("离床预警长者信息:{}", JSONUtil.toJsonStr(platElderList));
PlatAlarmConfig config = platAlarmCheckDTO.getPlatAlarmConfig();
if (CommonEnum.NO.getValue().equals(config.getStatus())) {
log.error("离床告警配置为禁用,告警配置id:" + config.getId());
......@@ -169,17 +173,17 @@ public class OffBedAlarm implements IAlarm {
log.error("离床告警配置未关联长者,设备plat_id:" + platDevice.getId());
return;
}
PlatRoom platRoom = platAlarmCheckDTO.getPlatRoom();
// PlatRoom platRoom = platAlarmCheckDTO.getPlatRoom();
for (PlatElder platElder : platElderList) {
List<String> param = new ArrayList<>();
param.add(platRoom.getName());
// param.add(platRoom.getName());
param.add(platElder.getName());
platAlarmCheckDTO.setParam(param);
PlatAlarmRecord platAlarmRecord = platAlarmRecordService.convertToPlatAlarmRecord(platAlarmCheckDTO, platElder);
platAlarmRecord.setElderName(platElder.getName());
platAlarmRecord.setElderIds(platElder.getId());
platAlarmRecordService.noticeDeviceAlarm(platAlarmCheckDTO.getPlatAlarmConfig(), platAlarmRecord);
log.error("离床告警配置,发出告警,设备id:" + platDevice.getId() + ", 长者名称:" + platElder.getName());
log.info("离床告警配置,发出告警,设备id:" + platDevice.getId() + ", 长者名称:" + platElder.getName());
}
}
}
......@@ -399,7 +399,7 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
msgSendDTO.setSubject(alarmRecord.getContent());
msgSendDTO.setParam(alarmRecord.getElderName());
String alarmType = alarmConfig.getAlarmType();
//告警类型 数据字典 1 长者跌倒 2 呼吸异常 3 心率异常 4 行为异常
//告警类型 数据字典 1 长者跌倒 2 呼吸异常 3 心率异常 4 行为异常 5 离床异常
if (StringUtils.equals(alarmType, "1")) {
msgSendDTO.setParam(alarmRecord.getElderName(),alarmRecord.getRegionName());
}
......@@ -412,6 +412,9 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
if (StringUtils.equals(alarmType, "4")) {
msgSendDTO.setParam(alarmRecord.getElderName(),alarmRecord.getRegionName());
}
if (StringUtils.equals(alarmType, "5")) {
msgSendDTO.setParam(alarmRecord.getElderName(),alarmRecord.getRegionName());
}
msgSendDTO.setAlarmType(alarmConfig.getAlarmType());
//todo 小程序消息
msgUtil.send(msgSendDTO);
......@@ -522,7 +525,7 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
}
private String replaceParam(String oriContent,List<String> param) {
public static String replaceParam(String oriContent,List<String> param) {
Pattern p = Pattern.compile("\\[#\\d+\\]|\\[#[\\p{IsHan}]+\\]|\\[#[^\\]]*\\]");
Matcher m = p.matcher(oriContent);
StringBuffer sb = new StringBuffer();
......
......@@ -4,13 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.entity.platform.alarm.PlatAlarmRecord;
import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.elder.*;
import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.entity.platform.elder.PlatElderBreatheDayStat;
import com.makeit.entity.platform.elder.PlatElderReportMonth;
import com.makeit.entity.platform.elder.PlatElderSleepAnalysis;
import com.makeit.enums.platform.alarm.PlatAlarmConfigEnum;
import com.makeit.enums.report.BreatheTypeEnum;
import com.makeit.enums.report.HeartRateTypeEnum;
import com.makeit.mapper.platform.elder.PlatElderBreatheDayStatMapper;
import com.makeit.module.iot.service.IotProductDeviceService;
import com.makeit.module.iot.vo.analysis.DiseaseReportVO;
import com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe;
import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.service.platform.elder.*;
......@@ -134,6 +134,7 @@ public class PlatElderBreatheDayStatServiceImpl extends ServiceImpl<PlatElderBre
reportMonth.setHeartExceptionCount((int) StreamUtil.count(rList, i -> PlatAlarmConfigEnum.AlarmTypeEnum.HEART.getValue().equals(i.getAlarmType())));
reportMonth.setRespiratoryExceptionCount((int) StreamUtil.count(rList, i -> PlatAlarmConfigEnum.AlarmTypeEnum.BREATHE.getValue().equals(i.getAlarmType())));
reportMonth.setBehaviorExceptionCount((int) StreamUtil.count(rList, i -> PlatAlarmConfigEnum.AlarmTypeEnum.BEHAVIOR.getValue().equals(i.getAlarmType())));
reportMonth.setOffBedExceptionCount((int) StreamUtil.count(rList, i -> PlatAlarmConfigEnum.AlarmTypeEnum.OFF_BED.getValue().equals(i.getAlarmType())));
reportMonth.setTenantId(e.getTenantId());
reportMonthList.add(reportMonth);
......
package com.makeit.service.platform.elder.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Lists;
import com.makeit.common.entity.BaseEntity;
import com.makeit.dto.platform.elder.PlatElderReportDTO;
import com.makeit.entity.platform.alarm.PlatAlarmRecord;
......@@ -293,7 +294,9 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
}
}
List<PlatAlarmRecord> recordList = platAlarmRecordService.list(new QueryWrapper<PlatAlarmRecord>().lambda()
.eq(PlatAlarmRecord::getAlarmType, PlatAlarmConfigEnum.AlarmTypeEnum.BEHAVIOR.getValue())
// .eq(PlatAlarmRecord::getAlarmType, PlatAlarmConfigEnum.AlarmTypeEnum.BEHAVIOR.getValue())
.in(PlatAlarmRecord::getAlarmType, Lists.newArrayList(PlatAlarmConfigEnum.AlarmTypeEnum.BEHAVIOR.getValue()
, PlatAlarmConfigEnum.AlarmTypeEnum.OFF_BED.getValue()))
.eq(PlatAlarmRecord::getElderIds, elderId)
.eq(PlatAlarmRecord::getMisinformationFlag, CommonEnum.NO.getValue())
.ge(PlatAlarmRecord::getAlarmDate, start)
......
......@@ -4,25 +4,18 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.makeit.common.entity.BaseBusEntity;
import com.makeit.dto.platform.elder.PlatElderReportDTO;
import com.makeit.entity.platform.alarm.PlatAlarmRecord;
import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.elder.*;
import com.makeit.enums.platform.alarm.PlatAlarmConfigEnum;
import com.makeit.enums.report.SleepTypeEnum;
import com.makeit.global.aspect.tenant.TenantIdIgnore;
import com.makeit.module.iot.service.IotProductDeviceService;
import com.makeit.module.iot.vo.analysis.EvaluateReportVO;
import com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe;
import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.service.platform.elder.*;
import com.makeit.service.saas.PlatTenantService;
import com.makeit.service.saas.SaasDiseaseReportService;
import com.makeit.service.saas.SaasElderReportConfigService;
import com.makeit.service.saas.SaasSleepEvaluateReportService;
import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.data.convert.StreamUtil;
import com.makeit.utils.data.validate.CollectionUtils;
import com.makeit.utils.data.validate.MapUtil;
import com.makeit.utils.old.StringUtils;
import com.makeit.utils.time.LocalDateTimeUtils;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
......@@ -45,6 +38,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Collectors;
@Service
......@@ -268,7 +262,8 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
Map<Integer, Map<String, List<PlatElderSleep>>> sleepMap = sleepList.stream().collect(Collectors.groupingBy(PlatElderSleep::getElderSleepType, Collectors.groupingBy(PlatElderSleep::getHappenDate)));
Map<String, PlatElderSleepAnalysis> sleepAnalysisMap = StreamUtil.toMap(sleepAnalysisList, PlatElderSleepAnalysis::getHappenDate);
Map<String, PlatElderSleepAnalysis> sleepAnalysisMap = sleepAnalysisList.stream().collect(Collectors.toMap(PlatElderSleepAnalysis::getHappenDate, Function.identity(),(v1,v2)->v1));
// Map<String, PlatElderSleepAnalysis> sleepAnalysisMap = StreamUtil.toMap(sleepAnalysisList, PlatElderSleepAnalysis::getHappenDate);
List<LocalDate> dateList = LocalDateTimeUtils.getDateSeries(weekStartDate, weekEndDate);
......
......@@ -847,6 +847,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
platElderReportMonth.setRespiratoryExceptionCount(0);
platElderReportMonth.setHeartExceptionCount(0);
platElderReportMonth.setBehaviorExceptionCount(0);
platElderReportMonth.setOffBedExceptionCount(0);
platElderReportMonth.setHeartRate(80);
platElderReportMonth.setRespiratoryRate(20);
platElderReportMonth.setFailCount(0);
......
......@@ -42,8 +42,6 @@ import com.makeit.service.platform.space.PlatSpaceService;
import com.makeit.service.platform.workstation.WorkStationService;
import com.makeit.service.saas.SaasModelManageService;
import com.makeit.service.saas.SaasSleepAnalysisModelService;
import com.makeit.shengwang.agora.service.ShengwangService;
import com.makeit.shengwang.agora.vo.PlatAlarmCallDeviceVO;
import com.makeit.utils.StandardDeviationUtil;
import com.makeit.utils.data.convert.PageUtil;
import com.makeit.utils.data.convert.StreamUtil;
......@@ -420,6 +418,8 @@ public class WorkStationServiceImpl implements WorkStationService {
typeMap.put(a.getAlarmType(), PlatAlarmRecordType.FALL.getName());
} else if(PlatAlarmConfigEnum.AlarmTypeEnum.BEHAVIOR.getValue().equals(a.getAlarmType())){
typeMap.put(a.getAlarmType(), PlatAlarmRecordType.BEHAVIOR.getName());
} else if (PlatAlarmConfigEnum.AlarmTypeEnum.OFF_BED.getValue().equals(a.getAlarmType())) {
typeMap.put(a.getAlarmType(), PlatAlarmRecordType.OFF_BED.getName());
}
map.put(e, typeMap);
......@@ -436,6 +436,8 @@ public class WorkStationServiceImpl implements WorkStationService {
typeMap.put(a.getAlarmType(), PlatAlarmRecordType.FALL.getName());
} else if(PlatAlarmConfigEnum.AlarmTypeEnum.BEHAVIOR.getValue().equals(a.getAlarmType())){
typeMap.put(a.getAlarmType(), PlatAlarmRecordType.BEHAVIOR.getName());
} else if (PlatAlarmConfigEnum.AlarmTypeEnum.OFF_BED.getValue().equals(a.getAlarmType())) {
typeMap.put(a.getAlarmType(), PlatAlarmRecordType.OFF_BED.getName());
}
map.put(e, typeMap);
}
......
......@@ -35,5 +35,8 @@ public class PlatElderReportMonthVO {
@ApiModelProperty("行为异常次数")
private Integer behaviorExceptionCount;
@ApiModelProperty(value = "离床异常次数")
private Integer offBedExceptionCount;
}
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