Commit 0ac0edb0 by 李小龙

fix: 告警配置获取长者健康数据

parent 317702ea
...@@ -104,6 +104,8 @@ public class RedisConst { ...@@ -104,6 +104,8 @@ public class RedisConst {
public static final String LOCK_ALARM = "lock:alarm:device:id:"; public static final String LOCK_ALARM = "lock:alarm:device:id:";
public static final String ALARM_HEALTH_CONFIG_PREFIX = "alarm:config:device:id:";
......
...@@ -66,7 +66,7 @@ public class PlatDeviceController { ...@@ -66,7 +66,7 @@ public class PlatDeviceController {
@AuthIgnore @AuthIgnore
@TenantIdIgnore @TenantIdIgnore
public ApiResponseEntity<Void> iotSyncTask(@RequestBody BaseIdDTO baseIdDTO) { public ApiResponseEntity<Void> iotSyncTask(@RequestBody BaseIdDTO baseIdDTO) {
iotSyncTask.syncEquipmentInfo(); iotSyncTask.savePlatDevice();
return ApiResponseUtils.success(); return ApiResponseUtils.success();
} }
......
package com.makeit.dto.platform.alarm;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
@Data
public class PlatHealthConfigDTO {
private String platElderId;
private Integer heartRateStart;
private Integer heartRateEnd;
private Integer heartDuration;
private String heartRateStr;
private Integer breathRateStart;
private Integer breathRateEnd;
private Integer breathDuration;
private String breathRateStr;
private boolean heartConfig = false;
private boolean breathConfig = false;
public boolean checkAndFillHeartConfig(){
if(StringUtils.isBlank(heartRateStr)){
return false;
}
if (heartDuration == null ||heartDuration == 0){
return false;
}
String[] split = heartRateStr.split("-");
if(split.length==2){
heartRateStart=Integer.valueOf(split[0]);
heartRateEnd=Integer.valueOf(split[1]);
}else {
return false;
}
heartConfig = true;
return true;
}
public boolean checkAndFillBreathConfig(){
if(StringUtils.isBlank(breathRateStr)){
return false;
}
if (breathDuration == null ||breathDuration == 0){
return false;
}
String[] split = breathRateStr.split("-");
if(split.length==2){
breathRateStart=Integer.valueOf(split[0]);
breathRateEnd=Integer.valueOf(split[1]);
}else {
return false;
}
breathConfig = true;
return true;
}
public PlatAlarmConfigHeartDTOVO getAlarmConfigHeartDTO(){
if(heartConfig){
PlatAlarmConfigHeartDTOVO dto = new PlatAlarmConfigHeartDTOVO();
dto.setHeartRateStart(heartRateStart);
dto.setHeartRateeEnd(heartRateEnd);
dto.setDuration(heartDuration);
return dto;
}
return null;
}
public PlatAlarmConfigRespiratoryDTOVO getAlarmConfigRespiratoryDTOVO(){
if(breathConfig){
PlatAlarmConfigRespiratoryDTOVO dto = new PlatAlarmConfigRespiratoryDTOVO();
dto.setRespiratoryRateStart(breathRateStart);
dto.setRespiratoryRateEnd(breathRateEnd);
dto.setDuration(breathDuration);
return dto;
}
return null;
}
}
package com.makeit.mapper.platform.alarm; package com.makeit.mapper.platform.alarm;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.makeit.dto.platform.alarm.PlatHealthConfigDTO;
import com.makeit.entity.platform.alarm.PlatAlarmConfig; import com.makeit.entity.platform.alarm.PlatAlarmConfig;
import java.util.List;
/** /**
* <p> * <p>
* 告警配置 Mapper 接口 * 告警配置 Mapper 接口
...@@ -13,4 +16,9 @@ import com.makeit.entity.platform.alarm.PlatAlarmConfig; ...@@ -13,4 +16,9 @@ import com.makeit.entity.platform.alarm.PlatAlarmConfig;
*/ */
public interface PlatAlarmConfigMapper extends BaseMapper<PlatAlarmConfig> { public interface PlatAlarmConfigMapper extends BaseMapper<PlatAlarmConfig> {
/**
* 设备id 老人id 配置
* @return
*/
List<PlatHealthConfigDTO> getHealthConfigList();
} }
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.common.dto.StatusDTO; import com.makeit.common.dto.StatusDTO;
import com.makeit.dto.platform.alarm.PlatAlarmConfigDTOVO; import com.makeit.dto.platform.alarm.PlatAlarmConfigDTOVO;
import com.makeit.dto.platform.alarm.PlatAlarmConfigQueryDTO; import com.makeit.dto.platform.alarm.PlatAlarmConfigQueryDTO;
import com.makeit.dto.platform.alarm.PlatHealthConfigDTO;
import com.makeit.entity.platform.alarm.PlatAlarmConfig; import com.makeit.entity.platform.alarm.PlatAlarmConfig;
import com.makeit.entity.platform.auth.PlatOrg; import com.makeit.entity.platform.auth.PlatOrg;
import com.makeit.vo.platform.alarm.PlatAlarmConfigListVO; import com.makeit.vo.platform.alarm.PlatAlarmConfigListVO;
...@@ -38,4 +39,6 @@ public interface PlatAlarmConfigService extends IService<PlatAlarmConfig> { ...@@ -38,4 +39,6 @@ public interface PlatAlarmConfigService extends IService<PlatAlarmConfig> {
void copyForOrg(PlatOrg org); void copyForOrg(PlatOrg org);
List<PlatHealthConfigDTO> getHealthConfigList();
} }
...@@ -4,6 +4,7 @@ import cn.hutool.core.convert.Convert; ...@@ -4,6 +4,7 @@ import cn.hutool.core.convert.Convert;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.makeit.dto.platform.alarm.PlatAlarmCheckDTO; import com.makeit.dto.platform.alarm.PlatAlarmCheckDTO;
import com.makeit.dto.platform.alarm.PlatAlarmConfigRespiratoryDTOVO; import com.makeit.dto.platform.alarm.PlatAlarmConfigRespiratoryDTOVO;
import com.makeit.dto.platform.alarm.PlatHealthConfigDTO;
import com.makeit.entity.platform.alarm.PlatAlarmConfig; import com.makeit.entity.platform.alarm.PlatAlarmConfig;
import com.makeit.entity.platform.alarm.PlatAlarmRecord; import com.makeit.entity.platform.alarm.PlatAlarmRecord;
import com.makeit.entity.platform.device.PlatDevice; import com.makeit.entity.platform.device.PlatDevice;
...@@ -13,6 +14,7 @@ import com.makeit.enums.platform.alarm.PlatAlarmConfigEnum; ...@@ -13,6 +14,7 @@ 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.PlatAlarmRecordService; import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.utils.AlarmRedisDTO; import com.makeit.utils.AlarmRedisDTO;
import com.makeit.utils.PersonalConfigCacheUtil;
import com.makeit.utils.data.convert.JsonUtil; import com.makeit.utils.data.convert.JsonUtil;
import com.makeit.utils.redis.RedisUtil; import com.makeit.utils.redis.RedisUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -33,6 +35,9 @@ public class BreathAlarm implements IAlarm { ...@@ -33,6 +35,9 @@ public class BreathAlarm implements IAlarm {
private final PlatAlarmConfigEnum.AlarmTypeEnum alarmTypeEnum = PlatAlarmConfigEnum.AlarmTypeEnum.BREATHE; private final PlatAlarmConfigEnum.AlarmTypeEnum alarmTypeEnum = PlatAlarmConfigEnum.AlarmTypeEnum.BREATHE;
@Autowired
private PersonalConfigCacheUtil personalConfigCacheUtil;
@Override @Override
public boolean support(String alarmType) { public boolean support(String alarmType) {
return StringUtils.equals(alarmType, alarmTypeEnum.getValue()); return StringUtils.equals(alarmType, alarmTypeEnum.getValue());
...@@ -50,23 +55,41 @@ public class BreathAlarm implements IAlarm { ...@@ -50,23 +55,41 @@ public class BreathAlarm implements IAlarm {
@Override @Override
public void checkConfig(PlatAlarmCheckDTO platAlarmCheckDTO) { public void checkConfig(PlatAlarmCheckDTO platAlarmCheckDTO) {
//todo 获取老人健康的阈值 //todo 获取老人健康的阈值
platAlarmRecordService.getElderListByDeviceId(platAlarmCheckDTO);
List<PlatElder> platElderList = platAlarmCheckDTO.getPlatElderList();
if(CollectionUtils.isEmpty(platElderList)){
log.error("呼吸设备未关联长者,设备plat_id:" + platAlarmCheckDTO.getPlatDevice().getId());
return;
}
PlatElder platElder = platElderList.get(0);
PlatHealthConfigDTO platHealthConfigDTO = personalConfigCacheUtil.get(platElder.getId());
PlatAlarmConfigRespiratoryDTOVO ruleConfig;
if(platHealthConfigDTO != null && platHealthConfigDTO.isBreathConfig()){
ruleConfig = platHealthConfigDTO.getAlarmConfigRespiratoryDTOVO();
}else {
PlatAlarmConfig config = platAlarmCheckDTO.getPlatAlarmConfig(); PlatAlarmConfig config = platAlarmCheckDTO.getPlatAlarmConfig();
String ruleConfigStr = config.getRuleConfig(); String ruleConfigStr = config.getRuleConfig();
JSONObject properties = platAlarmCheckDTO.getProperties();
PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice();
String deviceId = platDevice.getOriDeviceId();
if (StringUtils.isBlank(ruleConfigStr)) { if (StringUtils.isBlank(ruleConfigStr)) {
log.error("呼吸告警配置未配置,告警配置id:" + config.getId()); log.error("呼吸告警配置未配置,告警配置id:" + config.getId());
return; return;
} }
String personState = Convert.toStr(properties.get("personState")); ruleConfig = JsonUtil.toObj(ruleConfigStr, PlatAlarmConfigRespiratoryDTOVO.class);
}
//呼吸率
int br = (int) properties.get("br");
PlatAlarmConfigRespiratoryDTOVO ruleConfig = JsonUtil.toObj(ruleConfigStr, PlatAlarmConfigRespiratoryDTOVO.class);
Integer start = ruleConfig.getRespiratoryRateStart(); Integer start = ruleConfig.getRespiratoryRateStart();
Integer end = ruleConfig.getRespiratoryRateEnd(); Integer end = ruleConfig.getRespiratoryRateEnd();
Integer duration = ruleConfig.getDuration(); Integer duration = ruleConfig.getDuration();
JSONObject properties = platAlarmCheckDTO.getProperties();
PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice();
String deviceId = platDevice.getOriDeviceId();
String personState = Convert.toStr(properties.get("personState"));
//呼吸率
int br = (int) properties.get("br");
Date now = new Date(); Date now = new Date();
long endLong = now.getTime(); long endLong = now.getTime();
//计数 //计数
......
...@@ -4,6 +4,7 @@ import cn.hutool.core.convert.Convert; ...@@ -4,6 +4,7 @@ import cn.hutool.core.convert.Convert;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.makeit.dto.platform.alarm.PlatAlarmCheckDTO; import com.makeit.dto.platform.alarm.PlatAlarmCheckDTO;
import com.makeit.dto.platform.alarm.PlatAlarmConfigHeartDTOVO; import com.makeit.dto.platform.alarm.PlatAlarmConfigHeartDTOVO;
import com.makeit.dto.platform.alarm.PlatHealthConfigDTO;
import com.makeit.entity.platform.alarm.PlatAlarmConfig; import com.makeit.entity.platform.alarm.PlatAlarmConfig;
import com.makeit.entity.platform.alarm.PlatAlarmRecord; import com.makeit.entity.platform.alarm.PlatAlarmRecord;
import com.makeit.entity.platform.device.PlatDevice; import com.makeit.entity.platform.device.PlatDevice;
...@@ -14,6 +15,7 @@ import com.makeit.enums.redis.RedisConst; ...@@ -14,6 +15,7 @@ import com.makeit.enums.redis.RedisConst;
import com.makeit.exception.BusinessException; import com.makeit.exception.BusinessException;
import com.makeit.service.platform.alarm.PlatAlarmRecordService; import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.utils.AlarmRedisDTO; import com.makeit.utils.AlarmRedisDTO;
import com.makeit.utils.PersonalConfigCacheUtil;
import com.makeit.utils.data.convert.JsonUtil; import com.makeit.utils.data.convert.JsonUtil;
import com.makeit.utils.redis.RedisUtil; import com.makeit.utils.redis.RedisUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -34,6 +36,9 @@ public class HeartAlarm implements IAlarm { ...@@ -34,6 +36,9 @@ public class HeartAlarm implements IAlarm {
private final PlatAlarmConfigEnum.AlarmTypeEnum alarmTypeEnum = PlatAlarmConfigEnum.AlarmTypeEnum.HEART; private final PlatAlarmConfigEnum.AlarmTypeEnum alarmTypeEnum = PlatAlarmConfigEnum.AlarmTypeEnum.HEART;
@Autowired
private PersonalConfigCacheUtil personalConfigCacheUtil;
@Override @Override
public boolean support(String alarmType) { public boolean support(String alarmType) {
return StringUtils.equals(alarmType, alarmTypeEnum.getValue()); return StringUtils.equals(alarmType, alarmTypeEnum.getValue());
...@@ -42,22 +47,37 @@ public class HeartAlarm implements IAlarm { ...@@ -42,22 +47,37 @@ public class HeartAlarm implements IAlarm {
@Override @Override
public void checkConfig(PlatAlarmCheckDTO platAlarmCheckDTO) { public void checkConfig(PlatAlarmCheckDTO platAlarmCheckDTO) {
//todo 获取老人健康的阈值 //todo 获取老人健康的阈值
platAlarmRecordService.getElderListByDeviceId(platAlarmCheckDTO);
List<PlatElder> platElderList = platAlarmCheckDTO.getPlatElderList();
if(CollectionUtils.isEmpty(platElderList)){
log.error("心率设备未关联长者,设备plat_id:" + platAlarmCheckDTO.getPlatDevice().getId());
return;
}
PlatElder platElder = platElderList.get(0);
PlatHealthConfigDTO platHealthConfigDTO = personalConfigCacheUtil.get(platElder.getId());
PlatAlarmConfigHeartDTOVO ruleConfig;
if(platHealthConfigDTO != null && platHealthConfigDTO.isHeartConfig()){
ruleConfig = platHealthConfigDTO.getAlarmConfigHeartDTO();
}else {
PlatAlarmConfig config = platAlarmCheckDTO.getPlatAlarmConfig(); PlatAlarmConfig config = platAlarmCheckDTO.getPlatAlarmConfig();
String ruleConfigStr = config.getRuleConfig(); String ruleConfigStr = config.getRuleConfig();
JSONObject properties = platAlarmCheckDTO.getProperties();
PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice();
String deviceId = platDevice.getOriDeviceId();
if (StringUtils.isBlank(ruleConfigStr)) { if (StringUtils.isBlank(ruleConfigStr)) {
log.error("心率告警配置未配置,告警配置id:" + config.getId()); log.error("心率告警配置未配置,告警配置id:" + config.getId());
return; return;
} }
String personState = Convert.toStr(properties.get("personState")); ruleConfig = JsonUtil.toObj(ruleConfigStr, PlatAlarmConfigHeartDTOVO.class);
//心率
int hr = (int) properties.get("hr"); }
PlatAlarmConfigHeartDTOVO ruleConfig = JsonUtil.toObj(ruleConfigStr, PlatAlarmConfigHeartDTOVO.class);
JSONObject properties = platAlarmCheckDTO.getProperties();
PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice();
String deviceId = platDevice.getOriDeviceId();
Integer start = ruleConfig.getHeartRateStart(); Integer start = ruleConfig.getHeartRateStart();
Integer end = ruleConfig.getHeartRateeEnd(); Integer end = ruleConfig.getHeartRateeEnd();
Integer duration = ruleConfig.getDuration(); Integer duration = ruleConfig.getDuration();
String personState = Convert.toStr(properties.get("personState"));
//心率
int hr = (int) properties.get("hr");
Date now = new Date(); Date now = new Date();
long endLong = now.getTime(); long endLong = now.getTime();
//计数 //计数
......
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.dto.StatusDTO; import com.makeit.common.dto.StatusDTO;
import com.makeit.dto.platform.alarm.PlatAlarmConfigDTOVO; import com.makeit.dto.platform.alarm.PlatAlarmConfigDTOVO;
import com.makeit.dto.platform.alarm.PlatAlarmConfigQueryDTO; import com.makeit.dto.platform.alarm.PlatAlarmConfigQueryDTO;
import com.makeit.dto.platform.alarm.PlatHealthConfigDTO;
import com.makeit.entity.platform.alarm.PlatAlarmConfig; import com.makeit.entity.platform.alarm.PlatAlarmConfig;
import com.makeit.entity.platform.auth.PlatOrg; import com.makeit.entity.platform.auth.PlatOrg;
import com.makeit.entity.platform.auth.PlatUser; import com.makeit.entity.platform.auth.PlatUser;
...@@ -214,4 +215,8 @@ public class PlatAlarmConfigServiceImpl extends ServiceImpl<PlatAlarmConfigMappe ...@@ -214,4 +215,8 @@ public class PlatAlarmConfigServiceImpl extends ServiceImpl<PlatAlarmConfigMappe
alarmConfigUtil.putAll(configList); alarmConfigUtil.putAll(configList);
} }
@Override
public List<PlatHealthConfigDTO> getHealthConfigList() {
return baseMapper.getHealthConfigList();
}
} }
...@@ -356,6 +356,9 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -356,6 +356,9 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
@Override @Override
@TenantIdIgnore @TenantIdIgnore
public void getElderListByDeviceId(PlatAlarmCheckDTO platAlarmCheckDTO) { public void getElderListByDeviceId(PlatAlarmCheckDTO platAlarmCheckDTO) {
if(CollectionUtils.isNotEmpty(platAlarmCheckDTO.getPlatElderList())){
return;
}
PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice(); PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice();
String tenantId = platDevice.getTenantId(); String tenantId = platDevice.getTenantId();
LambdaQueryWrapper<PlatRoomBedDevice> roomBedDeviceLambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlatRoomBedDevice> roomBedDeviceLambdaQueryWrapper = new LambdaQueryWrapper<>();
......
...@@ -37,6 +37,7 @@ import com.makeit.service.platform.space.PlatBedService; ...@@ -37,6 +37,7 @@ import com.makeit.service.platform.space.PlatBedService;
import com.makeit.service.platform.space.PlatRoomBedDeviceService; import com.makeit.service.platform.space.PlatRoomBedDeviceService;
import com.makeit.service.platform.space.PlatRoomService; import com.makeit.service.platform.space.PlatRoomService;
import com.makeit.service.platform.space.PlatSpaceService; import com.makeit.service.platform.space.PlatSpaceService;
import com.makeit.utils.PersonalConfigCacheUtil;
import com.makeit.utils.data.convert.BeanDtoVoUtils; import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.data.convert.PageUtil; import com.makeit.utils.data.convert.PageUtil;
import com.makeit.utils.data.convert.StreamUtil; import com.makeit.utils.data.convert.StreamUtil;
...@@ -103,6 +104,9 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder ...@@ -103,6 +104,9 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
@Autowired @Autowired
private PlatRoomBedDeviceService platRoomBedDeviceService; private PlatRoomBedDeviceService platRoomBedDeviceService;
@Autowired
private PersonalConfigCacheUtil personalConfigCacheUtil;
private LambdaQueryWrapper<PlatElder> lambdaQueryWrapper(PlatElderQueryDTO dto) { private LambdaQueryWrapper<PlatElder> lambdaQueryWrapper(PlatElderQueryDTO dto) {
return new QueryWrapper<PlatElder>().lambda() return new QueryWrapper<PlatElder>().lambda()
.like(StringUtils.isNotBlank(dto.getName()), PlatElder::getName, dto.getName()) .like(StringUtils.isNotBlank(dto.getName()), PlatElder::getName, dto.getName())
...@@ -620,6 +624,10 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder ...@@ -620,6 +624,10 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
platElderHealthInfoService.saveOrUpdate(healthInfo); platElderHealthInfoService.saveOrUpdate(healthInfo);
personalConfigCacheUtil.put(healthInfo);
PlatElderOtherInfo otherInfo = platElderOtherInfoService.getOne(new QueryWrapper<PlatElderOtherInfo>().lambda() PlatElderOtherInfo otherInfo = platElderOtherInfoService.getOne(new QueryWrapper<PlatElderOtherInfo>().lambda()
.eq(PlatElderOtherInfo::getElderId, dto.getId())); .eq(PlatElderOtherInfo::getElderId, dto.getId()));
if (otherInfo == null) { if (otherInfo == null) {
......
...@@ -53,9 +53,13 @@ public class IotSyncTask { ...@@ -53,9 +53,13 @@ public class IotSyncTask {
* 启用状态的租户才同步 * 启用状态的租户才同步
* 新增和更新平台端设备表 * 新增和更新平台端设备表
*/ */
//@Scheduled(cron = "0 0 */1 * * ?") @Scheduled(cron = "0 0 */1 * * ?")
@TenantIdIgnore
public void syncEquipmentInfo() { public void syncEquipmentInfo() {
savePlatDevice();
}
public void savePlatDevice(){
log.info("开始执行同步设备信息接口"); log.info("开始执行同步设备信息接口");
LambdaQueryWrapper<PlatTenant> tenantLambdaQueryWrapper = new LambdaQueryWrapper<PlatTenant>().eq(PlatTenant::getStatus, CommonEnum.YES.getValue()); LambdaQueryWrapper<PlatTenant> tenantLambdaQueryWrapper = new LambdaQueryWrapper<PlatTenant>().eq(PlatTenant::getStatus, CommonEnum.YES.getValue());
List<PlatTenant> platTenants = platTenantService.list(tenantLambdaQueryWrapper); List<PlatTenant> platTenants = platTenantService.list(tenantLambdaQueryWrapper);
......
package com.makeit.utils;
import com.makeit.dto.platform.alarm.PlatHealthConfigDTO;
import com.makeit.entity.platform.elder.PlatElderHealthInfo;
import com.makeit.enums.redis.RedisConst;
import com.makeit.global.aspect.tenant.TenantIdIgnore;
import com.makeit.global.aspect.tenant.TenantIdIgnoreUtil;
import com.makeit.service.platform.alarm.PlatAlarmConfigService;
import com.makeit.utils.redis.RedisUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class PersonalConfigCacheUtil implements ApplicationRunner {
@Autowired
private PlatAlarmConfigService platAlarmConfigService;
/**
* 设备id
* @return
*/
public List<PlatHealthConfigDTO> getAll() {
return TenantIdIgnoreUtil.execute(()->{
List<PlatHealthConfigDTO> list = platAlarmConfigService.getHealthConfigList();
list.forEach(vo->{
put(vo);
});
return list;
});
}
public void put(PlatHealthConfigDTO dto) {
boolean checkAndFillHeartConfig = dto.checkAndFillHeartConfig();
boolean checkAndFillBreathConfig = dto.checkAndFillBreathConfig();
if(!checkAndFillHeartConfig&&!checkAndFillBreathConfig){
RedisUtil.delete(RedisConst.ALARM_HEALTH_CONFIG_PREFIX +":"+ dto.getPlatElderId());
}else {
RedisUtil.set(RedisConst.ALARM_HEALTH_CONFIG_PREFIX + ":"+dto.getPlatElderId(), dto);
}
}
public PlatHealthConfigDTO get(String platElderId) {
PlatHealthConfigDTO dto = RedisUtil.get(RedisConst.ALARM_HEALTH_CONFIG_PREFIX +":"+ platElderId);
return dto;
}
@Override
@TenantIdIgnore
public void run(ApplicationArguments args) throws Exception {
getAll();
}
public void put(PlatElderHealthInfo entity){
PlatHealthConfigDTO dto = new PlatHealthConfigDTO();
dto.setPlatElderId(entity.getElderId());
if(StringUtils.isNotBlank(entity.getHeartExceptionTime())) {
dto.setHeartDuration(Integer.valueOf(entity.getHeartExceptionTime()));
dto.setHeartRateStr(entity.getHeartRate());
}
if(StringUtils.isNotBlank(entity.getRespiratoryExceptionTime())){
dto.setBreathDuration(Integer.valueOf(entity.getRespiratoryExceptionTime()));
dto.setBreathRateStr(entity.getRespiratoryRate());
}
put(dto);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.makeit.mapper.platform.alarm.PlatAlarmConfigMapper">
<select id="getHealthConfigList" resultType="com.makeit.dto.platform.alarm.PlatHealthConfigDTO">
select pehi.elder_id as platElderId,
pehi.respiratory_rate as heartRateStr,
pehi.respiratory_exception_time as heartDuration,
pehi.heart_rate as breathRateStr,
pehi.heart_exception_time as breathDuration
from plat_elder_health_info pehi
left join plat_elder pe on pe.id = pehi.elder_id
where pehi.del_flag = 0
and pe.del_flag = 0
and ((pehi.heart_exception_time is not null and pehi.heart_rate is not null
and pehi.heart_exception_time != '' and pehi.heart_rate != '')
or (pehi.respiratory_exception_time is not null and pehi.respiratory_rate is not null
and pehi.respiratory_exception_time != '' and pehi.respiratory_rate != '')
)
</select>
</mapper>
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