Commit 115de5dd by 朱淼
parents 8fd680d1 ba42ce9d
...@@ -329,7 +329,8 @@ CREATE TABLE `plat_elder_sleep_analysis` ...@@ -329,7 +329,8 @@ CREATE TABLE `plat_elder_sleep_analysis`
DEFAULT CHARSET = utf8mb4 DEFAULT CHARSET = utf8mb4
ROW_FORMAT = COMPACT COMMENT = '长者每天睡觉分析'; ROW_FORMAT = COMPACT COMMENT = '长者每天睡觉分析';
CREATE TABLE `plat_elder_breathe_abnormal` ( CREATE TABLE `plat_elder_breathe_abnormal`
(
`id` varchar(64) NOT NULL COMMENT 'id', `id` varchar(64) NOT NULL COMMENT 'id',
`elder_id` varchar(64) NOT NULL COMMENT '长者id', `elder_id` varchar(64) NOT NULL COMMENT '长者id',
`breathe_analysis_id` varchar(64) NOT NULL COMMENT '呼吸分析id', `breathe_analysis_id` varchar(64) NOT NULL COMMENT '呼吸分析id',
...@@ -344,9 +345,12 @@ CREATE TABLE `plat_elder_breathe_abnormal` ( ...@@ -344,9 +345,12 @@ CREATE TABLE `plat_elder_breathe_abnormal` (
`tenant_id` varchar(64) DEFAULT NULL COMMENT '租户id', `tenant_id` varchar(64) DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
KEY `index_elder_id` (`elder_id`) USING BTREE KEY `index_elder_id` (`elder_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='长者每天呼吸异常'; ) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
ROW_FORMAT = COMPACT COMMENT ='长者每天呼吸异常';
CREATE TABLE `plat_elder_breathe_analysis` ( CREATE TABLE `plat_elder_breathe_analysis`
(
`id` varchar(64) NOT NULL COMMENT 'id', `id` varchar(64) NOT NULL COMMENT 'id',
`elder_id` varchar(64) NOT NULL COMMENT '长者id', `elder_id` varchar(64) NOT NULL COMMENT '长者id',
`breathe_score` varchar(64) DEFAULT NULL COMMENT '睡眠评分', `breathe_score` varchar(64) DEFAULT NULL COMMENT '睡眠评分',
...@@ -363,12 +367,16 @@ CREATE TABLE `plat_elder_breathe_analysis` ( ...@@ -363,12 +367,16 @@ CREATE TABLE `plat_elder_breathe_analysis` (
`tenant_id` varchar(64) DEFAULT NULL COMMENT '租户id', `tenant_id` varchar(64) DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
KEY `index_elder_id` (`elder_id`) USING BTREE KEY `index_elder_id` (`elder_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='长者每天呼吸分析'; ) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
ROW_FORMAT = COMPACT COMMENT ='长者每天呼吸分析';
CREATE TABLE `plat_elder_report_month` CREATE TABLE `plat_elder_report_month`
( (
`id` varchar(64) NOT NULL COMMENT 'id', `id` varchar(64) NOT NULL COMMENT 'id',
`elder_id` VARCHAR(64) NOT NULL COMMENT '长者id', `elder_id` VARCHAR(64) NOT NULL COMMENT '长者id',
breathe_device_id VARCHAR(64) NULL COMMENT '呼吸心率设备id',
breathe_ori_device_id VARCHAR(64) NULL COMMENT '呼吸心率设备原始id',
day date NOT NULL COMMENT '日期', day date NOT NULL COMMENT '日期',
sleep_result varchar(64) NOT NULL COMMENT '睡眠结果', sleep_result varchar(64) NOT NULL COMMENT '睡眠结果',
heart_rate int NOT NULL COMMENT '心率', heart_rate int NOT NULL COMMENT '心率',
...@@ -389,7 +397,7 @@ CREATE TABLE `plat_elder_report_month` ...@@ -389,7 +397,7 @@ CREATE TABLE `plat_elder_report_month`
ALTER TABLE `dev_iot_yanglao_platform`.`plat_elder_sleep_analysis` ALTER TABLE `dev_iot_yanglao_platform`.`plat_elder_sleep_analysis`
ADD COLUMN `action_count` int(4) COMMENT '体动次数' AFTER `happen_date`, ADD COLUMN `action_count` int(4) COMMENT '体动次数' AFTER `happen_date`,
ADD COLUMN `turned_count` int(4) COMMENT '翻身次数' AFTER `action_count`; ADD COLUMN `turned_count` int(4) COMMENT '翻身次数' AFTER `action_count`;
ALTER TABLE `dev_iot_yanglao_platform`.`plat_elder_sleep` ALTER TABLE `dev_iot_yanglao_platform`.`plat_elder_sleep`
ADD COLUMN `elder_sleep_type` int(4) COMMENT '睡眠类型 1 睡眠 2 小憩' AFTER `happen_date`; ADD COLUMN `elder_sleep_type` int(4) COMMENT '睡眠类型 1 睡眠 2 小憩' AFTER `happen_date`;
......
...@@ -48,6 +48,13 @@ public class PlatAlarmRecordController { ...@@ -48,6 +48,13 @@ public class PlatAlarmRecordController {
return ApiResponseUtils.success(); return ApiResponseUtils.success();
} }
@ApiOperation("未读条数")
@PostMapping("unreadCount")
public ApiResponseEntity<Integer> unreadCount(@RequestBody PlatAlarmRecordQueryDTO dto) {
Integer count = platAlarmRecordService.unreadCount(dto);
return ApiResponseUtils.success(count);
}
// @Autowired // @Autowired
// private MailMsgSender mailMsgSender; // private MailMsgSender mailMsgSender;
// @Autowired // @Autowired
......
...@@ -43,5 +43,12 @@ public class PlatAlarmRecordChildrenController { ...@@ -43,5 +43,12 @@ public class PlatAlarmRecordChildrenController {
platAlarmRecordService.read(dto.getId()); platAlarmRecordService.read(dto.getId());
return ApiResponseUtils.success(); return ApiResponseUtils.success();
} }
@ApiOperation("未读条数")
@PostMapping("unreadCount")
public ApiResponseEntity<Integer> unreadCount(@RequestBody PlatAlarmRecordQueryDTO dto) {
Integer count = platAlarmRecordService.unreadCount(dto);
return ApiResponseUtils.success(count);
}
} }
...@@ -63,6 +63,8 @@ public class PlatAlarmRecordQueryDTO extends BaseTenantDTO { ...@@ -63,6 +63,8 @@ public class PlatAlarmRecordQueryDTO extends BaseTenantDTO {
*/ */
private String noticeStatus; private String noticeStatus;
private String readFlag;
} }
...@@ -40,4 +40,5 @@ public class PlatElderReportDTO extends PlatElderIdDTO { ...@@ -40,4 +40,5 @@ public class PlatElderReportDTO extends PlatElderIdDTO {
@ApiModelProperty("结束时间") @ApiModelProperty("结束时间")
private LocalDateTime endTime; private LocalDateTime endTime;
private String tenantId;
} }
...@@ -27,6 +27,12 @@ public class PlatElderReportMonth extends BaseBusEntity { ...@@ -27,6 +27,12 @@ public class PlatElderReportMonth extends BaseBusEntity {
@ApiModelProperty(value = "长者id") @ApiModelProperty(value = "长者id")
private String elderId; private String elderId;
@ApiModelProperty(value = "呼吸心率设备id")
private String breatheDeviceId;
@ApiModelProperty(value = "呼吸心率设备原始id")
private String breatheOriDeviceId;
@ApiModelProperty(value = "日期") @ApiModelProperty(value = "日期")
private LocalDate day; private LocalDate day;
......
...@@ -63,4 +63,6 @@ public interface PlatAlarmRecordService extends IService<PlatAlarmRecord> { ...@@ -63,4 +63,6 @@ public interface PlatAlarmRecordService extends IService<PlatAlarmRecord> {
void dealAlarm(BaseIdDTO dto); void dealAlarm(BaseIdDTO dto);
void read(String id); void read(String id);
Integer unreadCount(PlatAlarmRecordQueryDTO dto);
} }
...@@ -151,6 +151,7 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -151,6 +151,7 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
} }
}) })
.eq(StringUtils.isNotBlank(param.getNoticeStatus()),PlatAlarmRecord::getNoticeStatus,param.getNoticeStatus()) .eq(StringUtils.isNotBlank(param.getNoticeStatus()),PlatAlarmRecord::getNoticeStatus,param.getNoticeStatus())
.eq(StringUtils.isNotBlank(param.getReadFlag()),PlatAlarmRecord::getReadFlag,param.getReadFlag())
.orderByDesc(BaseEntity::getCreateDate) .orderByDesc(BaseEntity::getCreateDate)
; ;
} }
...@@ -509,4 +510,23 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -509,4 +510,23 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
.set(PlatAlarmRecord::getReadFlag, CommonEnum.YES.getValue()); .set(PlatAlarmRecord::getReadFlag, CommonEnum.YES.getValue());
update(recordLambdaUpdateWrapper); update(recordLambdaUpdateWrapper);
} }
@Override
public Integer unreadCount(PlatAlarmRecordQueryDTO dto) {
PlatElderChildrenInfo platElderChildrenInfo = platElderChildrenInfoService.getById(WechatUserUtil.getUserId());
log.info("子女端账号:"+platElderChildrenInfo.toString());
if (platElderChildrenInfo == null) {
return 0;
}
String elderId = platElderChildrenInfo.getElderId();
if(StringUtils.isBlank(elderId)){
return 0;
}
String[] split = elderId.split(",");
dto.setElderIdList(Arrays.asList(split));
dto.setNoticeStatus(CommonEnum.YES.getValue());
dto.setReadFlag(CommonEnum.NO.getValue());
LambdaQueryWrapper<PlatAlarmRecord> lambdaQueryWrapper = getLambdaQueryWrapper(dto);
return Math.toIntExact(count(lambdaQueryWrapper));
}
} }
...@@ -126,7 +126,12 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev ...@@ -126,7 +126,12 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev
String spaceParentPath = record.getSpaceParentPath(); String spaceParentPath = record.getSpaceParentPath();
if(StringUtils.isNotBlank(spaceParentPath)){ if(StringUtils.isNotBlank(spaceParentPath)){
String spaceNameJoin = Stream.of(spaceParentPath.split(",")).map(vo -> spaceIdNameMap.get(vo)).collect(Collectors.joining("-")); String spaceNameJoin = Stream.of(spaceParentPath.split(",")).map(vo -> spaceIdNameMap.get(vo)).collect(Collectors.joining("-"));
record.setSpaceName(spaceNameJoin+"-"+record.getSpaceName());
String spaceName = spaceNameJoin + "-" + record.getSpaceName() + "-" + record.getRoomName();
if(StringUtils.isNotBlank(record.getBedName())){
spaceName = spaceName +"-"+record.getBedName();
}
record.setSpaceName(spaceName);
} }
} }
......
...@@ -2,6 +2,7 @@ package com.makeit.service.platform.elder.impl; ...@@ -2,6 +2,7 @@ package com.makeit.service.platform.elder.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.makeit.common.entity.BaseBusEntity;
import com.makeit.dto.platform.elder.PlatElderReportDTO; import com.makeit.dto.platform.elder.PlatElderReportDTO;
import com.makeit.entity.platform.device.PlatDevice; import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.elder.*; import com.makeit.entity.platform.elder.*;
...@@ -412,7 +413,7 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek ...@@ -412,7 +413,7 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
} }
}); });
lambdaQueryWrapper.eq(StringUtils.isNotBlank(platElderIdDTO.getTenantId()), BaseBusEntity::getTenantId,platElderIdDTO.getTenantId());
lambdaQueryWrapper.orderByAsc(PlatElderBreatheDayStat::getDay); lambdaQueryWrapper.orderByAsc(PlatElderBreatheDayStat::getDay);
List<PlatElderBreatheDayStat> breatheDayStatList = platElderBreatheDayStatService.list(lambdaQueryWrapper); List<PlatElderBreatheDayStat> breatheDayStatList = platElderBreatheDayStatService.list(lambdaQueryWrapper);
......
...@@ -127,9 +127,11 @@ public class PlatElderReportMonthServiceImpl extends ServiceImpl<PlatElderReport ...@@ -127,9 +127,11 @@ public class PlatElderReportMonthServiceImpl extends ServiceImpl<PlatElderReport
LocalDate end = LocalDateTimeUtils.getMonthMax(start); LocalDate end = LocalDateTimeUtils.getMonthMax(start);
List<PlatElderReportMonth> monthList = list(new QueryWrapper<PlatElderReportMonth>().lambda() List<PlatElderReportMonth> monthList = list(new QueryWrapper<PlatElderReportMonth>().lambda()
.eq(PlatElderReportMonth::getElderId, platElderIdDTO.getElderId()) .eq(StringUtils.isNotBlank(platElderIdDTO.getElderId()), PlatElderReportMonth::getElderId, platElderIdDTO.getElderId())
.eq(StringUtils.isNotBlank(platElderIdDTO.getDeviceId()), PlatElderReportMonth::getBreatheDeviceId, platElderIdDTO.getDeviceId())
.ge(PlatElderReportMonth::getDay, start) .ge(PlatElderReportMonth::getDay, start)
.le(PlatElderReportMonth::getDay, end) .le(PlatElderReportMonth::getDay, end)
.orderByAsc(PlatElderReportMonth::getDay)
); );
List<PlatElderReportMonthVO> voList = BeanDtoVoUtils.listVo(monthList, PlatElderReportMonthVO.class); List<PlatElderReportMonthVO> voList = BeanDtoVoUtils.listVo(monthList, PlatElderReportMonthVO.class);
...@@ -179,6 +181,10 @@ public class PlatElderReportMonthServiceImpl extends ServiceImpl<PlatElderReport ...@@ -179,6 +181,10 @@ public class PlatElderReportMonthServiceImpl extends ServiceImpl<PlatElderReport
List<DeviceInfoContentBreathe> breatheList = iotProductDeviceService.getDeviceLogByTimeRangeBreathe(platDevice.getOriDeviceId(), 2 * 24 * 3600, yesStart, yesEnd); List<DeviceInfoContentBreathe> breatheList = iotProductDeviceService.getDeviceLogByTimeRangeBreathe(platDevice.getOriDeviceId(), 2 * 24 * 3600, yesStart, yesEnd);
if (CollectionUtils.isNotEmpty(breatheList)) { if (CollectionUtils.isNotEmpty(breatheList)) {
reportMonth.setBreatheDeviceId(platDevice.getId());
reportMonth.setBreatheOriDeviceId(platDevice.getOriDeviceId());
reportMonth.setHeartRate((int) (StreamUtil.reduce(breatheList, i -> (long) i.getProperties().getHr(), 0L, Long::sum) / breatheList.size())); reportMonth.setHeartRate((int) (StreamUtil.reduce(breatheList, i -> (long) i.getProperties().getHr(), 0L, Long::sum) / breatheList.size()));
reportMonth.setRespiratoryRate((int) (StreamUtil.reduce(breatheList, i -> (long) i.getProperties().getBr(), 0L, Long::sum) / breatheList.size())); reportMonth.setRespiratoryRate((int) (StreamUtil.reduce(breatheList, i -> (long) i.getProperties().getBr(), 0L, Long::sum) / breatheList.size()));
} }
......
...@@ -906,6 +906,10 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder ...@@ -906,6 +906,10 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
public List<PlatDevice> getFallDevice(String id) { public List<PlatDevice> getFallDevice(String id) {
PlatElder platElder = getById(id); PlatElder platElder = getById(id);
if (platElder == null) {
return null;
}
if (StringUtils.isBlank(platElder.getBedId())) { if (StringUtils.isBlank(platElder.getBedId())) {
return null; return null;
} }
......
...@@ -209,7 +209,9 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM ...@@ -209,7 +209,9 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM
@Override @Override
public PlatDevice getBreathDevice(String bedId) { public PlatDevice getBreathDevice(String bedId) {
PlatRoomBedDevice device = getOne(new QueryWrapper<PlatRoomBedDevice>().lambda() PlatRoomBedDevice device = getOne(new QueryWrapper<PlatRoomBedDevice>().lambda()
.eq(PlatRoomBedDevice::getBedId, bedId)); .eq(PlatRoomBedDevice::getBedId, bedId)
.last("limit 1")
);
if (device == null) { if (device == null) {
return null; return null;
......
...@@ -94,7 +94,6 @@ public class PlatElderChildrenInfoUserLoginWechatServiceImpl implements PlatElde ...@@ -94,7 +94,6 @@ public class PlatElderChildrenInfoUserLoginWechatServiceImpl implements PlatElde
TokenUtil.wechatLogin(token, wechatUserVo); TokenUtil.wechatLogin(token, wechatUserVo);
return wechatUserVo; return wechatUserVo;
} }
......
...@@ -89,5 +89,9 @@ public class PlatDeviceListVO extends BaseTenantDTO { ...@@ -89,5 +89,9 @@ public class PlatDeviceListVO extends BaseTenantDTO {
private String spaceName; private String spaceName;
private String roomName;
private String bedName;
} }
...@@ -6,18 +6,21 @@ ...@@ -6,18 +6,21 @@
<select id="getDeviceIdsBySpaceId" resultType="com.makeit.vo.platform.device.PlatDeviceListVO"> <select id="getDeviceIdsBySpaceId" resultType="com.makeit.vo.platform.device.PlatDeviceListVO">
select select
distinct
pd.*, pd.*,
ps.parent_path as spaceParentPath, ps.parent_path as spaceParentPath,
ps.name as spaceName ps.name as spaceName,
pr.name as roomName,
pb.name as bedName
from plat_device pd from plat_device pd
left join plat_room_bed_device prbd on (pd.id = prbd.device_id and prbd.del_flag = 0) left join plat_room_bed_device prbd on (pd.id = prbd.device_id and prbd.del_flag = 0)
left join plat_room pr on (pr.id = prbd.room_id and pr.del_flag = 0 ) left join plat_room pr on (pr.id = prbd.room_id and pr.del_flag = 0 )
left join plat_bed pb on ( pb.id = prbd.bed_id and pb.del_flag = 0) left join plat_bed pb on ( pb.id = prbd.bed_id and pb.del_flag = 0)
left join plat_space ps on (ps.id = pb.space_id or ps.id = pr.space_id) left join plat_space ps on (ps.id = pr.space_id and ps.del_flag = 0)
<where> <where>
pd.del_flag = 0 pd.del_flag = 0
<if test="param.spaceId != null and param.spaceId != ''"> <if test="param.spaceId != null and param.spaceId != ''">
and ( FIND_IN_SET(#{param.spaceId},ps.parent_path) or ps.id = #{param.spaceId} ) and ( FIND_IN_SET(#{param.spaceId},ps.parent_path) or ps.id = #{param.spaceId})
</if> </if>
<if test="param.oriDeviceId != null and param.oriDeviceId != ''"> <if test="param.oriDeviceId != null and param.oriDeviceId != ''">
and pd.ori_device_id like concat('%',#{param.oriDeviceId},'%') and pd.ori_device_id like concat('%',#{param.oriDeviceId},'%')
...@@ -38,6 +41,6 @@ ...@@ -38,6 +41,6 @@
and pd.org_id = #{param.orgId} and pd.org_id = #{param.orgId}
</if> </if>
</where> </where>
order by pd.update_date desc order by pd.update_date desc,prbd.update_date desc
</select> </select>
</mapper> </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