Commit 0f7be56b by 汪志阳

fix:bug修复

parent ef54568b
...@@ -12,10 +12,13 @@ public class DiseaseReportVO { ...@@ -12,10 +12,13 @@ public class DiseaseReportVO {
private String score; private String score;
private String evaluate; private String evaluate;
@Data @Data
public static class Condition { public static class Condition {
// 条件直接的关联关系、and or
private String resultRelational; private String resultRelational;
/**
* 0:正常 1:呼吸暂停 2:呼吸过速 3:呼吸过缓 4:心率过速 5:心率过缓
*/
private String resultCondition; private String resultCondition;
} }
} }
...@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
import com.makeit.common.response.ApiResponseEntity; import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils; import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.wechat.device.PlatDeviceAttrWechatDTO; import com.makeit.dto.wechat.device.PlatDeviceAttrWechatDTO;
import com.makeit.entity.platform.elder.PlatElderBreatheAnalysis;
import com.makeit.external.huineng.HuiNengService; import com.makeit.external.huineng.HuiNengService;
import com.makeit.global.annotation.AuthIgnore; import com.makeit.global.annotation.AuthIgnore;
import com.makeit.global.aspect.tenant.TenantIdIgnore; import com.makeit.global.aspect.tenant.TenantIdIgnore;
...@@ -13,10 +14,9 @@ import com.makeit.service.platform.elder.*; ...@@ -13,10 +14,9 @@ import com.makeit.service.platform.elder.*;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import java.util.List;
import org.springframework.web.bind.annotation.RestController;
/** /**
* <p> * <p>
...@@ -66,11 +66,11 @@ public class PlatElderSleepController { ...@@ -66,11 +66,11 @@ public class PlatElderSleepController {
} }
@ApiOperation("测试") @ApiOperation("测试")
@PostMapping("test3") @GetMapping("test3")
@AuthIgnore @AuthIgnore
public ApiResponseEntity<Void> elderHeartRespiratoryAnalysisTask() { public ApiResponseEntity<List<PlatElderBreatheAnalysis>> elderHeartRespiratoryAnalysisTask(@RequestParam Integer month,
platElderBreatheAnalysisService.elderHeartRespiratoryAnalysisTask(); @RequestParam Integer day) {
return ApiResponseUtils.success(); return ApiResponseUtils.success(platElderBreatheAnalysisService.elderHeartRespiratoryAnalysisTask(month, day));
} }
@ApiOperation("测试") @ApiOperation("测试")
......
...@@ -42,5 +42,7 @@ public class PlatElderBreatheAnalysis extends BaseBusEntity { ...@@ -42,5 +42,7 @@ public class PlatElderBreatheAnalysis extends BaseBusEntity {
@ApiModelProperty(value = "当前日期 yyyy-mm-dd") @ApiModelProperty(value = "当前日期 yyyy-mm-dd")
private String happenDate; private String happenDate;
// @TableField(exist = false)
// private String remake;
} }
package com.makeit.enums.report;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author wangzy
*/
@AllArgsConstructor
@Getter
public enum ConditionTypeEnum {
/**
* 0:正常 1:呼吸暂停 2:呼吸过速 3:呼吸过缓 4:心率过速 5:心率过缓
*/
NORMAL("0", "正常"),
BREATHE_STOP("1", "呼吸暂停"),
BREATHE_FAST("2", "呼吸过速"),
BREATHE_SLOW("3", "呼吸过缓"),
HEART_FAST("4", "心率过速"),
HEART_SLOW("5", "心率过缓");
private final String code;
private final String value;
}
...@@ -2,6 +2,7 @@ package com.makeit.service.platform.alarm.impl; ...@@ -2,6 +2,7 @@ package com.makeit.service.platform.alarm.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
...@@ -247,7 +248,7 @@ public class PlatAlarmConfigServiceImpl extends ServiceImpl<PlatAlarmConfigMappe ...@@ -247,7 +248,7 @@ public class PlatAlarmConfigServiceImpl extends ServiceImpl<PlatAlarmConfigMappe
Map<String, PlatAlarmConfig> configMap = StreamUtil.toMap(existList, PlatAlarmConfig::getOrgId); Map<String, PlatAlarmConfig> configMap = StreamUtil.toMap(existList, PlatAlarmConfig::getOrgId);
List<PlatAlarmConfig> saveList = Lists.newArrayList(); List<PlatAlarmConfig> saveList = Lists.newArrayList();
for (PlatOrg o : orgList) { for (PlatOrg o : orgList) {
if (configMap.containsKey(o.getId())) { if (configMap.containsKey(o.getId()) || StrUtil.isBlank(o.getTenantId()) || "0".equals(o.getTenantId())) {
continue; continue;
} }
PlatAlarmConfig alarmConfig = new PlatAlarmConfig(); PlatAlarmConfig alarmConfig = new PlatAlarmConfig();
......
...@@ -3,6 +3,8 @@ package com.makeit.service.platform.elder; ...@@ -3,6 +3,8 @@ package com.makeit.service.platform.elder;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.entity.platform.elder.PlatElderBreatheAnalysis; import com.makeit.entity.platform.elder.PlatElderBreatheAnalysis;
import java.util.List;
/** /**
* <p> * <p>
* 长者每天呼吸分析 服务类 * 长者每天呼吸分析 服务类
...@@ -13,5 +15,5 @@ import com.makeit.entity.platform.elder.PlatElderBreatheAnalysis; ...@@ -13,5 +15,5 @@ import com.makeit.entity.platform.elder.PlatElderBreatheAnalysis;
*/ */
public interface PlatElderBreatheAnalysisService extends IService<PlatElderBreatheAnalysis> { public interface PlatElderBreatheAnalysisService extends IService<PlatElderBreatheAnalysis> {
void elderHeartRespiratoryAnalysisTask(); List<PlatElderBreatheAnalysis> elderHeartRespiratoryAnalysisTask(Integer month, Integer day);
} }
package com.makeit.service.platform.elder.impl; package com.makeit.service.platform.elder.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
...@@ -15,8 +16,7 @@ import com.makeit.entity.platform.elder.PlatElderBreatheDayStat; ...@@ -15,8 +16,7 @@ import com.makeit.entity.platform.elder.PlatElderBreatheDayStat;
import com.makeit.entity.saas.analysis.SaasDiseaseEvaluateReport; import com.makeit.entity.saas.analysis.SaasDiseaseEvaluateReport;
import com.makeit.entity.saas.analysis.SaasDiseaseModel; import com.makeit.entity.saas.analysis.SaasDiseaseModel;
import com.makeit.entity.saas.analysis.SaasSleepAnalysisModel; import com.makeit.entity.saas.analysis.SaasSleepAnalysisModel;
import com.makeit.enums.report.BreatheTypeEnum; import com.makeit.enums.report.ConditionTypeEnum;
import com.makeit.enums.report.HeartRateTypeEnum;
import com.makeit.mapper.platform.elder.PlatElderBreatheAnalysisMapper; import com.makeit.mapper.platform.elder.PlatElderBreatheAnalysisMapper;
import com.makeit.module.iot.service.IotProductDeviceService; import com.makeit.module.iot.service.IotProductDeviceService;
import com.makeit.module.iot.vo.DeviceOperationLogEntity; import com.makeit.module.iot.vo.DeviceOperationLogEntity;
...@@ -38,6 +38,8 @@ import com.makeit.utils.data.convert.StreamUtil; ...@@ -38,6 +38,8 @@ import com.makeit.utils.data.convert.StreamUtil;
import com.makeit.utils.time.LocalDateTimeUtils; import com.makeit.utils.time.LocalDateTimeUtils;
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.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -46,6 +48,7 @@ import java.math.BigDecimal; ...@@ -46,6 +48,7 @@ import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.*; import java.time.*;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TreeMap; import java.util.TreeMap;
...@@ -62,6 +65,8 @@ import java.util.stream.Collectors; ...@@ -62,6 +65,8 @@ import java.util.stream.Collectors;
@Service @Service
public class PlatElderBreatheAnalysisServiceImpl extends ServiceImpl<PlatElderBreatheAnalysisMapper, PlatElderBreatheAnalysis> implements PlatElderBreatheAnalysisService { public class PlatElderBreatheAnalysisServiceImpl extends ServiceImpl<PlatElderBreatheAnalysisMapper, PlatElderBreatheAnalysis> implements PlatElderBreatheAnalysisService {
private static final Logger logger = LoggerFactory.getLogger(PlatElderBreatheAnalysisServiceImpl.class);
@Autowired @Autowired
private PlatElderService platElderService; private PlatElderService platElderService;
@Autowired @Autowired
...@@ -85,16 +90,19 @@ public class PlatElderBreatheAnalysisServiceImpl extends ServiceImpl<PlatElderBr ...@@ -85,16 +90,19 @@ public class PlatElderBreatheAnalysisServiceImpl extends ServiceImpl<PlatElderBr
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void elderHeartRespiratoryAnalysisTask() { public List<PlatElderBreatheAnalysis> elderHeartRespiratoryAnalysisTask(Integer month,Integer day) {
// 12-06,12-18 12-07、 12-12(70分)
LocalDate nowDate = LocalDate.now(); LocalDate nowDate = LocalDate.now();
// LocalDate nowDate = LocalDate.of(2023, month, day);
LocalDate yesDate = nowDate.minusDays(1); LocalDate yesDate = nowDate.minusDays(1);
LocalDateTime yesStart = LocalDateTimeUtils.getDayStart(yesDate); LocalDateTime yesStart = LocalDateTimeUtils.getDayStart(yesDate);
LocalDateTime yesEnd = LocalDateTimeUtils.getDayEnd(yesDate); LocalDateTime yesEnd = LocalDateTimeUtils.getDayEnd(yesDate);
List<PlatElder> elderList = platElderService.list(new QueryWrapper<PlatElder>().lambda() List<PlatElder> elderList = platElderService.list(new QueryWrapper<PlatElder>().lambda()
.isNotNull(PlatElder::getBedId)); .isNotNull(PlatElder::getBedId));
List<PlatElderBreatheAnalysis> result = new ArrayList<>();
if (CollectionUtils.isEmpty(elderList)) { if (CollectionUtils.isEmpty(elderList)) {
return; return result;
} }
List<String> elderIdList = StreamUtil.map(elderList, BaseEntity::getId); List<String> elderIdList = StreamUtil.map(elderList, BaseEntity::getId);
...@@ -211,7 +219,7 @@ public class PlatElderBreatheAnalysisServiceImpl extends ServiceImpl<PlatElderBr ...@@ -211,7 +219,7 @@ public class PlatElderBreatheAnalysisServiceImpl extends ServiceImpl<PlatElderBr
} }
// 判断呼吸率阈值,记录发生时间和当前呼吸率 // 判断呼吸率阈值,记录发生时间和当前呼吸率
if (breatheThresholdMax < br) { if (breatheThresholdMax < br && br != 255) {
if (brFast == 0) { if (brFast == 0) {
brFast = br; brFast = br;
} }
...@@ -238,7 +246,7 @@ public class PlatElderBreatheAnalysisServiceImpl extends ServiceImpl<PlatElderBr ...@@ -238,7 +246,7 @@ public class PlatElderBreatheAnalysisServiceImpl extends ServiceImpl<PlatElderBr
} }
if (heartThresholdMax < hr) { if (heartThresholdMax < hr && hr != 255) {
if (hrFast == 0) { if (hrFast == 0) {
hrFast = br; hrFast = br;
} }
...@@ -387,7 +395,9 @@ public class PlatElderBreatheAnalysisServiceImpl extends ServiceImpl<PlatElderBr ...@@ -387,7 +395,9 @@ public class PlatElderBreatheAnalysisServiceImpl extends ServiceImpl<PlatElderBr
// 根据疾病标准配置的规则判断满足哪个区间范围 // 根据疾病标准配置的规则判断满足哪个区间范围
for (DiseaseReportVO diseaseReportVO : evaluateReportList) { for (DiseaseReportVO diseaseReportVO : evaluateReportList) {
List<DiseaseReportVO.Condition> conditionList = diseaseReportVO.getCondition(); List<DiseaseReportVO.Condition> conditionList = diseaseReportVO.getCondition();
if (CollUtil.isEmpty(conditionList)) {
return result;
}
boolean conditionFlag = true; boolean conditionFlag = true;
for (DiseaseReportVO.Condition condition : conditionList) { for (DiseaseReportVO.Condition condition : conditionList) {
...@@ -398,22 +408,22 @@ public class PlatElderBreatheAnalysisServiceImpl extends ServiceImpl<PlatElderBr ...@@ -398,22 +408,22 @@ public class PlatElderBreatheAnalysisServiceImpl extends ServiceImpl<PlatElderBr
break; break;
} }
} else { } else {
if (resultRelational.equals("normal")) { if (resultCondition.equals(ConditionTypeEnum.NORMAL.getCode())) {
conditionFlag = normalFlag && conditionFlag; conditionFlag = normalFlag && conditionFlag;
} }
if (resultRelational.equals(BreatheTypeEnum.APNEA.getCode())) { if (resultCondition.equals(ConditionTypeEnum.BREATHE_STOP.getCode())) {
conditionFlag = brStopFlag && conditionFlag; conditionFlag = brStopFlag && conditionFlag;
} }
if (resultRelational.equals(BreatheTypeEnum.TACHYPNEA.getCode())) { if (resultCondition.equals(ConditionTypeEnum.BREATHE_FAST.getCode())) {
conditionFlag = brFastFlag && conditionFlag; conditionFlag = brFastFlag && conditionFlag;
} }
if (resultRelational.equals(BreatheTypeEnum.BRADYPNEA.getCode())) { if (resultCondition.equals(ConditionTypeEnum.BREATHE_SLOW.getCode())) {
conditionFlag = brSlowFlag && conditionFlag; conditionFlag = brSlowFlag && conditionFlag;
} }
if (resultRelational.equals(HeartRateTypeEnum.TACHYCARDIA.getCode())) { if (resultCondition.equals(ConditionTypeEnum.HEART_FAST.getCode())) {
conditionFlag = hrFastFlag && conditionFlag; conditionFlag = hrFastFlag && conditionFlag;
} }
if (resultRelational.equals(HeartRateTypeEnum.BRADYCARDIA.getCode())) { if (resultCondition.equals(ConditionTypeEnum.HEART_SLOW.getCode())) {
conditionFlag = hrSlowFlag && conditionFlag; conditionFlag = hrSlowFlag && conditionFlag;
} }
} }
...@@ -434,8 +444,12 @@ public class PlatElderBreatheAnalysisServiceImpl extends ServiceImpl<PlatElderBr ...@@ -434,8 +444,12 @@ public class PlatElderBreatheAnalysisServiceImpl extends ServiceImpl<PlatElderBr
platElderBreatheAnalysis.setTenantId(platElder.getTenantId()); platElderBreatheAnalysis.setTenantId(platElder.getTenantId());
platElderBreatheAnalysis.setBreatheEvaluate(diseaseReport == null ? "" : diseaseReport.getEvaluate()); platElderBreatheAnalysis.setBreatheEvaluate(diseaseReport == null ? "" : diseaseReport.getEvaluate());
platElderBreatheAnalysisService.save(platElderBreatheAnalysis); platElderBreatheAnalysisService.save(platElderBreatheAnalysis);
// platElderBreatheAnalysis.setRemake(String.format("normalFlag:%s,hrFastFlag:%s,brStopFlag:%s,brFastFlag:%s,brSlowFlag:%s,hrSlowFlag:%s",
// normalFlag, hrFastFlag, brStopFlag, brFastFlag, brSlowFlag, hrSlowFlag));
result.add(platElderBreatheAnalysis);
} }
return result;
} }
......
...@@ -854,7 +854,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace ...@@ -854,7 +854,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
} }
List<PlatSpace> list = this.list(queryWrapper); List<PlatSpace> list = this.list(queryWrapper);
list = list.stream() list = list.stream()
.filter(s -> (StringUtil.isNotEmpty(s.getParentPath()) && s.getParentPath().split(",").length <= 3) .filter(s -> (StringUtil.isNotEmpty(s.getParentPath()) && s.getParentPath().split(",").length < 3)
|| StringUtil.isEmpty(s.getParentPath())) || StringUtil.isEmpty(s.getParentPath()))
.collect(Collectors.toList()); .collect(Collectors.toList());
//父级 //父级
...@@ -1112,9 +1112,8 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace ...@@ -1112,9 +1112,8 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
} }
private void fixAllSpacePath() { private void fixAllSpacePath() {
List<PlatSpace> allData = list(); List<PlatSpace> firstSpaceList = list(Wrappers.<PlatSpace>lambdaQuery().isNull(PlatSpace::getParentPath)
List<PlatSpace> firstSpaceList = allData.stream().filter(f -> StrUtil.isBlank(f.getParentId()) .isNull(PlatSpace::getParentId));
&& StrUtil.isBlank(f.getParentPath())).collect(Collectors.toList());
if (CollUtil.isEmpty(firstSpaceList)) { if (CollUtil.isEmpty(firstSpaceList)) {
return; return;
} }
......
...@@ -51,7 +51,7 @@ public class PlatElderReportTask { ...@@ -51,7 +51,7 @@ public class PlatElderReportTask {
@TenantIdIgnore @TenantIdIgnore
public void elderHeartRespiratoryAnalysisTask() { public void elderHeartRespiratoryAnalysisTask() {
log.info("开始定时分析长者呼吸心率"); log.info("开始定时分析长者呼吸心率");
platElderBreatheAnalysisService.elderHeartRespiratoryAnalysisTask(); platElderBreatheAnalysisService.elderHeartRespiratoryAnalysisTask(null,null);
log.info("定时分析长者呼吸心率结束"); log.info("定时分析长者呼吸心率结束");
} }
......
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