Commit 6fba620b by huangjy

Merge remote-tracking branch 'origin/dev' into dev

parents 5ac5de55 1d5861a3
Showing with 722 additions and 81 deletions
...@@ -37,12 +37,12 @@ CREATE TABLE `plat_elder` ...@@ -37,12 +37,12 @@ CREATE TABLE `plat_elder`
floor_space_id varchar(64) NULL COMMENT '楼层id', floor_space_id varchar(64) NULL COMMENT '楼层id',
`room_id` varchar(64) DEFAULT NULL COMMENT '房间id', `room_id` varchar(64) DEFAULT NULL COMMENT '房间id',
`bed_id` varchar(64) DEFAULT NULL COMMENT '床位id', `bed_id` varchar(64) DEFAULT NULL COMMENT '床位id',
`space_path` varchar(64) DEFAULT NULL COMMENT '空间-房间-床位路径', `space_path` varchar(300) DEFAULT NULL COMMENT '空间-房间-床位路径',
org_id varchar(64) NULL COMMENT '组织id', org_id varchar(64) NULL COMMENT '组织id',
city_org_id varchar(64) NULL COMMENT '城市组织id', city_org_id varchar(64) NULL COMMENT '城市组织id',
district_org_id varchar(64) NULL COMMENT '区组织id', district_org_id varchar(64) NULL COMMENT '区组织id',
street_org_id varchar(64) NULL COMMENT '街道组织id', street_org_id varchar(64) NULL COMMENT '街道组织id',
org_path varchar(64) NULL COMMENT '组织路径', org_path varchar(300) NULL COMMENT '组织路径',
`remark` varchar(1024) DEFAULT NULL COMMENT '备注', `remark` varchar(1024) DEFAULT NULL COMMENT '备注',
avatar varchar(64) NULL COMMENT '头像文件id', avatar varchar(64) NULL COMMENT '头像文件id',
check_in_time datetime DEFAULT NULL COMMENT '入住时间', check_in_time datetime DEFAULT NULL COMMENT '入住时间',
...@@ -160,7 +160,7 @@ CREATE TABLE `plat_elder_children_info` ...@@ -160,7 +160,7 @@ CREATE TABLE `plat_elder_children_info`
city_org_id varchar(64) NULL COMMENT '城市组织id', city_org_id varchar(64) NULL COMMENT '城市组织id',
district_org_id varchar(64) NULL COMMENT '区组织id', district_org_id varchar(64) NULL COMMENT '区组织id',
street_org_id varchar(64) NULL COMMENT '街道组织id', street_org_id varchar(64) NULL COMMENT '街道组织id',
org_path varchar(64) NULL COMMENT '组织路径', org_path varchar(300) NULL COMMENT '组织路径',
avatar varchar(64) NULL COMMENT '微信头像路径', avatar varchar(64) NULL COMMENT '微信头像路径',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建者', `create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
`create_date` datetime DEFAULT NULL COMMENT '创建时间', `create_date` datetime DEFAULT NULL COMMENT '创建时间',
...@@ -216,7 +216,7 @@ CREATE TABLE `plat_alarm_config` ...@@ -216,7 +216,7 @@ CREATE TABLE `plat_alarm_config`
city_org_id varchar(64) NULL COMMENT '城市组织id', city_org_id varchar(64) NULL COMMENT '城市组织id',
district_org_id varchar(64) NULL COMMENT '区组织id', district_org_id varchar(64) NULL COMMENT '区组织id',
street_org_id varchar(64) NULL COMMENT '街道组织id', street_org_id varchar(64) NULL COMMENT '街道组织id',
org_path varchar(64) NULL COMMENT '组织路径', org_path varchar(300) NULL COMMENT '组织路径',
`rule_config` VARCHAR(512) DEFAULT NULL COMMENT '规则配置', `rule_config` VARCHAR(512) DEFAULT NULL COMMENT '规则配置',
`content` VARCHAR(512) DEFAULT NULL COMMENT '内容', `content` VARCHAR(512) DEFAULT NULL COMMENT '内容',
`content_audit` VARCHAR(512) DEFAULT NULL COMMENT '内容(审核中)', `content_audit` VARCHAR(512) DEFAULT NULL COMMENT '内容(审核中)',
...@@ -251,7 +251,7 @@ CREATE TABLE `plat_device` ...@@ -251,7 +251,7 @@ CREATE TABLE `plat_device`
city_org_id varchar(64) NULL COMMENT '城市组织id', city_org_id varchar(64) NULL COMMENT '城市组织id',
district_org_id varchar(64) NULL COMMENT '区组织id', district_org_id varchar(64) NULL COMMENT '区组织id',
street_org_id varchar(64) NULL COMMENT '街道组织id', street_org_id varchar(64) NULL COMMENT '街道组织id',
org_path varchar(64) NULL COMMENT '组织路径', org_path varchar(300) NULL COMMENT '组织路径',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建者', `create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
`create_date` datetime DEFAULT NULL COMMENT '创建时间', `create_date` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新者', `update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
......
...@@ -19,6 +19,7 @@ public class DeviceInfo { ...@@ -19,6 +19,7 @@ public class DeviceInfo {
private HeaderInfo headers; private HeaderInfo headers;
private JSONObject properties; private JSONObject properties;
// private String properties;
/** /**
......
...@@ -13,11 +13,11 @@ import java.util.Map; ...@@ -13,11 +13,11 @@ import java.util.Map;
public class LocalDateTimeUtils { public class LocalDateTimeUtils {
public static final Map<Integer,String> WEEK_MAP = new HashMap<>(16); public static final Map<Integer, String> WEEK_MAP = new HashMap<>(16);
static { static {
WEEK_MAP.put(1,"星期一"); WEEK_MAP.put(1, "星期一");
WEEK_MAP.put(2,"星期二"); WEEK_MAP.put(2, "星期二");
} }
/** /**
...@@ -85,6 +85,15 @@ public class LocalDateTimeUtils { ...@@ -85,6 +85,15 @@ public class LocalDateTimeUtils {
.withSecond(59); .withSecond(59);
} }
public static LocalDateTime getDayStart(LocalDate time) {
return time.atTime(0, 0, 0);
}
public static LocalDateTime getDayEnd(LocalDate time) {
return time.atTime(23, 59, 59);
}
// /** // /**
// * 获取前n天的开始时间 // * 获取前n天的开始时间
// * // *
...@@ -154,7 +163,7 @@ public class LocalDateTimeUtils { ...@@ -154,7 +163,7 @@ public class LocalDateTimeUtils {
public static Integer getHourSub(LocalDateTime start, LocalDateTime end) { public static Integer getHourSub(LocalDateTime start, LocalDateTime end) {
if(start==null || end == null ){ if (start == null || end == null) {
return 0; return 0;
} }
Long until = start.until(end, ChronoUnit.HOURS); Long until = start.until(end, ChronoUnit.HOURS);
......
...@@ -54,5 +54,7 @@ public class WechatUserInfo implements Serializable { ...@@ -54,5 +54,7 @@ public class WechatUserInfo implements Serializable {
private String token; private String token;
private String isTenant;
} }
package com.makeit.module.controller.children.config;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.saas.SaasPrivacyConfigDTO;
import com.makeit.service.saas.SaasPrivacyConfigService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
*
* @author lzy
* @date 2022年5月28日
* @description
*/
@Api(tags = "子女端小程序-隐私政策-关于我们")
@RestController
@RequestMapping("/children/sys/privacyConfig")
public class SaasPrivacyConfigChildrenController {
@Autowired
private SaasPrivacyConfigService saasPrivacyConfigService;
@ApiOperation(value = "获取隐私政策-关于我们", notes = "")
@PostMapping("/view")
public ApiResponseEntity<SaasPrivacyConfigDTO> view(@RequestBody SaasPrivacyConfigDTO saasPrivacyConfigDTO){
return ApiResponseUtils.success(saasPrivacyConfigService.view(saasPrivacyConfigDTO.getCategory()));
}
@ApiOperation(value = "获取关于我们", notes = "")
@PostMapping("/viewAbout")
public ApiResponseEntity<SaasPrivacyConfigDTO> viewAbout(@RequestBody SaasPrivacyConfigDTO saasPrivacyConfigDTO){
return ApiResponseUtils.success(saasPrivacyConfigService.view(saasPrivacyConfigDTO.getCategory()));
}
}
...@@ -3,7 +3,7 @@ package com.makeit.module.controller.elder; ...@@ -3,7 +3,7 @@ package com.makeit.module.controller.elder;
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.platform.elder.PlatElderIdDTO; import com.makeit.dto.platform.elder.PlatElderReportDTO;
import com.makeit.service.platform.elder.PlatElderDayReportDayService; import com.makeit.service.platform.elder.PlatElderDayReportDayService;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO; import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO; import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO;
...@@ -36,61 +36,61 @@ public class PlatElderReportDayController { ...@@ -36,61 +36,61 @@ public class PlatElderReportDayController {
@ApiOperation("睡眠评价") @ApiOperation("睡眠评价")
@PostMapping("sleepEvaluation") @PostMapping("sleepEvaluation")
public ApiResponseEntity<PlatElderSleepEvaluationVO> sleepEvaluation(@RequestBody PlatElderIdDTO platElderIdDTO) { public ApiResponseEntity<PlatElderSleepEvaluationVO> sleepEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderDayReportDayService.sleepEvaluation(platElderIdDTO));
} }
@ApiOperation("睡眠图表") @ApiOperation("睡眠图表")
@PostMapping("sleepDiagram") @PostMapping("sleepDiagram")
public ApiResponseEntity<List<PlatElderSleepDiagramVO>> sleepDiagram(@RequestBody PlatElderIdDTO platElderIdDTO) { public ApiResponseEntity<List<PlatElderSleepDiagramVO>> sleepDiagram(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderDayReportDayService.sleepDiagram(platElderIdDTO));
} }
@ApiOperation("心率呼吸评价") @ApiOperation("心率呼吸评价")
@PostMapping("heartRespiratoryEvaluation") @PostMapping("heartRespiratoryEvaluation")
public ApiResponseEntity<PlatElderHeartRespiratoryEvaluationVO> heartRespiratoryEvaluation(@RequestBody PlatElderIdDTO platElderIdDTO) { public ApiResponseEntity<PlatElderHeartRespiratoryEvaluationVO> heartRespiratoryEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return null;
} }
@ApiOperation("心率异常记录") @ApiOperation("心率异常记录")
@PostMapping("heartExceptionRecordList") @PostMapping("heartExceptionRecordList")
public ApiResponseEntity<List<PlatElderHeartRespiratoryEvaluationRecordVO>> heartExceptionRecordList(@RequestBody PlatElderIdDTO platElderIdDTO) { public ApiResponseEntity<List<PlatElderHeartRespiratoryEvaluationRecordVO>> heartExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return null;
} }
@ApiOperation("呼吸率异常记录") @ApiOperation("呼吸率异常记录")
@PostMapping("respiratoryExceptionRecordList") @PostMapping("respiratoryExceptionRecordList")
public ApiResponseEntity<List<PlatElderHeartRespiratoryEvaluationRecordVO>> respiratoryExceptionRecordList(@RequestBody PlatElderIdDTO platElderIdDTO) { public ApiResponseEntity<List<PlatElderHeartRespiratoryEvaluationRecordVO>> respiratoryExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return null;
} }
@ApiOperation("心率呼吸率") @ApiOperation("心率呼吸率")
@PostMapping("heartRespiratory") @PostMapping("heartRespiratory")
public ApiResponseEntity<List<PlatElderRealTimeHeartRespiratoryVO>> heartRespiratory(@RequestBody PlatElderIdDTO platElderIdDTO) { public ApiResponseEntity<List<PlatElderRealTimeHeartRespiratoryVO>> heartRespiratory(@RequestBody PlatElderReportDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderDayReportDayService.heartRespiratory(platElderIdDTO)); return ApiResponseUtils.success(platElderDayReportDayService.heartRespiratory(platElderIdDTO));
} }
@ApiOperation("行为异常记录") @ApiOperation("行为异常记录")
@PostMapping("behaviorExceptionRecordList") @PostMapping("behaviorExceptionRecordList")
public ApiResponseEntity<List<PlatElderBehaviorExceptionRecordVO>> behaviorExceptionRecordList(@RequestBody PlatElderIdDTO platElderIdDTO) { public ApiResponseEntity<List<PlatElderBehaviorExceptionRecordVO>> behaviorExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return null;
} }
@ApiOperation("跌倒记录") @ApiOperation("跌倒记录")
@PostMapping("failRecordList") @PostMapping("failRecordList")
public ApiResponseEntity<List<String>> failRecordList(@RequestBody PlatElderIdDTO platElderIdDTO) { public ApiResponseEntity<List<String>> failRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return null;
} }
@ApiOperation("坐标记录") @ApiOperation("坐标记录")
@PostMapping("coordinateList") @PostMapping("coordinateList")
public ApiResponseEntity<List<PlatElderCoordinateVO>> coordinateList(@RequestBody PlatElderIdDTO platElderIdDTO) { public ApiResponseEntity<List<PlatElderCoordinateVO>> coordinateList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderDayReportDayService.coordinateList(platElderIdDTO)); return ApiResponseUtils.success(platElderDayReportDayService.coordinateList(platElderIdDTO));
} }
@ApiOperation("行为辐射") @ApiOperation("行为辐射")
@PostMapping("behaviorDistribution") @PostMapping("behaviorDistribution")
public ApiResponseEntity<List<PlatElderBehaviorDistributionVO>> behaviorDistribution(@RequestBody PlatElderIdDTO platElderIdDTO) { public ApiResponseEntity<List<PlatElderBehaviorDistributionVO>> behaviorDistribution(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return null;
} }
......
package com.makeit.module.controller.wechat.elder;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.wechat.elder.PlatElderCenterQueryDTO;
import com.makeit.service.wechat.PlatElderCenterWechatService;
import com.makeit.vo.wechat.elder.PlatElderCenterHomeVo;
import com.makeit.vo.wechat.elder.PlatElderCenterInstitutionRoomVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Controller
*
* @author zm
* @version 2023/9/15
*/
@Api(tags = "平台端小程序-长者中心")
@RestController
@RequestMapping("/wechat/elder/center")
public class PlatElderCenterWechatController {
@Autowired
private PlatElderCenterWechatService platElderCenterWechatService;
@ApiOperation("居家统计列表")
@PostMapping("homeStatistics")
public ApiResponseEntity<PlatElderCenterHomeVo> homeStatistics(@RequestBody PlatElderCenterQueryDTO dto) {
return ApiResponseUtils.success(platElderCenterWechatService.homeStatistics(dto));
}
@ApiOperation("机构统计列表")
@PostMapping("institutionStatistics")
public ApiResponseEntity<PlatElderCenterInstitutionRoomVO> institutionStatistics(@RequestBody PlatElderCenterQueryDTO dto) {
return ApiResponseUtils.success(platElderCenterWechatService.institutionStatistics(dto));
}
}
...@@ -4,6 +4,7 @@ package com.makeit.module.controller.wechat.elder; ...@@ -4,6 +4,7 @@ package com.makeit.module.controller.wechat.elder;
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.platform.elder.PlatElderIdDTO; import com.makeit.dto.platform.elder.PlatElderIdDTO;
import com.makeit.dto.platform.elder.PlatElderReportDTO;
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.vo.platform.elder.realtime.PlatElderCoordinateVO; import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
...@@ -66,7 +67,7 @@ public class PlatElderRealTimeWechatController { ...@@ -66,7 +67,7 @@ public class PlatElderRealTimeWechatController {
@ApiOperation("坐标记录") @ApiOperation("坐标记录")
@PostMapping("coordinateList") @PostMapping("coordinateList")
public ApiResponseEntity<List<PlatElderCoordinateVO>> coordinateList(@RequestBody PlatElderIdDTO platElderIdDTO) { public ApiResponseEntity<List<PlatElderCoordinateVO>> coordinateList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderDayReportDayService.coordinateList(platElderIdDTO)); return ApiResponseUtils.success(platElderDayReportDayService.coordinateList(platElderIdDTO));
} }
......
...@@ -18,6 +18,8 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -18,6 +18,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/** /**
* Controller * Controller
* *
...@@ -59,4 +61,11 @@ public class PlatBedWechatController { ...@@ -59,4 +61,11 @@ public class PlatBedWechatController {
platBedService.del(baseIdDTO.getId()); platBedService.del(baseIdDTO.getId());
return ApiResponseUtils.success(); return ApiResponseUtils.success();
} }
@ApiOperation("列表-无权限(未绑定设备床位)")
@PostMapping("listAuthIgnore")
public ApiResponseEntity<List<PlatBed>> listAuthIgnore(@RequestBody PlatBedQueryDTO dto) {
List<PlatBed> data = platBedService.list(dto);
return ApiResponseUtils.success(data);
}
} }
...@@ -3,10 +3,16 @@ package com.makeit.module.controller.wechat.space; ...@@ -3,10 +3,16 @@ package com.makeit.module.controller.wechat.space;
import com.makeit.common.dto.BaseIdDTO; import com.makeit.common.dto.BaseIdDTO;
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.platform.auth.PlatOrgDTO;
import com.makeit.dto.platform.space.PlatSpaceAddDTO; import com.makeit.dto.platform.space.PlatSpaceAddDTO;
import com.makeit.dto.platform.space.PlatSpaceQueryDTO; import com.makeit.dto.platform.space.PlatSpaceQueryDTO;
import com.makeit.dto.platform.space.PlatSpaceVO; import com.makeit.dto.platform.space.PlatSpaceVO;
import com.makeit.entity.platform.auth.PlatOrg;
import com.makeit.entity.platform.space.PlatSpace;
import com.makeit.service.platform.space.PlatSpaceService; import com.makeit.service.platform.space.PlatSpaceService;
import com.makeit.utils.user.plat.PlatUserVO;
import com.makeit.utils.user.wechat.WechatUserInfo;
import com.makeit.utils.user.wechat.WechatUserUtil;
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;
...@@ -66,4 +72,13 @@ public class PlatSpaceWechatController { ...@@ -66,4 +72,13 @@ public class PlatSpaceWechatController {
List<PlatSpaceVO> data = spaceService.tree(dto); List<PlatSpaceVO> data = spaceService.tree(dto);
return ApiResponseUtils.success(data); return ApiResponseUtils.success(data);
} }
@ApiOperation("一级空间列表(该账号权限下)")
@PostMapping("oneLevelList")
public ApiResponseEntity<List<PlatSpaceAddDTO>> oneLevelList(@RequestBody PlatOrgDTO dto) {
List<PlatSpaceAddDTO> data = spaceService.oneLevelList(dto);
return ApiResponseUtils.success(data);
}
} }
...@@ -2,6 +2,8 @@ package com.makeit.module.controller.workstation; ...@@ -2,6 +2,8 @@ package com.makeit.module.controller.workstation;
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.platform.auth.PlatOrgDTO;
import com.makeit.dto.platform.space.PlatSpaceVO;
import com.makeit.dto.platform.workstation.WorkStationQueryDTO; import com.makeit.dto.platform.workstation.WorkStationQueryDTO;
import com.makeit.service.platform.workstation.WorkStationService; import com.makeit.service.platform.workstation.WorkStationService;
import com.makeit.vo.platform.workstation.*; import com.makeit.vo.platform.workstation.*;
...@@ -46,4 +48,10 @@ public class WorkStationController { ...@@ -46,4 +48,10 @@ public class WorkStationController {
public ApiResponseEntity<List<WorkStationHomeBedVO>> homeList(@RequestBody WorkStationQueryDTO dto) { public ApiResponseEntity<List<WorkStationHomeBedVO>> homeList(@RequestBody WorkStationQueryDTO dto) {
return ApiResponseUtils.success(workStationService.homeList(dto)); return ApiResponseUtils.success(workStationService.homeList(dto));
} }
@ApiOperation("空间树")
@PostMapping("spaceTree")
public ApiResponseEntity<List<PlatSpaceVO>> spaceTree(@RequestBody PlatOrgDTO dto) {
return ApiResponseUtils.success(workStationService.spaceTree(dto));
}
} }
package com.makeit.dto.platform.auth;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Controller
*
* @author zm
* @version 2023/9/15
*/
@Data
@ApiModel("PlatOrgDTO参数")
public class PlatOrgDTO {
@ApiModelProperty(value = "类型 1-居家 2-机构")
private String type;
}
...@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**
...@@ -21,6 +22,10 @@ import java.time.LocalDateTime; ...@@ -21,6 +22,10 @@ import java.time.LocalDateTime;
@ApiModel(value = "Elder对象", description = "长者基本信息") @ApiModel(value = "Elder对象", description = "长者基本信息")
public class PlatElderReportDTO extends PlatElderIdDTO{ public class PlatElderReportDTO extends PlatElderIdDTO{
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty("日期")
private LocalDate now;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("开始时间") @ApiModelProperty("开始时间")
private LocalDateTime startTime; private LocalDateTime startTime;
......
...@@ -15,7 +15,7 @@ import java.util.List; ...@@ -15,7 +15,7 @@ import java.util.List;
* @version 2023/9/11 * @version 2023/9/11
*/ */
@Data @Data
@ApiModel("PlatDataScreenQueryDto参数") @ApiModel("WorkStationQueryDTO参数")
public class WorkStationQueryDTO { public class WorkStationQueryDTO {
@ApiModelProperty("组织ids") @ApiModelProperty("组织ids")
......
package com.makeit.dto.wechat.elder;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Controller
*
* @author zm
* @version 2023/9/15
*/
@Data
@ApiModel("PlatElderCenterQueryDTO参数")
public class PlatElderCenterQueryDTO {
@ApiModelProperty("空间id")
private String spaceId;
}
...@@ -52,7 +52,9 @@ public class PlatDevice extends BaseBusEntity { ...@@ -52,7 +52,9 @@ public class PlatDevice extends BaseBusEntity {
/** /**
* @see DeviceState * @see DeviceState
*/ */
@ApiModelProperty(value = "状态 数据字典 1 在线 0离线 ") @ApiModelProperty(value = "状态 notActive(\"notActive\",\"禁用\"),\n" +
" offline(\"offline\",\"离线\"),\n" +
" online(\"online\",\"在线\"); ")
private String status; private String status;
@ApiModelProperty(value = "组织id") @ApiModelProperty(value = "组织id")
......
...@@ -25,5 +25,5 @@ public interface PlatBedMapper extends BaseMapper<PlatBed> { ...@@ -25,5 +25,5 @@ public interface PlatBedMapper extends BaseMapper<PlatBed> {
List<WorkStationInstitutionBedVO> selectByRoomIds(@Param("roomIds")List<String> roomIds); List<WorkStationInstitutionBedVO> selectByRoomIds(@Param("roomIds")List<String> roomIds);
List<WorkStationHomeBedVO> selectByCondition(WorkStationQueryDTO dto); List<WorkStationHomeBedVO> selectByCondition(@Param("dto")WorkStationQueryDTO dto);
} }
...@@ -84,7 +84,7 @@ public class BehaviorAlarm implements IAlarm { ...@@ -84,7 +84,7 @@ public class BehaviorAlarm implements IAlarm {
Long duration1 = platDayDurationRecord.getDuration(); Long duration1 = platDayDurationRecord.getDuration();
duration = duration * 60 + (int) (duration1 / 1000); duration = duration * 60 + (int) (duration1 / 1000);
//duration+平均停留时长 //duration+平均停留时长
List<String> personStateList = Arrays.asList("1", "2", "3"); List<String> personStateList = Arrays.asList("0");
//有人 //有人
//计数 //计数
Date now = new Date(); Date now = new Date();
...@@ -94,7 +94,7 @@ public class BehaviorAlarm implements IAlarm { ...@@ -94,7 +94,7 @@ public class BehaviorAlarm implements IAlarm {
alarmRedisDTO = new AlarmRedisDTO(); alarmRedisDTO = new AlarmRedisDTO();
} }
//有人 //有人
if (personStateList.contains(personState)) { if (!personStateList.contains(personState)) {
//第一次进入空间 //第一次进入空间
Long startLong = alarmRedisDTO.getStartLong(); Long startLong = alarmRedisDTO.getStartLong();
if (startLong == null) { if (startLong == null) {
...@@ -137,7 +137,7 @@ public class BehaviorAlarm implements IAlarm { ...@@ -137,7 +137,7 @@ public class BehaviorAlarm implements IAlarm {
private void saveDayDurationRecord(PlatAlarmCheckDTO platAlarmCheckDTO, AlarmRedisDTO alarmRedisDTO) { private void saveDayDurationRecord(PlatAlarmCheckDTO platAlarmCheckDTO, AlarmRedisDTO alarmRedisDTO) {
PlatAlarmConfig config = platAlarmCheckDTO.getPlatAlarmConfig(); PlatAlarmConfig config = platAlarmCheckDTO.getPlatAlarmConfig();
PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice(); PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice();
PlatRoom platRoom = platAlarmCheckDTO.getPlatRoom();
PlatRegionSetting platRegionSetting = platAlarmCheckDTO.getPlatRegionSetting(); PlatRegionSetting platRegionSetting = platAlarmCheckDTO.getPlatRegionSetting();
Date now = new Date(); Date now = new Date();
long endLong = now.getTime(); long endLong = now.getTime();
...@@ -149,6 +149,8 @@ public class BehaviorAlarm implements IAlarm { ...@@ -149,6 +149,8 @@ public class BehaviorAlarm implements IAlarm {
log.info("未关联长者,设备id:"+platDevice.getId()); log.info("未关联长者,设备id:"+platDevice.getId());
return; return;
} }
PlatRoom platRoom = platAlarmCheckDTO.getPlatRoom();
List<PlatElder> platElderList = platAlarmCheckDTO.getPlatElderList(); List<PlatElder> platElderList = platAlarmCheckDTO.getPlatElderList();
PlatDayDurationRecord durationRecord = new PlatDayDurationRecord(); PlatDayDurationRecord durationRecord = new PlatDayDurationRecord();
durationRecord.setElderIds(platElderList.stream().map(BaseEntity::getId).collect(Collectors.joining(","))); durationRecord.setElderIds(platElderList.stream().map(BaseEntity::getId).collect(Collectors.joining(",")));
......
...@@ -49,6 +49,7 @@ public class BreathAlarm implements IAlarm { ...@@ -49,6 +49,7 @@ public class BreathAlarm implements IAlarm {
*/ */
@Override @Override
public void checkConfig(PlatAlarmCheckDTO platAlarmCheckDTO) { public void checkConfig(PlatAlarmCheckDTO platAlarmCheckDTO) {
//todo 获取老人健康的阈值
PlatAlarmConfig config = platAlarmCheckDTO.getPlatAlarmConfig(); PlatAlarmConfig config = platAlarmCheckDTO.getPlatAlarmConfig();
String ruleConfigStr = config.getRuleConfig(); String ruleConfigStr = config.getRuleConfig();
JSONObject properties = platAlarmCheckDTO.getProperties(); JSONObject properties = platAlarmCheckDTO.getProperties();
......
...@@ -40,6 +40,7 @@ public class HeartAlarm implements IAlarm { ...@@ -40,6 +40,7 @@ public class HeartAlarm implements IAlarm {
@Override @Override
public void checkConfig(PlatAlarmCheckDTO platAlarmCheckDTO) { public void checkConfig(PlatAlarmCheckDTO platAlarmCheckDTO) {
//todo 获取老人健康的阈值
PlatAlarmConfig config = platAlarmCheckDTO.getPlatAlarmConfig(); PlatAlarmConfig config = platAlarmCheckDTO.getPlatAlarmConfig();
String ruleConfigStr = config.getRuleConfig(); String ruleConfigStr = config.getRuleConfig();
JSONObject properties = platAlarmCheckDTO.getProperties(); JSONObject properties = platAlarmCheckDTO.getProperties();
......
...@@ -343,10 +343,14 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -343,10 +343,14 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
@Override @Override
@TenantIdIgnore
public void getElderListByDeviceId(PlatAlarmCheckDTO platAlarmCheckDTO) { public void getElderListByDeviceId(PlatAlarmCheckDTO platAlarmCheckDTO) {
PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice(); PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice();
String tenantId = platDevice.getTenantId();
LambdaQueryWrapper<PlatRoomBedDevice> roomBedDeviceLambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlatRoomBedDevice> roomBedDeviceLambdaQueryWrapper = new LambdaQueryWrapper<>();
roomBedDeviceLambdaQueryWrapper.eq(PlatRoomBedDevice::getDeviceId, platDevice.getId()); roomBedDeviceLambdaQueryWrapper.eq(PlatRoomBedDevice::getDeviceId, platDevice.getId())
.eq(BaseBusEntity::getTenantId,tenantId)
;
PlatRoomBedDevice platRoomBedDevice = platRoomBedDeviceService.getOne(roomBedDeviceLambdaQueryWrapper, false); PlatRoomBedDevice platRoomBedDevice = platRoomBedDeviceService.getOne(roomBedDeviceLambdaQueryWrapper, false);
if(platRoomBedDevice==null){ if(platRoomBedDevice==null){
throw new BusinessException("设备没绑定房间:"+platDevice.getId()); throw new BusinessException("设备没绑定房间:"+platDevice.getId());
...@@ -358,7 +362,9 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -358,7 +362,9 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
LambdaQueryWrapper<PlatRegionSetting> platRegionSettingLambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlatRegionSetting> platRegionSettingLambdaQueryWrapper = new LambdaQueryWrapper<>();
platRegionSettingLambdaQueryWrapper.eq(PlatRegionSetting::getRoomId, platRoom.getId()) platRegionSettingLambdaQueryWrapper.eq(PlatRegionSetting::getRoomId, platRoom.getId())
.eq(PlatRegionSetting::getDeviceId, platDevice.getId()); .eq(PlatRegionSetting::getDeviceId, platDevice.getId())
.eq(BaseBusEntity::getTenantId,tenantId)
;
//区域设置 //区域设置
PlatRegionSetting platRegionSetting = platRegionSettingService.getOne(platRegionSettingLambdaQueryWrapper, false); PlatRegionSetting platRegionSetting = platRegionSettingService.getOne(platRegionSettingLambdaQueryWrapper, false);
platAlarmCheckDTO.setPlatRegionSetting(platRegionSetting); platAlarmCheckDTO.setPlatRegionSetting(platRegionSetting);
...@@ -366,7 +372,9 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -366,7 +372,9 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
String bedId = platRoomBedDevice.getBedId(); String bedId = platRoomBedDevice.getBedId();
if (StringUtils.isNotBlank(bedId)) { if (StringUtils.isNotBlank(bedId)) {
LambdaQueryWrapper<PlatElder> elderLambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlatElder> elderLambdaQueryWrapper = new LambdaQueryWrapper<>();
elderLambdaQueryWrapper.eq(PlatElder::getBedId, bedId); elderLambdaQueryWrapper.eq(PlatElder::getBedId, bedId)
.eq(BaseBusEntity::getTenantId,tenantId)
;
List<PlatElder> list = platElderService.list(elderLambdaQueryWrapper); List<PlatElder> list = platElderService.list(elderLambdaQueryWrapper);
platAlarmCheckDTO.setPlatElderList(list); platAlarmCheckDTO.setPlatElderList(list);
} }
...@@ -374,7 +382,9 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -374,7 +382,9 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
String roomId = platRoomBedDevice.getRoomId(); String roomId = platRoomBedDevice.getRoomId();
if (StringUtils.isNotBlank(roomId)) { if (StringUtils.isNotBlank(roomId)) {
LambdaQueryWrapper<PlatElder> elderLambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlatElder> elderLambdaQueryWrapper = new LambdaQueryWrapper<>();
elderLambdaQueryWrapper.eq(PlatElder::getRoomId, roomId); elderLambdaQueryWrapper.eq(PlatElder::getRoomId, roomId)
.eq(BaseBusEntity::getTenantId,tenantId)
;
List<PlatElder> list = platElderService.list(elderLambdaQueryWrapper); List<PlatElder> list = platElderService.list(elderLambdaQueryWrapper);
platAlarmCheckDTO.setPlatElderList(list); platAlarmCheckDTO.setPlatElderList(list);
} }
......
...@@ -459,7 +459,7 @@ public class PlatOrgServiceImpl extends ServiceImpl<PlatOrgMapper, PlatOrg> ...@@ -459,7 +459,7 @@ public class PlatOrgServiceImpl extends ServiceImpl<PlatOrgMapper, PlatOrg>
@Override @Override
public List<PlatOrg> belongToScopeList(PlatOrg param) { public List<PlatOrg> belongToScopeList(PlatOrg param) {
PlatUserVO userVO = PlatUserUtil.getUserVO(); PlatUserVO userVO = PlatUserUtil.getUserVOCanNull();
String isTenant = userVO.getIsTenant(); String isTenant = userVO.getIsTenant();
//如果是租户账号 则有所有权限 //如果是租户账号 则有所有权限
if (StringUtils.equals(isTenant, CommonEnum.YES.getValue())) { if (StringUtils.equals(isTenant, CommonEnum.YES.getValue())) {
......
...@@ -214,7 +214,7 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev ...@@ -214,7 +214,7 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev
BeanUtils.copyProperties(dto, db); BeanUtils.copyProperties(dto, db);
db.setId(id); db.setId(id);
BeanUtils.copyProperties(dto, other); BeanUtils.copyProperties(dto, other,BaseEntity.Fields.id);
other.setDeviceId(id); other.setDeviceId(id);
updateById(db); updateById(db);
......
package com.makeit.service.platform.elder; package com.makeit.service.platform.elder;
import com.makeit.dto.platform.elder.PlatElderIdDTO; import com.makeit.dto.platform.elder.PlatElderReportDTO;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO; import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO; import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO;
import com.makeit.vo.platform.elder.report.day.PlatElderSleepDiagramVO;
import com.makeit.vo.platform.elder.report.day.PlatElderSleepEvaluationVO;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
...@@ -17,10 +19,14 @@ import java.util.List; ...@@ -17,10 +19,14 @@ import java.util.List;
*/ */
public interface PlatElderDayReportDayService { public interface PlatElderDayReportDayService {
List<PlatElderRealTimeHeartRespiratoryVO> heartRespiratory(PlatElderIdDTO platElderIdDTO); PlatElderSleepEvaluationVO sleepEvaluation(PlatElderReportDTO platElderIdDTO);
List<PlatElderSleepDiagramVO> sleepDiagram(PlatElderReportDTO platElderIdDTO);
List<PlatElderRealTimeHeartRespiratoryVO> heartRespiratory(PlatElderReportDTO platElderIdDTO);
List<PlatElderCoordinateVO> coordinateList(String elderId, String deviceId, LocalDateTime start, LocalDateTime end); List<PlatElderCoordinateVO> coordinateList(String elderId, String deviceId, LocalDateTime start, LocalDateTime end);
List<PlatElderCoordinateVO> coordinateList(PlatElderIdDTO platElderIdDTO); List<PlatElderCoordinateVO> coordinateList(PlatElderReportDTO platElderIdDTO);
} }
package com.makeit.service.platform.elder.impl; package com.makeit.service.platform.elder.impl;
import com.makeit.dto.platform.elder.PlatElderIdDTO; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.PlatElderSleep;
import com.makeit.entity.platform.elder.PlatElderSleepAnalysis;
import com.makeit.module.iot.service.IotProductDeviceService; 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.module.iot.vo.breathe.DeviceInfoContentSpace; import com.makeit.module.iot.vo.breathe.DeviceInfoContentSpace;
import com.makeit.service.platform.device.PlatDeviceService; import com.makeit.service.platform.device.PlatDeviceService;
import com.makeit.service.platform.elder.PlatElderDayReportDayService; import com.makeit.service.platform.elder.*;
import com.makeit.service.platform.elder.PlatElderRealTimeService;
import com.makeit.service.platform.elder.PlatElderService;
import com.makeit.utils.LongTimestampUtil; import com.makeit.utils.LongTimestampUtil;
import com.makeit.utils.data.convert.StreamUtil; import com.makeit.utils.data.convert.StreamUtil;
import com.makeit.utils.data.validate.CollectionUtils; import com.makeit.utils.data.validate.CollectionUtils;
import com.makeit.utils.old.StringUtils;
import com.makeit.utils.time.LocalDateTimeUtils; import com.makeit.utils.time.LocalDateTimeUtils;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO; import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO; import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO;
import com.makeit.vo.platform.elder.report.day.PlatElderSleepDiagramContentVO;
import com.makeit.vo.platform.elder.report.day.PlatElderSleepDiagramVO;
import com.makeit.vo.platform.elder.report.day.PlatElderSleepEvaluationVO;
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 java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Optional;
@Service @Service
public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDayService { public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDayService {
...@@ -36,13 +41,106 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe ...@@ -36,13 +41,106 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
private PlatDeviceService platDeviceService; private PlatDeviceService platDeviceService;
@Autowired @Autowired
private PlatElderSleepService platElderSleepService;
@Autowired
private PlatElderSleepAnalysisService platElderSleepAnalysisService;
@Autowired
private IotProductDeviceService iotProductDeviceService; private IotProductDeviceService iotProductDeviceService;
@Autowired @Autowired
private PlatElderRealTimeService platElderRealTimeService; private PlatElderRealTimeService platElderRealTimeService;
private static LocalDateTime dayStartNow(LocalDate now) {
return LocalDateTimeUtils.getDayStart(now);
}
private static LocalDateTime dayEndNow(LocalDate now) {
return LocalDateTimeUtils.getDayEnd(now);
}
private static LocalDateTime dayStartYes(LocalDate now) {
return LocalDateTimeUtils.getDayStart(now).minusDays(1);
}
private static LocalDateTime dayEndYes(LocalDate now) {
return LocalDateTimeUtils.getDayEnd(now).minusDays(1);
}
@Override
public PlatElderSleepEvaluationVO sleepEvaluation(PlatElderReportDTO platElderIdDTO) {
LocalDate now = Optional.ofNullable(platElderIdDTO.getNow()).orElse(LocalDate.now());
LocalDateTime start = dayStartNow(now);
LocalDateTime end = dayEndNow(now);
PlatElderSleepEvaluationVO platElderSleepEvaluationVO = new PlatElderSleepEvaluationVO();
String nowString = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(now);
PlatElderSleepAnalysis platElderSleepAnalysis = platElderSleepAnalysisService.getOne(new QueryWrapper<PlatElderSleepAnalysis>().lambda()
.eq(PlatElderSleepAnalysis::getElderId, platElderIdDTO.getElderId())
.eq(PlatElderSleepAnalysis::getCurrentDate, nowString)
);
if (platElderSleepAnalysis == null) {
return platElderSleepEvaluationVO;
}
platElderSleepEvaluationVO.setScore(Integer.valueOf(platElderSleepAnalysis.getSleepScore() + ""));
platElderSleepEvaluationVO.setResult(platElderSleepAnalysis.getSleepResult());
platElderSleepEvaluationVO.setEvaluation(platElderSleepAnalysis.getSleepEvaluate());
platElderSleepEvaluationVO.setSleepDuration(Integer.valueOf(platElderSleepAnalysis.getSleepTime() + ""));
platElderSleepEvaluationVO.setRestDuration(Integer.valueOf(platElderSleepAnalysis.getRestTime() + ""));
return platElderSleepEvaluationVO;
}
@Override
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 = new ArrayList<>(10);
String nowString = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(now);
List<PlatElderSleep> sleepList = platElderSleepService.list(new QueryWrapper<PlatElderSleep>().lambda()
.eq(PlatElderSleep::getElderId, platElderIdDTO.getElderId())
.eq(PlatElderSleep::getCurrentDate, nowString)
.orderByAsc(PlatElderSleep::getStartSleep)
);
voList = StreamUtil.map(sleepList, e -> {
PlatElderSleepDiagramVO vo = new PlatElderSleepDiagramVO();
vo.setSleepAt(e.getStartSleep());
vo.setWakeUpAt(e.getEndSleep());
List<PlatElderSleepDiagramContentVO> contentList = StreamUtil.map(e.getSleepRecord(), i -> {
PlatElderSleepDiagramContentVO contentVO = new PlatElderSleepDiagramContentVO();
contentVO.setStartTime(i.getStartTime());
contentVO.setEndTime(i.getEndTime());
contentVO.setSleepType(i.getSleepType());
return contentVO;
});
vo.setContentList(contentList);
return vo;
});
return voList;
}
@Override @Override
public List<PlatElderRealTimeHeartRespiratoryVO> heartRespiratory(PlatElderIdDTO platElderIdDTO) { public List<PlatElderRealTimeHeartRespiratoryVO> heartRespiratory(PlatElderReportDTO platElderIdDTO) {
PlatDevice platDevice = platElderRealTimeService.getBreathDevice(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId()); PlatDevice platDevice = platElderRealTimeService.getBreathDevice(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId());
...@@ -50,10 +148,10 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe ...@@ -50,10 +148,10 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
return new ArrayList<>(10); return new ArrayList<>(10);
} }
LocalDateTime now = LocalDateTime.now(); LocalDate now = Optional.ofNullable(platElderIdDTO.getNow()).orElse(LocalDate.now());
LocalDateTime start = LocalDateTimeUtils.getDayStart(now); LocalDateTime start = dayStartNow(now);
LocalDateTime end = LocalDateTimeUtils.getDayEnd(now); LocalDateTime end = dayEndNow(now);
List<DeviceInfoContentBreathe> breatheList = iotProductDeviceService.getDeviceLogByTimeRangeBreathe(platDevice.getOriDeviceId(), 2 * 24 * 3600, start, end); List<DeviceInfoContentBreathe> breatheList = iotProductDeviceService.getDeviceLogByTimeRangeBreathe(platDevice.getOriDeviceId(), 2 * 24 * 3600, start, end);
...@@ -100,12 +198,12 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe ...@@ -100,12 +198,12 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
} }
@Override @Override
public List<PlatElderCoordinateVO> coordinateList(PlatElderIdDTO platElderIdDTO) { public List<PlatElderCoordinateVO> coordinateList(PlatElderReportDTO platElderIdDTO) {
LocalDateTime now = LocalDateTime.now(); LocalDate now = Optional.ofNullable(platElderIdDTO.getNow()).orElse(LocalDate.now());
LocalDateTime start = LocalDateTimeUtils.getDayStart(now); LocalDateTime start = dayStartNow(now);
LocalDateTime end = LocalDateTimeUtils.getDayEnd(now); LocalDateTime end = dayEndNow(now);
return coordinateList(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId(), start, end); return coordinateList(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId(), start, end);
......
...@@ -666,7 +666,7 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder ...@@ -666,7 +666,7 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
db.setUnitSpaceId(null); db.setUnitSpaceId(null);
db.setFloorSpaceId(null); db.setFloorSpaceId(null);
db.setRoomId(null); db.setRoomId(null);
db.setBedId(bedId); db.setBedId(null);
db.setSpacePath(null); db.setSpacePath(null);
db.setCheckOutTime(LocalDateTime.now()); db.setCheckOutTime(LocalDateTime.now());
......
package com.makeit.service.platform.space; package com.makeit.service.platform.space;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.dto.platform.auth.PlatOrgDTO;
import com.makeit.dto.platform.space.PlatSpaceAddDTO; import com.makeit.dto.platform.space.PlatSpaceAddDTO;
import com.makeit.dto.platform.space.PlatSpaceQueryDTO; import com.makeit.dto.platform.space.PlatSpaceQueryDTO;
import com.makeit.dto.platform.space.PlatSpaceVO; import com.makeit.dto.platform.space.PlatSpaceVO;
import com.makeit.entity.platform.space.PlatSpace; import com.makeit.entity.platform.space.PlatSpace;
import com.makeit.utils.user.wechat.WechatUserInfo;
import com.makeit.vo.platform.space.PlatSpaceAndRoomVO; import com.makeit.vo.platform.space.PlatSpaceAndRoomVO;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @Author:lzy * @Author:lzy
...@@ -58,4 +61,10 @@ public interface PlatSpaceService extends IService<PlatSpace> { ...@@ -58,4 +61,10 @@ public interface PlatSpaceService extends IService<PlatSpace> {
List<PlatSpaceVO> treeByBed(PlatSpaceQueryDTO dto); List<PlatSpaceVO> treeByBed(PlatSpaceQueryDTO dto);
List<PlatSpace> listChild(List<String> spaceIds); List<PlatSpace> listChild(List<String> spaceIds);
List<PlatSpaceAddDTO> oneLevelList(PlatOrgDTO dtom);
PlatSpaceVO child(PlatSpaceVO vo, Map<String,List<PlatSpace>> map);
PlatSpaceVO convertToVO(PlatSpace space);
} }
...@@ -56,6 +56,7 @@ public class PlatRoomDynamicServiceImpl implements PlatRoomDynamicService { ...@@ -56,6 +56,7 @@ public class PlatRoomDynamicServiceImpl implements PlatRoomDynamicService {
//空间下的房间 //空间下的房间
List<PlatRoom> rooms = platRoomService.list(new QueryWrapper<PlatRoom>().lambda() List<PlatRoom> rooms = platRoomService.list(new QueryWrapper<PlatRoom>().lambda()
.in(PlatRoom::getSpaceId,spaceIds)); .in(PlatRoom::getSpaceId,spaceIds));
Map<String,List<PlatRoom>> spaceRoomMap = rooms.stream().collect(Collectors.groupingBy(PlatRoom::getSpaceId));
List<String> roomIds = rooms.stream().map(PlatRoom::getId).collect(Collectors.toList()); List<String> roomIds = rooms.stream().map(PlatRoom::getId).collect(Collectors.toList());
List<PlatBed> beds = platBedService.list(new QueryWrapper<PlatBed>().lambda() List<PlatBed> beds = platBedService.list(new QueryWrapper<PlatBed>().lambda()
.in(PlatBed::getRoomId,roomIds)); .in(PlatBed::getRoomId,roomIds));
...@@ -65,10 +66,13 @@ public class PlatRoomDynamicServiceImpl implements PlatRoomDynamicService { ...@@ -65,10 +66,13 @@ public class PlatRoomDynamicServiceImpl implements PlatRoomDynamicService {
platRoomPanoramaVO.setSpaceName(space.getName()); platRoomPanoramaVO.setSpaceName(space.getName());
platRoomPanoramaVO.setSpaceId(dto.getId()); platRoomPanoramaVO.setSpaceId(dto.getId());
List<PlatRoomVO> roomVOList = new ArrayList<>(); List<PlatRoomVO> roomVOList = new ArrayList<>();
for(PlatRoom room : rooms){ if(spaceRoomMap.get(space.getId())!=null){
PlatRoomVO vo = convertToVO(room,bedMap); for(PlatRoom room : spaceRoomMap.get(space.getId())){
roomVOList.add(vo); PlatRoomVO vo = convertToVO(room,bedMap);
roomVOList.add(vo);
}
} }
platRoomPanoramaVO.setChildren(roomVOList); platRoomPanoramaVO.setChildren(roomVOList);
list.add(platRoomPanoramaVO); list.add(platRoomPanoramaVO);
} }
......
package com.makeit.service.platform.space.impl; package com.makeit.service.platform.space.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.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.dto.platform.auth.PlatOrgDTO;
import com.makeit.dto.platform.space.PlatSpaceAddDTO; import com.makeit.dto.platform.space.PlatSpaceAddDTO;
import com.makeit.dto.platform.space.PlatSpaceQueryDTO; import com.makeit.dto.platform.space.PlatSpaceQueryDTO;
import com.makeit.dto.platform.space.PlatSpaceVO; import com.makeit.dto.platform.space.PlatSpaceVO;
...@@ -19,6 +21,8 @@ import com.makeit.service.platform.space.PlatSpaceService; ...@@ -19,6 +21,8 @@ import com.makeit.service.platform.space.PlatSpaceService;
import com.makeit.utils.data.convert.BeanDtoVoUtils; import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.user.plat.PlatUserUtil; import com.makeit.utils.user.plat.PlatUserUtil;
import com.makeit.utils.user.plat.PlatUserVO; import com.makeit.utils.user.plat.PlatUserVO;
import com.makeit.utils.user.wechat.WechatUserInfo;
import com.makeit.utils.user.wechat.WechatUserUtil;
import com.makeit.vo.platform.space.PlatSpaceAndRoomVO; import com.makeit.vo.platform.space.PlatSpaceAndRoomVO;
import jodd.util.StringUtil; import jodd.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -203,6 +207,23 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace ...@@ -203,6 +207,23 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
} }
@Override
public List<PlatSpaceAddDTO> oneLevelList(PlatOrgDTO dto) {
//获取该账号的权限组织
PlatOrg param = new PlatOrg();
param.setType(dto.getType());
List<PlatOrg> orgs = platOrgService.belongToScopeList(param);
if(orgs.isEmpty()){
return new ArrayList<>();
}
List<String> orgIds = orgs.stream().map(PlatOrg::getId).collect(Collectors.toList());
List<PlatSpace> spaces = list(new QueryWrapper<PlatSpace>().lambda()
.isNull(PlatSpace::getParentId)
.in(PlatSpace::getOrgId, orgIds));
return BeanDtoVoUtils.listVo(spaces, PlatSpaceAddDTO.class);
}
private PlatSpaceVO childVo(PlatSpaceVO vo,Map<String,List<PlatSpaceVO>> map) { private PlatSpaceVO childVo(PlatSpaceVO vo,Map<String,List<PlatSpaceVO>> map) {
if (!map.containsKey(vo.getId())) { if (!map.containsKey(vo.getId())) {
...@@ -220,8 +241,8 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace ...@@ -220,8 +241,8 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
} }
@Override
private PlatSpaceVO child(PlatSpaceVO vo,Map<String,List<PlatSpace>> map){ public PlatSpaceVO child(PlatSpaceVO vo,Map<String,List<PlatSpace>> map){
if(!map.containsKey(vo.getId())){ if(!map.containsKey(vo.getId())){
return vo; return vo;
...@@ -238,7 +259,8 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace ...@@ -238,7 +259,8 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
return vo; return vo;
} }
private PlatSpaceVO convertToVO(PlatSpace space){ @Override
public PlatSpaceVO convertToVO(PlatSpace space){
PlatSpaceVO vo = new PlatSpaceVO(); PlatSpaceVO vo = new PlatSpaceVO();
vo.setName(space.getName()); vo.setName(space.getName());
......
package com.makeit.service.platform.workstation; package com.makeit.service.platform.workstation;
import com.makeit.dto.platform.auth.PlatOrgDTO;
import com.makeit.dto.platform.space.PlatSpaceVO;
import com.makeit.dto.platform.workstation.WorkStationQueryDTO; import com.makeit.dto.platform.workstation.WorkStationQueryDTO;
import com.makeit.entity.platform.alarm.PlatAlarmRecord;
import com.makeit.vo.platform.workstation.*; import com.makeit.vo.platform.workstation.*;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* Controller * Controller
...@@ -21,4 +25,8 @@ public interface WorkStationService { ...@@ -21,4 +25,8 @@ public interface WorkStationService {
WorkStationHomeStatisticsVO homeStatistics(WorkStationQueryDTO dto); WorkStationHomeStatisticsVO homeStatistics(WorkStationQueryDTO dto);
List<WorkStationHomeBedVO> homeList(WorkStationQueryDTO dto); List<WorkStationHomeBedVO> homeList(WorkStationQueryDTO dto);
List<PlatSpaceVO> spaceTree(PlatOrgDTO dto);
Map<String, Map<String,List<String>>> mapElderAlarmType(List<PlatAlarmRecord> alarmRecords);
} }
package com.makeit.service.platform.workstation.impl; 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.makeit.dto.platform.auth.PlatOrgDTO;
import com.makeit.dto.platform.elder.PlatElderIdDTO; import com.makeit.dto.platform.elder.PlatElderIdDTO;
import com.makeit.dto.platform.space.PlatSpaceVO;
import com.makeit.dto.platform.workstation.WorkStationQueryDTO; import com.makeit.dto.platform.workstation.WorkStationQueryDTO;
import com.makeit.entity.platform.alarm.PlatAlarmRecord; import com.makeit.entity.platform.alarm.PlatAlarmRecord;
import com.makeit.entity.platform.auth.PlatOrg; import com.makeit.entity.platform.auth.PlatOrg;
...@@ -199,7 +201,8 @@ public class WorkStationServiceImpl implements WorkStationService { ...@@ -199,7 +201,8 @@ public class WorkStationServiceImpl implements WorkStationService {
return roomVOList; return roomVOList;
} }
private Map<String, Map<String,List<String>>> mapElderAlarmType(List<PlatAlarmRecord> alarmRecords) { @Override
public Map<String, Map<String,List<String>>> mapElderAlarmType(List<PlatAlarmRecord> alarmRecords) {
Map<String, Map<String,List<String>>> map = new HashMap<>(); Map<String, Map<String,List<String>>> map = new HashMap<>();
alarmRecords.forEach(a -> { alarmRecords.forEach(a -> {
if (StringUtil.isNotEmpty(a.getElderIds())) { if (StringUtil.isNotEmpty(a.getElderIds())) {
...@@ -355,4 +358,34 @@ public class WorkStationServiceImpl implements WorkStationService { ...@@ -355,4 +358,34 @@ public class WorkStationServiceImpl implements WorkStationService {
} }
return list; return list;
} }
@Override
public List<PlatSpaceVO> spaceTree(PlatOrgDTO dto) {
List<PlatSpaceVO> data = new ArrayList<>();
//获取该账号的权限组织
PlatOrg param = new PlatOrg();
param.setType(dto.getType());
List<PlatOrg> orgs = platOrgService.belongToScopeList(param);
if(orgs.isEmpty()){
return data;
}
List<String> orgIds = orgs.stream().map(PlatOrg::getId).collect(Collectors.toList());
List<PlatSpace> list = platSpaceService.list(new QueryWrapper<PlatSpace>().lambda()
.in(PlatSpace::getOrgId, orgIds));
//父级
List<PlatSpace> listParent = list.stream().filter(item->StringUtil.isEmpty(item.getParentId())).collect(Collectors.toList());
//子集
List<PlatSpace> listChild = list.stream().filter(item->item.getParentId() != null).collect(Collectors.toList());
Map<String,List<PlatSpace>> map = listChild.stream().collect(Collectors.groupingBy(PlatSpace::getParentId));
for(PlatSpace space:listParent){
PlatSpaceVO vo = platSpaceService.convertToVO(space);
vo = platSpaceService.child(vo,map);
data.add(vo);
}
return data;
}
} }
package com.makeit.service.wechat;
import com.makeit.dto.platform.workstation.WorkStationQueryDTO;
import com.makeit.dto.wechat.elder.PlatElderCenterQueryDTO;
import com.makeit.vo.wechat.elder.PlatElderCenterHomeVo;
import com.makeit.vo.wechat.elder.PlatElderCenterInstitutionRoomVO;
import java.util.List;
/**
* Controller
*
* @author zm
* @version 2023/9/7
*/
public interface PlatElderCenterWechatService {
PlatElderCenterHomeVo homeStatistics(PlatElderCenterQueryDTO dto);
PlatElderCenterInstitutionRoomVO institutionStatistics(PlatElderCenterQueryDTO dto);
}
package com.makeit.service.wechat.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.makeit.dto.platform.elder.PlatElderIdDTO;
import com.makeit.dto.platform.workstation.WorkStationQueryDTO;
import com.makeit.dto.wechat.elder.PlatElderCenterQueryDTO;
import com.makeit.entity.platform.alarm.PlatAlarmConfig;
import com.makeit.entity.platform.alarm.PlatAlarmRecord;
import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.entity.platform.space.PlatSpace;
import com.makeit.enums.platform.alarm.PlatAlarmRecordEnum;
import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.service.platform.elder.PlatElderRealTimeService;
import com.makeit.service.platform.elder.PlatElderService;
import com.makeit.service.platform.space.PlatBedService;
import com.makeit.service.platform.space.PlatRoomService;
import com.makeit.service.platform.space.PlatSpaceService;
import com.makeit.service.platform.workstation.WorkStationService;
import com.makeit.service.wechat.PlatElderCenterWechatService;
import com.makeit.utils.data.convert.StreamUtil;
import com.makeit.utils.old.StringUtils;
import com.makeit.utils.sql.join.JoinUtil;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeNowVO;
import com.makeit.vo.platform.workstation.WorkStationHomeBedVO;
import com.makeit.vo.platform.workstation.WorkStationInstitutionBedVO;
import com.makeit.vo.platform.workstation.WorkStationInstitutionRoomVO;
import com.makeit.vo.wechat.elder.PlatElderCenterHomeVo;
import com.makeit.vo.wechat.elder.PlatElderCenterInstitutionRoomVO;
import jodd.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
/**
* Controller
*
* @author zm
* @version 2023/9/7
*/
@Service
public class PlatElderCenterWechatServiceImpl implements PlatElderCenterWechatService {
@Autowired
private PlatSpaceService platSpaceService;
@Autowired
private PlatElderService platElderService;
@Autowired
private PlatAlarmRecordService platAlarmRecordService;
@Autowired
private WorkStationService workStationService;
@Autowired
private PlatElderRealTimeService platElderRealTimeService;
@Autowired
private PlatBedService platBedService;
@Autowired
private PlatRoomService platRoomService;
@Override
public PlatElderCenterHomeVo homeStatistics(PlatElderCenterQueryDTO dto) {
PlatElderCenterHomeVo homeVo = new PlatElderCenterHomeVo();
PlatSpace space = platSpaceService.getById(dto.getSpaceId());
//获取空间老人
List<PlatElder> elders = platElderService.list(new QueryWrapper<PlatElder>().lambda()
.apply(StringUtils.isNotBlank(dto.getSpaceId()), "find_in_set('" + dto.getSpaceId() + "',space_path)")
);
if(elders.isEmpty()){
homeVo.setList(new ArrayList<>());
homeVo.setElderNumber(0);
return homeVo;
}
List<String> elderIds = elders.stream().map(PlatElder::getId).collect(Collectors.toList());
//获取父级的所有子级空间
List<PlatSpace> spaces = platSpaceService.listChild(Arrays.asList(dto.getSpaceId()));
List<String> spaceIds = spaces.stream().map(PlatSpace::getId).collect(Collectors.toList());
List<PlatAlarmRecord> alarmRecords = platAlarmRecordService.list(
new QueryWrapper<PlatAlarmRecord>().lambda()
.eq(PlatAlarmRecord::getStatus, PlatAlarmRecordEnum.AlarmRecordStatusEnum.UNHANDLED.getValue())
.eq(PlatAlarmRecord::getOrgId, space.getOrgId())
);
//长者对应的报警类型
Map<String, Map<String,List<String>>> elderAlarmTypeMap = workStationService.mapElderAlarmType(alarmRecords);
WorkStationQueryDTO queryDTO = new WorkStationQueryDTO();
queryDTO.setSpaceIds(spaceIds);
queryDTO.setElderIds(elderIds);
List<WorkStationHomeBedVO> list = platBedService.selectByCondition(queryDTO);
JoinUtil.joinSplit(list, platSpaceService, WorkStationHomeBedVO::getSpacePath, PlatSpace::getId, (e, l) -> {
e.setPathName(StreamUtil.join(l, Objects::nonNull, PlatSpace::getName, "-"));
});
for(WorkStationHomeBedVO vo : list){
vo.setPathName(vo.getPathName() + "-" + vo.getRoomName());
if (StringUtil.isNotEmpty(vo.getElderId()) ) {
if(elderAlarmTypeMap.containsKey(vo.getElderId())){
vo.setAlarmTypeMap(elderAlarmTypeMap.get(vo.getElderId()));
}
if(StringUtil.isNotEmpty(vo.getDeviceId())){
PlatElderIdDTO platElderIdDTO = new PlatElderIdDTO();
platElderIdDTO.setElderId(vo.getElderId());
platElderIdDTO.setDeviceId(vo.getDeviceId());
PlatElderRealTimeNowVO nowStatus = platElderRealTimeService.nowStatus(platElderIdDTO);
vo.setElderStatus(nowStatus.getStatus());
vo.setHeartRate(nowStatus.getHeartRate());
vo.setRespiratoryRate(nowStatus.getRespiratoryRate());
}
}
}
homeVo.setElderNumber(elders.size());
homeVo.setList(list);
return homeVo;
}
@Override
public PlatElderCenterInstitutionRoomVO institutionStatistics(PlatElderCenterQueryDTO dto) {
PlatElderCenterInstitutionRoomVO institutionRoomVO = new PlatElderCenterInstitutionRoomVO();
PlatSpace space = platSpaceService.getById(dto.getSpaceId());
//获取空间老人
List<PlatElder> elders = platElderService.list(new QueryWrapper<PlatElder>().lambda()
.apply(StringUtils.isNotBlank(dto.getSpaceId()), "find_in_set('" + dto.getSpaceId() + "',space_path)")
);
List<String> elderIds = elders.stream().map(PlatElder::getId).collect(Collectors.toList());
//获取父级的所有子级空间
List<PlatSpace> spaces = platSpaceService.listChild(Arrays.asList(dto.getSpaceId()));
List<String> spaceIds = spaces.stream().map(PlatSpace::getId).collect(Collectors.toList());
List<PlatAlarmRecord> alarmRecords = platAlarmRecordService.list(
new QueryWrapper<PlatAlarmRecord>().lambda()
.eq(PlatAlarmRecord::getStatus, PlatAlarmRecordEnum.AlarmRecordStatusEnum.UNHANDLED.getValue())
.eq(PlatAlarmRecord::getOrgId, space.getOrgId())
);
WorkStationQueryDTO queryDTO = new WorkStationQueryDTO();
queryDTO.setSpaceIds(spaceIds);
queryDTO.setElderIds(elderIds);
List<WorkStationInstitutionRoomVO> roomVOList = platRoomService.workStationList(queryDTO);
if (roomVOList.isEmpty()) {
institutionRoomVO.setList(new ArrayList<>());
institutionRoomVO.setElderNumber(0);
return institutionRoomVO;
}
List<String> roomIds = roomVOList.stream().map(WorkStationInstitutionRoomVO::getRoomId).collect(Collectors.toList());
//获取床号及长者/设备
List<WorkStationInstitutionBedVO> bedVos = platBedService.selectByRoomIds(roomIds);
Map<String, List<WorkStationInstitutionBedVO>> bedMap = bedVos.stream().collect(Collectors.groupingBy(WorkStationInstitutionBedVO::getRoomId));
JoinUtil.joinSplit(roomVOList, platSpaceService, WorkStationInstitutionRoomVO::getSpacePath, PlatSpace::getId, (e, l) -> {
e.setPathName(StreamUtil.join(l, Objects::nonNull, PlatSpace::getName, "-"));
});
//长者对应的报警类型
Map<String, Map<String,List<String>>> elderAlarmTypeMap = workStationService.mapElderAlarmType(alarmRecords);
for (WorkStationInstitutionRoomVO roomVo : roomVOList) {
WorkStationInstitutionRoomVO vo = new WorkStationInstitutionRoomVO();
vo.setRoomId(roomVo.getRoomId());
vo.setPathName(vo.getPathName() + "-" + vo.getRoomName());
if (bedMap.get(roomVo.getRoomId()) != null) {
List<WorkStationInstitutionBedVO> roomBedVos = bedMap.get(roomVo.getRoomId());
//获取告警类型及老人状态
roomBedVos.forEach(r -> {
if (StringUtil.isNotEmpty(r.getElderId()) ) {
if(elderAlarmTypeMap.containsKey(r.getElderId())){
r.setAlarmTypeMap(elderAlarmTypeMap.get(r.getElderId()));
}
if(StringUtil.isNotEmpty(r.getDeviceId())){
PlatElderIdDTO platElderIdDTO = new PlatElderIdDTO();
platElderIdDTO.setElderId(r.getElderId());
platElderIdDTO.setDeviceId(r.getDeviceId());
PlatElderRealTimeNowVO nowStatus = platElderRealTimeService.nowStatus(platElderIdDTO);
r.setElderStatus(nowStatus.getStatus());
}
}
});
vo.setList(roomBedVos);
}
}
institutionRoomVO.setElderNumber(elders.size());
institutionRoomVO.setList(roomVOList);
return institutionRoomVO;
}
}
...@@ -9,17 +9,28 @@ import java.time.LocalDateTime; ...@@ -9,17 +9,28 @@ import java.time.LocalDateTime;
@Data @Data
public class PlatElderSleepDiagramContentVO { public class PlatElderSleepDiagramContentVO {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm") // @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
@ApiModelProperty("时间") // @ApiModelProperty("时间")
private LocalDateTime time; // private LocalDateTime time;
//
// @ApiModelProperty(value = "深度睡眠得分")
// private String sleepDeepScore;
//
// @ApiModelProperty(value = "浅度睡眠得分")
// private String sleepLightnessScore;
//
// @ApiModelProperty(value = "清醒得分")
// private String soberScore;
@ApiModelProperty(value = "深度睡眠得分") @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private String sleepDeepScore; @ApiModelProperty("开始时间")
private String startTime;
@ApiModelProperty(value = "浅度睡眠得分") @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private String sleepLightnessScore; @ApiModelProperty("结束时间")
private String endTime;
@ApiModelProperty(value = "清醒得分") @ApiModelProperty(value = "类型")
private String soberScore; private String sleepType;
} }
...@@ -23,7 +23,7 @@ public class PlatSpaceAndRoomVO extends BaseIdDTO { ...@@ -23,7 +23,7 @@ public class PlatSpaceAndRoomVO extends BaseIdDTO {
@ApiModelProperty("父级Id") @ApiModelProperty("父级Id")
private String parentId; private String parentId;
@ApiModelProperty("类型 0-空间 1-房间") @ApiModelProperty("类型 1-空间 2-房间")
private String type; private String type;
@ApiModelProperty("子集") @ApiModelProperty("子集")
......
package com.makeit.vo.wechat.elder;
import com.makeit.vo.platform.workstation.WorkStationHomeBedVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* Controller
*
* @author zm
* @version 2023/9/15
*/
@Data
public class PlatElderCenterHomeVo {
@ApiModelProperty(value = "长者数")
private Integer elderNumber;
private List<WorkStationHomeBedVO> list;
}
package com.makeit.vo.wechat.elder;
import com.makeit.vo.platform.workstation.WorkStationInstitutionRoomVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* Controller
*
* @author zm
* @version 2023/9/15
*/
@Data
public class PlatElderCenterInstitutionRoomVO {
@ApiModelProperty(value = "长者数")
private Integer elderNumber;
private List<WorkStationInstitutionRoomVO> list;
}
...@@ -50,12 +50,12 @@ ...@@ -50,12 +50,12 @@
</select> </select>
<select id="selectByRoomIds" resultType="com.makeit.vo.platform.workstation.WorkStationInstitutionBedVO"> <select id="selectByRoomIds" resultType="com.makeit.vo.platform.workstation.WorkStationInstitutionBedVO">
SELECT pb.`name` as bedName, pb.id as bedId, pb.room_id , pe.id as elderId, pb.name as elderName, prbd.device_id SELECT pb.`name` as bedName, pb.id as bedId, pb.room_id as roomId , pe.id as elderId, pb.name as elderName, prbd.device_id as deviceId
FROM plat_bed pb FROM plat_bed pb
LEFT JOIN plat_elder pe ON pe.bed_id = pb.id LEFT JOIN plat_elder pe ON pe.bed_id = pb.id
LEFT JOIN plat_room_bed_device rpbd ON rpbd.bed_id = pb.id LEFT JOIN plat_room_bed_device prbd ON prbd.bed_id = pb.id
<where> <where>
pb.del_flag = 0 and pe.del_flag = 0 and rpbd.del_flag = 0 pb.del_flag = 0 and pe.del_flag = 0 and prbd.del_flag = 0
<if test="roomIds != null and roomIds.size() > 0 "> <if test="roomIds != null and roomIds.size() > 0 ">
AND pb.room_id IN AND pb.room_id IN
<foreach collection="roomIds" item="item" separator="," open="(" close=")" index=""> <foreach collection="roomIds" item="item" separator="," open="(" close=")" index="">
...@@ -68,12 +68,12 @@ ...@@ -68,12 +68,12 @@
<select id="selectByCondition" resultType="com.makeit.vo.platform.workstation.WorkStationHomeBedVO"> <select id="selectByCondition" resultType="com.makeit.vo.platform.workstation.WorkStationHomeBedVO">
SELECT pb.`name` as bedName, pb.id as bedId, pb.room_id , pe.id as elderId, pb.name as elderName, prbd.device_id,pm.id as roomId,pm.name as roomName ,pm.space_path SELECT pb.`name` as bedName, pb.id as bedId, pb.room_id , pe.id as elderId, pb.name as elderName, prbd.device_id,pm.id as roomId,pm.name as roomName ,pm.space_path
FROM plat_bed pb FROM plat_bed pb
LEFT JOIN plat_room pr ON pr.id = pb.room_id LEFT JOIN plat_room pm ON pm.id = pb.room_id
LEFT JOIN plat_space ps ON ps.id = pr.space_id LEFT JOIN plat_space ps ON ps.id = pm.space_id
LEFT JOIN plat_elder pe ON pe.bed_id = pb.id LEFT JOIN plat_elder pe ON pe.bed_id = pb.id
LEFT JOIN plat_room_bed_device rpbd ON rpbd.bed_id = pb.id LEFT JOIN plat_room_bed_device prbd ON prbd.bed_id = pb.id
<where> <where>
pb.del_flag = 0 and pe.del_flag = 0 and rpbd.del_flag = 0 and pb.status = 0 pb.del_flag = 0 and pe.del_flag = 0 and prbd.del_flag = 0 and pb.status = 0
<if test="dto.elderName != null and dto.elderName != ''"> <if test="dto.elderName != null and dto.elderName != ''">
AND pe.naem LIKE CONCAT('%',#{dto.elderName},'%') AND pe.naem LIKE CONCAT('%',#{dto.elderName},'%')
</if> </if>
...@@ -90,7 +90,7 @@ ...@@ -90,7 +90,7 @@
</foreach> </foreach>
</if> </if>
</where> </where>
order by pr.room_id order by pb.room_id
</select> </select>
......
...@@ -4,10 +4,10 @@ ...@@ -4,10 +4,10 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.makeit.mapper.platform.space.PlatRoomMapper"> <mapper namespace="com.makeit.mapper.platform.space.PlatRoomMapper">
<select id="spaceAndRoomList" resultType="com.makeit.vo.platform.space.PlatSpaceAndRoomVO"> <select id="spaceAndRoomList" resultType="com.makeit.vo.platform.space.PlatSpaceAndRoomVO">
SELECT ps.id,ps.`name`,ps.parent_id as parentId,'0' as type FROM plat_space ps SELECT ps.id,ps.`name`,ps.parent_id as parentId,'1' as type FROM plat_space ps
WHERE ps.del_flag = 0 WHERE ps.del_flag = 0
UNION UNION
SELECT pr.id,pr.`name`,pr.space_id as parentId,'1' as type FROM plat_room pr SELECT pr.id,pr.`name`,pr.space_id as parentId,'2' as type FROM plat_room pr
WHERE pr.del_flag = 0 WHERE pr.del_flag = 0
</select> </select>
......
...@@ -19,6 +19,7 @@ import org.slf4j.Logger; ...@@ -19,6 +19,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.StopWatch;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -69,10 +70,17 @@ public class PushCallback implements MqttCallback { ...@@ -69,10 +70,17 @@ public class PushCallback implements MqttCallback {
logger.info("deliveryComplete--------------" + token.isComplete()); logger.info("deliveryComplete--------------" + token.isComplete());
} }
/**
* 触发告警耗时 3.07s
* 未触发告警耗时 0.08s
* @param device
*/
@TenantIdIgnore @TenantIdIgnore
public void checkAlarm(DeviceInfo device) { public void checkAlarm(DeviceInfo device) {
StopWatch stopWatch = new StopWatch();
stopWatch.start("checkAlarm-1");
String deviceId = device.getDeviceId(); String deviceId = device.getDeviceId();
//String propertiesStr = device.getProperties(); // String propertiesStr = device.getProperties();
// if (StringUtils.isBlank(propertiesStr)) { // if (StringUtils.isBlank(propertiesStr)) {
// return; // return;
// } // }
...@@ -109,6 +117,8 @@ public class PushCallback implements MqttCallback { ...@@ -109,6 +117,8 @@ public class PushCallback implements MqttCallback {
} }
} }
} }
stopWatch.stop();
logger.info(stopWatch.prettyPrint());
} }
......
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