Commit 70a867dd by huangjy

fix: 修复报告bug

parent ff659ba7
......@@ -694,10 +694,13 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev
Set<String> newIotDeviceIdSet = Sets.newHashSet(iotDeviceIdSet);
Set<String> newPlatformDeviceIdSet = Sets.newHashSet(platformDeviceIdList);
if (CollectionUtils.isEmpty(newIotDeviceIdSet)) {
continue;
}
newPlatformDeviceIdSet.removeAll(newIotDeviceIdSet);
//iotDeviceIdSet.removeAll(platformDeviceIdList);
if (CollectionUtils.isNotEmpty(newPlatformDeviceIdSet)) {
log.info("删除不存在iot的设备:{}",platTenant.getId());
List<PlatDevice> platDevices = list(new QueryWrapper<PlatDevice>().lambda().eq(BaseBusEntity::getTenantId, platTenant.getId())
.in(PlatDevice::getOriDeviceId, newPlatformDeviceIdSet));
......
......@@ -5,10 +5,7 @@ import com.makeit.dto.platform.elder.PlatElderReportDTO;
import com.makeit.entity.platform.alarm.PlatAlarmRecord;
import com.makeit.entity.platform.alarm.PlatDayDurationRecord;
import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.entity.platform.elder.PlatElderBreatheAnalysis;
import com.makeit.entity.platform.elder.PlatElderSleep;
import com.makeit.entity.platform.elder.PlatElderSleepAnalysis;
import com.makeit.entity.platform.elder.*;
import com.makeit.enums.CommonEnum;
import com.makeit.enums.platform.alarm.PlatAlarmConfigEnum;
import com.makeit.module.iot.service.IotProductDeviceService;
......@@ -62,6 +59,8 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
private PlatElderRealTimeService platElderRealTimeService;
@Autowired
private PlatElderService platElderService;
@Autowired
private PlatElderCoordinateRecordService platElderCoordinateRecordService;
private static LocalDateTime dayStartNow(LocalDate now) {
return LocalDateTimeUtils.getDayStart(now);
......@@ -124,9 +123,6 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
public List<PlatElderSleepDiagramVO> sleepDiagram(PlatElderReportDTO platElderIdDTO) {
LocalDate now = Optional.ofNullable(platElderIdDTO.getNow()).orElse(LocalDate.now());
LocalDateTime start = dayStartNow(now);
LocalDateTime end = dayEndNow(now);
List<PlatElderSleepDiagramVO> voList;
String nowString = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(now);
......@@ -172,9 +168,6 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
public PlatElderHeartRespiratoryEvaluationVO heartRespiratoryEvaluation(PlatElderReportDTO platElderIdDTO) {
LocalDate now = Optional.ofNullable(platElderIdDTO.getNow()).orElse(LocalDate.now());
LocalDateTime start = dayStartNow(now);
LocalDateTime end = dayEndNow(now);
PlatElderHeartRespiratoryEvaluationVO platElderSleepEvaluationVO = new PlatElderHeartRespiratoryEvaluationVO();
String nowString = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(now);
......@@ -220,10 +213,6 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
public List<PlatElderHeartRespiratoryEvaluationRecordVO> heartRespiratoryExceptionRecordList(PlatElderReportDTO platElderIdDTO, String alarmType, LocalDateTime start, LocalDateTime end) {
String elderId = platElderIdDTO.getElderId();
PlatDevice device = platElderRealTimeService.getBreathDevice(elderId, platElderIdDTO.getDeviceId());
if (device == null) {
return new ArrayList<>(10);
}
if (StringUtils.isNotEmpty(platElderIdDTO.getDeviceId())) {
PlatElder platElder = platElderService.getByDeviceId(platElderIdDTO.getDeviceId());
if (platElder != null) {
......@@ -232,8 +221,6 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
}
List<PlatAlarmRecord> recordList = platAlarmRecordService.list(new QueryWrapper<PlatAlarmRecord>().lambda()
.eq(PlatAlarmRecord::getAlarmType, alarmType)
.eq(PlatAlarmRecord::getDeviceId, device.getId())
.eq(PlatAlarmRecord::getElderIds, elderId)
.ge(PlatAlarmRecord::getAlarmDate, start)
......@@ -242,7 +229,7 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
.orderByDesc(PlatAlarmRecord::getAlarmDate)
);
List<PlatElderHeartRespiratoryEvaluationRecordVO> voList = StreamUtil.map(recordList, e -> {
return StreamUtil.map(recordList, e -> {
PlatElderHeartRespiratoryEvaluationRecordVO vo = new PlatElderHeartRespiratoryEvaluationRecordVO();
vo.setTime(e.getAlarmDate());
vo.setStatus(e.getRemark());
......@@ -252,8 +239,6 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
});
return voList;
}
......@@ -283,7 +268,7 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
List<DeviceInfoContentBreathe> breatheList = iotProductDeviceService.getDeviceLogByTimeRangeBreathe(platDevice.getOriDeviceId(), 2 * 24 * 3600, start, end);
List<PlatElderRealTimeHeartRespiratoryVO> voList = StreamUtil.map(breatheList, e -> {
return StreamUtil.map(breatheList, e -> {
PlatElderRealTimeHeartRespiratoryVO vo = new PlatElderRealTimeHeartRespiratoryVO();
vo.setTime(LongTimestampUtil.toLocalDateTime(e.getTimestamp()));
......@@ -293,20 +278,11 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
return vo;
});
return voList;
}
@Override
public List<PlatElderBehaviorExceptionRecordVO> behaviorExceptionRecordListInternal(PlatElderReportDTO platElderIdDTO, LocalDateTime start, LocalDateTime end) {
String elderId = platElderIdDTO.getElderId();
List<PlatDevice> platDeviceList = platElderRealTimeService.getSpaceDevice(elderId, platElderIdDTO.getDeviceId());
List<PlatDevice> fallDeviceList = platElderRealTimeService.getFallDevice(elderId, platElderIdDTO.getDeviceId());
platDeviceList.addAll(fallDeviceList);
if (CollectionUtils.isEmpty(platDeviceList)) {
return new ArrayList<>(10);
}
if (StringUtils.isNotEmpty(platElderIdDTO.getDeviceId())) {
PlatElder platElder = platElderService.getByDeviceId(platElderIdDTO.getDeviceId());
if (platElder != null) {
......@@ -315,16 +291,13 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
}
List<PlatAlarmRecord> recordList = platAlarmRecordService.list(new QueryWrapper<PlatAlarmRecord>().lambda()
.eq(PlatAlarmRecord::getAlarmType, PlatAlarmConfigEnum.AlarmTypeEnum.BEHAVIOR.getValue())
.in(PlatAlarmRecord::getDeviceId, StreamUtil.mapId(platDeviceList, PlatDevice::getId))
.eq(PlatAlarmRecord::getElderIds, elderId)
.eq(PlatAlarmRecord::getMisinformationFlag, CommonEnum.NO.getValue())
.ge(PlatAlarmRecord::getAlarmDate, start)
.le(PlatAlarmRecord::getAlarmDate, end)
.orderByDesc(PlatAlarmRecord::getAlarmDate)
);
List<PlatElderBehaviorExceptionRecordVO> voList = StreamUtil.map(recordList, e -> {
return StreamUtil.map(recordList, e -> {
PlatElderBehaviorExceptionRecordVO vo = new PlatElderBehaviorExceptionRecordVO();
vo.setTime(e.getAlarmDate());
......@@ -333,11 +306,8 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
vo.setDuration(MathUtil.stringToInteger(e.getAbnormalValue()));
return vo;
});
return voList;
}
......@@ -431,9 +401,6 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
voList.addAll(StreamUtil.map(spaceList, i -> {
PlatElderCoordinateVO vo = new PlatElderCoordinateVO();
// vo.setX(new BigDecimal(i.getProperties().getDistance()).multiply(new BigDecimal(Math.cos(i.getProperties().getAngle()) + "")).setScale(2, RoundingMode.HALF_UP));
// vo.setY(new BigDecimal(i.getProperties().getDistance()).multiply(new BigDecimal(Math.sin(i.getProperties().getAngle()) + "")).setScale(2, RoundingMode.HALF_UP));
vo.setTimestamp(i.getTimestamp());
vo.setDistance(i.getProperties().getDistance());
vo.setAngle(i.getProperties().getAngle());
......@@ -488,13 +455,6 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
@Override
public List<PlatElderBehaviorDistributionVO> behaviorDistributionInternal(PlatElderReportDTO platElderIdDTO, List<LocalDate> nowList) {
String elderId = platElderIdDTO.getElderId();
List<PlatDevice> platDeviceList = platElderRealTimeService.getSpaceDevice(elderId, platElderIdDTO.getDeviceId());
List<PlatDevice> fallDeviceList = platElderRealTimeService.getFallDevice(elderId, platElderIdDTO.getDeviceId());
platDeviceList.addAll(fallDeviceList);
if (CollectionUtils.isEmpty(platDeviceList)) {
return new ArrayList<>(10);
}
if (StringUtils.isNotEmpty(platElderIdDTO.getDeviceId())) {
PlatElder platElder = platElderService.getByDeviceId(platElderIdDTO.getDeviceId());
......@@ -508,23 +468,20 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
List<PlatElderBehaviorDistributionVO> finalVoList = voList;
String finalElderId = elderId;
platDeviceList.forEach(e -> {
List<PlatDayDurationRecord> recordList = platDayDurationRecordService.list(new QueryWrapper<PlatDayDurationRecord>().lambda()
.eq(PlatDayDurationRecord::getDeviceId, e.getId())
.eq(StringUtils.isNotEmpty(finalElderId),PlatDayDurationRecord::getElderIds, finalElderId)
.in(PlatDayDurationRecord::getDay, StreamUtil.map(nowList, dateTimeFormatter::format))
);
List<PlatDayDurationRecord> recordList = platDayDurationRecordService.list(new QueryWrapper<PlatDayDurationRecord>().lambda()
.eq(StringUtils.isNotEmpty(finalElderId), PlatDayDurationRecord::getElderIds, finalElderId)
.in(PlatDayDurationRecord::getDay, StreamUtil.map(nowList, dateTimeFormatter::format))
);
finalVoList.addAll(StreamUtil.map(recordList, i -> {
PlatElderBehaviorDistributionVO vo = new PlatElderBehaviorDistributionVO();
vo.setAreaName(i.getRegionName());
vo.setDuration(Integer.valueOf(i.getDuration() + ""));
finalVoList.addAll(StreamUtil.map(recordList, i -> {
PlatElderBehaviorDistributionVO vo = new PlatElderBehaviorDistributionVO();
vo.setAreaName(i.getRegionName());
vo.setDuration(Integer.valueOf(i.getDuration() + ""));
return vo;
return vo;
}));
}));
});
voList.forEach(e -> {
if (StringUtils.isBlank(e.getAreaName())) {
......@@ -554,11 +511,7 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
public List<PlatElderBehaviorDistributionVO> behaviorDistribution(PlatElderReportDTO platElderIdDTO) {
LocalDate now = Optional.ofNullable(platElderIdDTO.getNow()).orElse(LocalDate.now());
LocalDateTime start = dayStartNow(now);
LocalDateTime end = dayEndNow(now);
return behaviorDistributionInternal(platElderIdDTO, Arrays.asList(now));
return behaviorDistributionInternal(platElderIdDTO, Collections.singletonList(now));
}
}
......@@ -345,13 +345,19 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
);
int score = 0;
int br = 0;
int hr = 0;
if (CollectionUtils.isNotEmpty(breatheAnalyses)) {
score = StreamUtil.reduce(breatheAnalyses, e -> Integer.valueOf(e.getBreatheScore() + ""), 0, Integer::sum) / breatheAnalyses.size();
br = StreamUtil.reduce(breatheAnalyses, e -> Integer.valueOf(e.getAvgBreatheRate() + ""), 0, Integer::sum) / breatheAnalyses.size();
hr = StreamUtil.reduce(breatheAnalyses, e -> Integer.valueOf(e.getAvgHeartRate() + ""), 0, Integer::sum) / breatheAnalyses.size();
}
PlatElderHeartRespiratoryEvaluationVO platElderHeartRespiratoryEvaluationVO = new PlatElderHeartRespiratoryEvaluationVO();
platElderHeartRespiratoryEvaluationVO.setScore(score);
platElderHeartRespiratoryEvaluationVO.setHeartRate(hr);
platElderHeartRespiratoryEvaluationVO.setRespiratoryRate(br);
EvaluateReportVO evaluateReportVO = saasDiseaseReportService.getByScore(platElderHeartRespiratoryEvaluationVO.getScore());
if (evaluateReportVO != null) {
......@@ -412,12 +418,10 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
}
LambdaQueryWrapper<PlatElderBreatheDayStat> lambdaQueryWrapper = new QueryWrapper<PlatElderBreatheDayStat>().lambda();
lambdaQueryWrapper.ge(PlatElderBreatheDayStat::getDay, weekStartDate);
lambdaQueryWrapper.le(PlatElderBreatheDayStat::getDay, weekEndDate);
String finalDeviceId = deviceId;
//String finalOriDeviceId = oriDeviceId;
lambdaQueryWrapper.and(StringUtils.isNotBlank(platElderIdDTO.getElderId()) || StringUtils.isNotBlank(finalDeviceId) /*|| StringUtils.isNotBlank(finalOriDeviceId)*/, qw -> {
if (StringUtils.isNotBlank(platElderIdDTO.getElderId())) {
qw.eq(PlatElderBreatheDayStat::getElderId, platElderIdDTO.getElderId());
......@@ -425,9 +429,6 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
if (StringUtils.isNotBlank(finalDeviceId)) {
qw.or().eq(PlatElderBreatheDayStat::getDeviceId, finalDeviceId);
}
// if (StringUtils.isNotBlank(finalOriDeviceId)) {
// qw.or().eq(PlatElderBreatheDayStat::getOriDeviceId, finalOriDeviceId);
// }
});
lambdaQueryWrapper.eq(StringUtils.isNotBlank(platElderIdDTO.getTenantId()), BaseBusEntity::getTenantId,platElderIdDTO.getTenantId());
......
......@@ -5,10 +5,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.dto.platform.elder.PlatElderReportDTO;
import com.makeit.entity.platform.elder.PlatElderReportMonth;
import com.makeit.mapper.platform.elder.PlatElderReportMonthMapper;
import com.makeit.module.iot.service.IotProductDeviceService;
import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.service.platform.elder.*;
import com.makeit.service.saas.PlatTenantService;
import com.makeit.service.platform.elder.PlatElderDayReportWeekService;
import com.makeit.service.platform.elder.PlatElderReportMonthService;
import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.old.StringUtils;
import com.makeit.utils.time.LocalDateTimeUtils;
......@@ -33,27 +31,9 @@ import java.util.List;
@Service
public class PlatElderReportMonthServiceImpl extends ServiceImpl<PlatElderReportMonthMapper, PlatElderReportMonth> implements PlatElderReportMonthService {
@Autowired
private PlatElderRealTimeService platElderRealTimeService;
@Autowired
private PlatElderDayReportWeekService platElderDayReportWeekService;
@Autowired
private PlatTenantService platTenantService;
@Autowired
private PlatElderService platElderService;
@Autowired
private PlatElderSleepAnalysisService platElderSleepAnalysisService;
@Autowired
private PlatAlarmRecordService platAlarmRecordService;
@Autowired
private IotProductDeviceService iotProductDeviceService;
public LocalDate monthStartDate(PlatElderReportDTO platElderIdDTO) {
return monthStartDate(platElderIdDTO.getYear(), platElderIdDTO.getMonth());
......
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