Commit 1795325c by 朱淼
parents f218126d bb0a7541
Showing with 1267 additions and 131 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 '更新者',
...@@ -285,3 +287,39 @@ CREATE TABLE `plat_device_other` ...@@ -285,3 +287,39 @@ CREATE TABLE `plat_device_other`
DEFAULT CHARSET = utf8mb4 COMMENT ='设备其他信息'; DEFAULT CHARSET = utf8mb4 COMMENT ='设备其他信息';
CREATE TABLE `plat_elder_sleep` (
`id` VARCHAR ( 64 ) NOT NULL COMMENT 'id',
`elder_id` VARCHAR ( 64 ) NOT NULL COMMENT '长者id',
`start_sleep` datetime DEFAULT NULL COMMENT '入睡时间',
`end_sleep` datetime DEFAULT NULL COMMENT '起床时间',
`current_date` VARCHAR ( 64 ) DEFAULT NULL COMMENT '当前日期 yyyy-mm-dd',
`sleep_record` text DEFAULT NULL COMMENT '睡眠记录 区分时间段记录 [{"sleepType":"","startTime":"","endTime":""},{}]',
`create_date` datetime NOT NULL COMMENT '创建时间',
`update_date` datetime NOT NULL COMMENT '更新时间',
`del_flag` CHAR ( 1 ) DEFAULT NULL COMMENT '删除标识',
`create_by` VARCHAR ( 64 ) NOT NULL COMMENT '创建人',
`update_by` VARCHAR ( 64 ) NOT NULL COMMENT '更新人',
`tenant_id` VARCHAR ( 64 ) DEFAULT NULL COMMENT '租户id',
PRIMARY KEY ( `id` ),
KEY `index_elder_id` (`elder_id`) USING BTREE
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPACT COMMENT = '长者每天睡觉记录';
CREATE TABLE `plat_elder_sleep_analysis` (
`id` VARCHAR ( 64 ) NOT NULL COMMENT 'id',
`elder_id` VARCHAR ( 64 ) NOT NULL COMMENT '长者id',
`sleep_score` VARCHAR ( 64 ) DEFAULT NULL COMMENT '睡眠评分',
`sleep_result` VARCHAR ( 64 ) DEFAULT NULL COMMENT '睡眠结果',
`sleep_time` VARCHAR ( 64 ) DEFAULT NULL COMMENT '睡眠时长',
`rest_time` VARCHAR ( 64 ) DEFAULT NULL COMMENT '休息时长',
`sleep_evaluate` VARCHAR ( 64 ) DEFAULT NULL COMMENT '评价',
`current_date` VARCHAR ( 64 ) DEFAULT NULL COMMENT '当前日期 yyyy-mm-dd',
`create_date` datetime NOT NULL COMMENT '创建时间',
`update_date` datetime NOT NULL COMMENT '更新时间',
`del_flag` CHAR ( 1 ) DEFAULT NULL COMMENT '删除标识',
`create_by` VARCHAR ( 64 ) NOT NULL COMMENT '创建人',
`update_by` VARCHAR ( 64 ) NOT NULL COMMENT '更新人',
`tenant_id` VARCHAR ( 64 ) DEFAULT NULL COMMENT '租户id',
PRIMARY KEY ( `id` ),
KEY `index_elder_id` (`elder_id`) USING BTREE
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 ROW_FORMAT = COMPACT COMMENT = '长者每天睡觉分析';
...@@ -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);
......
...@@ -29,7 +29,7 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -29,7 +29,7 @@ import org.springframework.web.bind.annotation.RestController;
*/ */
@RestController @RestController
@RequestMapping("/saas/diseaseEvaluateReport") @RequestMapping("/saas/diseaseEvaluateReport")
@Api(tags = "saas端-报告管理") @Api(tags = "saas端-报告管理-呼吸心率慢性病模型评估结果")
public class SaasDiseaseEvaluateReportController { public class SaasDiseaseEvaluateReportController {
......
...@@ -27,7 +27,7 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -27,7 +27,7 @@ import org.springframework.web.bind.annotation.RestController;
*/ */
@RestController @RestController
@RequestMapping("/saas/diseaseModel") @RequestMapping("/saas/diseaseModel")
@Api(tags = "saas端-模型管理") @Api(tags = "saas端-模型管理-呼吸心率慢性病模型")
public class SaasDiseaseModelController { public class SaasDiseaseModelController {
......
...@@ -27,7 +27,7 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -27,7 +27,7 @@ import org.springframework.web.bind.annotation.RestController;
*/ */
@RestController @RestController
@RequestMapping("/saas/elderReportConfig") @RequestMapping("/saas/elderReportConfig")
@Api(tags = "saas端-报告管理") @Api(tags = "saas端-报告管理-长者报告配置")
public class SaasElderReportConfigController { public class SaasElderReportConfigController {
@Autowired @Autowired
private SaasElderReportConfigService saasElderReportConfigService; private SaasElderReportConfigService saasElderReportConfigService;
......
package com.makeit.controller.analysis; package com.makeit.controller.analysis;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.common.response.ApiResponseEntity; import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils; import com.makeit.common.response.ApiResponseUtils;
import com.makeit.entity.saas.analysis.SaasModelManage; import com.makeit.entity.saas.analysis.SaasModelManage;
import com.makeit.global.annotation.Action; import com.makeit.global.annotation.Action;
import com.makeit.module.admin.vo.plat.PlatTenantVO;
import com.makeit.service.saas.SaasModelManageService; import com.makeit.service.saas.SaasModelManageService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
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.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
...@@ -29,7 +25,7 @@ import java.util.List; ...@@ -29,7 +25,7 @@ import java.util.List;
*/ */
@RestController @RestController
@RequestMapping("/saas/modelManage") @RequestMapping("/saas/modelManage")
@Api(tags = "saas端-报告管理") @Api(tags = "saas端-模型管理")
public class SaasModelManageController { public class SaasModelManageController {
@Autowired @Autowired
...@@ -39,7 +35,7 @@ public class SaasModelManageController { ...@@ -39,7 +35,7 @@ public class SaasModelManageController {
@Action(module = "数据分析-模型管理", name = "分页列表", code = "saas:modelManage:page") @Action(module = "数据分析-模型管理", name = "分页列表", code = "saas:modelManage:page")
@ApiOperation("分页列表") @ApiOperation("分页列表")
@PostMapping("list") @PostMapping("list")
public ApiResponseEntity<List<SaasModelManage>> list(){ public ApiResponseEntity<List<SaasModelManage>> list() {
return ApiResponseUtils.success(saasModelManageService.list()); return ApiResponseUtils.success(saasModelManageService.list());
} }
} }
......
...@@ -28,7 +28,7 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -28,7 +28,7 @@ import org.springframework.web.bind.annotation.RestController;
*/ */
@RestController @RestController
@RequestMapping("/saas/sleepAnalysisModel") @RequestMapping("/saas/sleepAnalysisModel")
@Api(tags = "saas端-模型管理") @Api(tags = "saas端-模型管理-睡眠质量分析模型")
public class SaasSleepAnalysisModelController { public class SaasSleepAnalysisModelController {
@Autowired @Autowired
......
...@@ -27,7 +27,7 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -27,7 +27,7 @@ import org.springframework.web.bind.annotation.RestController;
*/ */
@RestController @RestController
@RequestMapping("/saas/sleepEvaluateReport") @RequestMapping("/saas/sleepEvaluateReport")
@Api(tags = "saas端-报告管理") @Api(tags = "saas端-报告管理-睡眠质量分析模型评估结果")
public class SaasSleepEvaluateReportController { public class SaasSleepEvaluateReportController {
......
package com.makeit.controller.analysis; package com.makeit.controller.analysis;
import com.alibaba.fastjson.JSON;
import com.makeit.common.dto.BaseIdDTO; import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.response.ApiResponseEntity; import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils; import com.makeit.common.response.ApiResponseUtils;
...@@ -17,6 +18,9 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -17,6 +18,9 @@ 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.HashMap;
import java.util.Map;
/** /**
* <p> * <p>
* 睡眠质量分析模型评估标准 前端控制器 * 睡眠质量分析模型评估标准 前端控制器
...@@ -27,7 +31,7 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -27,7 +31,7 @@ import org.springframework.web.bind.annotation.RestController;
*/ */
@RestController @RestController
@RequestMapping("/saas/sleepEvaluateStandardReport") @RequestMapping("/saas/sleepEvaluateStandardReport")
@Api(tags = "saas端-报告管理") @Api(tags = "saas端-报告管理-睡眠质量分析模型评估标准")
public class SaasSleepEvaluateStandardReportController { public class SaasSleepEvaluateStandardReportController {
...@@ -50,6 +54,15 @@ public class SaasSleepEvaluateStandardReportController { ...@@ -50,6 +54,15 @@ public class SaasSleepEvaluateStandardReportController {
return ApiResponseUtils.success(); return ApiResponseUtils.success();
} }
public static void main(String[] args) {
Map<String,Object> map = new HashMap<>();
map.put("sleepDeepConfig","[{\"number\":\"1\",\"socreRange\":\"10-20\",\"result\":\"一般\",\"evaluate\":\"一般\"},{\"number\":\"2\",\"socreRange\":\"20-100\",\"result\":\"优秀\",\"evaluate\":\"优秀\"}]");
String s = JSON.toJSONString(map);
System.out.println(s);
}
@Action(module = "报告管理-睡眠质量分析模型评估标准", name = "编辑", code = "saas:sleepEvaluateStandardReport:edit") @Action(module = "报告管理-睡眠质量分析模型评估标准", name = "编辑", code = "saas:sleepEvaluateStandardReport:edit")
@ApiOperation("编辑") @ApiOperation("编辑")
@PostMapping("edit") @PostMapping("edit")
......
...@@ -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;
......
package com.makeit.common.dto;
import lombok.Data;
@Data
public class BaseReportDTO {
private String hour;
private String score;
}
/*
* Copyright (c) 2011-2021, baomidou (jobob@qq.com).
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.makeit.common.typehandler;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.MappedJdbcTypes;
import org.apache.ibatis.type.MappedTypes;
import java.io.IOException;
import java.util.List;
/**
* Jackson 实现 JSON 字段类型处理器
*
* @author hubin
* @since 2019-08-25
*/
@Slf4j
@MappedTypes({List.class})
@MappedJdbcTypes(JdbcType.VARCHAR)
public class ListStringJsonTypeHandler extends AbstractJsonTypeHandler<List> {
private static ObjectMapper OBJECT_MAPPER;
@Override
protected List parse(String json) {
try {
return getObjectMapper().readValue(json, new TypeReference<List>() {
});
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@Override
protected String toJson(List obj) {
try {
return getObjectMapper().writeValueAsString(obj);
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
}
public static ObjectMapper getObjectMapper() {
if (null == OBJECT_MAPPER) {
OBJECT_MAPPER = new ObjectMapper();
}
return OBJECT_MAPPER;
}
public static void setObjectMapper(ObjectMapper objectMapper) {
Assert.notNull(objectMapper, "ObjectMapper should not be null");
ListStringJsonTypeHandler.OBJECT_MAPPER = objectMapper;
}
}
...@@ -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 -> {
......
...@@ -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
*/ */
...@@ -68,19 +75,54 @@ public class IotProductDeviceService extends IotCommonService { ...@@ -68,19 +75,54 @@ public class IotProductDeviceService extends IotCommonService {
/** /**
* 获取最新的一条设备属性上报的数据 * 获取最新的一条设备属性上报的数据
*
* @param deviceId * @param deviceId
* @param typeValue 类型 * @param typeValue 类型
* * <p>
* 可以传 :reportProperty * 可以传 :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"}
...@@ -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
...@@ -34,16 +34,16 @@ public class PlatUserUtil { ...@@ -34,16 +34,16 @@ public class PlatUserUtil {
public static PlatUserVO getUserVO() { public static PlatUserVO getUserVO() {
PlatUserVO userVO = THREAD_LOCAL_USER.get(); // PlatUserVO userVO = THREAD_LOCAL_USER.get();
if (userVO != null) { // if (userVO != null) {
return userVO; // return userVO;
} // }
//或者这里用策略模式 // //或者这里用策略模式
WechatUserInfo wechatUserInfo = WechatUserUtil.getUserVOCanNull(); // WechatUserInfo wechatUserInfo = WechatUserUtil.getUserVOCanNull();
if (wechatUserInfo != null) { // if (wechatUserInfo != null) {
return BeanDtoVoUtils.convert(wechatUserInfo, PlatUserVO.class); // return BeanDtoVoUtils.convert(wechatUserInfo, PlatUserVO.class);
} // }
PlatUserLoginVO tntUserLoginVO = TokenUtil.getTntUserDetail(); PlatUserLoginVO tntUserLoginVO = TokenUtil.getTntUserDetail();
if (tntUserLoginVO != null) { if (tntUserLoginVO != null) {
......
...@@ -106,7 +106,7 @@ public class CodeGenerator { ...@@ -106,7 +106,7 @@ public class CodeGenerator {
// 使用重点 下列字段填写表名 运行方法 // 使用重点 下列字段填写表名 运行方法
// strategy.setInclude("edu_teacher","..."); // 多表-逆向工程 // strategy.setInclude("edu_teacher","..."); // 多表-逆向工程
strategy.setInclude("saas_model_manage","saas_report_manage"); strategy.setInclude("plat_elder_sleep","plat_elder_sleep_analysis");
strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略 strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体属性时去掉表"_"前缀并且第一个字母大写 如:gmt_create -> gmtCreate strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体属性时去掉表"_"前缀并且第一个字母大写 如:gmt_create -> gmtCreate
......
...@@ -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();
}
}
...@@ -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 {
......
...@@ -33,4 +33,8 @@ public class PlatDeviceDTO { ...@@ -33,4 +33,8 @@ public class PlatDeviceDTO {
@ApiModelProperty(value = "床位名称") @ApiModelProperty(value = "床位名称")
private String bedName; private String bedName;
@ApiModelProperty(value = "床位Id")
private String bedId;
} }
package com.makeit.dto.saas.analysis; package com.makeit.dto.saas.analysis;
import com.makeit.common.dto.BaseReportDTO;
import com.makeit.common.entity.BaseBusEntity; 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;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.util.List;
/** /**
* <p> * <p>
* 睡眠质量分析模型评估标准 * 睡眠质量分析模型评估标准
......
...@@ -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;
} }
package com.makeit.entity.platform.elder;
import com.baomidou.mybatisplus.annotation.TableField;
import com.makeit.common.entity.BaseBusEntity;
import com.makeit.common.typehandler.ListStringJsonTypeHandler;
import com.makeit.vo.platform.elder.report.day.PlatSleepRangeVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.List;
/**
* <p>
* 长者每天睡觉记录
* </p>
*
* @author eugene young
* @since 2023-09-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="PlatElderSleep对象", description="长者每天睡觉记录")
public class PlatElderSleep extends BaseBusEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "长者id")
private String elderId;
@ApiModelProperty(value = "入睡时间")
private LocalDateTime startSleep;
@ApiModelProperty(value = "起床时间")
private LocalDateTime endSleep;
@ApiModelProperty(value = "当前日期 yyyy-mm-dd")
private String currentDate;
@ApiModelProperty(value = "睡眠记录 区分时间段记录 [{\"sleepType\":\"\",\"startTime\":\"\",\"endTime\":\"\"},{}]")
@TableField(typeHandler = ListStringJsonTypeHandler.class)
private List<PlatSleepRangeVO> sleepRecord;
}
package com.makeit.entity.platform.elder;
import com.makeit.common.entity.BaseBusEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 长者每天睡觉分析
* </p>
*
* @author eugene young
* @since 2023-09-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="PlatElderSleepAnalysis对象", description="长者每天睡觉分析")
public class PlatElderSleepAnalysis extends BaseBusEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "长者id")
private String elderId;
@ApiModelProperty(value = "睡眠评分")
private String sleepScore;
@ApiModelProperty(value = "睡眠结果")
private String sleepResult;
@ApiModelProperty(value = "睡眠时长")
private String sleepTime;
@ApiModelProperty(value = "休息时长")
private String restTime;
@ApiModelProperty(value = "评价")
private String sleepEvaluate;
@ApiModelProperty(value = "当前日期 yyyy-mm-dd")
private String currentDate;
}
package com.makeit.mapper.platform.elder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.makeit.entity.platform.elder.PlatElderSleepAnalysis;
/**
* <p>
* 长者每天睡觉分析 Mapper 接口
* </p>
*
* @author eugene young
* @since 2023-09-13
*/
public interface PlatElderSleepAnalysisMapper extends BaseMapper<PlatElderSleepAnalysis> {
}
package com.makeit.mapper.platform.elder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.makeit.entity.platform.elder.PlatElderSleep;
/**
* <p>
* 长者每天睡觉记录 Mapper 接口
* </p>
*
* @author eugene young
* @since 2023-09-13
*/
public interface PlatElderSleepMapper extends BaseMapper<PlatElderSleep> {
}
...@@ -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();
if(CollectionUtils.isEmpty(platElderList)){
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); PlatAlarmRecord platAlarmRecord = platAlarmRecordService.createPlatAlarmRecord(platAlarmCheckDTO);
platAlarmRecordService.noticeDeviceAlarm(platAlarmCheckDTO.getPlatAlarmConfig(),platAlarmRecord); 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) {
......
...@@ -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));
} }
......
...@@ -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;
import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.entity.platform.elder.PlatElderSleepAnalysis;
/**
* <p>
* 长者每天睡觉分析 服务类
* </p>
*
* @author eugene young
* @since 2023-09-13
*/
public interface PlatElderSleepAnalysisService extends IService<PlatElderSleepAnalysis> {
}
package com.makeit.service.platform.elder;
import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.entity.platform.elder.PlatElderSleep;
/**
* <p>
* 长者每天睡觉记录 服务类
* </p>
*
* @author eugene young
* @since 2023-09-13
*/
public interface PlatElderSleepService extends IService<PlatElderSleep> {
}
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();
......
package com.makeit.service.platform.elder.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.entity.platform.elder.PlatElderSleepAnalysis;
import com.makeit.mapper.platform.elder.PlatElderSleepAnalysisMapper;
import com.makeit.service.platform.elder.PlatElderSleepAnalysisService;
import org.springframework.stereotype.Service;
/**
* <p>
* 长者每天睡觉分析 服务实现类
* </p>
*
* @author eugene young
* @since 2023-09-13
*/
@Service
public class PlatElderSleepAnalysisServiceImpl extends ServiceImpl<PlatElderSleepAnalysisMapper, PlatElderSleepAnalysis> implements PlatElderSleepAnalysisService {
}
package com.makeit.service.platform.elder.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.entity.platform.elder.PlatElderSleep;
import com.makeit.mapper.platform.elder.PlatElderSleepMapper;
import com.makeit.service.platform.elder.PlatElderSleepService;
import org.springframework.stereotype.Service;
/**
* <p>
* 长者每天睡觉记录 服务实现类
* </p>
*
* @author eugene young
* @since 2023-09-13
*/
@Service
public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper, PlatElderSleep> implements PlatElderSleepService {
}
...@@ -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());
...@@ -117,10 +119,12 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM ...@@ -117,10 +119,12 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM
queryWrapper2.in(PlatBed::getId,listBedIds); queryWrapper2.in(PlatBed::getId,listBedIds);
List<PlatBed> listBeds = platBedService.list(queryWrapper2); List<PlatBed> listBeds = platBedService.list(queryWrapper2);
Map<String,String> map = listBeds.stream().collect(Collectors.toMap(PlatBed::getId,PlatBed::getName,(k1, k2)->k1)); Map<String,String> map = listBeds.stream().collect(Collectors.toMap(PlatBed::getId,PlatBed::getName,(k1, k2)->k1));
Map<String,String> mapName = new HashMap<>(); Map<String,String> mapName = new HashMap<>(20);
Map<String,String> mapBedId = new HashMap<>(20);
list.forEach(item->{ list.forEach(item->{
if(map.containsKey(item.getBedId())){ if(map.containsKey(item.getBedId())){
mapName.put(item.getDeviceId(),map.get(item.getBedId())); mapName.put(item.getDeviceId(),map.get(item.getBedId()));
mapBedId.put(item.getDeviceId(),item.getBedId());
} }
}); });
...@@ -134,6 +138,7 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM ...@@ -134,6 +138,7 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM
data.forEach(item->{ data.forEach(item->{
item.setBedName(mapName.get(item.getId())); item.setBedName(mapName.get(item.getId()));
item.setBedId(mapBedId.get(item.getId()));
}); });
} }
return data; return data;
...@@ -144,23 +149,53 @@ public class PlatRoomBedDeviceServiceImpl extends ServiceImpl<PlatRoomBedDeviceM ...@@ -144,23 +149,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())
);
} }
} }
...@@ -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) {
if (StringUtils.equals(platDevice.getCategory(), PlatDeviceEnum.CategoryEnum.HEART.getValue())) {
List<PlatAlarmConfig> set = new ArrayList<>(); List<PlatAlarmConfig> set = new ArrayList<>();
set.add(this.get(platDevice.getOrgId() + PlatAlarmConfigEnum.AlarmTypeEnum.BREATHE.getValue())); if (StringUtils.equals(platDevice.getCategory(), PlatDeviceEnum.CategoryEnum.HEART.getValue())) {
set.add(this.get(platDevice.getOrgId() + PlatAlarmConfigEnum.AlarmTypeEnum.HEART.getValue())); set.add(this.get(platDevice.getOrgId() ,PlatAlarmConfigEnum.AlarmTypeEnum.BREATHE.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;
} }
...@@ -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.elder.report.day;
import lombok.Data;
@Data
public class PlatSleepRangeVO {
private String sleepType;
private String startTime;
private String endTime;
}
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")) + "");
}
}
...@@ -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
......
...@@ -64,7 +64,7 @@ public class IotTest { ...@@ -64,7 +64,7 @@ public class IotTest {
@Test @Test
void getDeviceLogByTimeRange() { void getDeviceLogByTimeRange() {
iotProductDeviceService.getDeviceLogByTimeRange("1701127702523473920",100,"2023-09-12 00:00:00","2023-09-12 23:59:00"); iotProductDeviceService.getDeviceLogByTimeRange("1701127702523473920",100,"2023-09-11 00:00:00","2023-09-11 23:59:00");
} }
@Test @Test
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment