Commit dbe536d3 by huangjy

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

parents 3685298a 9aec1949
Showing with 1223 additions and 178 deletions
...@@ -45,6 +45,8 @@ CREATE TABLE `plat_elder` ...@@ -45,6 +45,8 @@ CREATE TABLE `plat_elder`
org_path varchar(64) NULL COMMENT '组织路径', org_path varchar(64) 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_out_time datetime DEFAULT 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 '更新者',
...@@ -244,7 +246,7 @@ CREATE TABLE `plat_device` ...@@ -244,7 +246,7 @@ CREATE TABLE `plat_device`
registration_date datetime NOT NULL COMMENT '注册时间', registration_date datetime NOT NULL COMMENT '注册时间',
last_online_data datetime NOT NULL COMMENT '最后上线时间', last_online_data datetime NOT NULL COMMENT '最后上线时间',
description VARCHAR(1024) DEFAULT NULL COMMENT '说明', description VARCHAR(1024) DEFAULT NULL COMMENT '说明',
status varchar(36) DEFAULT NULL COMMENT '状态 DeviceState', status varchar(36) DEFAULT NULL COMMENT '状态 DeviceState',
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',
......
...@@ -26,17 +26,19 @@ CREATE TABLE `plat_user` ( ...@@ -26,17 +26,19 @@ CREATE TABLE `plat_user` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='租户账号管理'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='租户账号管理';
CREATE TABLE `plat_role` ( CREATE TABLE `plat_role` (
`id` varchar(64) NOT NULL COLLATE utf8mb4_general_ci COMMENT 'id', `id` varchar(64) NOT NULL COMMENT 'id',
`tenant_id` varchar(64) NOT NULL COMMENT '租户id', `tenant_id` varchar(64) NOT NULL COMMENT '租户id',
`name` varchar(100) NOT NULL COMMENT '名称', `name` varchar(100) NOT NULL COMMENT '名称',
`remark` varchar(255) DEFAULT NULL COMMENT '备注', `remark` varchar(255) DEFAULT NULL COMMENT '备注',
`data_scope` varchar(600) DEFAULT NULL COMMENT '数据权限 子公司id 上级可看到下级', `data_scope` varchar(600) DEFAULT NULL COMMENT '数据权限 子公司id 上级可看到下级',
`create_date` datetime NOT NULL COMMENT '创建时间', `create_date` datetime NOT NULL COMMENT '创建时间',
`update_date` datetime NOT NULL COMMENT '更新时间', `update_date` datetime NOT NULL COMMENT '更新时间',
`del_flag` CHAR(1) DEFAULT NULL COMMENT '删除标识', `del_flag` char(1) DEFAULT NULL COMMENT '删除标识',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
`org_id` varchar(64) DEFAULT NULL COMMENT '所属组织', `org_id` varchar(64) DEFAULT NULL COMMENT '所属组织',
`code` varchar(64) DEFAULT NULL COMMENT 'code',
`status` char(1) DEFAULT NULL COMMENT '状态',
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='租户端角色'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='租户端角色';
......
...@@ -29,6 +29,9 @@ VALUES ('203', 'alarm.notifyWay', '告警配置通知对象', '2022-05-16 17:08: ...@@ -29,6 +29,9 @@ VALUES ('203', 'alarm.notifyWay', '告警配置通知对象', '2022-05-16 17:08:
INSERT INTO sys_dictionary_category (id, code, name, create_date, update_date, del_flag) INSERT INTO sys_dictionary_category (id, code, name, create_date, update_date, del_flag)
VALUES ('300', 'device.status', '设备状态', '2022-05-16 17:08:33', '2022-05-16 17:08:37', '0'); VALUES ('300', 'device.status', '设备状态', '2022-05-16 17:08:33', '2022-05-16 17:08:37', '0');
INSERT INTO sys_dictionary_category (id, code, name, create_date, update_date, del_flag)
VALUES ('1000', 'device.breathe.personState', '呼吸心率运动状态', '2022-05-16 17:08:33', '2022-05-16 17:08:37', '0');
INSERT INTO sys_dictionary (id, code, name, value, sort, description, category_id, create_date, update_date, del_flag) INSERT INTO sys_dictionary (id, code, name, value, sort, description, category_id, create_date, update_date, del_flag)
VALUES ('1', 'common.status.yes', '是', '1', 1, '', '2', '2022-05-16 17:13:23', '2022-05-16 17:13:27', '0'); VALUES ('1', 'common.status.yes', '是', '1', 1, '', '2', '2022-05-16 17:13:23', '2022-05-16 17:13:27', '0');
...@@ -109,6 +112,18 @@ VALUES ('300', 'device.status.online', '在线', '1', 1, '', '300', '2022-05-16 ...@@ -109,6 +112,18 @@ VALUES ('300', 'device.status.online', '在线', '1', 1, '', '300', '2022-05-16
INSERT INTO sys_dictionary (id, code, name, value, sort, description, category_id, create_date, update_date, del_flag) INSERT INTO sys_dictionary (id, code, name, value, sort, description, category_id, create_date, update_date, del_flag)
VALUES ('400', 'device.status.offline', '离线', '0', 0, '', '300', '2022-05-16 17:13:23', '2022-05-16 17:13:27', '0'); VALUES ('400', 'device.status.offline', '离线', '0', 0, '', '300', '2022-05-16 17:13:23', '2022-05-16 17:13:27', '0');
INSERT INTO sys_dictionary (id, code, name, value, sort, description, category_id, create_date, update_date, del_flag)
VALUES ('1000', 'device.breathe.personState.nobody', '无人', '0', 0, '', '1000', '2022-05-16 17:13:23', '2022-05-16 17:13:27', '0');
INSERT INTO sys_dictionary (id, code, name, value, sort, description, category_id, create_date, update_date, del_flag)
VALUES ('1001', 'device.breathe.personState.exercise', '运动', '1', 1, '', '1000', '2022-05-16 17:13:23', '2022-05-16 17:13:27', '0');
INSERT INTO sys_dictionary (id, code, name, value, sort, description, category_id, create_date, update_date, del_flag)
VALUES ('1002', 'device.breathe.personState.breathe', '呼吸', '2', 2, '', '1000', '2022-05-16 17:13:23', '2022-05-16 17:13:27', '0');
INSERT INTO sys_dictionary (id, code, name, value, sort, description, category_id, create_date, update_date, del_flag)
VALUES ('1003', 'device.breathe.personState.enter', '进入呼吸', '3', 3, '', '1000', '2022-05-16 17:13:23', '2022-05-16 17:13:27', '0');
INSERT INTO sys_config_category (id, tenant_id, code, name, create_date, update_date, del_flag, create_by, update_by, eng_name) VALUES ('1', '0', 'elder.certificateType', '长者证件类型', '2023-07-11 10:55:06', '2023-07-11 10:55:08', '0', null, null, null); INSERT INTO sys_config_category (id, tenant_id, code, name, create_date, update_date, del_flag, create_by, update_by, eng_name) VALUES ('1', '0', 'elder.certificateType', '长者证件类型', '2023-07-11 10:55:06', '2023-07-11 10:55:08', '0', null, null, null);
INSERT INTO sys_config_category (id, tenant_id, code, name, create_date, update_date, del_flag, create_by, update_by, eng_name) VALUES ('2', '0', 'elder.blood', '长者血型', '2023-07-11 10:55:06', '2023-07-11 10:55:08', '0', null, null, null); INSERT INTO sys_config_category (id, tenant_id, code, name, create_date, update_date, del_flag, create_by, update_by, eng_name) VALUES ('2', '0', 'elder.blood', '长者血型', '2023-07-11 10:55:06', '2023-07-11 10:55:08', '0', null, null, null);
......
...@@ -8,6 +8,7 @@ import com.makeit.common.response.ApiResponseUtils; ...@@ -8,6 +8,7 @@ import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.device.PlatDeviceDetailDTO; import com.makeit.dto.platform.device.PlatDeviceDetailDTO;
import com.makeit.dto.platform.device.PlatDeviceEditDTO; import com.makeit.dto.platform.device.PlatDeviceEditDTO;
import com.makeit.entity.platform.device.PlatDevice; import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.global.aspect.tenant.TenantIdIgnore;
import com.makeit.service.platform.device.PlatDeviceService; import com.makeit.service.platform.device.PlatDeviceService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -26,18 +27,21 @@ public class SaasDeviceController { ...@@ -26,18 +27,21 @@ public class SaasDeviceController {
@ApiOperation("列表") @ApiOperation("列表")
@PostMapping("page") @PostMapping("page")
@TenantIdIgnore
public ApiResponseEntity<PageVO<PlatDevice>> page(@RequestBody PageReqDTO<PlatDevice> pageReqDTO) { public ApiResponseEntity<PageVO<PlatDevice>> page(@RequestBody PageReqDTO<PlatDevice> pageReqDTO) {
return ApiResponseUtils.success(platDeviceService.pageSaas(pageReqDTO)); return ApiResponseUtils.success(platDeviceService.pageSaas(pageReqDTO));
} }
@ApiOperation("设备信息") @ApiOperation("设备信息")
@PostMapping("detail") @PostMapping("detail")
@TenantIdIgnore
public ApiResponseEntity<PlatDeviceDetailDTO> detail(@RequestBody BaseIdDTO baseIdDTO) { public ApiResponseEntity<PlatDeviceDetailDTO> detail(@RequestBody BaseIdDTO baseIdDTO) {
return ApiResponseUtils.success(platDeviceService.getDetailDTO(baseIdDTO.getId())); return ApiResponseUtils.success(platDeviceService.getDetailDTO(baseIdDTO.getId()));
} }
@ApiOperation("设备编辑") @ApiOperation("设备编辑")
@PostMapping("edit") @PostMapping("edit")
@TenantIdIgnore
public ApiResponseEntity<Void> edit(@RequestBody PlatDeviceEditDTO dto) { public ApiResponseEntity<Void> edit(@RequestBody PlatDeviceEditDTO dto) {
platDeviceService.edit(dto); platDeviceService.edit(dto);
return ApiResponseUtils.success(); return ApiResponseUtils.success();
...@@ -45,6 +49,7 @@ public class SaasDeviceController { ...@@ -45,6 +49,7 @@ public class SaasDeviceController {
@ApiOperation("实时数据") @ApiOperation("实时数据")
@PostMapping("realTimeDate") @PostMapping("realTimeDate")
@TenantIdIgnore
public ApiResponseEntity<PlatDevice> realTimeDate(@RequestBody PlatDevice platDevice) { public ApiResponseEntity<PlatDevice> realTimeDate(@RequestBody PlatDevice platDevice) {
//todo //todo
return null; return null;
...@@ -52,6 +57,7 @@ public class SaasDeviceController { ...@@ -52,6 +57,7 @@ public class SaasDeviceController {
@ApiOperation("数据分析") @ApiOperation("数据分析")
@PostMapping("dataAnalysis") @PostMapping("dataAnalysis")
@TenantIdIgnore
public ApiResponseEntity<PlatDevice> dataAnalysis(@RequestBody PlatDevice platDevice) { public ApiResponseEntity<PlatDevice> dataAnalysis(@RequestBody PlatDevice platDevice) {
//todo //todo
return null; return null;
......
...@@ -157,7 +157,6 @@ ...@@ -157,7 +157,6 @@
<orderEntry type="library" name="Maven: org.springframework.integration:spring-integration-core:5.5.5" level="project" /> <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: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: 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.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: 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" /> <orderEntry type="library" name="Maven: com.aliyun:dysmsapi20170525:2.0.9" level="project" />
...@@ -184,6 +183,7 @@ ...@@ -184,6 +183,7 @@
<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: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.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: 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: 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: com.github.virtuald:curvesapi:1.07" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.3.5" level="project" /> <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.3.5" level="project" />
...@@ -205,7 +205,6 @@ ...@@ -205,7 +205,6 @@
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-bridge:1.14" level="project" /> <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-script:1.14" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-dom: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-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-shared-resources:1.14" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-svggen:1.14" level="project" /> <orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-svggen:1.14" level="project" />
......
...@@ -110,7 +110,7 @@ public class ModuleSwaggerApiListingReader implements ApiListingBuilderPlugin { ...@@ -110,7 +110,7 @@ public class ModuleSwaggerApiListingReader implements ApiListingBuilderPlugin {
private Function<Api, Set<String>> tags(Class<?> clazz, List<SwaggerModuleConfig> configList) { private Function<Api, Set<String>> tags(Class<?> clazz, List<SwaggerModuleConfig> configList) {
String moduleName = configList.stream().filter(e -> e.getPackageList().stream().anyMatch(ee -> clazz.getName().contains(ee))).map(SwaggerModuleConfig::getModuleName).findFirst().orElse(""); String moduleName = configList.stream().filter(e -> e.getPackageList().stream().anyMatch(ee -> clazz.getName().equals(ee))).map(SwaggerModuleConfig::getModuleName).findFirst().orElse("");
return input -> { return input -> {
......
...@@ -75,7 +75,7 @@ public class ModuleSwaggerOperationTagsReader implements OperationBuilderPlugin ...@@ -75,7 +75,7 @@ public class ModuleSwaggerOperationTagsReader implements OperationBuilderPlugin
private Function<Api, Set<String>> tagsFromController(Class<?> clazz, List<SwaggerModuleConfig> configList) { private Function<Api, Set<String>> tagsFromController(Class<?> clazz, List<SwaggerModuleConfig> configList) {
String moduleName = configList.stream().filter(e -> e.getPackageList().stream().anyMatch(ee -> clazz.getName().contains(ee))).map(SwaggerModuleConfig::getModuleName).findFirst().orElse(""); String moduleName = configList.stream().filter(e -> e.getPackageList().stream().anyMatch(ee -> clazz.getName().equals(ee))).map(SwaggerModuleConfig::getModuleName).findFirst().orElse("");
return input -> { return input -> {
......
...@@ -8,7 +8,7 @@ public class HeaderConst { ...@@ -8,7 +8,7 @@ public class HeaderConst {
// public static final String PLATFORM_TOKEN = "platformToken"; // public static final String PLATFORM_TOKEN = "platformToken";
public static final String PLATFORM_TOKEN = "token"; public static final String PLATFORM_TOKEN = "token";
public static final String TOKEN = "token"; public static final String TOKEN = "token";
public static final String WECHAT_TOKEN = "wechatToken"; public static final String WECHAT_TOKEN = "token";
// public static final String CUSTOMER_TOKEN = "customerToken"; // public static final String CUSTOMER_TOKEN = "customerToken";
......
...@@ -94,7 +94,7 @@ public class RedisConst { ...@@ -94,7 +94,7 @@ public class RedisConst {
public static final String ALARM_DEVICE_ID = "alarm:device:id:"; public static final String ALARM_DEVICE_ID = "alarm:device:id:";
public static final String ALARM_CONFIG_ORG_ID = "alarm:config:org:id"; public static final String ALARM_CONFIG_ORG_ID = "alarm:config:org:id:";
public static final String PLAT_IOT_DEVICE_PREFIX = "plat:iot:device:"; public static final String PLAT_IOT_DEVICE_PREFIX = "plat:iot:device:";
......
...@@ -38,4 +38,10 @@ public class PlatRoleDTOVO extends BaseOrgDTO implements Serializable { ...@@ -38,4 +38,10 @@ public class PlatRoleDTOVO extends BaseOrgDTO implements Serializable {
@ApiModelProperty(value = "菜单集合") @ApiModelProperty(value = "菜单集合")
private List<PlatMenuDTOVO> menuList; private List<PlatMenuDTOVO> menuList;
private String code;
private String remark;
private String status;
} }
package com.makeit.module.iot.enums;
import com.makeit.enums.BaseEnum;
import com.makeit.utils.sys.SysDictUtil;
public class DeviceInfoContentBreatheEnum {
public enum PersonStateEnum implements BaseEnum {
NOBODY("device.breathe.personState.nobody"),//0
EXERCISE("device.breathe.personState.exercise"),//1
BREATHE("device.breathe.personState.breathe"),//2
ENTER("device.breathe.personState.enter");//3
private String code;
PersonStateEnum(String code) {
this.code = code;
}
public String getValue() {
return SysDictUtil.getValue(code);
}
}
}
...@@ -10,6 +10,8 @@ import com.makeit.module.iot.vo.DeviceInstanceEntity; ...@@ -10,6 +10,8 @@ import com.makeit.module.iot.vo.DeviceInstanceEntity;
import com.makeit.module.iot.vo.DeviceOperationLogEntity; import com.makeit.module.iot.vo.DeviceOperationLogEntity;
import com.makeit.module.iot.vo.IotPagerResult; import com.makeit.module.iot.vo.IotPagerResult;
import com.makeit.module.iot.vo.ResponseMessage; import com.makeit.module.iot.vo.ResponseMessage;
import com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe;
import com.makeit.module.iot.vo.breathe.DeviceInfoContentSpace;
import com.makeit.utils.data.convert.JsonUtil; import com.makeit.utils.data.convert.JsonUtil;
import com.makeit.utils.old.StringUtils; import com.makeit.utils.old.StringUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -17,6 +19,10 @@ import org.apache.commons.collections4.CollectionUtils; ...@@ -17,6 +19,10 @@ import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.io.IOException; import java.io.IOException;
import java.time.Duration;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.List; import java.util.List;
/** /**
...@@ -57,6 +63,7 @@ public class IotProductDeviceService extends IotCommonService { ...@@ -57,6 +63,7 @@ public class IotProductDeviceService extends IotCommonService {
/** /**
* 获取最新一条设备日志 * 获取最新一条设备日志
*
* @param deviceId * @param deviceId
* @return * @return
*/ */
...@@ -67,21 +74,56 @@ public class IotProductDeviceService extends IotCommonService { ...@@ -67,21 +74,56 @@ public class IotProductDeviceService extends IotCommonService {
/** /**
* 获取最新的一条设备属性上报的数据 * 获取最新的一条设备属性上报的数据
* @param deviceId
* @param typeValue 类型
* *
* 可以传 :reportProperty * @param deviceId
* @param typeValue 类型
* <p>
* 可以传 :reportProperty
* @return * @return
*/ */
public DeviceOperationLogEntity getLastDeviceLogByType(String deviceId,String typeValue) { public DeviceOperationLogEntity getLastDeviceLogByType(String deviceId, String typeValue) {
List<DeviceOperationLogEntity> deviceOperationLogEntities = getDeviceLog(deviceId, 1, typeValue); List<DeviceOperationLogEntity> deviceOperationLogEntities = getDeviceLog(deviceId, 1, typeValue);
return CollectionUtils.isNotEmpty(deviceOperationLogEntities) ? deviceOperationLogEntities.get(0) : null; return CollectionUtils.isNotEmpty(deviceOperationLogEntities) ? deviceOperationLogEntities.get(0) : null;
} }
public DeviceInfoContentBreathe getLastDeviceLogBreathe(String deviceId, Integer ignoreDuration) {//秒
DeviceOperationLogEntity deviceOperationLogEntity = getLastDeviceLogByType(deviceId, "reportProperty");
if (deviceOperationLogEntity == null) {
return null;
}
DeviceInfoContentBreathe breathe = JsonUtil.toObj((String) deviceOperationLogEntity.getContent(), DeviceInfoContentBreathe.class);
LocalDateTime time = LocalDateTime.ofInstant(Instant.ofEpochMilli(breathe.getTimestamp()), ZoneId.systemDefault());
if (ignoreDuration != null && Duration.between(time, LocalDateTime.now()).getSeconds() > ignoreDuration) {
return null;
}
return breathe;
}
public DeviceInfoContentSpace getLastDeviceLogSpace(String deviceId, Integer ignoreDuration) {//秒
DeviceOperationLogEntity deviceOperationLogEntity = getLastDeviceLogByType(deviceId, "reportProperty");
if (deviceOperationLogEntity == null) {
return null;
}
DeviceInfoContentSpace space = JsonUtil.toObj((String) deviceOperationLogEntity.getContent(), DeviceInfoContentSpace.class);
LocalDateTime time = LocalDateTime.ofInstant(Instant.ofEpochMilli(space.getTimestamp()), ZoneId.systemDefault());
if (ignoreDuration != null && Duration.between(time, LocalDateTime.now()).getSeconds() > ignoreDuration) {
return null;
}
return space;
}
/** /**
* * 根据类型查询设备日志
* 根据类型查询设备日志
* text: "事件上报", value: "event"} * text: "事件上报", value: "event"}
* {text: "读取属性", value: "readProperty"} * {text: "读取属性", value: "readProperty"}
* {text: "修改属性", value: "writeProperty"} * {text: "修改属性", value: "writeProperty"}
...@@ -124,8 +166,8 @@ public class IotProductDeviceService extends IotCommonService { ...@@ -124,8 +166,8 @@ public class IotProductDeviceService extends IotCommonService {
* @param typeValue * @param typeValue
* @return * @return
*/ */
public List<DeviceOperationLogEntity> getDeviceLogByType(String deviceId,String typeValue) { public List<DeviceOperationLogEntity> getDeviceLogByType(String deviceId, String typeValue) {
return getDeviceLog(deviceId, 10,typeValue); return getDeviceLog(deviceId, 10, typeValue);
} }
...@@ -212,7 +254,4 @@ public class IotProductDeviceService extends IotCommonService { ...@@ -212,7 +254,4 @@ public class IotProductDeviceService extends IotCommonService {
} }
} }
package com.makeit.module.iot.vo.breathe;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@NoArgsConstructor
@Data
public class DeviceInfoContentBreathe {
@JsonProperty("headers")
private Headers headers;
@JsonProperty("messageType")
private String messageType;
@JsonProperty("deviceId")
private String deviceId;
@JsonProperty("properties")
private Properties properties;
@JsonProperty("timestamp")
private Long timestamp;
@NoArgsConstructor
@Data
public static class Headers {
@JsonProperty("bindings")
private List<Bindings> bindings;
@JsonProperty("deviceName")
private String deviceName;
@JsonProperty("productName")
private String productName;
@JsonProperty("productId")
private String productId;
@JsonProperty("_uid")
private String uid;
@JsonProperty("creatorId")
private String creatorId;
@JsonProperty("traceparent")
private String traceparent;
@NoArgsConstructor
@Data
public static class Bindings {
@JsonProperty("id")
private String id;
@JsonProperty("type")
private String type;
}
}
@NoArgsConstructor
@Data
public static class Properties {
@JsonProperty("br")
private Integer br;
@JsonProperty("distance")
private Integer distance;
@JsonProperty("bodymove")
private Integer bodymove;
@JsonProperty("personState")
private Integer personState;
@JsonProperty("person")
private Integer person;
@JsonProperty("hr")
private Integer hr;
@JsonProperty("point")
private List<Integer> point;
}
}
package com.makeit.module.iot.vo.breathe;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
@NoArgsConstructor
@Data
public class DeviceInfoContentSpace {
@JsonProperty("headers")
private DeviceInfoContentBreathe.Headers headers;
@JsonProperty("messageType")
private String messageType;
@JsonProperty("deviceId")
private String deviceId;
@JsonProperty("properties")
private Properties properties;
@JsonProperty("timestamp")
private Long timestamp;
@NoArgsConstructor
@Data
public static class Properties {
@JsonProperty("mode")
private Integer mode;
@JsonProperty("distance")
private Integer distance;
@JsonProperty("personState")
private Integer personState;
@JsonProperty("angle")
private Integer angle;
@JsonProperty("mount")
private Integer mount;
}
}
package com.makeit.module.iot.vo.breathe;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
@NoArgsConstructor
@Data
public class Test1 {
@JsonProperty("id")
private String id;
@JsonProperty("deviceId")
private String deviceId;
@JsonProperty("productId")
private Object productId;
@JsonProperty("type")
private String type;
@JsonProperty("createTime")
private Long createTime;
@JsonProperty("content")
private String content;
@JsonProperty("messageId")
private Object messageId;
@JsonProperty("orgId")
private Object orgId;
@JsonProperty("timestamp")
private Long timestamp;
}
//TODO ywc
//DeviceOperationLogEntity ==> DeviceInfo
\ No newline at end of file
...@@ -41,7 +41,16 @@ public class SwaggerPlatformConfig { ...@@ -41,7 +41,16 @@ public class SwaggerPlatformConfig {
SwaggerModuleConfig config = new SwaggerModuleConfig(); SwaggerModuleConfig config = new SwaggerModuleConfig();
config.setPackageList(Arrays.asList("com.makeit.module.controller.wechat")); config.setPackageList(Arrays.asList("com.makeit.module.controller.wechat"));
config.setModuleName("微信端"); config.setModuleName("平台端小程序");
return config;
}
@Bean
public SwaggerModuleConfig childrenModule() {
SwaggerModuleConfig config = new SwaggerModuleConfig();
config.setPackageList(Arrays.asList("com.makeit.module.controller.children"));
config.setModuleName("子女端小程序");
return config; return config;
} }
...@@ -54,7 +63,7 @@ public class SwaggerPlatformConfig { ...@@ -54,7 +63,7 @@ public class SwaggerPlatformConfig {
ApiSelectorBuilder builder = docket.select(); ApiSelectorBuilder builder = docket.select();
//api过滤 //api过滤
builder = builder.apis( builder = builder.apis(
RequestHandlerSelectors.basePackage("com.makeit.module.controller") RequestHandlerSelectors.basePackage("com.makeit.module.controller.wechat")
); );
return builder.build(); return builder.build();
} }
...@@ -64,7 +73,7 @@ public class SwaggerPlatformConfig { ...@@ -64,7 +73,7 @@ public class SwaggerPlatformConfig {
Docket docket = new Docket(DocumentationType.SWAGGER_2) Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo()) .apiInfo(apiInfo())
.groupName("04-微信端"); .groupName("04-平台端小程序");
ApiSelectorBuilder builder = docket.select(); ApiSelectorBuilder builder = docket.select();
//api过滤 //api过滤
builder = builder.apis( builder = builder.apis(
...@@ -73,6 +82,20 @@ public class SwaggerPlatformConfig { ...@@ -73,6 +82,20 @@ public class SwaggerPlatformConfig {
return builder.build(); return builder.build();
} }
@Bean
public Docket childrenApi() {
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.groupName("04-子女端小程序");
ApiSelectorBuilder builder = docket.select();
//api过滤
builder = builder.apis(
RequestHandlerSelectors.basePackage("com.makeit.module.controller.children")
);
return builder.build();
}
private ApiInfo apiInfo() { private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("IOT文档") return new ApiInfoBuilder().title("IOT文档")
......
package com.makeit.module.controller.wechat.alarm; package com.makeit.module.controller.children.alarm;
import com.makeit.common.dto.BaseIdDTO; import com.makeit.common.dto.BaseIdDTO;
......
package com.makeit.module.controller.wechat.elder; package com.makeit.module.controller.children.elder;
import com.makeit.common.dto.BaseIdDTO; import com.makeit.common.dto.BaseIdDTO;
...@@ -25,10 +25,10 @@ import java.util.List; ...@@ -25,10 +25,10 @@ import java.util.List;
* @author eugene young * @author eugene young
* @since 2023-08-29 * @since 2023-08-29
*/ */
@Api(tags = "长者基本信息-子女端小程序") @Api(tags = "子女端小程序-长者基本信息")
@RestController @RestController
@RequestMapping("/children/elder") @RequestMapping("/children/elder")
public class PlatElderWechatController { public class PlatElderChildrenController {
@Autowired @Autowired
private PlatElderService platElderService; private PlatElderService platElderService;
......
package com.makeit.module.controller.wechat.elder; package com.makeit.module.controller.children.elder;
import com.makeit.common.response.ApiResponseEntity; import com.makeit.common.response.ApiResponseEntity;
...@@ -21,10 +21,10 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -21,10 +21,10 @@ import org.springframework.web.bind.annotation.RestController;
* @author eugene young * @author eugene young
* @since 2023-08-29 * @since 2023-08-29
*/ */
@Api(tags = "长者子女账号-子女端小程序") @Api(tags = "子女端小程序-长者子女账号")
@RestController @RestController
@RequestMapping("/children/elder/children-info") @RequestMapping("/children/elder/children-info")
public class PlatElderChildrenInfoWechatController { public class PlatElderChildrenInfoChildrenController {
@Autowired @Autowired
private PlatElderChildrenInfoService platElderChildrenInfoService; private PlatElderChildrenInfoService platElderChildrenInfoService;
......
package com.makeit.module.controller.wechat.elder; package com.makeit.module.controller.children.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;
...@@ -13,10 +13,10 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -13,10 +13,10 @@ 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;
@Api(tags = "企微端-登录") @Api(tags = "子女端小程序-登录")
@RestController @RestController
@RequestMapping("/children/login") @RequestMapping("/children/login")
public class PlatElderChildrenInfoUserLoginWechatController { public class PlatElderChildrenInfoUserLoginChildrenController {
@Autowired @Autowired
private PlatElderChildrenInfoUserLoginWechatService platElderChildrenInfoUserLoginWechatService; private PlatElderChildrenInfoUserLoginWechatService platElderChildrenInfoUserLoginWechatService;
......
package com.makeit.module.controller.children.elder;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.elder.PlatElderIdDTO;
import com.makeit.service.platform.elder.PlatElderRealTimeService;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeBodyVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeNowVO;
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;
import java.util.List;
/**
* <p>
* 长者基本信息 前端控制器
* </p>
*
* @author eugene young
* @since 2023-08-29
*/
@Api(tags = "子女端小程序-长者实时监测")
@RestController
@RequestMapping("/children/elder/realTime")
public class PlatElderRealTimeChildrenController {
@Autowired
private PlatElderRealTimeService platElderRealTimeService;
@ApiOperation("现在状态")
@PostMapping("nowStatus")
public ApiResponseEntity<PlatElderRealTimeNowVO> nowStatus(@RequestBody PlatElderIdDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderRealTimeService.nowStatus(platElderIdDTO));
}
@ApiOperation("心率呼吸率")
@PostMapping("heartRespiratory")
public ApiResponseEntity<PlatElderRealTimeHeartRespiratoryVO> heartRespiratory(@RequestBody PlatElderIdDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderRealTimeService.heartRespiratory(platElderIdDTO));
}
@ApiOperation("体动")
@PostMapping("body")
public ApiResponseEntity<PlatElderRealTimeBodyVO> body(@RequestBody PlatElderIdDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderRealTimeService.body(platElderIdDTO));
}
@ApiOperation("坐标")
@PostMapping("coordinate")
public ApiResponseEntity<List<PlatElderCoordinateVO>> coordinate(@RequestBody PlatElderIdDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderRealTimeService.coordinate(platElderIdDTO));
}
//TODO ywc 少一个坐标
}
package com.makeit.module.controller.children.org;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.entity.platform.auth.PlatOrg;
import com.makeit.global.annotation.Action;
import com.makeit.service.platform.auth.PlatOrgService;
import com.makeit.vo.platform.auth.PlatOrgQueryDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
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;
import java.util.List;
@Api(tags = "子女端-组织")
@RestController
@RequestMapping("/children/plat/org")
public class PlatOrgChildrenController {
@Autowired
private PlatOrgService platOrgService;
@Action(module = "平台端-组织", name = "分页列表", code = "plat:org:page")
@ApiOperation("树形列表")
@PostMapping("page")
public ApiResponseEntity<PageVO<PlatOrg>> page(@RequestBody PageReqDTO<PlatOrgQueryDTO> pageReqDTO){
return ApiResponseUtils.success(platOrgService.page(pageReqDTO));
}
@Action(module = "平台端-组织", name = "不分页列表", code = "plat:org:list")
@ApiOperation("树形列表")
@PostMapping("list")
public ApiResponseEntity<List<PlatOrg>> list(@RequestBody PlatOrgQueryDTO platOrgQueryDTO){
return ApiResponseUtils.success(platOrgService.subOrgList(platOrgQueryDTO));
}
@Action(module = "平台端-组织", name = "新增", code = "plat:org:add")
@ApiOperation("新增")
@PostMapping("add")
public ApiResponseEntity<String> add(@Validated @RequestBody PlatOrg tntDept){
return ApiResponseUtils.success(platOrgService.add(tntDept));
}
@Action(module = "平台端-组织", name = "编辑", code = "plat:org:edit")
@ApiOperation("编辑")
@PostMapping("edit")
public ApiResponseEntity<Void> edit(@Validated @RequestBody PlatOrg tntDept){
platOrgService.edit(tntDept);
return ApiResponseUtils.success();
}
@Action(module = "平台端-组织", name = "详情", code = "plat:org:view")
@ApiOperation("详情")
@PostMapping("view")
public ApiResponseEntity<PlatOrg> view(@RequestBody BaseIdDTO baseIdDTO){
return ApiResponseUtils.success(platOrgService.view(baseIdDTO.getId()));
}
@Action(module = "平台端-组织", name = "删除", code = "plat:org:del")
@ApiOperation("删除")
@PostMapping("del")
public ApiResponseEntity<PlatOrg> del(@RequestBody BaseIdDTO baseIdDTO){
platOrgService.del(baseIdDTO.getId());
return ApiResponseUtils.success();
}
@ApiOperation("当前账号的权限级别树")
@PostMapping("belongToScopeTree")
public ApiResponseEntity<List<PlatOrg>> belongToScopeTree(@RequestBody PlatOrg param){
return ApiResponseUtils.success(platOrgService.belongToOrgTree(param));
}
@ApiOperation("启用|禁用")
@PostMapping("enable")
public ApiResponseEntity<Void> enable(@RequestBody PlatOrg param){
platOrgService.enable(param);
return ApiResponseUtils.success();
}
}
...@@ -61,7 +61,7 @@ public class DataScreenController { ...@@ -61,7 +61,7 @@ public class DataScreenController {
@ApiOperation("地图统计") @ApiOperation("地图统计")
@PostMapping("mapStatistics") @PostMapping("mapStatistics")
public ApiResponseEntity<PlatMapStatisticsVO> mapStatistics(@RequestBody PlatDataScreenQueryDTO dto) { public ApiResponseEntity<List<PlatMapStatisticsVO>> mapStatistics(@RequestBody PlatDataScreenQueryDTO dto) {
return ApiResponseUtils.success(dataScreenService.mapStatistics(dto)); return ApiResponseUtils.success(dataScreenService.mapStatistics(dto));
} }
} }
...@@ -2,17 +2,23 @@ package com.makeit.module.controller.elder; ...@@ -2,17 +2,23 @@ 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.dto.platform.elder.PlatElderIdDTO; import com.makeit.dto.platform.elder.PlatElderIdDTO;
import com.makeit.service.platform.elder.PlatElderRealTimeService;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeBodyVO; import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeBodyVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO; import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeNowVO; import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeNowVO;
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.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; 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;
/** /**
* <p> * <p>
* 长者基本信息 前端控制器 * 长者基本信息 前端控制器
...@@ -26,24 +32,34 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -26,24 +32,34 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/plat/elder/realTime") @RequestMapping("/plat/elder/realTime")
public class PlatElderRealTimeController { public class PlatElderRealTimeController {
@Autowired
private PlatElderRealTimeService platElderRealTimeService;
@ApiOperation("现在状态") @ApiOperation("现在状态")
@PostMapping("nowStatus") @PostMapping("nowStatus")
public ApiResponseEntity<PlatElderRealTimeNowVO> nowStatus(@RequestBody PlatElderIdDTO platElderIdDTO) { public ApiResponseEntity<PlatElderRealTimeNowVO> nowStatus(@RequestBody PlatElderIdDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderRealTimeService.nowStatus(platElderIdDTO));
} }
@ApiOperation("心率呼吸率") @ApiOperation("心率呼吸率")
@PostMapping("heartRespiratory") @PostMapping("heartRespiratory")
public ApiResponseEntity<PlatElderRealTimeHeartRespiratoryVO> heartRespiratory(@RequestBody PlatElderIdDTO platElderIdDTO) { public ApiResponseEntity<PlatElderRealTimeHeartRespiratoryVO> heartRespiratory(@RequestBody PlatElderIdDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderRealTimeService.heartRespiratory(platElderIdDTO));
} }
@ApiOperation("体动") @ApiOperation("体动")
@PostMapping("body") @PostMapping("body")
public ApiResponseEntity<PlatElderRealTimeBodyVO> body(@RequestBody PlatElderIdDTO platElderIdDTO) { public ApiResponseEntity<PlatElderRealTimeBodyVO> body(@RequestBody PlatElderIdDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderRealTimeService.body(platElderIdDTO));
} }
@ApiOperation("坐标")
@PostMapping("coordinate")
public ApiResponseEntity<List<PlatElderCoordinateVO>> coordinate(@RequestBody PlatElderIdDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderRealTimeService.coordinate(platElderIdDTO));
}
//TODO ywc 少一个坐标 //TODO ywc 少一个坐标
} }
......
...@@ -3,6 +3,7 @@ package com.makeit.module.controller.elder; ...@@ -3,6 +3,7 @@ package com.makeit.module.controller.elder;
import com.makeit.common.response.ApiResponseEntity; import com.makeit.common.response.ApiResponseEntity;
import com.makeit.dto.platform.elder.PlatElderIdDTO; import com.makeit.dto.platform.elder.PlatElderIdDTO;
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.*; import com.makeit.vo.platform.elder.report.day.*;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -59,7 +60,7 @@ public class PlatElderReportDayController { ...@@ -59,7 +60,7 @@ public class PlatElderReportDayController {
@ApiOperation("心率呼吸率") @ApiOperation("心率呼吸率")
@PostMapping("heartRespiratory") @PostMapping("heartRespiratory")
public ApiResponseEntity<PlatElderRealTimeHeartRespiratoryVO> heartRespiratory(@RequestBody PlatElderIdDTO platElderIdDTO) { public ApiResponseEntity<List<PlatElderRealTimeHeartRespiratoryVO>> heartRespiratory(@RequestBody PlatElderIdDTO platElderIdDTO) {
return null; return null;
} }
......
...@@ -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.dto.platform.elder.PlatElderIdDTO; import com.makeit.dto.platform.elder.PlatElderIdDTO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO; import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.report.week.PlatElderComprehensiveEvaluationVO; import com.makeit.vo.platform.elder.report.week.PlatElderComprehensiveEvaluationVO;
import com.makeit.vo.platform.elder.report.day.*; import com.makeit.vo.platform.elder.report.day.*;
import com.makeit.vo.platform.elder.report.week.PlatElderRealTimeHeartRespiratoryWeekVO; import com.makeit.vo.platform.elder.report.week.PlatElderRealTimeHeartRespiratoryWeekVO;
......
...@@ -8,7 +8,7 @@ import com.makeit.common.response.ApiResponseEntity; ...@@ -8,7 +8,7 @@ import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils; import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.alarm.PlatAlarmRecordQueryDTO; import com.makeit.dto.platform.alarm.PlatAlarmRecordQueryDTO;
import com.makeit.service.platform.alarm.PlatAlarmRecordService; import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.utils.user.wechat.WechatUserUtil; import com.makeit.utils.user.common.CommonUserUtil;
import com.makeit.vo.platform.alarm.PlatAlarmRecordVO; import com.makeit.vo.platform.alarm.PlatAlarmRecordVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -18,7 +18,7 @@ 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;
@Api(tags = "小程序-告警记录") @Api(tags = "平台端小程序-告警记录")
@RestController @RestController
@RequestMapping("/wechat/plat/alarm-record") @RequestMapping("/wechat/plat/alarm-record")
public class PlatAlarmRecordWechatController { public class PlatAlarmRecordWechatController {
...@@ -30,7 +30,7 @@ public class PlatAlarmRecordWechatController { ...@@ -30,7 +30,7 @@ public class PlatAlarmRecordWechatController {
@PostMapping("page") @PostMapping("page")
public ApiResponseEntity<PageVO<PlatAlarmRecordVO>> page(@RequestBody PageReqDTO<PlatAlarmRecordQueryDTO> dto) { public ApiResponseEntity<PageVO<PlatAlarmRecordVO>> page(@RequestBody PageReqDTO<PlatAlarmRecordQueryDTO> dto) {
//小程序告警记录只看到发给自己的告警 //小程序告警记录只看到发给自己的告警
String userId = WechatUserUtil.getUserId(); String userId = CommonUserUtil.getUserId();
PlatAlarmRecordQueryDTO data = dto.getData(); PlatAlarmRecordQueryDTO data = dto.getData();
data.setNotifyUser(userId); data.setNotifyUser(userId);
return ApiResponseUtils.success(platAlarmRecordService.page(dto)); return ApiResponseUtils.success(platAlarmRecordService.page(dto));
......
...@@ -29,7 +29,7 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -29,7 +29,7 @@ import org.springframework.web.bind.annotation.RestController;
* @author eugene young * @author eugene young
* @since 2023-09-05 * @since 2023-09-05
*/ */
@Api(tags = "设备-小程序") @Api(tags = "平台端小程序-设备")
@RestController @RestController
@RequestMapping("/wechat/plat/device") @RequestMapping("/wechat/plat/device")
public class PlatDeviceWechatController { public class PlatDeviceWechatController {
......
package com.makeit.module.controller.workstation; package com.makeit.module.controller.workstation;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.dataScreen.PlatDataScreenQueryDTO;
import com.makeit.dto.platform.workstation.WorkStationQueryDTO;
import com.makeit.service.platform.workstation.WorkStationService;
import com.makeit.vo.platform.dataScreen.PlatAgeStatisticsVO;
import com.makeit.vo.platform.workstation.WorkStationStatisticsVO;
import io.swagger.annotations.Api; 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.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
...@@ -9,5 +20,13 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -9,5 +20,13 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/plat/workstation") @RequestMapping("/plat/workstation")
public class WorkStationController { public class WorkStationController {
@Autowired
private WorkStationService workStationService;
@ApiOperation("统计")
@PostMapping("statistics")
public ApiResponseEntity<WorkStationStatisticsVO> statistics(@RequestBody WorkStationQueryDTO dto) {
return ApiResponseUtils.success(workStationService.statistics(dto));
}
} }
...@@ -28,4 +28,5 @@ public class PlatDataScreenQueryDTO { ...@@ -28,4 +28,5 @@ public class PlatDataScreenQueryDTO {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("结束时间") @ApiModelProperty("结束时间")
private LocalDateTime endTime; private LocalDateTime endTime;
} }
package com.makeit.dto.platform.workstation;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
/**
* Controller
*
* @author zm
* @version 2023/9/11
*/
@Data
@ApiModel("PlatDataScreenQueryDto参数")
public class WorkStationQueryDTO {
@ApiModelProperty("组织ids")
private List<String> orgIds;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("开始时间")
private LocalDateTime startTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("结束时间")
private LocalDateTime endTime;
@ApiModelProperty("长者姓名")
private String elderName;
@ApiModelProperty("空间ids")
private List<String> spaceIds;
@ApiModelProperty("告警类型")
private String type;
}
...@@ -33,4 +33,8 @@ public class PlatRole extends BaseBusEntity { ...@@ -33,4 +33,8 @@ public class PlatRole extends BaseBusEntity {
private String dataScope; private String dataScope;
private String orgId; private String orgId;
private String code;
private String status;
} }
\ No newline at end of file
...@@ -72,5 +72,8 @@ public class PlatDevice extends BaseBusEntity { ...@@ -72,5 +72,8 @@ public class PlatDevice extends BaseBusEntity {
@ApiModelProperty(value = "设备类型 0-呼吸心率雷达 1-空间人体雷达 2-跌倒检测雷达") @ApiModelProperty(value = "设备类型 0-呼吸心率雷达 1-空间人体雷达 2-跌倒检测雷达")
private String category; private String category;
private LocalDateTime startDate;
private LocalDateTime endDate;
} }
...@@ -8,6 +8,8 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -8,6 +8,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
/** /**
* <p> * <p>
* 长者基本信息 * 长者基本信息
...@@ -186,5 +188,11 @@ public class PlatElder extends BaseBusEntity { ...@@ -186,5 +188,11 @@ public class PlatElder extends BaseBusEntity {
@ApiModelProperty(value = "组织路径") @ApiModelProperty(value = "组织路径")
private String orgPath; private String orgPath;
@ApiModelProperty(value = "入住时间")
private LocalDateTime checkInTime;
@ApiModelProperty(value = "退住时间")
private LocalDateTime checkOutTime;
} }
...@@ -56,5 +56,5 @@ public interface PlatAlarmRecordService extends IService<PlatAlarmRecord> { ...@@ -56,5 +56,5 @@ public interface PlatAlarmRecordService extends IService<PlatAlarmRecord> {
PlatAlarmRecord createPlatAlarmRecord(PlatAlarmCheckDTO platAlarmCheckDTO); PlatAlarmRecord createPlatAlarmRecord(PlatAlarmCheckDTO platAlarmCheckDTO);
PlatAlarmCheckDTO getElderListByDeviceId(PlatAlarmCheckDTO platAlarmCheckDTO); void getElderListByDeviceId(PlatAlarmCheckDTO platAlarmCheckDTO);
} }
package com.makeit.service.platform.alarm.alarmStrategy; package com.makeit.service.platform.alarm.alarmStrategy;
import cn.hutool.core.convert.Convert;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.makeit.dto.platform.alarm.PlatAlarmCheckDTO; import com.makeit.dto.platform.alarm.PlatAlarmCheckDTO;
import com.makeit.dto.platform.alarm.PlatAlarmConfigBehaviorDTOVO; import com.makeit.dto.platform.alarm.PlatAlarmConfigBehaviorDTOVO;
...@@ -46,7 +47,7 @@ public class BehaviorAlarm implements IAlarm{ ...@@ -46,7 +47,7 @@ public class BehaviorAlarm implements IAlarm{
if (StringUtils.isBlank(ruleConfigStr)) { if (StringUtils.isBlank(ruleConfigStr)) {
return; return;
} }
String personState = (String) properties.get("personState"); String personState = Convert.toStr(properties.get("personState"));
PlatAlarmConfigBehaviorDTOVO ruleConfig = JsonUtil.toObj(ruleConfigStr, PlatAlarmConfigBehaviorDTOVO.class); PlatAlarmConfigBehaviorDTOVO ruleConfig = JsonUtil.toObj(ruleConfigStr, PlatAlarmConfigBehaviorDTOVO.class);
Integer duration = ruleConfig.getDuration(); Integer duration = ruleConfig.getDuration();
duration = duration*60; duration = duration*60;
......
package com.makeit.service.platform.alarm.alarmStrategy; package com.makeit.service.platform.alarm.alarmStrategy;
import cn.hutool.core.convert.Convert;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.makeit.dto.platform.alarm.PlatAlarmCheckDTO; import com.makeit.dto.platform.alarm.PlatAlarmCheckDTO;
import com.makeit.dto.platform.alarm.PlatAlarmConfigRespiratoryDTOVO; import com.makeit.dto.platform.alarm.PlatAlarmConfigRespiratoryDTOVO;
...@@ -48,7 +49,7 @@ public class BreathAlarm implements IAlarm{ ...@@ -48,7 +49,7 @@ public class BreathAlarm implements IAlarm{
if (StringUtils.isBlank(ruleConfigStr)) { if (StringUtils.isBlank(ruleConfigStr)) {
return; return;
} }
String personState = (String) properties.get("personState"); String personState = Convert.toStr(properties.get("personState"));
//呼吸率 //呼吸率
int br = (int) properties.get("br"); int br = (int) properties.get("br");
......
package com.makeit.service.platform.alarm.alarmStrategy; package com.makeit.service.platform.alarm.alarmStrategy;
import cn.hutool.core.convert.Convert;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.makeit.dto.platform.alarm.PlatAlarmCheckDTO; import com.makeit.dto.platform.alarm.PlatAlarmCheckDTO;
import com.makeit.entity.platform.alarm.PlatAlarmRecord; import com.makeit.entity.platform.alarm.PlatAlarmRecord;
import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.entity.platform.space.PlatRoom;
import com.makeit.enums.platform.alarm.PlatAlarmConfigEnum; import com.makeit.enums.platform.alarm.PlatAlarmConfigEnum;
import com.makeit.service.platform.alarm.PlatAlarmRecordService; import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Component @Component
public class FallAlarm implements IAlarm{ public class FallAlarm implements IAlarm{
@Autowired @Autowired
...@@ -29,18 +35,27 @@ public class FallAlarm implements IAlarm{ ...@@ -29,18 +35,27 @@ public class FallAlarm implements IAlarm{
@Override @Override
public void checkConfig(PlatAlarmCheckDTO platAlarmCheckDTO) { public void checkConfig(PlatAlarmCheckDTO platAlarmCheckDTO) {
JSONObject properties = platAlarmCheckDTO.getProperties(); JSONObject properties = platAlarmCheckDTO.getProperties();
String personState = (String) properties.get("personState"); String personState = Convert.toStr(properties.get("personState"));
if (StringUtils.equals(personState, "1")) { if (StringUtils.equals(personState, "1")) {
notice(platAlarmCheckDTO); notice(platAlarmCheckDTO);
} }
} }
@Override @Override
@Async
public void notice(PlatAlarmCheckDTO platAlarmCheckDTO) { public void notice(PlatAlarmCheckDTO platAlarmCheckDTO) {
platAlarmRecordService.getElderListByDeviceId(platAlarmCheckDTO); platAlarmRecordService.getElderListByDeviceId(platAlarmCheckDTO);
platAlarmCheckDTO.getParam().add("房间名111"); List<PlatElder> platElderList = platAlarmCheckDTO.getPlatElderList();
PlatAlarmRecord platAlarmRecord = platAlarmRecordService.createPlatAlarmRecord(platAlarmCheckDTO); if(CollectionUtils.isEmpty(platElderList)){
platAlarmRecordService.noticeDeviceAlarm(platAlarmCheckDTO.getPlatAlarmConfig(),platAlarmRecord); return;
}
PlatRoom platRoom = platAlarmCheckDTO.getPlatRoom();
for (PlatElder platElder : platElderList) {
List<String> param = new ArrayList<>();
param.add(platElder.getName());
param.add(platRoom.getName());
platAlarmCheckDTO.setParam(param);
PlatAlarmRecord platAlarmRecord = platAlarmRecordService.createPlatAlarmRecord(platAlarmCheckDTO);
platAlarmRecordService.noticeDeviceAlarm(platAlarmCheckDTO.getPlatAlarmConfig(),platAlarmRecord);
}
} }
} }
package com.makeit.service.platform.alarm.alarmStrategy; package com.makeit.service.platform.alarm.alarmStrategy;
import cn.hutool.core.convert.Convert;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.makeit.dto.platform.alarm.PlatAlarmCheckDTO; import com.makeit.dto.platform.alarm.PlatAlarmCheckDTO;
import com.makeit.dto.platform.alarm.PlatAlarmConfigHeartDTOVO; import com.makeit.dto.platform.alarm.PlatAlarmConfigHeartDTOVO;
...@@ -40,7 +41,7 @@ public class HeartAlarm implements IAlarm { ...@@ -40,7 +41,7 @@ public class HeartAlarm implements IAlarm {
if (StringUtils.isBlank(ruleConfigStr)) { if (StringUtils.isBlank(ruleConfigStr)) {
return; return;
} }
String personState = (String) properties.get("personState"); String personState = Convert.toStr(properties.get("personState"));
//心率 //心率
int hr = (int) properties.get("hr"); int hr = (int) properties.get("hr");
PlatAlarmConfigHeartDTOVO ruleConfig = JsonUtil.toObj(ruleConfigStr, PlatAlarmConfigHeartDTOVO.class); PlatAlarmConfigHeartDTOVO ruleConfig = JsonUtil.toObj(ruleConfigStr, PlatAlarmConfigHeartDTOVO.class);
......
...@@ -255,6 +255,9 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -255,6 +255,9 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
platUserList.addAll(platUsers); platUserList.addAll(platUsers);
} else { } else {
String notifyUser = alarmConfig.getNotifyUser(); String notifyUser = alarmConfig.getNotifyUser();
if(StringUtils.isBlank(notifyUser)){
throw new BusinessException("告警内部人员未配置,告警配置id:"+alarmConfig.getId());
}
String[] userArray = notifyUser.split(","); String[] userArray = notifyUser.split(",");
List<PlatUser> platUsers = platUserService.listByIds(Arrays.asList(userArray)); List<PlatUser> platUsers = platUserService.listByIds(Arrays.asList(userArray));
platUserList.addAll(platUsers); platUserList.addAll(platUsers);
...@@ -322,23 +325,25 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -322,23 +325,25 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
@Override @Override
public PlatAlarmCheckDTO getElderListByDeviceId(PlatAlarmCheckDTO platAlarmCheckDTO) { public void getElderListByDeviceId(PlatAlarmCheckDTO platAlarmCheckDTO) {
PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice(); PlatDevice platDevice = platAlarmCheckDTO.getPlatDevice();
LambdaQueryWrapper<PlatRoomBedDevice> roomBedDeviceLambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlatRoomBedDevice> roomBedDeviceLambdaQueryWrapper = new LambdaQueryWrapper<>();
roomBedDeviceLambdaQueryWrapper.eq(PlatRoomBedDevice::getDeviceId, platDevice.getId()); roomBedDeviceLambdaQueryWrapper.eq(PlatRoomBedDevice::getDeviceId, platDevice.getId());
PlatRoomBedDevice platRoomBedDevice = platRoomBedDeviceService.getOne(roomBedDeviceLambdaQueryWrapper, false); PlatRoomBedDevice platRoomBedDevice = platRoomBedDeviceService.getOne(roomBedDeviceLambdaQueryWrapper, false);
if(platRoomBedDevice==null){
throw new BusinessException("设备没绑定房间:"+platDevice.getId());
}
PlatRoom platRoom = platRoomService.getById(platRoomBedDevice.getRoomId()); PlatRoom platRoom = platRoomService.getById(platRoomBedDevice.getRoomId());
platAlarmCheckDTO.setPlatRoom(platRoom); platAlarmCheckDTO.setPlatRoom(platRoom);
if (platRoomBedDevice == null) {
return platAlarmCheckDTO;
}
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);
List<PlatElder> list = platElderService.list(elderLambdaQueryWrapper); List<PlatElder> list = platElderService.list(elderLambdaQueryWrapper);
platAlarmCheckDTO.setPlatElderList(list); platAlarmCheckDTO.setPlatElderList(list);
return platAlarmCheckDTO; if(CollectionUtils.isEmpty(list)){
throw new BusinessException("床位没人");
}
} }
String roomId = platRoomBedDevice.getRoomId(); String roomId = platRoomBedDevice.getRoomId();
...@@ -347,9 +352,10 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe ...@@ -347,9 +352,10 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
elderLambdaQueryWrapper.eq(PlatElder::getRoomId, roomId); elderLambdaQueryWrapper.eq(PlatElder::getRoomId, roomId);
List<PlatElder> list = platElderService.list(elderLambdaQueryWrapper); List<PlatElder> list = platElderService.list(elderLambdaQueryWrapper);
platAlarmCheckDTO.setPlatElderList(list); platAlarmCheckDTO.setPlatElderList(list);
return platAlarmCheckDTO; if(CollectionUtils.isEmpty(list)) {
throw new BusinessException("房间没人");
}
} }
return platAlarmCheckDTO;
} }
private String replaceParam(String oriContent,List<String> param) { private String replaceParam(String oriContent,List<String> param) {
......
...@@ -276,9 +276,6 @@ public class PlatOrgServiceImpl extends ServiceImpl<PlatOrgMapper, PlatOrg> ...@@ -276,9 +276,6 @@ public class PlatOrgServiceImpl extends ServiceImpl<PlatOrgMapper, PlatOrg>
check(dto); check(dto);
dto.setTenantId(TenantIdUtil.getTenantId()); dto.setTenantId(TenantIdUtil.getTenantId());
if (StringUtils.isBlank(dto.getParentId())) { if (StringUtils.isBlank(dto.getParentId())) {
String tenantId = TenantIdUtil.getTenantId();
dto.setParentId(tenantId);
dto.setPath(tenantId);
} else { } else {
PlatOrg parent = getById(dto.getParentId()); PlatOrg parent = getById(dto.getParentId());
dto.setPath(parent.getPath() + "," + parent.getId()); dto.setPath(parent.getPath() + "," + parent.getId());
...@@ -302,9 +299,6 @@ public class PlatOrgServiceImpl extends ServiceImpl<PlatOrgMapper, PlatOrg> ...@@ -302,9 +299,6 @@ public class PlatOrgServiceImpl extends ServiceImpl<PlatOrgMapper, PlatOrg>
public void edit(PlatOrg dto) { public void edit(PlatOrg dto) {
check(dto); check(dto);
if (StringUtils.isBlank(dto.getParentId())||StringUtils.equals(dto.getParentId(),"1")) { if (StringUtils.isBlank(dto.getParentId())||StringUtils.equals(dto.getParentId(),"1")) {
String tenantId = TenantIdUtil.getTenantId();
dto.setParentId(tenantId);
dto.setPath(tenantId);
} else { } else {
PlatOrg parent = getById(dto.getParentId()); PlatOrg parent = getById(dto.getParentId());
dto.setPath(parent.getPath() + "," + parent.getId()); dto.setPath(parent.getPath() + "," + parent.getId());
...@@ -521,6 +515,7 @@ public class PlatOrgServiceImpl extends ServiceImpl<PlatOrgMapper, PlatOrg> ...@@ -521,6 +515,7 @@ public class PlatOrgServiceImpl extends ServiceImpl<PlatOrgMapper, PlatOrg>
queryWrapper.eq(StringUtils.isNotBlank(dto.getParentId()), PlatOrg::getParentId, dto.getParentId()) queryWrapper.eq(StringUtils.isNotBlank(dto.getParentId()), PlatOrg::getParentId, dto.getParentId())
.like(StringUtils.isNotBlank(dto.getName()),PlatOrg::getName,dto.getName()) .like(StringUtils.isNotBlank(dto.getName()),PlatOrg::getName,dto.getName())
.eq(StringUtils.isNotBlank(dto.getType()),PlatOrg::getType,dto.getType()) .eq(StringUtils.isNotBlank(dto.getType()),PlatOrg::getType,dto.getType())
.eq(StringUtils.isNotBlank(dto.getStatus()),PlatOrg::getStatus,dto.getStatus())
.orderByDesc(BaseEntity::getUpdateDate); .orderByDesc(BaseEntity::getUpdateDate);
return queryWrapper; return queryWrapper;
} }
......
...@@ -229,7 +229,7 @@ implements PlatRoleService { ...@@ -229,7 +229,7 @@ implements PlatRoleService {
throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR); throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR);
} }
PlatRole role = getById(dto.getId()); PlatRole role = getById(dto.getId());
role.setStatus(dto.getStatus());
updateById(role); updateById(role);
} }
......
...@@ -466,7 +466,7 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser> ...@@ -466,7 +466,7 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
private void setRoleMenuToRedis(PlatUserLoginVO userLoginVO) { private void setRoleMenuToRedis(PlatUserLoginVO userLoginVO) {
PlatUserRoleMenuRedisVO tntUserRoleMenuRedisVO = new PlatUserRoleMenuRedisVO(); PlatUserRoleMenuRedisVO tntUserRoleMenuRedisVO = new PlatUserRoleMenuRedisVO();
tntUserRoleMenuRedisVO.setId(userLoginVO.getId()); tntUserRoleMenuRedisVO.setId(userLoginVO.getId());
tntUserRoleMenuRedisVO.setIsTenant(tntUserRoleMenuRedisVO.getIsTenant()); tntUserRoleMenuRedisVO.setIsTenant(userLoginVO.getIsTenant());
if (userLoginVO.getRoleList() != null) { if (userLoginVO.getRoleList() != null) {
tntUserRoleMenuRedisVO.setRoleCodeList(StreamUtil.map(userLoginVO.getRoleList(), PlatRoleDTOVO::getId)); tntUserRoleMenuRedisVO.setRoleCodeList(StreamUtil.map(userLoginVO.getRoleList(), PlatRoleDTOVO::getId));
} }
......
...@@ -22,5 +22,5 @@ public interface DataScreenService { ...@@ -22,5 +22,5 @@ public interface DataScreenService {
PlatBaseInfoStatisticsVO baseInfoStatistics(PlatDataScreenQueryDTO dto); PlatBaseInfoStatisticsVO baseInfoStatistics(PlatDataScreenQueryDTO dto);
PlatMapStatisticsVO mapStatistics(PlatDataScreenQueryDTO dto); List<PlatMapStatisticsVO> mapStatistics(PlatDataScreenQueryDTO dto);
} }
...@@ -36,6 +36,7 @@ import org.springframework.stereotype.Service; ...@@ -36,6 +36,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -136,23 +137,25 @@ public class DataScreenServiceImpl implements DataScreenService { ...@@ -136,23 +137,25 @@ public class DataScreenServiceImpl implements DataScreenService {
if(StringUtil.isNotEmpty(record.getElderIds())){ if(StringUtil.isNotEmpty(record.getElderIds())){
List<String> elderIds = Arrays.asList(record.getElderIds().split(",")); List<String> elderIds = Arrays.asList(record.getElderIds().split(","));
PlatAlarmStatisticsListVo listVo = new PlatAlarmStatisticsListVo(); PlatAlarmStatisticsListVo listVo = new PlatAlarmStatisticsListVo();
String elderName = "";
for (String elderId : elderIds){ for (String elderId : elderIds){
if(elderNameMap.get(elderId)!=null){ if(elderNameMap.get(elderId)!=null){
listVo.setElderName(elderNameMap.get(elderId)); elderName = "".equals(elderName) ? elderNameMap.get(elderId) : elderName + "," + elderNameMap.get(elderId);
} }
listVo.setType(record.getAlarmType());
if(PlatAlarmConfigEnum.AlarmTypeEnum.HEART.getValue().equals(record.getAlarmType()) ||
PlatAlarmConfigEnum.AlarmTypeEnum.BREATHE.getValue().equals(record.getAlarmType()) ){
}
totla ++;
if(PlatAlarmRecordEnum.AlarmRecordStatusEnum.HANDLED.getValue().equals(record.getStatus())){
handledNumber ++;
}else {
unhandledNumber ++;
}
list.add(listVo);
} }
if(PlatAlarmConfigEnum.AlarmTypeEnum.HEART.getValue().equals(record.getAlarmType()) ||
PlatAlarmConfigEnum.AlarmTypeEnum.BREATHE.getValue().equals(record.getAlarmType()) ){
}
listVo.setElderName(elderName);
listVo.setType(record.getAlarmType());
totla ++;
if(PlatAlarmRecordEnum.AlarmRecordStatusEnum.HANDLED.getValue().equals(record.getStatus())){
handledNumber ++;
}else {
unhandledNumber ++;
}
list.add(listVo);
} }
} }
PlatAlarmStatisticsVO vo = new PlatAlarmStatisticsVO(); PlatAlarmStatisticsVO vo = new PlatAlarmStatisticsVO();
...@@ -183,36 +186,82 @@ public class DataScreenServiceImpl implements DataScreenService { ...@@ -183,36 +186,82 @@ public class DataScreenServiceImpl implements DataScreenService {
} }
@Override @Override
public PlatMapStatisticsVO mapStatistics(PlatDataScreenQueryDTO dto) { public List<PlatMapStatisticsVO> mapStatistics(PlatDataScreenQueryDTO dto) {
PlatMapStatisticsVO vo = new PlatMapStatisticsVO(); List<PlatMapStatisticsVO> list = new ArrayList<>();
List<PlatOrg> orgs = platOrgService.list(new QueryWrapper<PlatOrg>().lambda()
.in(PlatOrg::getId, dto.getOrgIds()));
//取范围最大的管辖区域
List<PlatOrg> tree = platOrgService.createOrgTree(orgs);
List<String> region = tree.stream().filter(t->StringUtil.isNotEmpty(t.getRegion())).map(PlatOrg::getRegion).collect(Collectors.toList());
List<ChinaAreaVO> areas = AreaUtil.getByCodeList(region);
List<PlatSpace> spaces = platSpaceService.list(new QueryWrapper<PlatSpace>().lambda() List<PlatSpace> spaces = platSpaceService.list(new QueryWrapper<PlatSpace>().lambda()
.isNull(PlatSpace::getParentId) .isNull(PlatSpace::getParentId)
.in(PlatSpace::getOrgId, dto.getOrgIds())); .in(PlatSpace::getOrgId, dto.getOrgIds()));
List<PlatElder> elders = platElderService.list(new QueryWrapper<PlatElder>().lambda() List<PlatElder> elders = platElderService.list(new QueryWrapper<PlatElder>().lambda()
.isNotNull(PlatElder::getBedId) .isNotNull(PlatElder::getBedId)
.in(PlatElder::getOrgId, dto.getOrgIds())); .in(PlatElder::getOrgId, dto.getOrgIds()));
for(PlatElder elder : elders){
if(StringUtil.isNotEmpty(elder.getStreetSpaceId())){
elder.setSpaceId(elder.getStreetSpaceId());
}else {
if(StringUtil.isNotEmpty(elder.getBuildingSpaceId())) {
elder.setSpaceId(elder.getBuildingSpaceId());
}else {
if(StringUtil.isNotEmpty(elder.getUnitSpaceId())){
elder.setSpaceId(elder.getUnitSpaceId());
}else {
if(StringUtil.isNotEmpty(elder.getFloorSpaceId())){
elder.setSpaceId(elder.getFloorSpaceId());
}
}
}
}
}
Map<String,List<PlatElder>> elderMap = elders.stream().collect(Collectors.groupingBy(PlatElder::getSpaceId)); Map<String,List<PlatElder>> elderMap = elders.stream().collect(Collectors.groupingBy(PlatElder::getSpaceId));
List<PlatMapStatisticsSpaceVO> list = new ArrayList<>(); Map<String,PlatElder> platElderMap = elders.stream().collect(Collectors.toMap(PlatElder::getId, Function.identity()));
//今日告警
List<PlatAlarmRecord> alarmRecords = platAlarmRecordService.list(new QueryWrapper<PlatAlarmRecord>().lambda()
.between(PlatAlarmRecord::getAlarmDate,dto.getStartTime(),dto.getEndTime())
.in(PlatAlarmRecord::getOrgId, dto.getOrgIds()));
List<PlatAlarmRecordStatisticsVo> statisticsVos = coverToVoList(alarmRecords, platElderMap);
Map<String, List<PlatAlarmRecordStatisticsVo>> staticsMap = statisticsVos.stream().collect(Collectors.groupingBy(PlatAlarmRecordStatisticsVo::getSpaceId));
//待处理告警
List<PlatAlarmRecord> unHandledAlarmRecords = platAlarmRecordService.list(new QueryWrapper<PlatAlarmRecord>().lambda()
.eq(PlatAlarmRecord::getStatus, PlatAlarmRecordEnum.AlarmRecordStatusEnum.UNHANDLED.getValue())
.in(PlatAlarmRecord::getOrgId, dto.getOrgIds()));
List<PlatAlarmRecordStatisticsVo> unHandledStatisticsVos = coverToVoList(unHandledAlarmRecords, platElderMap);
Map<String, List<PlatAlarmRecordStatisticsVo>> unHandledStaticsMap = unHandledStatisticsVos.stream().collect(Collectors.groupingBy(PlatAlarmRecordStatisticsVo::getSpaceId));
for(PlatSpace space : spaces){ for(PlatSpace space : spaces){
PlatMapStatisticsSpaceVO spaceVo = new PlatMapStatisticsSpaceVO(); PlatMapStatisticsVO vo = new PlatMapStatisticsVO();
spaceVo.setSpaceId(space.getId()); vo.setSpaceId(space.getId());
spaceVo.setSpaceName(space.getName()); vo.setSpaceName(space.getName());
spaceVo.setLatitude(space.getLatitude()); vo.setLatitude(space.getLatitude());
spaceVo.setLongitude(space.getLongitude()); vo.setLongitude(space.getLongitude());
if(elderMap.get(space.getId())!=null){ if(elderMap.get(space.getId())!=null){
spaceVo.setElderNumber(Long.valueOf(elderMap.get(space.getId()).size())); vo.setElderNumber(Long.valueOf(elderMap.get(space.getId()).size()));
} }
if(staticsMap.get(space.getId())!=null){
vo.setAlarmNumber(Long.valueOf(staticsMap.get(space.getId()).size()));
}
if(unHandledStaticsMap.get(space.getId())!=null){
vo.setUnHandledNumber(Long.valueOf(unHandledStaticsMap.get(space.getId()).size()));
}
list.add(vo);
} }
vo.setAreas(areas);
return vo; return list;
}
private List<PlatAlarmRecordStatisticsVo> coverToVoList(List<PlatAlarmRecord> alarmRecords, Map<String,PlatElder> platElderMap) {
List<PlatAlarmRecordStatisticsVo> statisticsVos = new ArrayList<>();
alarmRecords.forEach(record->{
List<String> elderIds = Arrays.asList(record.getElderIds().split(","));
if(StringUtil.isNotEmpty(record.getElderIds())
&& elderIds.size()>0){
if(platElderMap.get(elderIds.get(0))!=null){
PlatAlarmRecordStatisticsVo statisticsVo = BeanDtoVoUtils.convert(record, PlatAlarmRecordStatisticsVo.class);
statisticsVo.setSpaceId(platElderMap.get(elderIds.get(0)).getSpaceId());
statisticsVos.add(statisticsVo);
}
}
});
return statisticsVos;
} }
......
...@@ -18,7 +18,6 @@ import com.makeit.entity.platform.device.PlatDevice; ...@@ -18,7 +18,6 @@ import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.device.PlatDeviceOther; import com.makeit.entity.platform.device.PlatDeviceOther;
import com.makeit.enums.CodeMessageEnum; import com.makeit.enums.CodeMessageEnum;
import com.makeit.exception.BusinessException; import com.makeit.exception.BusinessException;
import com.makeit.global.aspect.tenant.TenantIdIgnore;
import com.makeit.mapper.platform.device.PlatDeviceMapper; import com.makeit.mapper.platform.device.PlatDeviceMapper;
import com.makeit.service.platform.auth.PlatOrgService; import com.makeit.service.platform.auth.PlatOrgService;
import com.makeit.service.platform.device.PlatDeviceOtherService; import com.makeit.service.platform.device.PlatDeviceOtherService;
...@@ -180,7 +179,6 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev ...@@ -180,7 +179,6 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev
} }
@Override @Override
@TenantIdIgnore
public PageVO<PlatDevice> pageSaas(PageReqDTO<PlatDevice> pageReqDTO) { public PageVO<PlatDevice> pageSaas(PageReqDTO<PlatDevice> pageReqDTO) {
PlatDevice param = pageReqDTO.getData(); PlatDevice param = pageReqDTO.getData();
Page<PlatDevice> page = PageUtil.toMpPage(pageReqDTO); Page<PlatDevice> page = PageUtil.toMpPage(pageReqDTO);
......
package com.makeit.service.platform.elder;
import com.makeit.dto.platform.elder.PlatElderIdDTO;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeBodyVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeNowVO;
import java.util.List;
/**
* <p>
* 长者健康状态 服务类
* </p>
*
* @author eugene young
* @since 2023-08-29
*/
public interface PlatElderDayReportDayService {
}
package com.makeit.service.platform.elder;
import com.makeit.dto.platform.elder.PlatElderIdDTO;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeBodyVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeNowVO;
import java.util.List;
/**
* <p>
* 长者健康状态 服务类
* </p>
*
* @author eugene young
* @since 2023-08-29
*/
public interface PlatElderRealTimeService {
PlatElderRealTimeNowVO nowStatus(PlatElderIdDTO platElderIdDTO);
PlatElderRealTimeHeartRespiratoryVO heartRespiratory(PlatElderIdDTO platElderIdDTO);
PlatElderRealTimeBodyVO body(PlatElderIdDTO platElderIdDTO);
List<PlatElderCoordinateVO> coordinate(PlatElderIdDTO platElderIdDTO);
}
...@@ -7,6 +7,7 @@ import com.makeit.common.vo.ExcelImportVo; ...@@ -7,6 +7,7 @@ import com.makeit.common.vo.ExcelImportVo;
import com.makeit.dto.platform.elder.*; import com.makeit.dto.platform.elder.*;
import com.makeit.dto.platform.elder.add.PlatElderAddDTO; import com.makeit.dto.platform.elder.add.PlatElderAddDTO;
import com.makeit.dto.platform.elder.add.PlatElderDTOVO; import com.makeit.dto.platform.elder.add.PlatElderDTOVO;
import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.elder.PlatElder; import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.vo.platform.elder.PlatElderListVO; import com.makeit.vo.platform.elder.PlatElderListVO;
import com.makeit.vo.wechat.elder.PlatElderWechatSimpleVO; import com.makeit.vo.wechat.elder.PlatElderWechatSimpleVO;
...@@ -49,6 +50,10 @@ public interface PlatElderService extends IService<PlatElder> { ...@@ -49,6 +50,10 @@ public interface PlatElderService extends IService<PlatElder> {
void delBatch(List<String> idList); void delBatch(List<String> idList);
PlatDevice getBreathDevice(String id);
List<PlatDevice> getSpaceDevice(String id);
/*小程序*/ /*小程序*/
List<PlatElderWechatSimpleVO> listMy(); List<PlatElderWechatSimpleVO> listMy();
/*小程序*/ /*小程序*/
......
package com.makeit.service.platform.elder.impl;
import com.makeit.service.platform.elder.PlatElderDayReportDayService;
public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDayService {
}
...@@ -44,7 +44,7 @@ public class PlatElderPhysicalReportServiceImpl extends ServiceImpl<PlatElderPhy ...@@ -44,7 +44,7 @@ public class PlatElderPhysicalReportServiceImpl extends ServiceImpl<PlatElderPhy
List<PlatElderPhysicalReportDTOVO> voList = BeanDtoVoUtils.listVo(voPage.getRecords(), PlatElderPhysicalReportDTOVO.class); List<PlatElderPhysicalReportDTOVO> voList = BeanDtoVoUtils.listVo(voPage.getRecords(), PlatElderPhysicalReportDTOVO.class);
FileUtil.convert(voList, PlatElderPhysicalReportDTOVO::getElderId, PlatElderPhysicalReportDTOVO::setReportFile); FileUtil.convert(voList, PlatElderPhysicalReportDTOVO::getReportId, PlatElderPhysicalReportDTOVO::setReportFile);
return PageUtil.toPageVO(voList, voPage); return PageUtil.toPageVO(voList, voPage);
} }
...@@ -56,7 +56,7 @@ public class PlatElderPhysicalReportServiceImpl extends ServiceImpl<PlatElderPhy ...@@ -56,7 +56,7 @@ public class PlatElderPhysicalReportServiceImpl extends ServiceImpl<PlatElderPhy
List<PlatElderPhysicalReportDTOVO> voList = BeanDtoVoUtils.listVo(list, PlatElderPhysicalReportDTOVO.class); List<PlatElderPhysicalReportDTOVO> voList = BeanDtoVoUtils.listVo(list, PlatElderPhysicalReportDTOVO.class);
FileUtil.convert(voList, PlatElderPhysicalReportDTOVO::getElderId, PlatElderPhysicalReportDTOVO::setReportFile); FileUtil.convert(voList, PlatElderPhysicalReportDTOVO::getReportId, PlatElderPhysicalReportDTOVO::setReportFile);
return voList; return voList;
} }
...@@ -74,7 +74,7 @@ public class PlatElderPhysicalReportServiceImpl extends ServiceImpl<PlatElderPhy ...@@ -74,7 +74,7 @@ public class PlatElderPhysicalReportServiceImpl extends ServiceImpl<PlatElderPhy
public PlatElderPhysicalReportDTOVO view(String id) { public PlatElderPhysicalReportDTOVO view(String id) {
PlatElderPhysicalReportDTOVO vo = BeanDtoVoUtils.convert(getById(id), PlatElderPhysicalReportDTOVO.class); PlatElderPhysicalReportDTOVO vo = BeanDtoVoUtils.convert(getById(id), PlatElderPhysicalReportDTOVO.class);
FileUtil.convert(Arrays.asList(vo), PlatElderPhysicalReportDTOVO::getElderId, PlatElderPhysicalReportDTOVO::setReportFile); FileUtil.convert(Arrays.asList(vo), PlatElderPhysicalReportDTOVO::getReportId, PlatElderPhysicalReportDTOVO::setReportFile);
return vo; return vo;
} }
......
package com.makeit.service.platform.elder.impl;
import com.makeit.dto.platform.elder.PlatElderIdDTO;
import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.module.iot.service.IotProductDeviceService;
import com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe;
import com.makeit.module.iot.vo.breathe.DeviceInfoContentSpace;
import com.makeit.service.platform.elder.PlatElderRealTimeService;
import com.makeit.service.platform.elder.PlatElderService;
import com.makeit.utils.data.convert.StreamUtil;
import com.makeit.utils.data.validate.CollectionUtils;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeBodyVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeNowVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* <p>
* 长者健康状态 服务类
* </p>
*
* @author eugene young
* @since 2023-08-29
*/
@Service
public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
@Autowired
private PlatElderService platElderService;
@Autowired
private IotProductDeviceService iotProductDeviceService;
private DeviceInfoContentBreathe getNowDataBreathe(String elderId) {
PlatDevice platDevice = platElderService.getBreathDevice(elderId);
if (platDevice == null) {
return null;
}
DeviceInfoContentBreathe deviceInfoContentBreathe = iotProductDeviceService.getLastDeviceLogBreathe(platDevice.getOriDeviceId(), 10);
return deviceInfoContentBreathe;
}
private List<DeviceInfoContentSpace> getNowDataSpace(String elderId) {
List<PlatDevice> deviceList = platElderService.getSpaceDevice(elderId);
if (CollectionUtils.isNotEmpty(deviceList)) {
return null;
}
return deviceList.stream().map(e -> iotProductDeviceService.getLastDeviceLogSpace(e.getOriDeviceId(), 10)).filter(Objects::nonNull)
.collect(Collectors.toList());
}
@Override
public PlatElderRealTimeNowVO nowStatus(PlatElderIdDTO platElderIdDTO) {
DeviceInfoContentBreathe deviceInfoContentBreathe = getNowDataBreathe(platElderIdDTO.getElderId());
PlatElderRealTimeNowVO platElderRealTimeNowVO = new PlatElderRealTimeNowVO();
if (deviceInfoContentBreathe == null) {
return platElderRealTimeNowVO;
}
platElderRealTimeNowVO.setStatus(deviceInfoContentBreathe.getProperties().getPersonState() + "");
platElderRealTimeNowVO.setHeartRate(deviceInfoContentBreathe.getProperties().getHr());
platElderRealTimeNowVO.setRespiratoryRate(deviceInfoContentBreathe.getProperties().getBr());
platElderRealTimeNowVO.setBodyMove(deviceInfoContentBreathe.getProperties().getBodymove());
return platElderRealTimeNowVO;
}
@Override
public PlatElderRealTimeHeartRespiratoryVO heartRespiratory(PlatElderIdDTO platElderIdDTO) {
DeviceInfoContentBreathe deviceInfoContentBreathe = getNowDataBreathe(platElderIdDTO.getElderId());
PlatElderRealTimeHeartRespiratoryVO platElderRealTimeHeartRespiratoryVO = new PlatElderRealTimeHeartRespiratoryVO();
platElderRealTimeHeartRespiratoryVO.setTime(LocalDateTime.now());
if (deviceInfoContentBreathe == null) {
return platElderRealTimeHeartRespiratoryVO;
}
platElderRealTimeHeartRespiratoryVO.setHeartRate(deviceInfoContentBreathe.getProperties().getHr());
platElderRealTimeHeartRespiratoryVO.setRespiratoryRate(deviceInfoContentBreathe.getProperties().getBr());
return platElderRealTimeHeartRespiratoryVO;
}
@Override
public PlatElderRealTimeBodyVO body(PlatElderIdDTO platElderIdDTO) {
DeviceInfoContentBreathe deviceInfoContentBreathe = getNowDataBreathe(platElderIdDTO.getElderId());
PlatElderRealTimeBodyVO platElderRealTimeBodyVO = new PlatElderRealTimeBodyVO();
platElderRealTimeBodyVO.setTime(LocalDateTime.now());
if (deviceInfoContentBreathe == null) {
return platElderRealTimeBodyVO;
}
platElderRealTimeBodyVO.setBodyMovementIndex(deviceInfoContentBreathe.getProperties().getBodymove());
return platElderRealTimeBodyVO;
}
@Override
public List<PlatElderCoordinateVO> coordinate(PlatElderIdDTO platElderIdDTO) {
List<DeviceInfoContentSpace> deviceInfoContentSpaceList = getNowDataSpace(platElderIdDTO.getElderId());
List<PlatElderCoordinateVO> voList = new ArrayList<>(10);
if (CollectionUtils.isEmpty(deviceInfoContentSpaceList)) {
return voList;
}
voList = StreamUtil.map(deviceInfoContentSpaceList, e -> {
PlatElderCoordinateVO vo = new PlatElderCoordinateVO();
vo.setX(new BigDecimal(e.getProperties().getDistance()).multiply(new BigDecimal(Math.cos(e.getProperties().getAngle()) + "")).setScale(2, RoundingMode.HALF_UP));
vo.setY(new BigDecimal(e.getProperties().getDistance()).multiply(new BigDecimal(Math.sin(e.getProperties().getAngle()) + "")).setScale(2, RoundingMode.HALF_UP));
return vo;
});
return voList;
}
}
...@@ -16,6 +16,7 @@ import com.makeit.dto.platform.elder.PlatElderQueryDTO; ...@@ -16,6 +16,7 @@ import com.makeit.dto.platform.elder.PlatElderQueryDTO;
import com.makeit.dto.platform.elder.add.*; import com.makeit.dto.platform.elder.add.*;
import com.makeit.dto.platform.space.TreeDTOVO; import com.makeit.dto.platform.space.TreeDTOVO;
import com.makeit.entity.platform.auth.PlatOrg; import com.makeit.entity.platform.auth.PlatOrg;
import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.elder.PlatElder; import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.entity.platform.elder.PlatElderHealthInfo; import com.makeit.entity.platform.elder.PlatElderHealthInfo;
import com.makeit.entity.platform.elder.PlatElderOtherInfo; import com.makeit.entity.platform.elder.PlatElderOtherInfo;
...@@ -32,6 +33,7 @@ import com.makeit.mapper.platform.elder.PlatElderMapper; ...@@ -32,6 +33,7 @@ import com.makeit.mapper.platform.elder.PlatElderMapper;
import com.makeit.service.platform.auth.PlatOrgService; import com.makeit.service.platform.auth.PlatOrgService;
import com.makeit.service.platform.elder.*; import com.makeit.service.platform.elder.*;
import com.makeit.service.platform.space.PlatBedService; import com.makeit.service.platform.space.PlatBedService;
import com.makeit.service.platform.space.PlatRoomBedDeviceService;
import com.makeit.service.platform.space.PlatRoomService; import com.makeit.service.platform.space.PlatRoomService;
import com.makeit.service.platform.space.PlatSpaceService; import com.makeit.service.platform.space.PlatSpaceService;
import com.makeit.utils.data.convert.BeanDtoVoUtils; import com.makeit.utils.data.convert.BeanDtoVoUtils;
...@@ -55,6 +57,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -55,6 +57,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.function.BiConsumer; import java.util.function.BiConsumer;
import java.util.function.Function; import java.util.function.Function;
...@@ -96,6 +99,9 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder ...@@ -96,6 +99,9 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
@Autowired @Autowired
private PlatBedService platBedService; private PlatBedService platBedService;
@Autowired
private PlatRoomBedDeviceService platRoomBedDeviceService;
private LambdaQueryWrapper<PlatElder> lambdaQueryWrapper(PlatElderQueryDTO dto) { private LambdaQueryWrapper<PlatElder> lambdaQueryWrapper(PlatElderQueryDTO dto) {
return new QueryWrapper<PlatElder>().lambda() return new QueryWrapper<PlatElder>().lambda()
.like(StringUtils.isNotBlank(dto.getName()), PlatElder::getName, dto.getName()) .like(StringUtils.isNotBlank(dto.getName()), PlatElder::getName, dto.getName())
...@@ -492,6 +498,14 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder ...@@ -492,6 +498,14 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
PlatElder platElder = BeanDtoVoUtils.convert(dto, PlatElder.class); PlatElder platElder = BeanDtoVoUtils.convert(dto, PlatElder.class);
PlatUserVO userVO = PlatUserUtil.getUserVO();
platElder.setOrgId(userVO.getOrgId());
platElder.setCityOrgId(userVO.getCityOrgId());
platElder.setDistrictOrgId(userVO.getDistrictOrgId());
platElder.setStreetOrgId(userVO.getStreetOrgId());
platElder.setOrgPath(userVO.getOrgPath());
save(platElder); save(platElder);
} }
...@@ -603,6 +617,8 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder ...@@ -603,6 +617,8 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
PlatElder db = getById(dto.getId()); PlatElder db = getById(dto.getId());
BeanUtils.copyProperties(dto, db); BeanUtils.copyProperties(dto, db);
db.setCheckInTime(LocalDateTime.now());
updateById(db); updateById(db);
StatusDTO statusDTO = new StatusDTO(); StatusDTO statusDTO = new StatusDTO();
...@@ -636,6 +652,8 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder ...@@ -636,6 +652,8 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
db.setBedId(null); db.setBedId(null);
db.setSpacePath(null); db.setSpacePath(null);
db.setCheckOutTime(LocalDateTime.now());
updateById(db); updateById(db);
//TODO ywc 是否删除房间 及其校验没做 //TODO ywc 是否删除房间 及其校验没做
...@@ -681,6 +699,29 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder ...@@ -681,6 +699,29 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
} }
@Override @Override
public PlatDevice getBreathDevice(String id) {
PlatElder platElder = getById(id);
if (StringUtils.isBlank(platElder.getBedId())) {
return null;
}
return platRoomBedDeviceService.getBreathDevice(platElder.getBedId());
}
@Override
public List<PlatDevice> getSpaceDevice(String id) {
PlatElder platElder = getById(id);
if (StringUtils.isBlank(platElder.getBedId())) {
return null;
}
return platRoomBedDeviceService.getSpaceDevice(platElder.getBedId());
}
@Override
public List<PlatElderWechatSimpleVO> listMy() { public List<PlatElderWechatSimpleVO> listMy() {
PlatElderChildrenInfoWechatVO childrenInfo = platElderChildrenInfoService.view(); PlatElderChildrenInfoWechatVO childrenInfo = platElderChildrenInfoService.view();
......
...@@ -8,6 +8,7 @@ import com.makeit.dto.platform.space.PlatBedDeviceQueryDTO; ...@@ -8,6 +8,7 @@ import com.makeit.dto.platform.space.PlatBedDeviceQueryDTO;
import com.makeit.dto.platform.space.PlatRoomBindDeviceDTO; import com.makeit.dto.platform.space.PlatRoomBindDeviceDTO;
import com.makeit.dto.platform.space.PlatSpaceDeviceQueryDTO; import com.makeit.dto.platform.space.PlatSpaceDeviceQueryDTO;
import com.makeit.dto.platform.space.PlatUnbindingDeviceDTO; import com.makeit.dto.platform.space.PlatUnbindingDeviceDTO;
import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.space.PlatRoomBedDevice; import com.makeit.entity.platform.space.PlatRoomBedDevice;
import java.util.List; import java.util.List;
...@@ -21,12 +22,14 @@ public interface PlatRoomBedDeviceService extends IService<PlatRoomBedDevice> { ...@@ -21,12 +22,14 @@ public interface PlatRoomBedDeviceService extends IService<PlatRoomBedDevice> {
/** /**
* 绑定设备 * 绑定设备
*
* @param dto * @param dto
*/ */
void bindingDevice(PlatRoomBindDeviceDTO dto); void bindingDevice(PlatRoomBindDeviceDTO dto);
/** /**
* 未绑定设备列表 * 未绑定设备列表
*
* @param pageReqDTO * @param pageReqDTO
* @return * @return
*/ */
...@@ -34,6 +37,7 @@ public interface PlatRoomBedDeviceService extends IService<PlatRoomBedDevice> { ...@@ -34,6 +37,7 @@ public interface PlatRoomBedDeviceService extends IService<PlatRoomBedDevice> {
/** /**
* 已绑定设备 * 已绑定设备
*
* @param dto * @param dto
* @return * @return
*/ */
...@@ -41,7 +45,12 @@ public interface PlatRoomBedDeviceService extends IService<PlatRoomBedDevice> { ...@@ -41,7 +45,12 @@ public interface PlatRoomBedDeviceService extends IService<PlatRoomBedDevice> {
/** /**
* 解绑设备 * 解绑设备
*
* @param dto * @param dto
*/ */
void unbindingDevice(PlatUnbindingDeviceDTO dto); void unbindingDevice(PlatUnbindingDeviceDTO dto);
PlatDevice getBreathDevice(String bedId);
List<PlatDevice> getSpaceDevice(String bedId);
} }
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.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.page.PageReqDTO; import com.makeit.common.page.PageReqDTO;
...@@ -22,6 +23,7 @@ import com.makeit.service.platform.space.PlatRegionSettingService; ...@@ -22,6 +23,7 @@ import com.makeit.service.platform.space.PlatRegionSettingService;
import com.makeit.service.platform.space.PlatRoomBedDeviceService; import com.makeit.service.platform.space.PlatRoomBedDeviceService;
import com.makeit.utils.data.convert.BeanDtoVoUtils; import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.data.convert.PageUtil; import com.makeit.utils.data.convert.PageUtil;
import com.makeit.utils.data.convert.StreamUtil;
import jodd.util.StringUtil; import jodd.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -56,7 +58,7 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM ...@@ -56,7 +58,7 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM
List<String> listEquipmentIds = dto.getListDeviceId(); List<String> listEquipmentIds = dto.getListDeviceId();
List<PlatRoomBedDevice> list = new ArrayList<>(); List<PlatRoomBedDevice> list = new ArrayList<>();
listEquipmentIds.forEach(item->{ listEquipmentIds.forEach(item -> {
PlatRoomBedDevice data = new PlatRoomBedDevice(); PlatRoomBedDevice data = new PlatRoomBedDevice();
data.setDeviceId(item); data.setDeviceId(item);
...@@ -64,11 +66,11 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM ...@@ -64,11 +66,11 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM
data.setBedId(dto.getBedId()); data.setBedId(dto.getBedId());
list.add(data); list.add(data);
}); });
if(!list.isEmpty()){ if (!list.isEmpty()) {
saveBatch(list); saveBatch(list);
//区域设备 //区域设备
platRegionSettingService.add(dto.getRoomId(),dto.getListDeviceId()); platRegionSettingService.add(dto.getRoomId(), dto.getListDeviceId());
} }
} }
...@@ -79,20 +81,20 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM ...@@ -79,20 +81,20 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM
LambdaQueryWrapper<PlatRoomBedDevice> queryWrapper1 = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlatRoomBedDevice> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.select(PlatRoomBedDevice::getDeviceId); queryWrapper1.select(PlatRoomBedDevice::getDeviceId);
if(StringUtil.isNotEmpty(dto.getRoomId())){ if (StringUtil.isNotEmpty(dto.getRoomId())) {
queryWrapper1.ne(PlatRoomBedDevice::getRoomId,dto.getRoomId()); queryWrapper1.ne(PlatRoomBedDevice::getRoomId, dto.getRoomId());
} }
if(CommonEnum.NO.getValue().equals(dto.getIsRoom())){ if (CommonEnum.NO.getValue().equals(dto.getIsRoom())) {
queryWrapper1.isNull(PlatRoomBedDevice::getBedId); queryWrapper1.isNull(PlatRoomBedDevice::getBedId);
} }
List<PlatRoomBedDevice> list = list(queryWrapper1); 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());
Page<PlatDevice> p = PageUtil.toMpPage(pageReqDTO); Page<PlatDevice> p = PageUtil.toMpPage(pageReqDTO);
LambdaQueryWrapper<PlatDevice> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlatDevice> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.notIn(!listEquipmentIds.isEmpty(),PlatDevice::getId, listEquipmentIds); queryWrapper.notIn(!listEquipmentIds.isEmpty(), PlatDevice::getId, listEquipmentIds);
queryWrapper.eq(StringUtil.isNotEmpty(dto.getCategory()), PlatDevice::getCategory,dto.getCategory()); queryWrapper.eq(StringUtil.isNotEmpty(dto.getCategory()), PlatDevice::getCategory, dto.getCategory());
queryWrapper.like(StringUtil.isNotEmpty(dto.getOriDeviceId()), PlatDevice::getOriDeviceId, dto.getOriDeviceId()); queryWrapper.like(StringUtil.isNotEmpty(dto.getOriDeviceId()), PlatDevice::getOriDeviceId, dto.getOriDeviceId());
queryWrapper.like(StringUtil.isNotEmpty(dto.getName()), PlatDevice::getName, dto.getName()); queryWrapper.like(StringUtil.isNotEmpty(dto.getName()), PlatDevice::getName, dto.getName());
queryWrapper.like(StringUtil.isNotEmpty(dto.getProductName()), PlatDevice::getProductName, dto.getProductName()); queryWrapper.like(StringUtil.isNotEmpty(dto.getProductName()), PlatDevice::getProductName, dto.getProductName());
...@@ -127,7 +129,7 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM ...@@ -127,7 +129,7 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM
List<PlatDeviceDTO> data = new ArrayList<>(); List<PlatDeviceDTO> data = new ArrayList<>();
if(!listEquipmentIds.isEmpty()){ if(!listEquipmentIds.isEmpty()){
LambdaQueryWrapper<PlatDevice> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlatDevice> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PlatDevice::getCategory, PlatDeviceEnum.CategoryEnum.HEART); //queryWrapper.eq(PlatDevice::getCategory, PlatDeviceEnum.CategoryEnum.HEART);
queryWrapper.in(PlatDevice::getId,listEquipmentIds); queryWrapper.in(PlatDevice::getId,listEquipmentIds);
List<PlatDevice> listDevices = platDeviceService.list(queryWrapper); List<PlatDevice> listDevices = platDeviceService.list(queryWrapper);
data = BeanDtoVoUtils.listVo(listDevices,PlatDeviceDTO.class); data = BeanDtoVoUtils.listVo(listDevices,PlatDeviceDTO.class);
...@@ -144,23 +146,53 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM ...@@ -144,23 +146,53 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM
public void unbindingDevice(PlatUnbindingDeviceDTO dto) { public void unbindingDevice(PlatUnbindingDeviceDTO dto) {
LambdaQueryWrapper<PlatRoomBedDevice> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlatRoomBedDevice> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PlatRoomBedDevice::getDeviceId,dto.getEquipmentId()); queryWrapper.eq(PlatRoomBedDevice::getDeviceId, dto.getEquipmentId());
queryWrapper.eq(PlatRoomBedDevice::getRoomId,dto.getRoomId()); queryWrapper.eq(PlatRoomBedDevice::getRoomId, dto.getRoomId());
queryWrapper.eq(StringUtil.isNotEmpty(dto.getBedId()),PlatRoomBedDevice::getBedId,dto.getBedId()); queryWrapper.eq(StringUtil.isNotEmpty(dto.getBedId()), PlatRoomBedDevice::getBedId, dto.getBedId());
List<PlatRoomBedDevice> list = list(queryWrapper); List<PlatRoomBedDevice> list = list(queryWrapper);
if(StringUtil.isNotEmpty(dto.getBedId())){ if (StringUtil.isNotEmpty(dto.getBedId())) {
list.forEach(item->{ list.forEach(item -> {
item.setBedId(null); item.setBedId(null);
}); });
updateBatchById(list); updateBatchById(list);
}else{ } else {
List<String> ids = list.stream().map(item->item.getId()).collect(Collectors.toList()); List<String> ids = list.stream().map(item -> item.getId()).collect(Collectors.toList());
removeByIds(ids); removeByIds(ids);
platRegionSettingService.del(dto.getRoomId(),dto.getEquipmentId()); platRegionSettingService.del(dto.getRoomId(), dto.getEquipmentId());
} }
} }
@Override
public PlatDevice getBreathDevice(String bedId) {
PlatRoomBedDevice device = getOne(new QueryWrapper<PlatRoomBedDevice>().lambda()
.eq(PlatRoomBedDevice::getBedId, bedId));
if (device == null) {
return null;
}
return platDeviceService.getById(device.getDeviceId());
}
@Override
public List<PlatDevice> getSpaceDevice(String bedId) {
PlatBed bed = platBedService.getById(bedId);
List<PlatRoomBedDevice> deviceList = list(new QueryWrapper<PlatRoomBedDevice>().lambda()
.eq(PlatRoomBedDevice::getRoomId, bed.getRoomId()));
return platDeviceService.list(new QueryWrapper<PlatDevice>().lambda()
.in(PlatDevice::getId, StreamUtil.mapId(deviceList, PlatRoomBedDevice::getDeviceId))
.eq(PlatDevice::getCategory, PlatDeviceEnum.CategoryEnum.SPACE.getValue())
);
}
} }
...@@ -5,14 +5,18 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -5,14 +5,18 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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.PlatRoom; import com.makeit.entity.platform.space.PlatRoom;
import com.makeit.entity.platform.space.PlatSpace; import com.makeit.entity.platform.space.PlatSpace;
import com.makeit.enums.CodeMessageEnum; import com.makeit.enums.CodeMessageEnum;
import com.makeit.exception.BusinessException; import com.makeit.exception.BusinessException;
import com.makeit.mapper.platform.space.PlatSpaceMapper; import com.makeit.mapper.platform.space.PlatSpaceMapper;
import com.makeit.service.platform.auth.PlatOrgService;
import com.makeit.service.platform.space.PlatRoomService; import com.makeit.service.platform.space.PlatRoomService;
import com.makeit.service.platform.space.PlatSpaceService; import com.makeit.service.platform.space.PlatSpaceService;
import com.makeit.utils.data.convert.BeanDtoVoUtils; import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.user.plat.PlatUserUtil;
import com.makeit.utils.user.plat.PlatUserVO;
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;
...@@ -34,6 +38,8 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace ...@@ -34,6 +38,8 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
@Autowired @Autowired
private PlatRoomService platRoomService; private PlatRoomService platRoomService;
@Autowired
private PlatOrgService platOrgService;
private void check(PlatSpaceAddDTO dto){ private void check(PlatSpaceAddDTO dto){
LambdaQueryWrapper<PlatSpace> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PlatSpace> queryWrapper = new LambdaQueryWrapper<>();
...@@ -57,6 +63,12 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace ...@@ -57,6 +63,12 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
public void add(PlatSpaceAddDTO dto) { public void add(PlatSpaceAddDTO dto) {
check(dto); check(dto);
PlatSpace space = BeanDtoVoUtils.convert(dto, PlatSpace.class); PlatSpace space = BeanDtoVoUtils.convert(dto, PlatSpace.class);
PlatUserVO userVO = PlatUserUtil.getUserVO();
space.setOrgId(userVO.getOrgId());
PlatOrg org = platOrgService.getById(userVO.getOrgId());
if(org!=null){
space.setAttribute(org.getType());
}
save(space); save(space);
} }
......
package com.makeit.service.platform.workstation;
import com.makeit.dto.platform.workstation.WorkStationQueryDTO;
import com.makeit.vo.platform.workstation.WorkStationStatisticsVO;
/**
* Controller
*
* @author zm
* @version 2023/9/11
*/
public interface WorkStationService {
WorkStationStatisticsVO statistics(WorkStationQueryDTO dto);
}
package com.makeit.service.platform.workstation.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.makeit.dto.platform.dataScreen.PlatDataScreenQueryDTO;
import com.makeit.dto.platform.workstation.WorkStationQueryDTO;
import com.makeit.entity.platform.alarm.PlatAlarmRecord;
import com.makeit.entity.platform.auth.PlatUser;
import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.entity.platform.space.PlatSpace;
import com.makeit.enums.CommonEnum;
import com.makeit.enums.platform.alarm.PlatAlarmConfigEnum;
import com.makeit.enums.platform.alarm.PlatAlarmRecordEnum;
import com.makeit.enums.platform.device.PlatDeviceEnum;
import com.makeit.enums.platform.elder.PlatElderEnum;
import com.makeit.module.iot.enums.DeviceState;
import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.service.platform.auth.PlatOrgService;
import com.makeit.service.platform.auth.PlatUserService;
import com.makeit.service.platform.dataScreen.DataScreenService;
import com.makeit.service.platform.device.PlatDeviceService;
import com.makeit.service.platform.elder.PlatElderService;
import com.makeit.service.platform.space.PlatBedService;
import com.makeit.service.platform.space.PlatSpaceService;
import com.makeit.service.platform.workstation.WorkStationService;
import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.vo.platform.dataScreen.*;
import com.makeit.vo.platform.workstation.WorkStationStatisticsVO;
import jodd.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* Controller
*
* @author zm
* @version 2023/9/11
*/
@Service
public class WorkStationServiceImpl implements WorkStationService {
@Autowired
private PlatElderService platElderService;
@Autowired
private PlatDeviceService platDeviceService;
@Autowired
private PlatBedService platBedService;
@Autowired
private PlatUserService platUserService;
@Autowired
private PlatAlarmRecordService platAlarmRecordService;
@Autowired
private PlatSpaceService platSpaceService;
@Autowired
private PlatOrgService platOrgService;
@Override
public WorkStationStatisticsVO statistics(WorkStationQueryDTO dto) {
WorkStationStatisticsVO vo = new WorkStationStatisticsVO();
//代处理告警
long unHandledNumber = platAlarmRecordService.count(new QueryWrapper<PlatAlarmRecord>().lambda()
.eq(PlatAlarmRecord::getStatus, PlatAlarmRecordEnum.AlarmRecordStatusEnum.UNHANDLED.getValue())
.in(PlatAlarmRecord::getOrgId, dto.getOrgIds()));
vo.setUnHandledNumber(unHandledNumber);
return null;
}
}
...@@ -51,8 +51,8 @@ public class AlarmConfigCacheUtil implements ApplicationRunner { ...@@ -51,8 +51,8 @@ public class AlarmConfigCacheUtil implements ApplicationRunner {
}); });
} }
public PlatAlarmConfig get(String orgIdType) { public PlatAlarmConfig get(String orgId,String alarmType) {
return RedisUtil.get(RedisConst.ALARM_CONFIG_ORG_ID+orgIdType); return RedisUtil.get(RedisConst.ALARM_CONFIG_ORG_ID+orgId+":"+alarmType);
} }
...@@ -70,19 +70,17 @@ public class AlarmConfigCacheUtil implements ApplicationRunner { ...@@ -70,19 +70,17 @@ public class AlarmConfigCacheUtil implements ApplicationRunner {
} }
public List<PlatAlarmConfig> getDeviceAlarmConfigMap(PlatDevice platDevice) { public List<PlatAlarmConfig> getDeviceAlarmConfigMap(PlatDevice platDevice) {
List<PlatAlarmConfig> set = new ArrayList<>();
if (StringUtils.equals(platDevice.getCategory(), PlatDeviceEnum.CategoryEnum.HEART.getValue())) { if (StringUtils.equals(platDevice.getCategory(), PlatDeviceEnum.CategoryEnum.HEART.getValue())) {
List<PlatAlarmConfig> set = new ArrayList<>(); set.add(this.get(platDevice.getOrgId() ,PlatAlarmConfigEnum.AlarmTypeEnum.BREATHE.getValue()));
set.add(this.get(platDevice.getOrgId() + PlatAlarmConfigEnum.AlarmTypeEnum.BREATHE.getValue())); set.add(this.get(platDevice.getOrgId() , PlatAlarmConfigEnum.AlarmTypeEnum.HEART.getValue()));
set.add(this.get(platDevice.getOrgId() + PlatAlarmConfigEnum.AlarmTypeEnum.HEART.getValue()));
} }
if (StringUtils.equals(platDevice.getCategory(), PlatDeviceEnum.CategoryEnum.FALL.getValue())) { if (StringUtils.equals(platDevice.getCategory(), PlatDeviceEnum.CategoryEnum.FALL.getValue())) {
List<PlatAlarmConfig> set = new ArrayList<>(); set.add(this.get(platDevice.getOrgId() , PlatAlarmConfigEnum.AlarmTypeEnum.FALL.getValue()));
set.add(this.get(platDevice.getOrgId() + PlatAlarmConfigEnum.AlarmTypeEnum.FALL.getValue()));
} }
if (StringUtils.equals(platDevice.getCategory(), PlatDeviceEnum.CategoryEnum.SPACE.getValue())) { if (StringUtils.equals(platDevice.getCategory(), PlatDeviceEnum.CategoryEnum.SPACE.getValue())) {
List<PlatAlarmConfig> set = new ArrayList<>(); set.add(this.get(platDevice.getOrgId() , PlatAlarmConfigEnum.AlarmTypeEnum.BEHAVIOR.getValue()));
set.add(this.get(platDevice.getOrgId() + PlatAlarmConfigEnum.AlarmTypeEnum.BEHAVIOR.getValue()));
} }
return new ArrayList<>(); return set ;
} }
} }
...@@ -83,4 +83,10 @@ public class PlatPersonDTOVO extends BaseIdDTO { ...@@ -83,4 +83,10 @@ public class PlatPersonDTOVO extends BaseIdDTO {
@ApiModelProperty(value = "角色Id集合") @ApiModelProperty(value = "角色Id集合")
private List<String> roleIdList; private List<String> roleIdList;
@ApiModelProperty(value = "创建人名称")
private String createBy;
@ApiModelProperty(value = "更新人名称")
private String updateBy;
} }
package com.makeit.vo.platform.dataScreen;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.Date;
/**
* Controller
*
* @author zm
* @version 2023/9/13
*/
@Data
@ApiModel("PlatAlarmRecordStatisticsVo对象")
public class PlatAlarmRecordStatisticsVo {
/**
* 告警时间
*/
private Date alarmDate;
/**
* 状态 0 待处理 1 已处理
*/
private String status;
/**
* 组织id
*/
private String orgId;
/**
* 老人id,逗号拼接
*/
private String elderIds;
/**
* 空间id
*/
private String spaceId;
}
...@@ -2,6 +2,7 @@ package com.makeit.vo.platform.dataScreen; ...@@ -2,6 +2,7 @@ package com.makeit.vo.platform.dataScreen;
import com.makeit.utils.area.ChinaAreaVO; import com.makeit.utils.area.ChinaAreaVO;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
...@@ -16,8 +17,22 @@ import java.util.List; ...@@ -16,8 +17,22 @@ import java.util.List;
@ApiModel("PlatMapStatisticsVO对象") @ApiModel("PlatMapStatisticsVO对象")
public class PlatMapStatisticsVO { public class PlatMapStatisticsVO {
private List<ChinaAreaVO> areas; @ApiModelProperty(value = "空间id")
private List<PlatMapStatisticsSpaceVO> spaceList; private String spaceId;
@ApiModelProperty(value = "空间名称")
private String spaceName;
@ApiModelProperty(value = "空间地址")
private String address;
@ApiModelProperty(value = "经度")
private String longitude;
@ApiModelProperty(value = "纬度")
private String latitude;
@ApiModelProperty(value = "长者数量")
private Long elderNumber;
@ApiModelProperty(value = "今日告警数")
private Long alarmNumber;
@ApiModelProperty(value = "待处理告警")
private Long unHandledNumber;
} }
...@@ -70,5 +70,8 @@ public class PlatDeviceListVO extends BaseTenantDTO { ...@@ -70,5 +70,8 @@ public class PlatDeviceListVO extends BaseTenantDTO {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDate; private LocalDateTime createDate;
private LocalDateTime startDate;
private LocalDateTime endDate;
} }
...@@ -2,7 +2,6 @@ package com.makeit.vo.platform.device; ...@@ -2,7 +2,6 @@ package com.makeit.vo.platform.device;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.makeit.common.dto.BaseTenantDTO; import com.makeit.common.dto.BaseTenantDTO;
import com.makeit.common.entity.BaseBusEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -101,5 +100,8 @@ public class PlatDeviceViewVO extends BaseTenantDTO { ...@@ -101,5 +100,8 @@ public class PlatDeviceViewVO extends BaseTenantDTO {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDate; private LocalDateTime createDate;
private LocalDateTime startDate;
private LocalDateTime endDate;
} }
package com.makeit.vo.platform.elder.realtime;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class PlatElderCoordinateVO {
@ApiModelProperty("x")
private BigDecimal x;
@ApiModelProperty("y")
private BigDecimal y;
}
...@@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@Data @Data
...@@ -15,6 +14,6 @@ public class PlatElderRealTimeBodyVO { ...@@ -15,6 +14,6 @@ public class PlatElderRealTimeBodyVO {
private LocalDateTime time; private LocalDateTime time;
@ApiModelProperty("体动指数") @ApiModelProperty("体动指数")
private BigDecimal bodyMovementIndex; private Integer bodyMovementIndex;
} }
...@@ -3,8 +3,6 @@ package com.makeit.vo.platform.elder.realtime; ...@@ -3,8 +3,6 @@ package com.makeit.vo.platform.elder.realtime;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
@Data @Data
public class PlatElderRealTimeNowVO { public class PlatElderRealTimeNowVO {
...@@ -18,6 +16,6 @@ public class PlatElderRealTimeNowVO { ...@@ -18,6 +16,6 @@ public class PlatElderRealTimeNowVO {
private Integer respiratoryRate; private Integer respiratoryRate;
@ApiModelProperty("体动") @ApiModelProperty("体动")
private BigDecimal body; private Integer bodyMove;
} }
package com.makeit.vo.platform.elder.report.day;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
public class PlatElderCoordinateVO {
@ApiModelProperty("经度")
private BigDecimal longitude;
@ApiModelProperty("纬度")
private BigDecimal latitude;
}
package com.makeit.vo.platform.dataScreen; package com.makeit.vo.platform.workstation;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -8,27 +8,12 @@ import lombok.Data; ...@@ -8,27 +8,12 @@ import lombok.Data;
* Controller * Controller
* *
* @author zm * @author zm
* @version 2023/9/11 * @version 2023/9/13
*/ */
@Data @Data
@ApiModel("PlatMapStatisticsSpaceVO对象") @ApiModel("WorkStationStatisticsVO对象")
public class PlatMapStatisticsSpaceVO { public class WorkStationStatisticsVO {
@ApiModelProperty(value = "空间id")
private String spaceId;
@ApiModelProperty(value = "空间名称")
private String spaceName;
@ApiModelProperty(value = "空间地址")
private String address;
@ApiModelProperty(value = "经度")
private String longitude;
@ApiModelProperty(value = "纬度")
private String latitude;
@ApiModelProperty(value = "长者数量")
private Long elderNumber;
@ApiModelProperty(value = "今日告警数")
private Long alarmNumber;
@ApiModelProperty(value = "待处理告警") @ApiModelProperty(value = "待处理告警")
private Long unHandledNumber; private Long unHandledNumber;
} }
package com.makeit;
import com.makeit.module.iot.service.IotProductDeviceService;
import com.makeit.utils.data.convert.JsonUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
@Component
public class IotRunner implements ApplicationRunner {
@Autowired
private IotProductDeviceService iotProductDeviceService;
private static final Logger logger = LoggerFactory.getLogger(IotRunner.class);
@Override
public void run(ApplicationArguments args) throws Exception {
logger.info("111111111111111111\n"+ JsonUtil.toJson(iotProductDeviceService.getLastDeviceLogByType("1701127702523473920","reportProperty")) + "");
}
}
...@@ -87,9 +87,13 @@ public class PushCallback implements MqttCallback { ...@@ -87,9 +87,13 @@ public class PushCallback implements MqttCallback {
} }
for (PlatAlarmConfig config : deviceAlarmConfigList) { for (PlatAlarmConfig config : deviceAlarmConfigList) {
String alarmType = config.getAlarmType(); String alarmType = config.getAlarmType();
PlatAlarmCheckDTO platAlarmCheckDTO = new PlatAlarmCheckDTO(); PlatAlarmCheckDTO platAlarmCheckDTO = new PlatAlarmCheckDTO();
//告警配置
platAlarmCheckDTO.setPlatAlarmConfig(config); platAlarmCheckDTO.setPlatAlarmConfig(config);
//设备信息
platAlarmCheckDTO.setPlatDevice(platDevice); platAlarmCheckDTO.setPlatDevice(platDevice);
//iot上报数据
platAlarmCheckDTO.setProperties(properties); platAlarmCheckDTO.setProperties(properties);
for (IAlarm alarm : alarmList) { for (IAlarm alarm : alarmList) {
......
...@@ -67,7 +67,7 @@ file: ...@@ -67,7 +67,7 @@ file:
storage: storage:
location: ${file.file} location: ${file.file}
type: local type: local
url: http://localhost:10005/${file.filePath} url: http://iot-kuangshi-admin.meiqicloud.com/api/${file.filePath}
# aliBaseDir: point # aliBaseDir: point
# aliEndpoint: obs.cn-south-1.myhuaweicloud.com # aliEndpoint: obs.cn-south-1.myhuaweicloud.com
......
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