Commit 9114b029 by 朱淼
parents 87a6fc7e 6df9701a
Showing with 914 additions and 154 deletions
......@@ -293,13 +293,13 @@ CREATE TABLE `plat_elder_sleep`
`elder_id` VARCHAR(64) NOT NULL COMMENT '长者id',
`start_sleep` datetime DEFAULT NULL COMMENT '入睡时间',
`end_sleep` datetime DEFAULT NULL COMMENT '起床时间',
`current_date` VARCHAR(64) DEFAULT NULL COMMENT '当前日期 yyyy-mm-dd',
`happen_date` VARCHAR(64) DEFAULT NULL COMMENT '当前日期 yyyy-mm-dd',
`sleep_record` text DEFAULT NULL COMMENT '睡眠记录 区分时间段记录 [{"sleepType":"","startTime":"","endTime":""},{}]',
`create_date` datetime NOT NULL COMMENT '创建时间',
`update_date` datetime NOT NULL COMMENT '更新时间',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
`update_date` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` CHAR(1) DEFAULT NULL COMMENT '删除标识',
`create_by` VARCHAR(64) NOT NULL COMMENT '创建人',
`update_by` VARCHAR(64) NOT NULL COMMENT '更新人',
`create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建人',
`update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新人',
`tenant_id` VARCHAR(64) DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`),
KEY `index_elder_id` (`elder_id`) USING BTREE
......@@ -316,12 +316,12 @@ CREATE TABLE `plat_elder_sleep_analysis`
`sleep_time` VARCHAR(64) DEFAULT NULL COMMENT '睡眠时长',
`rest_time` VARCHAR(64) DEFAULT NULL COMMENT '休息时长',
`sleep_evaluate` VARCHAR(64) DEFAULT NULL COMMENT '评价',
`current_date` VARCHAR(64) DEFAULT NULL COMMENT '当前日期 yyyy-mm-dd',
`create_date` datetime NOT NULL COMMENT '创建时间',
`update_date` datetime NOT NULL COMMENT '更新时间',
`happen_date` VARCHAR(64) DEFAULT NULL COMMENT '当前日期 yyyy-mm-dd',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
`update_date` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` CHAR(1) DEFAULT NULL COMMENT '删除标识',
`create_by` VARCHAR(64) NOT NULL COMMENT '创建人',
`update_by` VARCHAR(64) NOT NULL COMMENT '更新人',
`create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建人',
`update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新人',
`tenant_id` VARCHAR(64) DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`),
KEY `index_elder_id` (`elder_id`) USING BTREE
......@@ -336,11 +336,11 @@ CREATE TABLE `plat_elder_breathe_abnormal` (
`happen_time` datetime NOT NULL COMMENT '发生时间',
`type` varchar(32) DEFAULT NULL COMMENT '异常类型',
`value` varchar(64) DEFAULT NULL COMMENT '值',
`create_date` datetime NOT NULL COMMENT '创建时间',
`update_date` datetime NOT NULL COMMENT '更新时间',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
`update_date` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` char(1) DEFAULT NULL COMMENT '删除标识',
`create_by` varchar(64) NOT NULL COMMENT '创建人',
`update_by` varchar(64) NOT NULL COMMENT '更新人',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人',
`tenant_id` varchar(64) DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`),
KEY `index_elder_id` (`elder_id`) USING BTREE
......@@ -354,12 +354,12 @@ CREATE TABLE `plat_elder_breathe_analysis` (
`breathe_evaluate` varchar(64) DEFAULT NULL COMMENT '评价',
`avg_heart_rate` varchar(64) DEFAULT NULL COMMENT '平均心率',
`avg_breathe_rate` varchar(64) DEFAULT NULL COMMENT '平均呼吸率',
`current_date` varchar(64) DEFAULT NULL COMMENT '当前日期 yyyy-mm-dd',
`create_date` datetime NOT NULL COMMENT '创建时间',
`update_date` datetime NOT NULL COMMENT '更新时间',
`happen_date` varchar(64) DEFAULT NULL COMMENT '当前日期 yyyy-mm-dd',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
`update_date` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` char(1) DEFAULT NULL COMMENT '删除标识',
`create_by` varchar(64) NOT NULL COMMENT '创建人',
`update_by` varchar(64) NOT NULL COMMENT '更新人',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人',
`tenant_id` varchar(64) DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`),
KEY `index_elder_id` (`elder_id`) USING BTREE
......@@ -386,3 +386,30 @@ CREATE TABLE `plat_elder_report_month`
PRIMARY KEY (`id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='长者月报';
ALTER TABLE `dev_iot_yanglao_platform`.`plat_elder_sleep_analysis`
ADD COLUMN `action_count` int(4) COMMENT '体动次数' AFTER `happen_date`,
ADD COLUMN `turned_count` int(4) COMMENT '翻身次数' AFTER `action_count`;
CREATE TABLE `plat_elder_breathe_day_stat`
(
`id` varchar(64) NOT NULL COMMENT 'id',
`elder_id` VARCHAR(64) NULL COMMENT '长者id',
device_id varchar(64) NULL COMMENT '设备id',
ori_device_id varchar(64) NULL COMMENT '原始设备id',
day date NOT NULL COMMENT '日期',
heart_rate_max int NULL COMMENT '心率最大值',
heart_rate_min int NULL COMMENT '心率最小值',
heart_rate_avg int NULL COMMENT '心率平均值',
respiratory_rate_max int NULL COMMENT '呼吸率最大值',
respiratory_rate_min int NULL COMMENT '呼吸率最小值',
respiratory_rate_avg int NULL COMMENT '呼吸率平均值',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
`update_date` datetime DEFAULT NULL COMMENT '更新时间',
del_flag char(1) not null comment ' 删除标志 0否 1是 ',
`tenant_id` varchar(64) DEFAULT NULL COMMENT ' 租户id ',
PRIMARY KEY (`id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='长者呼吸心率日统计';
......@@ -9,12 +9,7 @@ import com.makeit.global.aspect.tenant.TenantIdIgnore;
import com.makeit.service.platform.elder.PlatElderDayReportDayService;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO;
import com.makeit.vo.platform.elder.report.day.PlatElderBehaviorDistributionVO;
import com.makeit.vo.platform.elder.report.day.PlatElderBehaviorExceptionRecordVO;
import com.makeit.vo.platform.elder.report.day.PlatElderHeartRespiratoryEvaluationRecordVO;
import com.makeit.vo.platform.elder.report.day.PlatElderHeartRespiratoryEvaluationVO;
import com.makeit.vo.platform.elder.report.day.PlatElderSleepDiagramVO;
import com.makeit.vo.platform.elder.report.day.PlatElderSleepEvaluationVO;
import com.makeit.vo.platform.elder.report.day.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -86,15 +81,15 @@ public class SaasDeviceReportDayController {
@ApiOperation("行为异常记录")
@PostMapping("behaviorExceptionRecordList")
@TenantIdIgnore
public ApiResponseEntity<List<PlatElderBehaviorExceptionRecordVO>> behaviorExceptionRecordList(@RequestBody PlatElderIdDTO platElderIdDTO) {
return null;
public ApiResponseEntity<List<PlatElderBehaviorExceptionRecordVO>> behaviorExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderDayReportDayService.behaviorExceptionRecordList(platElderIdDTO));
}
@ApiOperation("跌倒记录")
@PostMapping("failRecordList")
@TenantIdIgnore
public ApiResponseEntity<List<String>> failRecordList(@RequestBody PlatElderIdDTO platElderIdDTO) {
return null;
public ApiResponseEntity<List<String>> failRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderDayReportDayService.failRecordList(platElderIdDTO));
}
@ApiOperation("坐标记录")
......@@ -107,8 +102,8 @@ public class SaasDeviceReportDayController {
@ApiOperation("行为辐射")
@PostMapping("behaviorDistribution")
@TenantIdIgnore
public ApiResponseEntity<List<PlatElderBehaviorDistributionVO>> behaviorDistribution(@RequestBody PlatElderIdDTO platElderIdDTO) {
return null;
public ApiResponseEntity<List<PlatElderBehaviorDistributionVO>> behaviorDistribution(@RequestBody PlatElderReportDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderDayReportDayService.behaviorDistribution(platElderIdDTO));
}
}
......
......@@ -51,9 +51,10 @@ public class SaasPlatUserController {
}
@Action(module = "saas端-租户账号", name = "列表", code = "saas.plat.user.listTenant")
@ApiOperation("列表")
@ApiOperation("列表-未关联租户")
@PostMapping("listTenant")
public ApiResponseEntity<List<PlatUserDTOVO>> listTenant(@RequestBody PlatUserQueryDTO dto){
dto.setLinkTenant(CommonEnum.NO.getValue());
return ApiResponseUtils.success(platUserService.listTenant(dto));
}
......
......@@ -157,6 +157,7 @@
<orderEntry type="library" name="Maven: org.springframework.integration:spring-integration-core:5.5.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-messaging:5.3.12" level="project" />
<orderEntry type="library" name="Maven: org.springframework.retry:spring-retry:1.3.1" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.integration:spring-integration-mqtt:5.5.5" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:dysmsapi20170525:2.0.9" level="project" />
......@@ -183,7 +184,6 @@
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:5.2.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-lite:5.2.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:5.0.3" level="project" />
<orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.21" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.07" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.3.5" level="project" />
......@@ -205,6 +205,7 @@
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-bridge:1.14" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-script:1.14" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-dom:1.14" level="project" />
<orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-gvt:1.14" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-shared-resources:1.14" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-svggen:1.14" level="project" />
......
......@@ -29,6 +29,7 @@ public enum CodeMessageEnum {
SYSTEM_ERROR_NAME_DUPLICATE(500, "SYSTEM.ERROR.NAME.DUPLICATE"),
SYSTEM_ERROR_NAME_ENG_DUPLICATE(500, "SYSTEM.ERROR.NAME.ENG.DUPLICATE"),
SYSTEM_ERROR_CODE_DUPLICATE(500, "SYSTEM.ERROR.CODE.DUPLICATE"),
SYSTEM_ERROR_TENANT_CODE_DUPLICATE(500, "SYSTEM.ERROR.TENANT.CODE.DUPLICATE"),
SYSTEM_ERROR_DICT_VALUE_DUPLICATE(500, "SYSTEM.ERROR.DICT.VALUE.DUPLICATE"),
SYSTEM_ERROR_DICT_NOT_EXIST(500, "SYSTEM.ERROR.DICT.NOT.EXIST"),
......@@ -110,6 +111,8 @@ public enum CodeMessageEnum {
SYSTEM_ERROR_TENANT_NOT_EXIST(510, "SYSTEM.ERROR.TENANT.NOT.EXIST"),
SYSTEM_ERROR_ROLE_ADMIN_CANT_ADD(500, "SYSTEM.ERROR.ROLE.ADMIN.CANT.ADD"),
SYSTEM_ERROR_ROLE_ADMIN_CANT_EDIT(500, "SYSTEM.ERROR.ROLE.ADMIN.CANT.EDIT"),
SYSTEM_ERROR_TENANT_FORBIDDEN(500, "SYSTEM.ERROR.TENANT.FORBIDDEN"),
SYSTEM_ERROR_ORG_FORBIDDEN(500, "SYSTEM.ERROR.ORG.FORBIDDEN"),
PLATFORM_ERROR_ALARM_NOT_FOUND_SPACE(500,"PLATFORM.ERROR.ALARM.NOT.FOUND.SPACE"),
......
......@@ -54,4 +54,10 @@ public class PlatTenantDTOVO extends BaseIdDTO {
@ApiModelProperty(value = "菜单id集合")
private List<String> menuIdList;
@ApiModelProperty(value = "租户标识")
private String code;
@ApiModelProperty(value = "租户平台地址")
private String url;
}
......@@ -26,27 +26,15 @@ public class PlatUserQueryDTO extends BaseOrgDTO {
@ApiModelProperty(value = "状态 0禁用 1启用")
private String status;
@ApiModelProperty(value = "邮箱")
private String email;
@ApiModelProperty(value = "角色id roleId和notRoleId只能用一个")
private String roleId;
@ApiModelProperty(value = "要排除的角色id roleId和notRoleId只能用一个")
private String notRoleId;
// @ApiModelProperty(value = "关键词 用来搜姓名或者工号")
// private String keyword;
//
// @ApiModelProperty(value = "职级")
// private Integer postLevel;
//
// @ApiModelProperty(value = "是否从酒店开始 0否 1是")
// private String fromHotel;
//
// @ApiModelProperty(value = "是否常用人员 0否 1是")
// private String isFrequent;
//
// @ApiModelProperty(value = "标签id")
// private String labelId;
@ApiModelProperty(value = "用户工号集合")
private List<String> accountList;
......@@ -62,4 +50,7 @@ public class PlatUserQueryDTO extends BaseOrgDTO {
@ApiModelProperty(value = "部门id集合")
private List<String> orgIdList;
@ApiModelProperty(value = "已关联租户 0-未关联 1-已关联")
private String linkTenant;
}
......@@ -28,7 +28,7 @@ public class PlatTenantVO extends BaseIdDTO implements Serializable {
private LocalDate endTime;
@ApiModelProperty(value = "租户管理员id")
private String tntUserId;
private String platUserId;
@ApiModelProperty(value = "租户管理员账号")
private String userAccount;
......
package com.makeit.module.iot.enums;
import com.makeit.enums.BaseEnum;
import com.makeit.utils.sys.SysDictUtil;
public class DeviceInfoContentFallEnum {
public enum PersonStateEnum {
NOBODY(0, "无人"),//0
FALL(1, "跌倒");//3
private Integer value;
private String name;
PersonStateEnum(Integer value, String name) {
this.value = value;
this.name = name;
}
public Integer getValue() {
return value;
}
public String getName() {
return name;
}
}
}
......@@ -150,9 +150,9 @@ public class IotProductDeviceService extends IotCommonService {
List<DeviceOperationLogEntity> deviceOperationLogEntityList = getDeviceLogByTimeRange(deviceId, "reportProperty", pageSize, dateTimeFormatter.format(startTime), dateTimeFormatter.format(endTime));
List<DeviceInfoContentFall> deviceInfoContentSpaceList = StreamUtil.map(deviceOperationLogEntityList, e -> JsonUtil.toObj((String) e.getContent(), DeviceInfoContentFall.class));
List<DeviceInfoContentFall> deviceInfoContentFallList = StreamUtil.map(deviceOperationLogEntityList, e -> JsonUtil.toObj((String) e.getContent(), DeviceInfoContentFall.class));
return deviceInfoContentSpaceList;
return deviceInfoContentFallList;
}
......
......@@ -5,7 +5,10 @@ import lombok.Data;
@Data
public class AnalysisVO {
private Integer br;
private Integer totalHr;
private Integer avgHr;
private Integer totalBr;
private Integer avgBr;
private Integer actionCount = 0; // 体动次数
private Integer turnedCount = 0; // 翻身次数
......@@ -19,12 +22,27 @@ public class AnalysisVO {
private Boolean awakeMinuteActionFlag; // 清醒每分钟体动是否满足要求
private int brStopThreshold; // 每分钟呼吸阈值
private int brFastThreshold; // 每分钟呼吸阈值
private int brSlowThreshold; // 每分钟呼吸阈值
private int brStopThreshold; // 发生次数阈值
private int brStop; // 当前呼吸率
private String brStopTime; // 发生时间
private int hrFastThreshold; // 每分钟心率阈值
private int hrSlowThreshold; // 每分钟心率阈值
private int brFastThreshold; // 发生次数阈值
private int brFast; // 当前呼吸率
private String brFastTime; // 发生时间
private int brSlowThreshold; // 发生次数阈值
private int brSlow; // 当前呼吸率
private String brSlowTime; // 发生时间
private int hrFastThreshold; // 发生次数阈值
private int hrFast; // 当前心率
private String hrFastTime; // 发生时间
private int hrSlowThreshold; // 发生次数阈值
private int hrSlow; // 当前心率
private String hrSlowTime; // 发生时间
......
package com.makeit.module.iot.vo.analysis;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class BreatheAbnormalVO {
@ApiModelProperty(value = "发生时间")
private LocalDateTime happenTime;
@ApiModelProperty(value = "异常类型")
private String type;
@ApiModelProperty(value = "值")
private String value;
}
......@@ -19,6 +19,8 @@ public class DeviceInfoContentBreathe {
private Properties properties;
@JsonProperty("timestamp")
private Long timestamp;
@JsonProperty("reportTime")
private String reportTime;
@NoArgsConstructor
@Data
......@@ -52,18 +54,25 @@ public class DeviceInfoContentBreathe {
@Data
public static class Properties {
@JsonProperty("br")
// 呼吸率 "最小值":0,"最大值":500,"步进":1,"单位":"rpm"
private Integer br;
@JsonProperty("distance")
// 距离
private Integer distance;
@JsonProperty("bodymove")
// 体动指数 "最小值":0,"最大值":100,"步进":1,"单位":""
private Integer bodymove;
@JsonProperty("personState")
// 运动状态 0:无人1:运动2:呼吸3:进入呼吸
private Integer personState;
@JsonProperty("person")
// 有人无人 0无人,1有人
private Integer person;
@JsonProperty("hr")
// 心率 最小值":0,"最大值":500,"步进:1,"单位":"bpm"
private Integer hr;
@JsonProperty("point")
// 呼吸波形
private List<Integer> point;
}
}
......@@ -19,6 +19,7 @@ SYSTEM.ERROR.NAME.DUPLICATE=该名称已存在
SYSTEM.ERROR.NAME.ENG.DUPLICATE=该英文名称已存在
SYSTEM.ERROR.CODE.DUPLICATE=该编码已存在
SYSTEM.ERROR.TENANT.CODE.DUPLICATE=该标识已存在
SYSTEM.ERROR.DICT.VALUE.DUPLICATE=该字典值已存在
SYSTEM.ERROR.DICT.NOT.EXIST=该字典值不存在
......@@ -108,3 +109,7 @@ SYSTEM.ERROR.ROLE.ADMIN.CANT.EDIT=管理员角色不能修改
PLATFORM.ERROR.ALARM.NOT.FOUND.SPACE=设备未绑定空间
PLATFORM.ERROR.ALARM.NOT.FOUND.ELDER=设备空间下无长者
SYSTEM.ERROR.TENANT.FORBIDDEN=该租户被禁用
SYSTEM.ERROR.ORG.FORBIDDEN=该组织被禁用
......@@ -106,7 +106,7 @@ public class CodeGenerator {
// 使用重点 下列字段填写表名 运行方法
// strategy.setInclude("edu_teacher","..."); // 多表-逆向工程
strategy.setInclude("plat_elder_report_month");
strategy.setInclude("plat_elder_breathe_day_stat");
strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体属性时去掉表"_"前缀并且第一个字母大写 如:gmt_create -> gmtCreate
......
......@@ -73,13 +73,13 @@ public class PlatElderReportDayController {
@ApiOperation("行为异常记录")
@PostMapping("behaviorExceptionRecordList")
public ApiResponseEntity<List<PlatElderBehaviorExceptionRecordVO>> behaviorExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
return ApiResponseUtils.success(platElderDayReportDayService.behaviorExceptionRecordList(platElderIdDTO));
}
@ApiOperation("跌倒记录")
@PostMapping("failRecordList")
public ApiResponseEntity<List<String>> failRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
return ApiResponseUtils.success(platElderDayReportDayService.failRecordList(platElderIdDTO));
}
@ApiOperation("坐标记录")
......@@ -91,7 +91,7 @@ public class PlatElderReportDayController {
@ApiOperation("行为辐射")
@PostMapping("behaviorDistribution")
public ApiResponseEntity<List<PlatElderBehaviorDistributionVO>> behaviorDistribution(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
return ApiResponseUtils.success(platElderDayReportDayService.behaviorDistribution(platElderIdDTO));
}
}
......
......@@ -39,13 +39,13 @@ public class PlatElderReportWeekController {
@ApiOperation("综合评价")
@PostMapping("comprehensiveEvaluation")
public ApiResponseEntity<PlatElderComprehensiveEvaluationVO> comprehensiveEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
return ApiResponseUtils.success(platElderDayReportWeekService.comprehensiveEvaluation(platElderIdDTO));
}
@ApiOperation("睡眠评价")
@PostMapping("sleepEvaluation")
public ApiResponseEntity<PlatElderSleepEvaluationVO> sleepEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
return ApiResponseUtils.success(platElderDayReportWeekService.sleepEvaluation(platElderIdDTO));
}
@ApiOperation("睡眠图表")
......@@ -57,37 +57,37 @@ public class PlatElderReportWeekController {
@ApiOperation("心率呼吸评价")
@PostMapping("heartRespiratoryEvaluation")
public ApiResponseEntity<PlatElderHeartRespiratoryEvaluationVO> heartRespiratoryEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
return ApiResponseUtils.success(platElderDayReportWeekService.heartRespiratoryEvaluation(platElderIdDTO));
}
@ApiOperation("心率异常记录")
@PostMapping("heartExceptionRecordList")
public ApiResponseEntity<List<PlatElderHeartRespiratoryEvaluationRecordVO>> heartExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
return ApiResponseUtils.success(platElderDayReportWeekService.heartExceptionRecordList(platElderIdDTO));
}
@ApiOperation("呼吸率异常记录")
@PostMapping("respiratoryExceptionRecordList")
public ApiResponseEntity<List<PlatElderHeartRespiratoryEvaluationRecordVO>> respiratoryExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
return ApiResponseUtils.success(platElderDayReportWeekService.respiratoryExceptionRecordList(platElderIdDTO));
}
@ApiOperation("心率呼吸率")
@PostMapping("heartRespiratory")
public ApiResponseEntity<PlatElderRealTimeHeartRespiratoryWeekVO> heartRespiratory(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
public ApiResponseEntity<List<PlatElderRealTimeHeartRespiratoryWeekVO>> heartRespiratory(@RequestBody PlatElderReportDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderDayReportWeekService.heartRespiratory(platElderIdDTO));
}
@ApiOperation("行为异常记录")
@PostMapping("behaviorExceptionRecordList")
public ApiResponseEntity<List<PlatElderBehaviorExceptionRecordVO>> behaviorExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
return ApiResponseUtils.success(platElderDayReportWeekService.behaviorExceptionRecordList(platElderIdDTO));
}
@ApiOperation("跌倒记录")
@PostMapping("failRecordList")
public ApiResponseEntity<List<String>> failRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
return ApiResponseUtils.success(platElderDayReportWeekService.failRecordList(platElderIdDTO));
}
@ApiOperation("坐标记录")
......@@ -99,7 +99,7 @@ public class PlatElderReportWeekController {
@ApiOperation("行为辐射")
@PostMapping("behaviorDistribution")
public ApiResponseEntity<List<PlatElderBehaviorDistributionVO>> behaviorDistribution(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null;
return ApiResponseUtils.success(platElderDayReportWeekService.behaviorDistribution(platElderIdDTO));
}
}
......
......@@ -3,10 +3,14 @@ package com.makeit.module.controller.space;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.elder.PlatElderImportDTO;
import com.makeit.dto.platform.space.PlatSpaceAddDTO;
import com.makeit.dto.platform.space.PlatSpaceImportDTO;
import com.makeit.dto.platform.space.PlatSpaceQueryDTO;
import com.makeit.dto.platform.space.PlatSpaceVO;
import com.makeit.enums.FileSuffixEnum;
import com.makeit.service.platform.space.PlatSpaceService;
import com.makeit.utils.data.excel.ExcelUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -16,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
......@@ -80,4 +85,11 @@ public class PlatSpaceController {
return ApiResponseUtils.success(data);
}
@ApiOperation(value = "导出模板")
@PostMapping("/exportTemplate")
public void exportTemplate(HttpServletResponse response) {
ExcelUtil.exportTemplate(response, "空间导入模板" + FileSuffixEnum.EXCEL.getSuffix(), PlatSpaceImportDTO.class);
}
}
......@@ -15,4 +15,6 @@ public class PlatUserRoleDTO extends BaseTenantDTO implements Serializable {
@ApiModelProperty(value = "角色id")
private String roleId;
private String roleName;
}
package com.makeit.dto.platform.space;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author:lzy
* @Date:2023/9/18 11:38
* @Describe:
*/
@Data
@ApiModel(value = "空间导入")
public class PlatSpaceImportDTO {
public static final String BIG_TITLE = "导入说明:\n" +
"\n" +
"1.表头带有*必填\n" +
"2.同一层级下的房间名或空间名不能重名";
@ExcelProperty({BIG_TITLE, "一级*"})
@ApiModelProperty(value = "小区/社区/街道")
private String community;
@ExcelProperty({BIG_TITLE, "二级"})
@ApiModelProperty(value = "楼栋")
private String building;
@ExcelProperty({BIG_TITLE, "三级"})
@ApiModelProperty(value = "单元")
private String unit;
@ExcelProperty({BIG_TITLE, "四级"})
@ApiModelProperty(value = "楼层")
private String floor;
@ExcelProperty({BIG_TITLE, "房间名*"})
@ApiModelProperty(value = "房间名")
private String roomName;
@ExcelProperty({BIG_TITLE, "床位数量"})
@ApiModelProperty(value = "床位数量")
private Integer bedNumber;
}
......@@ -22,6 +22,9 @@ public class PlatSpaceVO extends BaseIdDTO {
@ApiModelProperty("父级Id")
private String parentId;
@ApiModelProperty("父级名称")
private String parentName;
@ApiModelProperty("子集")
private List<PlatSpaceVO> children;
}
......@@ -24,10 +24,10 @@ public class PlatElderBreatheAnalysis extends BaseBusEntity {
@ApiModelProperty(value = "长者id")
private String elderId;
@ApiModelProperty(value = "睡眠评分")
@ApiModelProperty(value = "呼吸评分")
private String breatheScore;
@ApiModelProperty(value = "睡眠结果")
@ApiModelProperty(value = "呼吸结果")
private String breatheResult;
@ApiModelProperty(value = "评价")
......@@ -40,7 +40,7 @@ public class PlatElderBreatheAnalysis extends BaseBusEntity {
private String avgBreatheRate;
@ApiModelProperty(value = "当前日期 yyyy-mm-dd")
private String currentDate;
private String happenDate;
}
package com.makeit.entity.platform.elder;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import com.makeit.common.entity.BaseBusEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 长者呼吸心率日统计
* </p>
*
* @author eugene young
* @since 2023-09-19
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="PlatElderBreatheDayStat对象", description="长者呼吸心率日统计")
public class PlatElderBreatheDayStat extends BaseBusEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "长者id")
private String elderId;
@ApiModelProperty(value = "设备id")
private String deviceId;
@ApiModelProperty(value = "原始设备id")
private String oriDeviceId;
@ApiModelProperty(value = "日期")
private LocalDate day;
@ApiModelProperty(value = "心率最大值")
private Integer heartRateMax;
@ApiModelProperty(value = "心率最小值")
private Integer heartRateMin;
@ApiModelProperty(value = "心率平均值")
private Integer heartRateAvg;
@ApiModelProperty(value = "呼吸率最大值")
private Integer respiratoryRateMax;
@ApiModelProperty(value = "呼吸率最小值")
private Integer respiratoryRateMin;
@ApiModelProperty(value = "呼吸率平均值")
private Integer respiratoryRateAvg;
}
......@@ -2,7 +2,6 @@ package com.makeit.entity.platform.elder;
import com.baomidou.mybatisplus.annotation.TableField;
import com.makeit.common.entity.BaseBusEntity;
import com.makeit.common.typehandler.ListStringJsonTypeHandler;
import com.makeit.typehandler.ElderListStringJsonTypeHandler;
import com.makeit.vo.platform.elder.report.day.PlatSleepRangeVO;
import io.swagger.annotations.ApiModel;
......@@ -38,7 +37,7 @@ public class PlatElderSleep extends BaseBusEntity {
private LocalDateTime endSleep;
@ApiModelProperty(value = "当前日期 yyyy-mm-dd")
private String currentDate;
private String happenDate;
@ApiModelProperty(value = "睡眠记录 区分时间段记录 [{\"sleepType\":\"\",\"startTime\":\"\",\"endTime\":\"\"},{}]")
@TableField(typeHandler = ElderListStringJsonTypeHandler.class)
......
......@@ -40,7 +40,12 @@ public class PlatElderSleepAnalysis extends BaseBusEntity {
private String sleepEvaluate;
@ApiModelProperty(value = "当前日期 yyyy-mm-dd")
private String currentDate;
private String happenDate;
@ApiModelProperty(value = "体动次数")
private Integer actionCount;
@ApiModelProperty(value = "翻身次数")
private Integer turnedCount;
}
......@@ -54,5 +54,15 @@ public class PlatTenant extends BaseEntity {
*/
private String iotOrgId;
/**
* 租户标识
*/
private String code;
/**
* 租户平台地址
*/
private String url;
}
\ No newline at end of file
......@@ -9,7 +9,7 @@ public enum BreatheTypeEnum {
APNEA("apnea","呼吸暂停"),
TACHYPNEA("tachypnea","呼吸暂停"),
TACHYPNEA("tachypnea","呼吸过速"),
BRADYPNEA("bradypnea","呼吸过缓");
private String code;
......
......@@ -2,8 +2,11 @@ package com.makeit.mapper.platform.auth;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.makeit.dto.platform.auth.PlatUserRoleDTO;
import com.makeit.entity.platform.auth.PlatUserRole;
import java.util.List;
/**
* @author lixl
* @description 针对表【plat_user_role(租户端用户角色关联表)】的数据库操作Mapper
......@@ -13,4 +16,5 @@ import com.makeit.entity.platform.auth.PlatUserRole;
public interface PlatUserRoleMapper extends BaseMapper<PlatUserRole> {
List<PlatUserRoleDTO> getByUserIdList(List<String> userIdList);
}
package com.makeit.mapper.platform.elder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.makeit.entity.platform.elder.PlatElderBreatheDayStat;
/**
* <p>
* 长者呼吸心率日统计 Mapper 接口
* </p>
*
* @author eugene young
* @since 2023-09-19
*/
public interface PlatElderBreatheDayStatMapper extends BaseMapper<PlatElderBreatheDayStat> {
}
......@@ -2,6 +2,7 @@ package com.makeit.service.platform.auth;
import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.dto.platform.auth.PlatUserRoleDTO;
import com.makeit.entity.platform.auth.PlatUserRole;
import java.util.List;
......@@ -19,4 +20,7 @@ public interface PlatUserRoleService extends IService<PlatUserRole> {
* @return
*/
List<PlatUserRole> getByUserId(String userId);
List<PlatUserRoleDTO> getByUserIdList(List<String> userIdList);
}
......@@ -125,4 +125,6 @@ public interface PlatUserService extends IService<PlatUser> {
void delBatch(List<String> idList);
ExcelImportVo importExcel(MultipartFile excelFile) throws Exception;
void checkTenantOrgStatus(PlatUser platUser);
}
......@@ -13,6 +13,7 @@ import com.makeit.entity.platform.auth.PlatOrg;
import com.makeit.entity.platform.auth.PlatRole;
import com.makeit.entity.platform.auth.PlatRoleOrg;
import com.makeit.entity.platform.auth.PlatUserRole;
import com.makeit.enums.CodeMessageEnum;
import com.makeit.enums.CommonEnum;
import com.makeit.enums.id.TreeConst;
import com.makeit.exception.BusinessException;
......@@ -287,10 +288,10 @@ public class PlatOrgServiceImpl extends ServiceImpl<PlatOrgMapper, PlatOrg>
private void check(PlatOrg dto) {
LambdaQueryWrapper<PlatOrg> platOrgLambdaQueryWrapper = new LambdaQueryWrapper<>();
platOrgLambdaQueryWrapper.eq(PlatOrg::getParentId, dto.getParentId())
.eq(StringUtils.isNotBlank(dto.getId()),PlatOrg::getName, dto.getName())
.eq(PlatOrg::getName, dto);
.ne(StringUtils.isNotBlank(dto.getId()),PlatOrg::getId, dto.getId())
.eq(PlatOrg::getName, dto.getName());
if(count(platOrgLambdaQueryWrapper)>0){
throw new BusinessException("名称重复");
throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_NAME_DUPLICATE);
}
}
......
......@@ -2,6 +2,7 @@ package com.makeit.service.platform.auth.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.dto.platform.auth.PlatUserRoleDTO;
import com.makeit.entity.platform.auth.PlatUserRole;
import com.makeit.mapper.platform.auth.PlatUserRoleMapper;
import com.makeit.service.platform.auth.PlatRoleOrgService;
......@@ -36,5 +37,9 @@ implements PlatUserRoleService{
return list(queryWrapper);
}
@Override
public List<PlatUserRoleDTO> getByUserIdList(List<String> userIdList) {
return baseMapper.getByUserIdList(userIdList);
}
}
package com.makeit.service.platform.elder;
import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.entity.platform.elder.PlatElderBreatheDayStat;
/**
* <p>
* 长者呼吸心率日统计 服务类
* </p>
*
* @author eugene young
* @since 2023-09-19
*/
public interface PlatElderBreatheDayStatService extends IService<PlatElderBreatheDayStat> {
}
package com.makeit.service.platform.elder;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.dto.platform.elder.PlatElderReportDTO;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO;
import com.makeit.vo.platform.elder.report.day.*;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
......@@ -28,18 +25,28 @@ public interface PlatElderDayReportDayService {
PlatElderHeartRespiratoryEvaluationVO heartRespiratoryEvaluation(PlatElderReportDTO platElderIdDTO);
List<PlatElderHeartRespiratoryEvaluationRecordVO> heartRespiratoryExceptionRecordList(PlatElderReportDTO platElderIdDTO, String alarmType, LocalDateTime start, LocalDateTime end);
List<PlatElderHeartRespiratoryEvaluationRecordVO> heartExceptionRecordList(PlatElderReportDTO platElderIdDTO);
List<PlatElderHeartRespiratoryEvaluationRecordVO> respiratoryExceptionRecordList(PlatElderReportDTO platElderIdDTO);
List<PlatElderRealTimeHeartRespiratoryVO> heartRespiratory(PlatElderReportDTO platElderIdDTO);
List<PlatElderBehaviorExceptionRecordVO> behaviorExceptionRecordListInternal(PlatElderReportDTO platElderIdDTO, LocalDateTime start, LocalDateTime end);
List<PlatElderBehaviorExceptionRecordVO> behaviorExceptionRecordList(PlatElderReportDTO platElderIdDTO);
List<String> failRecordListInternal(PlatElderReportDTO platElderIdDTO, LocalDateTime start, LocalDateTime end);
List<String> failRecordList(PlatElderReportDTO platElderIdDTO);
List<PlatElderCoordinateVO> coordinateList(String elderId, String deviceId, LocalDateTime start, LocalDateTime end);
List<PlatElderCoordinateVO> coordinateList(PlatElderReportDTO platElderIdDTO);
List<PlatElderBehaviorDistributionVO> behaviorDistributionInternal(PlatElderReportDTO platElderIdDTO, List<LocalDate> nowList);
List<PlatElderBehaviorDistributionVO> behaviorDistribution(PlatElderReportDTO platElderIdDTO);
}
package com.makeit.service.platform.elder;
import com.makeit.dto.platform.elder.PlatElderIdDTO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.dto.platform.elder.PlatElderReportDTO;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO;
import com.makeit.vo.platform.elder.report.day.*;
import com.makeit.vo.platform.elder.report.week.PlatElderComprehensiveEvaluationVO;
import com.makeit.vo.platform.elder.report.week.PlatElderRealTimeHeartRespiratoryWeekVO;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
......@@ -17,6 +20,24 @@ import java.util.List;
*/
public interface PlatElderDayReportWeekService {
PlatElderComprehensiveEvaluationVO comprehensiveEvaluation(PlatElderReportDTO platElderIdDTO);
PlatElderSleepEvaluationVO sleepEvaluation(PlatElderReportDTO platElderIdDTO);
PlatElderHeartRespiratoryEvaluationVO heartRespiratoryEvaluation(PlatElderReportDTO platElderIdDTO);
List<PlatElderHeartRespiratoryEvaluationRecordVO> heartExceptionRecordList(PlatElderReportDTO platElderIdDTO);
List<PlatElderHeartRespiratoryEvaluationRecordVO> respiratoryExceptionRecordList(PlatElderReportDTO platElderIdDTO);
List<PlatElderRealTimeHeartRespiratoryWeekVO> heartRespiratory(PlatElderReportDTO platElderIdDTO);
List<PlatElderBehaviorExceptionRecordVO> behaviorExceptionRecordList(PlatElderReportDTO platElderIdDTO);
List<String> failRecordList(PlatElderReportDTO platElderIdDTO);
List<PlatElderCoordinateVO> coordinateList(PlatElderReportDTO platElderIdDTO);
List<PlatElderBehaviorDistributionVO> behaviorDistribution(PlatElderReportDTO platElderIdDTO);
}
......@@ -23,6 +23,8 @@ public interface PlatElderRealTimeService {
List<PlatDevice> getSpaceDevice(String elderId, String deviceId);
List<PlatDevice> getFallDevice(String elderId, String deviceId);
PlatElderRealTimeNowVO nowStatus(PlatElderIdDTO platElderIdDTO);
PlatElderRealTimeHeartRespiratoryVO heartRespiratory(PlatElderIdDTO platElderIdDTO);
......
......@@ -54,6 +54,8 @@ public interface PlatElderService extends IService<PlatElder> {
List<PlatDevice> getSpaceDevice(String id);
List<PlatDevice> getFallDevice(String id);
/*小程序*/
List<PlatElderWechatSimpleVO> listMy();
/*小程序*/
......
package com.makeit.service.platform.elder.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.entity.platform.elder.PlatElderBreatheDayStat;
import com.makeit.mapper.platform.elder.PlatElderBreatheDayStatMapper;
import com.makeit.service.platform.elder.PlatElderBreatheDayStatService;
import org.springframework.stereotype.Service;
/**
* <p>
* 长者呼吸心率日统计 服务实现类
* </p>
*
* @author eugene young
* @since 2023-09-19
*/
@Service
public class PlatElderBreatheDayStatServiceImpl extends ServiceImpl<PlatElderBreatheDayStatMapper, PlatElderBreatheDayStat> implements PlatElderBreatheDayStatService {
}
......@@ -78,6 +78,22 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
return deviceList;
}
@Override
public List<PlatDevice> getFallDevice(String elderId, String deviceId) {
List<PlatDevice> deviceList = null;
if (StringUtils.isNotBlank(elderId)) {
deviceList = platElderService.getFallDevice(elderId);
}
if (StringUtils.isNotBlank(deviceId)) {
deviceList = Arrays.asList(platDeviceService.getById(deviceId));
}
return deviceList;
}
private DeviceInfoContentBreathe getNowDataBreathe(String elderId, String deviceId) {
PlatDevice platDevice = getBreathDevice(elderId, deviceId);
......
......@@ -739,6 +739,17 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
}
@Override
public List<PlatDevice> getFallDevice(String id) {
PlatElder platElder = getById(id);
if (StringUtils.isBlank(platElder.getBedId())) {
return null;
}
return platRoomBedDeviceService.getFallDevice(platElder.getBedId());
}
@Override
public List<PlatElderWechatSimpleVO> listMy() {
PlatElderChildrenInfoWechatVO childrenInfo = platElderChildrenInfoService.view();
......
......@@ -53,4 +53,6 @@ public interface PlatRoomBedDeviceService extends IService<PlatRoomBedDevice> {
PlatDevice getBreathDevice(String bedId);
List<PlatDevice> getSpaceDevice(String bedId);
List<PlatDevice> getFallDevice(String bedId);
}
......@@ -2,11 +2,13 @@ package com.makeit.service.platform.space;
import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.vo.ExcelImportVo;
import com.makeit.dto.platform.space.PlatSpaceAddDTO;
import com.makeit.dto.platform.space.PlatSpaceQueryDTO;
import com.makeit.dto.platform.space.PlatSpaceVO;
import com.makeit.entity.platform.space.PlatSpace;
import com.makeit.vo.platform.space.PlatSpaceAndRoomVO;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
......@@ -66,4 +68,12 @@ public interface PlatSpaceService extends IService<PlatSpace> {
PlatSpaceVO child(PlatSpaceVO vo, Map<String,List<PlatSpace>> map);
PlatSpaceVO convertToVO(PlatSpace space);
/**
* 导入
* @param excelFile
* @return
*/
public ExcelImportVo importSpaceExcel(MultipartFile excelFile);
}
......@@ -109,34 +109,34 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM
public List<PlatDeviceDTO> listBindDevice(PlatBedDeviceQueryDTO dto) {
LambdaQueryWrapper<PlatRoomBedDevice> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(PlatRoomBedDevice::getRoomId,dto.getRoomId());
queryWrapper1.eq(StringUtil.isNotEmpty(dto.getBedId()),PlatRoomBedDevice::getBedId,dto.getBedId());
queryWrapper1.eq(PlatRoomBedDevice::getRoomId, dto.getRoomId());
queryWrapper1.eq(StringUtil.isNotEmpty(dto.getBedId()), PlatRoomBedDevice::getBedId, dto.getBedId());
List<PlatRoomBedDevice> list = list(queryWrapper1);
List<String> listEquipmentIds = list.stream().map(item->item.getDeviceId()).collect(Collectors.toList());
List<String> listEquipmentIds = list.stream().map(item -> item.getDeviceId()).collect(Collectors.toList());
List<String> listBedIds = list.stream().map(item->item.getBedId()).collect(Collectors.toList());
List<String> listBedIds = list.stream().map(item -> item.getBedId()).collect(Collectors.toList());
LambdaQueryWrapper<PlatBed> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.in(PlatBed::getId,listBedIds);
queryWrapper2.in(PlatBed::getId, listBedIds);
List<PlatBed> listBeds = platBedService.list(queryWrapper2);
Map<String,String> map = listBeds.stream().collect(Collectors.toMap(PlatBed::getId,PlatBed::getName,(k1, k2)->k1));
Map<String,String> mapName = new HashMap<>(20);
Map<String,String> mapBedId = new HashMap<>(20);
list.forEach(item->{
if(map.containsKey(item.getBedId())){
mapName.put(item.getDeviceId(),map.get(item.getBedId()));
mapBedId.put(item.getDeviceId(),item.getBedId());
Map<String, String> map = listBeds.stream().collect(Collectors.toMap(PlatBed::getId, PlatBed::getName, (k1, k2) -> k1));
Map<String, String> mapName = new HashMap<>(20);
Map<String, String> mapBedId = new HashMap<>(20);
list.forEach(item -> {
if (map.containsKey(item.getBedId())) {
mapName.put(item.getDeviceId(), map.get(item.getBedId()));
mapBedId.put(item.getDeviceId(), item.getBedId());
}
});
List<PlatDeviceDTO> data = new ArrayList<>();
if(!listEquipmentIds.isEmpty()){
if (!listEquipmentIds.isEmpty()) {
LambdaQueryWrapper<PlatDevice> queryWrapper = new LambdaQueryWrapper<>();
//queryWrapper.eq(PlatDevice::getCategory, PlatDeviceEnum.CategoryEnum.HEART);
queryWrapper.in(PlatDevice::getId,listEquipmentIds);
queryWrapper.in(PlatDevice::getId, listEquipmentIds);
List<PlatDevice> listDevices = platDeviceService.list(queryWrapper);
data = BeanDtoVoUtils.listVo(listDevices,PlatDeviceDTO.class);
data = BeanDtoVoUtils.listVo(listDevices, PlatDeviceDTO.class);
data.forEach(item->{
data.forEach(item -> {
item.setBedName(mapName.get(item.getId()));
item.setBedId(mapBedId.get(item.getId()));
});
......@@ -182,9 +182,7 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM
}
@Override
public List<PlatDevice> getSpaceDevice(String bedId) {
private List<PlatDevice> getDeviceInternal(String bedId, String category) {
PlatBed bed = platBedService.getById(bedId);
List<PlatRoomBedDevice> deviceList = list(new QueryWrapper<PlatRoomBedDevice>().lambda()
......@@ -192,10 +190,17 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM
return platDeviceService.list(new QueryWrapper<PlatDevice>().lambda()
.in(PlatDevice::getId, StreamUtil.mapId(deviceList, PlatRoomBedDevice::getDeviceId))
.eq(PlatDevice::getCategory, PlatDeviceEnum.CategoryEnum.SPACE.getValue())
.eq(PlatDevice::getCategory, category)
);
}
@Override
public List<PlatDevice> getSpaceDevice(String bedId) {
return getDeviceInternal(bedId, PlatDeviceEnum.CategoryEnum.SPACE.getValue());
}
@Override
public List<PlatDevice> getFallDevice(String bedId) {
return getDeviceInternal(bedId, PlatDeviceEnum.CategoryEnum.FALL.getValue());
}
}
......@@ -21,5 +21,7 @@ public interface SaasElderReportConfigService extends IService<SaasElderReportCo
void edit(SaasElderReportConfigDTO dto);
EvaluateReportVO getByScoreInternal(String resultContent, long totalScore);
EvaluateReportVO getByScore(long totalScore);
}
......@@ -132,11 +132,12 @@ implements PlatTenantService {
List<PlatTenantVO> voList = BeanDtoVoUtils.listVo(pageList.getRecords(), PlatTenantVO.class);
TntUserJoinUtil.join(platUserService,voList,qw->qw.eq(PlatUser::getIsTenant, IsTenantAccountEnum.YES.getValue()),
PlatTenantVO::getTntUserId,(t, u) -> {
t.setUserAccount(u.getMobile());
PlatTenantVO::getPlatUserId,(t, u) -> {
t.setUserAccount(u.getAccount());
t.setUserName(u.getUsername());
}, BaseEntity::getId);
return PageUtil.toPageVO(voList, pageList);
}
......@@ -201,6 +202,7 @@ implements PlatTenantService {
public String add(PlatTenantDTOVO dto) {
checkName(dto);
checkDate(dto);
checkCode(dto);
PlatTenant tntTenant = BeanDtoVoUtils.convert(dto, PlatTenant.class);
//新租户同步到iot
......@@ -226,12 +228,14 @@ implements PlatTenantService {
return tntTenant.getId();
}
@Transactional
@Override
@TenantIdIgnore
public void edit(PlatTenantDTOVO dto) {
checkName(dto);
checkDate(dto);
checkCode(dto);
PlatTenant tntTenant = BeanDtoVoUtils.convert(dto, PlatTenant.class);
PlatTenant platTenant = getById(tntTenant.getId());
//更新同步到iot
......@@ -245,11 +249,11 @@ implements PlatTenantService {
}
platUserService.updatePlatUserTenantId(tntTenant.getId(),dto.getPlatUserId());
PlatOrg platOrg = convertToPlatOrg(platTenant);
PlatOrg platOrg = convertToPlatOrg(tntTenant);
//更新组织表
platOrgService.edit(platOrg);
//分配菜单
//分配菜单 todo 慢
assignMenuList(tntTenant.getId(),dto.getMenuIdList());
}
......@@ -375,4 +379,17 @@ implements PlatTenantService {
}
}
private void checkCode(PlatTenantDTOVO dto) {
PlatTenant tntTenant = getOne(
new QueryWrapper<PlatTenant>().lambda()
.eq(PlatTenant::getCode, dto.getCode())
.ne(StringUtils.isNotBlank(dto.getId()),PlatTenant::getCode,dto.getCode())
);
if (tntTenant != null && !tntTenant.getId().equals(dto.getId())) {
throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_TENANT_CODE_DUPLICATE);
}
}
}
package com.makeit.service.saas.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.entity.BaseEntity;
import com.makeit.dto.saas.analysis.SaasSleepEvaluateReportDTO;
import com.makeit.entity.saas.analysis.SaasDiseaseReport;
import com.makeit.mapper.saas.analysis.SaasDiseaseReportMapper;
......@@ -10,6 +12,8 @@ import com.makeit.service.saas.SaasDiseaseReportService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class SaasDiseaseReportServiceImpl extends ServiceImpl<SaasDiseaseReportMapper, SaasDiseaseReport> implements SaasDiseaseReportService {
......@@ -36,6 +40,20 @@ public class SaasDiseaseReportServiceImpl extends ServiceImpl<SaasDiseaseReportM
@Override
public EvaluateReportVO getByScore(long totalScore) {
return null;
SaasDiseaseReport diseaseReport = getOne(new QueryWrapper<SaasDiseaseReport>().lambda()
.orderByDesc(BaseEntity::getCreateBy)
.last("limit 1"));
String diseaseReportResultContent = diseaseReport.getResultContent();
List<EvaluateReportVO> diseaseReportResultList = JSON.parseArray(diseaseReportResultContent, EvaluateReportVO.class);
EvaluateReportVO elderReport = null;
for (EvaluateReportVO evaluateReportVO : diseaseReportResultList) {
String[] scoreRange = evaluateReportVO.getScoreRange().split("-");
long scoreRangeStart = Long.parseLong(scoreRange[0]);
long scoreRangeEnd = Long.parseLong(scoreRange[1]);
if (scoreRangeStart <= totalScore && scoreRangeEnd >= totalScore) {
elderReport = evaluateReportVO;
}
}
return elderReport;
}
}
......@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.entity.BaseEntity;
import com.makeit.dto.saas.analysis.SaasElderReportConfigDTO;
import com.makeit.entity.saas.analysis.SaasElderReportConfig;
import com.makeit.entity.saas.analysis.SaasSleepEvaluateReport;
import com.makeit.mapper.saas.analysis.SaasElderReportConfigMapper;
import com.makeit.module.iot.vo.analysis.EvaluateReportVO;
import com.makeit.service.saas.SaasElderReportConfigService;
......@@ -48,20 +49,34 @@ public class SaasElderReportConfigServiceImpl extends ServiceImpl<SaasElderRepor
}
@Override
public EvaluateReportVO getByScore(long totalScore) {
SaasElderReportConfig elderReportConfig = getOne(new QueryWrapper<SaasElderReportConfig>().lambda()
.orderByDesc(BaseEntity::getCreateBy)
.last("limit 1"));
List<EvaluateReportVO> elderEvaluateReportList = JSON.parseArray(elderReportConfig.getResultContent(), EvaluateReportVO.class);
EvaluateReportVO elderReport = null;
for (EvaluateReportVO evaluateReportVO : elderEvaluateReportList) {
public EvaluateReportVO getByScoreInternal(String resultContent,long totalScore) {
List<EvaluateReportVO> evaluateReportList = JSON.parseArray(resultContent, EvaluateReportVO.class);
// 根据睡眠报告结果配置得出最后的睡眠评分
EvaluateReportVO finalReport = new EvaluateReportVO();
for (EvaluateReportVO evaluateReportVO : evaluateReportList) {
String[] scoreRange = evaluateReportVO.getScoreRange().split("~");
long scoreRangeStart = Long.parseLong(scoreRange[0]);
long scoreRangeEnd = Long.parseLong(scoreRange[1]);
if (scoreRangeStart <= totalScore && scoreRangeEnd >= totalScore) {
elderReport = evaluateReportVO;
finalReport = evaluateReportVO;
}
}
return finalReport;
}
return elderReport;
@Override
public EvaluateReportVO getByScore(long totalScore) {
SaasElderReportConfig saasElderReportConfig = getOne(new QueryWrapper<SaasElderReportConfig>().lambda()
.orderByDesc(BaseEntity::getCreateBy)
.last("limit 1"));
String resultContent = saasElderReportConfig.getResultContent();
return getByScoreInternal(resultContent,totalScore);
}
}
......@@ -8,8 +8,10 @@ import com.makeit.dto.saas.analysis.SaasSleepEvaluateReportDTO;
import com.makeit.entity.saas.analysis.SaasSleepEvaluateReport;
import com.makeit.mapper.saas.analysis.SaasSleepEvaluateReportMapper;
import com.makeit.module.iot.vo.analysis.EvaluateReportVO;
import com.makeit.service.saas.SaasElderReportConfigService;
import com.makeit.service.saas.SaasSleepEvaluateReportService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
......@@ -25,6 +27,8 @@ import java.util.List;
@Service
public class SaasSleepEvaluateReportServiceImpl extends ServiceImpl<SaasSleepEvaluateReportMapper, SaasSleepEvaluateReport> implements SaasSleepEvaluateReportService {
@Autowired
private SaasElderReportConfigService saasElderReportConfigService;
@Override
public SaasSleepEvaluateReport view(String id) {
......@@ -53,18 +57,7 @@ public class SaasSleepEvaluateReportServiceImpl extends ServiceImpl<SaasSleepEva
.orderByDesc(BaseEntity::getCreateBy)
.last("limit 1"));
String resultContent = sleepEvaluateReport.getResultContent();
List<EvaluateReportVO> evaluateReportList = JSON.parseArray(resultContent, EvaluateReportVO.class);
// 根据睡眠报告结果配置得出最后的睡眠评分
EvaluateReportVO finalReport = new EvaluateReportVO();
for (EvaluateReportVO evaluateReportVO : evaluateReportList) {
String[] scoreRange = evaluateReportVO.getScoreRange().split("~");
long scoreRangeStart = Long.parseLong(scoreRange[0]);
long scoreRangeEnd = Long.parseLong(scoreRange[1]);
if (scoreRangeStart <= totalScore && scoreRangeEnd >= totalScore) {
finalReport = evaluateReportVO;
}
}
return finalReport;
return saasElderReportConfigService.getByScoreInternal(resultContent, totalScore);
}
}
......@@ -163,8 +163,8 @@ implements SaasUserService{
new QueryWrapper<SaasUser>().lambda()
.eq(SaasUser::getAccount, dto.getAccount())
.or()
.eq(SaasUser::getUsername, dto.getUsername())
.or()
//.eq(SaasUser::getUsername, dto.getUsername())
//.or()
.eq(SaasUser::getMobile, dto.getMobile())
);
......
......@@ -74,6 +74,10 @@ public class IotSyncTask {
Set<String> iotDeviceIdSet = iotDeviceList.stream().map(DeviceInstanceEntity::getId).collect(Collectors.toSet());
LambdaQueryWrapper<PlatDevice> deviceLambdaQueryWrapper = new LambdaQueryWrapper<PlatDevice>().eq(BaseBusEntity::getTenantId, platTenant.getId())
.in(PlatDevice::getOriDeviceId, iotDeviceIdSet);
//删除设备
LambdaQueryWrapper<PlatDevice> removeQw = new LambdaQueryWrapper<PlatDevice>().notIn(PlatDevice::getOriDeviceId, iotDeviceIdSet)
.eq(BaseBusEntity::getTenantId, platTenant.getId());
platDeviceService.remove(removeQw);
List<PlatDevice> deviceList = platDeviceService.list(deviceLambdaQueryWrapper);
//更新平台设备
Collection<PlatDevice> platDevices = convertToPlatDevice(iotDeviceList, deviceList, platTenant.getId(), dicNameIdMap);
......
......@@ -89,4 +89,9 @@ public class PlatPersonDTOVO extends BaseIdDTO {
@ApiModelProperty(value = "更新人名称")
private String updateBy;
@ApiModelProperty(value = "角色名称,逗号拼接")
private String roleNameJoin;
}
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