Commit 562c6208 by huangjy

feat: 设备呼叫筛选长者设备列表

parent 84edb026
...@@ -219,7 +219,15 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev ...@@ -219,7 +219,15 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev
return PageVO.emptyPage(); return PageVO.emptyPage();
} }
List<PlatRoomBedDevice> platRoomBedDevices = platRoomBedDeviceService.list(new QueryWrapper<PlatRoomBedDevice>().lambda() List<PlatRoomBedDevice> platRoomBedDevices = platRoomBedDeviceService.list(new QueryWrapper<PlatRoomBedDevice>().lambda()
.eq(PlatRoomBedDevice::getRoomId, platElder.getRoomId())); .eq(PlatRoomBedDevice::getRoomId, platElder.getRoomId())
.isNull(PlatRoomBedDevice::getBedId));
if (StringUtils.isNotEmpty(platElder.getBedId())) {
PlatRoomBedDevice bedDeviceServiceOne = platRoomBedDeviceService.getOne(new QueryWrapper<PlatRoomBedDevice>().lambda()
.eq(PlatRoomBedDevice::getBedId, platElder.getBedId()));
if (bedDeviceServiceOne != null) {
platRoomBedDevices.add(bedDeviceServiceOne);
}
}
if (CollectionUtils.isEmpty(platRoomBedDevices)) { if (CollectionUtils.isEmpty(platRoomBedDevices)) {
return PageVO.emptyPage(); return PageVO.emptyPage();
} }
......
...@@ -2,6 +2,7 @@ package com.makeit.service.platform.workstation.impl; ...@@ -2,6 +2,7 @@ package com.makeit.service.platform.workstation.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.makeit.common.entity.BaseEntity; import com.makeit.common.entity.BaseEntity;
import com.makeit.common.page.PageReqDTO; import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO; import com.makeit.common.page.PageVO;
...@@ -14,6 +15,7 @@ import com.makeit.entity.platform.auth.PlatOrg; ...@@ -14,6 +15,7 @@ import com.makeit.entity.platform.auth.PlatOrg;
import com.makeit.entity.platform.device.PlatDevice; import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.elder.PlatElder; import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.entity.platform.space.PlatBed; import com.makeit.entity.platform.space.PlatBed;
import com.makeit.entity.platform.space.PlatRoomBedDevice;
import com.makeit.entity.platform.space.PlatSpace; import com.makeit.entity.platform.space.PlatSpace;
import com.makeit.entity.saas.analysis.SaasModelManage; import com.makeit.entity.saas.analysis.SaasModelManage;
import com.makeit.entity.saas.analysis.SaasSleepAnalysisModel; import com.makeit.entity.saas.analysis.SaasSleepAnalysisModel;
...@@ -29,10 +31,12 @@ import com.makeit.module.iot.service.IotProductDeviceService; ...@@ -29,10 +31,12 @@ import com.makeit.module.iot.service.IotProductDeviceService;
import com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe; import com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe;
import com.makeit.service.platform.alarm.PlatAlarmRecordService; import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.service.platform.auth.PlatOrgService; import com.makeit.service.platform.auth.PlatOrgService;
import com.makeit.service.platform.device.PlatDeviceService;
import com.makeit.service.platform.elder.PlatElderDayReportDayService; import com.makeit.service.platform.elder.PlatElderDayReportDayService;
import com.makeit.service.platform.elder.PlatElderRealTimeService; import com.makeit.service.platform.elder.PlatElderRealTimeService;
import com.makeit.service.platform.elder.PlatElderService; import com.makeit.service.platform.elder.PlatElderService;
import com.makeit.service.platform.space.PlatBedService; import com.makeit.service.platform.space.PlatBedService;
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.service.platform.workstation.WorkStationService; import com.makeit.service.platform.workstation.WorkStationService;
...@@ -91,7 +95,9 @@ public class WorkStationServiceImpl implements WorkStationService { ...@@ -91,7 +95,9 @@ public class WorkStationServiceImpl implements WorkStationService {
@Autowired @Autowired
private IotProductDeviceService iotProductDeviceService; private IotProductDeviceService iotProductDeviceService;
@Autowired @Autowired
private ShengwangService shengwangService; private PlatRoomBedDeviceService platRoomBedDeviceService;
@Autowired
private PlatDeviceService platDeviceService;
@Override @Override
public WorkStationInstitutionStatisticsVO institutionStatistics(WorkStationQueryDTO dto) { public WorkStationInstitutionStatisticsVO institutionStatistics(WorkStationQueryDTO dto) {
...@@ -260,25 +266,57 @@ public class WorkStationServiceImpl implements WorkStationService { ...@@ -260,25 +266,57 @@ public class WorkStationServiceImpl implements WorkStationService {
} }
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
LocalDateTime start = now.minusSeconds(10); LocalDateTime start = now.minusSeconds(10);
List<PlatRoomBedDevice> platRoomDevices = platRoomBedDeviceService.list(new QueryWrapper<PlatRoomBedDevice>().lambda()
.in(PlatRoomBedDevice::getRoomId, roomIds)
.isNull(PlatRoomBedDevice::getBedId));
List<PlatRoomBedDevice> platBedDevices = platRoomBedDeviceService.list(new QueryWrapper<PlatRoomBedDevice>().lambda()
.in(PlatRoomBedDevice::getRoomId, roomIds)
.isNotNull(PlatRoomBedDevice::getBedId));
Map<String, List<PlatRoomBedDevice>> roomDeviceMap = StreamUtil.groupBy(platRoomDevices, PlatRoomBedDevice::getRoomId);
Map<String, PlatRoomBedDevice> bedDeviceMap = StreamUtil.toMap(platBedDevices, PlatRoomBedDevice::getBedId);
List<PlatDevice> platDeviceList = platDeviceService.list();
Map<String, PlatDevice> deviceMap = StreamUtil.toMap(platDeviceList, BaseEntity::getId);
for (WorkStationInstitutionRoomVO vo : roomVOList) { for (WorkStationInstitutionRoomVO vo : roomVOList) {
vo.setPathName(vo.getPathName() + "-" + vo.getRoomName()); vo.setPathName(vo.getPathName() + "-" + vo.getRoomName());
List<PlatDevice> deviceList = Lists.newArrayList();
if (bedMap.get(vo.getRoomId()) != null) { if (bedMap.get(vo.getRoomId()) != null) {
List<WorkStationInstitutionBedVO> roomBedVos = bedMap.get(vo.getRoomId()); List<WorkStationInstitutionBedVO> roomBedVos = bedMap.get(vo.getRoomId());
//获取告警类型及老人状态 //获取告警类型及老人状态
for(WorkStationInstitutionBedVO r : roomBedVos){ for(WorkStationInstitutionBedVO r : roomBedVos){
List<PlatRoomBedDevice> platRoomBedDevices = roomDeviceMap.get(r.getRoomId());
if (CollectionUtils.isNotEmpty(platRoomBedDevices)) {
List<String> tempDeviceIdList = StreamUtil.map(platRoomBedDevices, PlatRoomBedDevice::getDeviceId);
for (String s : tempDeviceIdList) {
PlatDevice platDevice = deviceMap.get(s);
if (platDevice != null) {
deviceList.add(platDevice);
}
}
}
if (StringUtil.isNotEmpty(r.getElderId()) ) { if (StringUtil.isNotEmpty(r.getElderId()) ) {
if(elderAlarmTypeMap.containsKey(r.getElderId())){ if(elderAlarmTypeMap.containsKey(r.getElderId())){
r.setAlarmTypeMap(elderAlarmTypeMap.get(r.getElderId())); r.setAlarmTypeMap(elderAlarmTypeMap.get(r.getElderId()));
} }
PlatElderIdDTO platElderIdDTO = new PlatElderIdDTO(); PlatElderIdDTO platElderIdDTO = new PlatElderIdDTO();
platElderIdDTO.setElderId(r.getElderId()); platElderIdDTO.setElderId(r.getElderId());
PlatElderRealTimeHeartRespiratoryVO heartRespiratoryVO = platElderRealTimeService.heartRespiratory(platElderIdDTO); PlatElderRealTimeHeartRespiratoryVO heartRespiratoryVO = platElderRealTimeService.heartRespiratory(platElderIdDTO);
r.setElderStatus(heartRespiratoryVO.getStatus()); r.setElderStatus(heartRespiratoryVO.getStatus());
if (StringUtil.isNotEmpty(heartRespiratoryVO.getDeviceId())) {
PlatAlarmCallDeviceVO platAlarmCallDeviceVO = shengwangService.callingDeviceAuthIgnoreRtc(heartRespiratoryVO.getDeviceId()); PlatRoomBedDevice platRoomBedDevice = bedDeviceMap.get(r.getBedId());
r.setPlatAlarmCallDeviceVO(platAlarmCallDeviceVO); if (platRoomBedDevice != null) {
PlatDevice platDevice = deviceMap.get(platRoomBedDevice.getDeviceId());
if (platDevice != null) {
deviceList.add(platDevice);
}
} }
} }
r.setDeviceList(deviceList);
} }
vo.setList(roomBedVos); vo.setList(roomBedVos);
...@@ -536,6 +574,8 @@ public class WorkStationServiceImpl implements WorkStationService { ...@@ -536,6 +574,8 @@ public class WorkStationServiceImpl implements WorkStationService {
new Page<>(page.getPage(),page.getLimit()), page.getData()); new Page<>(page.getPage(),page.getLimit()), page.getData());
List<WorkStationHomeBedVO> list = pages.getRecords(); List<WorkStationHomeBedVO> list = pages.getRecords();
List<String> roomIds = list.stream().map(WorkStationHomeBedVO::getRoomId).collect(Collectors.toList());
JoinUtil.joinSplit(list, platSpaceService, WorkStationHomeBedVO::getSpacePath, PlatSpace::getId, (e, l) -> { JoinUtil.joinSplit(list, platSpaceService, WorkStationHomeBedVO::getSpacePath, PlatSpace::getId, (e, l) -> {
e.setPathName(StreamUtil.join(l, Objects::nonNull, PlatSpace::getName, "-")); e.setPathName(StreamUtil.join(l, Objects::nonNull, PlatSpace::getName, "-"));
}); });
...@@ -544,8 +584,33 @@ public class WorkStationServiceImpl implements WorkStationService { ...@@ -544,8 +584,33 @@ public class WorkStationServiceImpl implements WorkStationService {
e.setAvatarPath(f.getFullUrl()); e.setAvatarPath(f.getFullUrl());
}); });
List<PlatRoomBedDevice> platRoomDevices = platRoomBedDeviceService.list(new QueryWrapper<PlatRoomBedDevice>().lambda()
.in(PlatRoomBedDevice::getRoomId, roomIds)
.isNull(PlatRoomBedDevice::getBedId));
List<PlatRoomBedDevice> platBedDevices = platRoomBedDeviceService.list(new QueryWrapper<PlatRoomBedDevice>().lambda()
.in(PlatRoomBedDevice::getRoomId, roomIds)
.isNotNull(PlatRoomBedDevice::getBedId));
Map<String, List<PlatRoomBedDevice>> roomDeviceMap = StreamUtil.groupBy(platRoomDevices, PlatRoomBedDevice::getRoomId);
Map<String, PlatRoomBedDevice> bedDeviceMap = StreamUtil.toMap(platBedDevices, PlatRoomBedDevice::getBedId);
List<String> deviceIdList = StreamUtil.map(platRoomDevices, PlatRoomBedDevice::getDeviceId);
List<PlatDevice> platDeviceList = platDeviceService.list();
Map<String, PlatDevice> deviceMap = StreamUtil.toMap(platDeviceList, BaseEntity::getId);
for(WorkStationHomeBedVO vo : list){ for(WorkStationHomeBedVO vo : list){
vo.setPathName(vo.getPathName() + "-" + vo.getRoomName()); vo.setPathName(vo.getPathName() + "-" + vo.getRoomName());
List<PlatDevice> deviceList = Lists.newArrayList();
List<PlatRoomBedDevice> platRoomBedDevices = roomDeviceMap.get(vo.getRoomId());
if (CollectionUtils.isNotEmpty(platRoomBedDevices)) {
List<String> tempDeviceIdList = StreamUtil.map(platRoomBedDevices, PlatRoomBedDevice::getDeviceId);
for (String s : tempDeviceIdList) {
PlatDevice platDevice = deviceMap.get(s);
if (platDevice != null) {
deviceList.add(platDevice);
}
}
}
if (StringUtil.isNotEmpty(vo.getElderId()) ) { if (StringUtil.isNotEmpty(vo.getElderId()) ) {
if(elderAlarmTypeMap.containsKey(vo.getElderId())){ if(elderAlarmTypeMap.containsKey(vo.getElderId())){
vo.setAlarmTypeMap(elderAlarmTypeMap.get(vo.getElderId())); vo.setAlarmTypeMap(elderAlarmTypeMap.get(vo.getElderId()));
...@@ -554,14 +619,21 @@ public class WorkStationServiceImpl implements WorkStationService { ...@@ -554,14 +619,21 @@ public class WorkStationServiceImpl implements WorkStationService {
PlatElderIdDTO platElderIdDTO = new PlatElderIdDTO(); PlatElderIdDTO platElderIdDTO = new PlatElderIdDTO();
platElderIdDTO.setElderId(vo.getElderId()); platElderIdDTO.setElderId(vo.getElderId());
PlatElderRealTimeHeartRespiratoryVO respiratoryVO = platElderRealTimeService.heartRespiratory(platElderIdDTO); PlatElderRealTimeHeartRespiratoryVO respiratoryVO = platElderRealTimeService.heartRespiratory(platElderIdDTO);
if (StringUtil.isNotEmpty(respiratoryVO.getDeviceId())) {
PlatAlarmCallDeviceVO platAlarmCallDeviceVO = shengwangService.callingDeviceAuthIgnoreRtc(respiratoryVO.getDeviceId());
vo.setPlatAlarmCallDeviceVO(platAlarmCallDeviceVO);
}
vo.setElderStatus(respiratoryVO.getStatus()); vo.setElderStatus(respiratoryVO.getStatus());
vo.setHeartRate(respiratoryVO.getHeartRate()); vo.setHeartRate(respiratoryVO.getHeartRate());
vo.setRespiratoryRate(respiratoryVO.getRespiratoryRate()); vo.setRespiratoryRate(respiratoryVO.getRespiratoryRate());
PlatRoomBedDevice platRoomBedDevice = bedDeviceMap.get(vo.getBedId());
if (platRoomBedDevice != null) {
PlatDevice platDevice = deviceMap.get(platRoomBedDevice.getDeviceId());
if (platDevice != null) {
deviceList.add(platDevice);
}
}
vo.setDeviceList(deviceList);
} }
} }
return PageUtil.toPageVO(pages); return PageUtil.toPageVO(pages);
......
package com.makeit.vo.platform.workstation; package com.makeit.vo.platform.workstation;
import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.shengwang.agora.vo.PlatAlarmCallDeviceVO; import com.makeit.shengwang.agora.vo.PlatAlarmCallDeviceVO;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -65,8 +66,8 @@ public class WorkStationHomeBedVO { ...@@ -65,8 +66,8 @@ public class WorkStationHomeBedVO {
@ApiModelProperty("呼吸率") @ApiModelProperty("呼吸率")
private Integer respiratoryRate; private Integer respiratoryRate;
@ApiModelProperty("设备呼叫信息") @ApiModelProperty("设备列表")
private PlatAlarmCallDeviceVO platAlarmCallDeviceVO; private List<PlatDevice> deviceList;
@ApiModelProperty(value = "告警类型") @ApiModelProperty(value = "告警类型")
private Map<String,String> alarmTypeMap; private Map<String,String> alarmTypeMap;
......
package com.makeit.vo.platform.workstation; package com.makeit.vo.platform.workstation;
import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.shengwang.agora.vo.PlatAlarmCallDeviceVO; import com.makeit.shengwang.agora.vo.PlatAlarmCallDeviceVO;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -44,8 +45,8 @@ public class WorkStationInstitutionBedVO { ...@@ -44,8 +45,8 @@ public class WorkStationInstitutionBedVO {
@ApiModelProperty(value = "长者状态") @ApiModelProperty(value = "长者状态")
private String elderStatus; private String elderStatus;
@ApiModelProperty("设备呼叫信息") @ApiModelProperty("设备列表")
private PlatAlarmCallDeviceVO platAlarmCallDeviceVO; private List<PlatDevice> deviceList;
@ApiModelProperty(value = "告警类型") @ApiModelProperty(value = "告警类型")
private Map<String,String> alarmTypeMap; private Map<String,String> alarmTypeMap;
} }
...@@ -7,11 +7,6 @@ ...@@ -7,11 +7,6 @@
<property name="pattern" <property name="pattern"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{appName}] [%X{profile}] [%X{traceId:-},%X{spanId:-}] [%X{requestId}] [%X{userId}] [%thread] %-5level %logger{50} - %msg%n"/> value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{appName}] [%X{profile}] [%X{traceId:-},%X{spanId:-}] [%X{requestId}] [%X{userId}] [%thread] %-5level %logger{50} - %msg%n"/>
<springProfile name="dev">
<property name="logback.logdir" value="/home/group1_lzy/iot-server/logs"/>
<property name="logback.appname" value="app"/>
</springProfile>
<springProfile name="prod"> <springProfile name="prod">
<property name="logback.logdir" value="/home/group1_lzy/iot-server/logs"/> <property name="logback.logdir" value="/home/group1_lzy/iot-server/logs"/>
<property name="logback.appname" value="app"/> <property name="logback.appname" value="app"/>
...@@ -132,11 +127,6 @@ ...@@ -132,11 +127,6 @@
<appender-ref ref="FILEERRORLOG"/> <appender-ref ref="FILEERRORLOG"/>
<appender-ref ref="FILEWARNLOG"/> <appender-ref ref="FILEWARNLOG"/>
</logger> </logger>
<logger name="com.makeit" level="ERROR" additivity="false">
<appender-ref ref="FILEINFOLOG"/>
<appender-ref ref="FILEERRORLOG"/>
<appender-ref ref="FILEWARNLOG"/>
</logger>
</springProfile> </springProfile>
<springProfile name="test"> <springProfile name="test">
......
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