Commit 3685298a by huangjy

feat,模型相关

parent 39d09828
Showing with 354 additions and 14 deletions
......@@ -285,3 +285,39 @@ CREATE TABLE `plat_device_other`
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 = '长者每天睡觉分析';
......@@ -29,7 +29,7 @@ import org.springframework.web.bind.annotation.RestController;
*/
@RestController
@RequestMapping("/saas/diseaseEvaluateReport")
@Api(tags = "saas端-报告管理")
@Api(tags = "saas端-报告管理-呼吸心率慢性病模型评估结果")
public class SaasDiseaseEvaluateReportController {
......
......@@ -27,7 +27,7 @@ import org.springframework.web.bind.annotation.RestController;
*/
@RestController
@RequestMapping("/saas/diseaseModel")
@Api(tags = "saas端-模型管理")
@Api(tags = "saas端-模型管理-呼吸心率慢性病模型")
public class SaasDiseaseModelController {
......
......@@ -27,7 +27,7 @@ import org.springframework.web.bind.annotation.RestController;
*/
@RestController
@RequestMapping("/saas/elderReportConfig")
@Api(tags = "saas端-报告管理")
@Api(tags = "saas端-报告管理-长者报告配置")
public class SaasElderReportConfigController {
@Autowired
private SaasElderReportConfigService saasElderReportConfigService;
......
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.ApiResponseUtils;
import com.makeit.entity.saas.analysis.SaasModelManage;
import com.makeit.global.annotation.Action;
import com.makeit.module.admin.vo.plat.PlatTenantVO;
import com.makeit.service.saas.SaasModelManageService;
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;
......@@ -29,7 +25,7 @@ import java.util.List;
*/
@RestController
@RequestMapping("/saas/modelManage")
@Api(tags = "saas端-报告管理")
@Api(tags = "saas端-模型管理")
public class SaasModelManageController {
@Autowired
......@@ -39,7 +35,7 @@ public class SaasModelManageController {
@Action(module = "数据分析-模型管理", name = "分页列表", code = "saas:modelManage:page")
@ApiOperation("分页列表")
@PostMapping("list")
public ApiResponseEntity<List<SaasModelManage>> list(){
public ApiResponseEntity<List<SaasModelManage>> list() {
return ApiResponseUtils.success(saasModelManageService.list());
}
}
......
......@@ -28,7 +28,7 @@ import org.springframework.web.bind.annotation.RestController;
*/
@RestController
@RequestMapping("/saas/sleepAnalysisModel")
@Api(tags = "saas端-模型管理")
@Api(tags = "saas端-模型管理-睡眠质量分析模型")
public class SaasSleepAnalysisModelController {
@Autowired
......
......@@ -27,7 +27,7 @@ import org.springframework.web.bind.annotation.RestController;
*/
@RestController
@RequestMapping("/saas/sleepEvaluateReport")
@Api(tags = "saas端-报告管理")
@Api(tags = "saas端-报告管理-睡眠质量分析模型评估结果")
public class SaasSleepEvaluateReportController {
......
package com.makeit.controller.analysis;
import com.alibaba.fastjson.JSON;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
......@@ -17,6 +18,9 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
* <p>
* 睡眠质量分析模型评估标准 前端控制器
......@@ -27,7 +31,7 @@ import org.springframework.web.bind.annotation.RestController;
*/
@RestController
@RequestMapping("/saas/sleepEvaluateStandardReport")
@Api(tags = "saas端-报告管理")
@Api(tags = "saas端-报告管理-睡眠质量分析模型评估标准")
public class SaasSleepEvaluateStandardReportController {
......@@ -50,6 +54,15 @@ public class SaasSleepEvaluateStandardReportController {
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")
@ApiOperation("编辑")
@PostMapping("edit")
......
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;
}
}
......@@ -106,7 +106,7 @@ public class CodeGenerator {
// 使用重点 下列字段填写表名 运行方法
// 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.setTablePrefix(pc.getModuleName() + "_"); //生成实体属性时去掉表"_"前缀并且第一个字母大写 如:gmt_create -> gmtCreate
......
package com.makeit.dto.saas.analysis;
import com.makeit.common.dto.BaseReportDTO;
import com.makeit.common.entity.BaseBusEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* <p>
* 睡眠质量分析模型评估标准
......
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> {
}
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.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 {
}
package com.makeit.vo.platform.elder.report.day;
import lombok.Data;
@Data
public class PlatSleepRangeVO {
private String sleepType;
private String startTime;
private String endTime;
}
......@@ -64,7 +64,7 @@ public class IotTest {
@Test
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
......
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