新疆后端项目

This commit is contained in:
DESKTOP-BLB5287\FP
2025-06-30 14:31:09 +08:00
commit 0e52aff1f1
2596 changed files with 261030 additions and 0 deletions
+62
View File
@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.renkang</groupId>
<artifactId>health-watch</artifactId>
<version>2.0.0</version>
</parent>
<artifactId>health-watch-api</artifactId>
<dependencies>
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-boot-base-core</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
</dependency>
<!-- feign -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!-- 控制openfeign中bcpkix依赖的版本 -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk18on</artifactId>
</dependency>
<!-- sentinel限流熔断降级-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-plugin.version}</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,267 @@
package com.renkang.watch.api;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.renkang.watch.api.fallback.WatchApiFallBack;
import com.renkang.watch.bean.response.fouinone.FourInOneWatchDataVo;
import com.renkang.watch.dto.*;
import com.renkang.watch.entity.*;
import com.renkang.watch.vo.*;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.vo.LoginUser;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.Valid;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @author TianZi
* @date 2023/11/22 15:46
*/
@FeignClient(
value = "health-watch",
url = "${renkang.service-url.watch:}",
fallbackFactory = WatchApiFallBack.class
)
@Component
public interface WatchApi {
/**
* 小屋大屏获取手表数据
*
* @param dateStr 时间字符串
* @return bean
*/
@GetMapping(value = "/watch/watchUserData/healthCenterScreenWatchDataInfo")
Result<FourInOneWatchDataVo> healthCenterScreenWatchDataInfo(@RequestParam String dateStr);
/**
* 获取已绑定员工id
*
* @return
*/
@GetMapping("/watch/watchDevice/getBindUserIdList")
public List<String> getBindUserIdList();
/**
* 修改手表部门
*
* @param dto
* @return
*/
@PostMapping("/watch/watchDevice/updateWatchDeptId")
public Boolean updateWatchDeptId(@RequestBody WatchDeviceDTO dto);
/**
* 获取手表数据
*
* @param dtoList
* @return
*/
@PostMapping("/watch/watchDevice/getWorkoutDataByUserIds")
public List<WatchWorkoutVO> getWorkoutDataByUserIds(@RequestBody List<WatchWorkoutDTO> dtoList);
/**
* 是否拥有手表
*
* @param sysUser
* @return
*/
@PostMapping("/watch/watchDevice/isHaveWatchByUserId")
public Boolean isHaveWatchByUserId(@RequestBody LoginUser sysUser);
@GetMapping("/watch/watchStatUserInfoDaySdc/getStatUserInfoDay")
public Integer getStatUserInfoDay(@RequestParam("userId") String userId, @RequestParam("date") String date);
@GetMapping("/watch/watchStatUserInfoDaySdc/getUserDayCalorieTotalValue")
public Integer getUserDayCalorieTotalValue(@RequestParam("userId") String userId, @RequestParam("date") String date);
/**
* 根据userIds获取步数数据
*
* @param userIds 用户id数组
* @return 步数数据
*/
@PostMapping("/watch/watchDevice/getSdcDataByUserIds")
public List<UserDaySdcInfoVo> getSdcDataByUserIds(@RequestBody List<String> userIds,
@RequestParam("startTime")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,
@RequestParam("endTime")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime);
/**
* 根据userIds获取步数数据
*
* @param userIds 用户id数组
* @return 步数数据Map
*/
@PostMapping("/watch/watchDevice/getSdcDataMapByUserIds")
public Map<String, List<WatchStatUserInfoDaySdc>> getSdcDataMapByUserIds(@RequestBody List<String> userIds,
@RequestParam("startTime")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,
@RequestParam("endTime")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime);
/**
* 根据userIds获取消耗数据
*
* @param dto dto
* @return 消耗数据
* 24.03.19 列表用户由本方法确认 新增 根据userId 及 date 查询消耗数据
*/
@PostMapping("/watch/watchDevice/getCalorieDataByUserIds")
public Page<UserDayCalorieInfoVo> getCalorieDataByUserIds(@RequestBody CalorieDataByUserDTO dto);
/**
* 移动端干预首页获取消耗数据
*/
@PostMapping("/watch/watchDevice/getCalorieDataHome")
public Page<UserDayCalorieInfoVo> getCalorieDataHome(@RequestBody CalorieDataByUserDTO dto);
/**
* 根据userIds获取消耗数据new
*
* @param dto dto
* @return 消耗数据
* 24.03.19 列表用户由本方法确认 新增 根据userId 及 date 查询消耗数据
*/
@PostMapping("/watch/watchDevice/getCalorieDataByUserIdsNew")
public List<UserDayCalorieInfoVo> getCalorieDataByUserIdsNew(@RequestBody CalorieDataByUserDTO dto);
/**
* 根据userIds获取消耗数据(两天)
*
* @param userIds 用户id数组
* @return 消耗数据
*/
@PostMapping("/watch/watchDevice/getTwoDaysCalorieDataByUserIds")
public List<UserDayCalorieInfoVo> getTwoDaysCalorieDataByUserIds(@RequestBody List<String> userIds,
@RequestParam("startTime")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,
@RequestParam("endTime")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime);
/**
* 获取当前登录人指定时间的消耗数据
*
* @param dtoList 指定用户指定时间数据
* @return 消耗数据
*/
@Operation(summary = "获取当前登录人指定时间的消耗数据", description = "获取当前登录人指定时间的消耗数据")
@PostMapping("/watch/watchDevice/getCalorieByUserId")
public List<UserDayCalorieInfoVo> getCalorieByUserId(@RequestBody List<CalorieDataByUserDataDTO> dtoList);
/**
* 获取当前登录用户周月报数据
*
* @param startTime 开始时间
* @param endTime 结束时间
* @return 周月报数据
*/
@PostMapping("/watch/watchDevice/getWeekMonthCalorieData")
AppCalorieDataVo getWeekMonthCalorieData(@RequestParam(name = "startTime")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,
@RequestParam(name = "endTime")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime);
@PostMapping("/watch/watchDevice/watchList")
public Result<Page<WatchDeviceDO>> watchList(WatchDeviceDTO dto);
/**
* 注:只为干预急救联动穿戴信息使用
*
* @param name
* @param workNo
* @param orgCode
* @param deptCode
* @param pageNo
* @param pageSize
* @return
*/
@Operation(summary = "查询单位下的所有手表分页", description = "查询单位下的所有手表分页")
@GetMapping(value = "/watch/watchDevice/pageByOrgCode")
Result<Page<WatchDeviceListVO>> getWatchPage(
@RequestParam(name = "name", required = false) @Parameter(description = "员工姓名") String name,
@RequestParam(name = "workNo", required = false) @Parameter(description = "员工工号") String workNo,
@RequestParam(name = "orgCode", required = true) @Parameter(description = "单位编码") String orgCode,
@RequestParam(name = "deptCode", required = false) @Parameter(description = "部门编码") String deptCode,
@RequestParam(name = "watchNo", required = false) @Parameter(description = "设备编号") String watchNo,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize);
/**
* 注:只为急救联动提供的分页查询手表总数方法
* 查询医疗点数量方法
*/
@GetMapping(value = "/watch/watchDevice/watch/sum")
@Operation(summary = "只为急救联动提供的手表方法 - 根据单位查询手表数量", description = "只为急救联动提供的手表方法 - 根据单位查询手表数量")
Map<String, Long> getWatchSum();
@Operation(summary = "查询手表数据", description = "查询手表数据")
@GetMapping(value = "/api/watchData/selectMyocardialInfarction")
WatchDataUnion selectMyocardialInfarction(
@RequestParam(name = "userId") String userId,
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date dateTime);
@Operation(summary = "查询自记动数据", description = "查询自记动数据")
@GetMapping(value = "/sports/record/today")
Result<List<UserRecordSportsVO>> queryUserTodaySportsList(@RequestParam(name = "dateStr",required = false) @Parameter(description = "日期(yyyy-MM-dd不传默认查当天)") String dateStr);
@PostMapping("/sports/record/playSign")
@Operation(summary = "查询用户当日运动打卡数据(目前供干预中体重管理功能使用)", description = "查询用户当日运动打卡数据(目前供干预中体重管理功能使用)")
Result<List<UserPlaySignVO>> queryPlaySignUser(@RequestBody QueryUserPlaySignParam signUserParam);
@Operation(summary = "获取用户运动日历数据(目前供干预中体重管理功能使用)", description = "获取用户运动日历数据(目前供干预中体重管理功能使用)")
@GetMapping(value = "/sports/record/playData")
Result<List<PlayDataDayStatisticVO>> playDataDayStatistic(@RequestParam(name = "startDate") @Parameter(description = "起始日期(yyyy-mm-dd)") String startDate,
@RequestParam(name = "endDate") @Parameter(description = "起始日期(yyyy-mm-dd)") String endDate,
@RequestParam(name = "userId",required = false) @Parameter(description = "默认从token中获取") String userId,
@RequestParam(name = "cardNo",required = false) @Parameter(description = "默认从token中获取") String cardNo);
/**
* 该接口目前只有干预体重管理数据归档的定时任务中使用
*/
@PostMapping("/sports/record/playInfo")
@Operation(summary = "查询用户历史某日运动数据明细(目前供干预中体重管理功能使用)", description = "查询用户历史某日运动数据明细(目前供干预中体重管理功能使用)")
Result<List<PlayDataDetailVO>> queryUserHistoryPlayInfo(@RequestParam(name = "date") @Parameter(description = "日期(yyyy-mm-dd)") String date);
@PostMapping("/sports/weChat/upload")
@Operation(summary = "同步微信步数", description = "同步微信步数")
Result<?> uploadUserWeChatStep(@RequestBody List<WeChatStepVO> dataList );
@PostMapping("/sports/weChat/findByScope")
@Operation(summary = "查询用户微信运动步数", description = "查询用户微信运动步数")
Result<List<UserWeChatSportsDay>> findUserWeChatSportsScope(@Valid @RequestBody QueryWeChatSportParam param);
@GetMapping("/sports/record/playDataDayDetailByUserId")
@Operation(summary = "获取用户当天运动详情(目前供干预中体重管理功能使用)", description = "获取用户当天运动详情(目前供干预中体重管理功能使用)")
Result<List<PlayDataDetailVO>> playDataDayDetailByUserId(@RequestParam(name = "date") @Parameter(description = "日期(yyyy-mm-dd)") String date,
@RequestParam(name = "userId") @Parameter(description = "用户id") String userId,
@RequestParam(name = "idCard") @Parameter(description = "身份证号") String idCard);
}
@@ -0,0 +1,26 @@
package com.renkang.watch.api.fallback;
import com.renkang.watch.api.WatchApi;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
/**
* @author TianZi
* @date 2023/11/22 15:46
*/
@Slf4j
@Component
public class WatchApiFallBack implements FallbackFactory<WatchApi> {
@Setter
private Throwable cause;
@Override
public WatchApi create(Throwable throwable) {
log.error("微服务接口调用失败: {}", cause);
return null;
}
}
@@ -0,0 +1,37 @@
package com.renkang.watch.bean.request;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @author Junqiang Zhu
* @date 2023-11-02 15:21
*/
@Data
public class AbnormalEventFilter {
// 单位code
private String secondDepartOrgCode;
// 部门code
private String departOrgCode;
// 用户名称
private String userName;
// 工具编码
private String watchNo;
//员工编号
private String workNo;
// 事件类型
private String eventType;
// 报警日期开始
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date warnTimeStart;
// 报警日期结束
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date warnTimeEnd;
private String errorType;
}
@@ -0,0 +1,45 @@
package com.renkang.watch.bean.request;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* @author Jiang Shunzhi
*/
@Data
public class DepartStatsFilter {
private String orgCode;
private String orgCodeLeaf;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@NotNull(message = "请选择统计时间范围")
private Date start;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@NotNull(message = "请选择统计时间范围")
private Date end;
private Integer pageNo;
private Integer pageSize;
public Integer getPageNo() {
if (pageNo == null) {
setPageNo(1);
}
return pageNo;
}
public Integer getPageSize() {
if (pageSize == null) {
setPageSize(10);
}
return pageSize;
}
}
@@ -0,0 +1,27 @@
package com.renkang.watch.bean.request;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @author Junqiang Zhu
* @date 2023-11-03 11:17
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class UserDataStatFilter extends AbnormalEventFilter{
// 身份证号
private String idCard;
// 数据结束事件
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date dataDateStart;
// 数据开始事件
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date dataDateEnd;
}
@@ -0,0 +1,16 @@
package com.renkang.watch.bean.request;
import com.renkang.watch.vo.UserData.StatisticsReq;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author Junqiang Zhu
* @date 2023-11-08 15:58
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WorkoutFilter extends StatisticsReq {
// 锻炼类型
private String type;
}
@@ -0,0 +1,54 @@
package com.renkang.watch.bean.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.renkang.watch.entity.WatchKeyUser;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @author Junqiang Zhu
* @date 2023-11-02 15:21
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class AbnormalEvent extends BaseUser {
private String id;
@Excel(name = "工具编码", width = 15, orderNum = "3")
private String watchNo;
@Dict(dicCode = "watch_event_type")
@Excel(name = "事件类型", dicCode = "watch_event_type", width = 15, orderNum = "6")
private String eventType;
@Excel(name = "异常值", width = 15, orderNum = "7")
private String dataValue;
@Excel(name = "详细地址", width = 15, orderNum = "9")
private String address;
private String gpsErrorMsg;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "报警时间", format = "yyyy-MM-dd HH:mm:ss", width = 15, orderNum = "10")
private Date warnTime;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "创建日期")
private Date createDate;
// 经度
private BigDecimal lon;
// 维度
private BigDecimal lat;
@Excel(name = "员工编号", width = 15, orderNum = "2")
private String workNo;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "绑定日期")
private Date bindDate;
@Schema(title = "重点指标用户(0:非重点指标用户 1:大病异常 2:慢病异常 3:指标异常)")
private List<WatchKeyUser> keyUserList;
}
@@ -0,0 +1,32 @@
package com.renkang.watch.bean.response;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
/**
* @author Junqiang Zhu
* @date 2023-11-03 14:13
*/
@Data
public class BaseUser {
private String userId;
@Excel(name = "员工姓名", width = 15, orderNum = "1")
private String userName;
private Integer age;
@Dict(dicCode = "sex2")
private Integer sex;
@Excel(name = "手机号码", width = 15, orderNum = "8")
private String phone;
private String avatar;
// 身份证号
private String idCard;
/**
* 当前部门
*/
private String depart;
@Excel(name = "单位名称", width = 15, orderNum = "4")
private String secondDepart;
@Excel(name = "部门名称", width = 15, orderNum = "5")
private String thirdDepart;
}
@@ -0,0 +1,17 @@
package com.renkang.watch.bean.response;
import lombok.Data;
/**
* @author Junqiang Zhu
* @date 2023-11-09 15:33
*/
@Data
public class BloodOxygenAllStat {
// 最大值
private Double max;
// 最小值
private Double min;
// 平均值
private Double avg;
}
@@ -0,0 +1,24 @@
package com.renkang.watch.bean.response;
import lombok.Data;
/**
* 体温
* @author Junqiang Zhu
* @date 2023-11-09 10:02
*/
@Data
public class BodyTemperatureStat {
// 体温最大值
private Double max;
// 体温最小值
private Double min;
// 体温平均值
private Double avg;
// 体表温度最大值
private Double skinMax;
// 体表温度最小值
private Double skinMin;
// 体表温度平均值
private Double skinAvg;
}
@@ -0,0 +1,15 @@
package com.renkang.watch.bean.response;
import lombok.Data;
import java.util.List;
/**
* @author Junqiang Zhu
* @date 2023-11-27 13:21
*/
@Data
public class DataDay {
private Integer month;
private List<Integer> day;
}
@@ -0,0 +1,14 @@
package com.renkang.watch.bean.response;
import lombok.Data;
import java.util.List;
/**
* @author Junqiang Zhu
* @date 2023-11-27 13:13
*/
@Data
public class DataMonth {
private List<DataDay> month;
}
@@ -0,0 +1,39 @@
package com.renkang.watch.bean.response;
import lombok.Data;
/**
* 运动统计
* @author Junqiang Zhu
* @date 2023-11-09 10:07
*/
@Data
public class ExerciseStat {
// 运动最大距离
private Integer distanceMax;
// 运动最小距离
private Integer distanceMin;
// 运动总距离
private Integer distanceTotal;
// 运动有效次数
private Integer distanceValidNum;
// 最大卡路里
private Integer kcalMax;
// 最小卡路里
private Integer kcalMin;
// 总卡路里
private Integer kcalTotal;
// 有效卡路里
private Integer kcalValidNum;
// 最大时长
private Integer timeMax;
// 最小时长
private Integer timeMin;
// 总时长
private Integer timeTotal;
// 时长有效次数
private Integer timeValidNum;
}
@@ -0,0 +1,25 @@
package com.renkang.watch.bean.response;
import lombok.Data;
/**
* 心率统计
* @author Junqiang Zhu
* @date 2023-11-09 10:02
*/
@Data
public class HeartRateStat {
// 心率最大值
private Integer max;
// 心率最小值
private Integer min;
// 心率平均值
private Integer avg;
// 静息最大值
private Integer silenceMax;
// 静息最小值
private Integer silenceMin;
// 静息平均值
private Integer silenceAvg;
}
@@ -0,0 +1,15 @@
package com.renkang.watch.bean.response;
import lombok.Data;
/**
* 运动统计
* @author Junqiang Zhu
* @date 2023-11-09 10:07
*/
@Data
public class SdcStat {
private Integer max;
private Integer min;
private Integer avg;
}
@@ -0,0 +1,29 @@
package com.renkang.watch.bean.response;
import lombok.Data;
/**
* 睡眠统计
* @author Junqiang Zhu
* @date 2023-11-09 10:07
*/
@Data
public class SleepStat {
// 睡眠次数
private Integer num;
// 睡眠最长时长
private Integer timeMax;
// 睡眠最小时长
private Integer timeMin;
// 睡眠总时长
private Integer timeTotal;
// 小睡次数
private Integer napNum;
// 小睡最长时长
private Integer napTimeMax;
// 小睡最短时长
private Integer napTimeMin;
// 小睡总时长
private Integer napTimeTotal;
}
@@ -0,0 +1,18 @@
package com.renkang.watch.bean.response;
import lombok.Data;
/**
* 压力统计
* @author Junqiang Zhu
* @date 2023-11-09 10:02
*/
@Data
public class StressStat {
// 最大值
private Integer max;
// 最小值
private Integer min;
// 平均值
private Integer avg;
}
@@ -0,0 +1,27 @@
package com.renkang.watch.bean.response;
import lombok.Data;
/**
* @author Junqiang Zhu
* @date 2023-11-07 13:12
*/
@Data
public class UserDataDetail {
// 用户基础信息
private BaseUser user;
// 心率
private HeartRateStat heartRateStat;
// 血氧
private BloodOxygenAllStat bloodOxygenAllStat;
// 压力
private StressStat stressStat;
// 体温
private BodyTemperatureStat bodyTempOverviewStat;
// 睡眠
private SleepStat sleepStat;
// 运动
private ExerciseStat exerciseStat;
// 步数
private SdcStat sdcStat;
}
@@ -0,0 +1,25 @@
package com.renkang.watch.bean.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @author Junqiang Zhu
* @date 2023-11-03 11:09
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class UserDataStat extends BaseUser {
// 手表编号
private String watchNo;
// 数据日期
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date dataDate;
// 员工编码
private String workNo;
}
@@ -0,0 +1,105 @@
package com.renkang.watch.bean.response;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 个人统计数据导出bean
* @author Junqiang Zhu
* @date 2023-11-13 13:05
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class UserDataStatExport extends UserDataStat{
// 心率
// 心率最大值
private Integer heartRateMax;
// 心率最小值
private Integer heartRateMin;
// 心率平均值
private Integer heartRateAvg;
// 静息最大值
private Integer heartRateSilenceMax;
// 静息最小值
private Integer heartRateSilenceMin;
// 静息平均值
private Integer heartRateSilenceAvg;
// 血氧
// 最大值
private Double bloodOxygenMax;
// 最小值
private Double bloodOxygenMin;
// 平均值
private Double bloodOxygenAvg;
// 压力
// 最大值
private Integer stressMax;
// 最小值
private Integer stressMin;
// 平均值
private Integer stressAvg;
// 体温最大值
private Double bodyTempMax;
// 体温最小值
private Double bodyTempMin;
// 体温平均值
private Double bodyTempAvg;
// 体表温度最大值
private Double bodySkinMax;
// 体表温度最小值
private Double bodySkinMin;
// 体表温度平均值
private Double bodySkinAvg;
// 睡眠次数
private Integer sleepNum;
// 睡眠最长时长
private Integer sleepTimeMax;
// 睡眠最小时长
private Integer sleepTimeMin;
// 睡眠总时长
private Integer sleepTimeTotal;
// 小睡次数
private Integer sleepNapNum;
// 小睡最长时长
private Integer sleepNapTimeMax;
// 小睡最短时长
private Integer sleepNapTimeMin;
// 小睡总时长
private Integer sleepNapTimeTotal;
// 运动
// 运动最大距离
private Integer exerciseDistanceMax;
// 运动最小距离
private Integer exerciseDistanceMin;
// 运动总距离
private Integer exerciseDistanceTotal;
// 运动有效次数
private Integer exerciseDistanceValidNum;
// 最大卡路里
private Integer exerciseKcalMax;
// 最小卡路里
private Integer exerciseKcalMin;
// 总卡路里
private Integer exerciseKcalTotal;
// 有效卡路里
private Integer exerciseKcalValidNum;
// 最大时长
private Integer exerciseTimeMax;
// 最小时长
private Integer exerciseTimeMin;
// 总时长
private Integer exerciseTimeTotal;
// 时长有效次数
private Integer exerciseTimeValidNum;
}
@@ -0,0 +1,18 @@
package com.renkang.watch.bean.response;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.renkang.watch.entity.WatchDataWorkout;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author Junqiang Zhu
* @date 2023-11-08 16:47
*/
@Data
public class WatchWorkoutPageCustom {
private BigDecimal totalDistance;
private BigDecimal totalKcal;
private IPage<WatchDataWorkout> page;
}
@@ -0,0 +1,48 @@
package com.renkang.watch.bean.response.fouinone;
import java.math.BigDecimal;
/**
* 健康小屋大屏 血氧 展示 vo
*/
public class FourInOneWatchBloodOxygenDataVo {
/**
* 正常
*/
private BigDecimal normal;
/**
* 警告
*/
private BigDecimal warning;
/**
* 危险
*/
private BigDecimal danger;
public BigDecimal getNormal() {
return normal;
}
public void setNormal(BigDecimal normal) {
this.normal = normal;
}
public BigDecimal getWarning() {
return warning;
}
public void setWarning(BigDecimal warning) {
this.warning = warning;
}
public BigDecimal getDanger() {
return danger;
}
public void setDanger(BigDecimal danger) {
this.danger = danger;
}
}
@@ -0,0 +1,60 @@
package com.renkang.watch.bean.response.fouinone;
/**
* 健康小屋大屏运动里程、心率、血氧、压力展示 vo
*/
public class FourInOneWatchDataVo {
/**
* 运动
*/
private FourInOneWatchSportDataVo sportDataVo;
/**
* 心率
*/
private FourInOneWatchHeartRateDataVo heartRateDataVo;
/**
* 血氧
*/
private FourInOneWatchBloodOxygenDataVo bloodOxygenDataVo;
/**
* 压力
*/
private FourInOneWatchStressDataVo stressDataVo;
public FourInOneWatchSportDataVo getSportDataVo() {
return sportDataVo;
}
public void setSportDataVo(FourInOneWatchSportDataVo sportDataVo) {
this.sportDataVo = sportDataVo;
}
public FourInOneWatchHeartRateDataVo getHeartRateDataVo() {
return heartRateDataVo;
}
public void setHeartRateDataVo(FourInOneWatchHeartRateDataVo heartRateDataVo) {
this.heartRateDataVo = heartRateDataVo;
}
public FourInOneWatchBloodOxygenDataVo getBloodOxygenDataVo() {
return bloodOxygenDataVo;
}
public void setBloodOxygenDataVo(FourInOneWatchBloodOxygenDataVo bloodOxygenDataVo) {
this.bloodOxygenDataVo = bloodOxygenDataVo;
}
public FourInOneWatchStressDataVo getStressDataVo() {
return stressDataVo;
}
public void setStressDataVo(FourInOneWatchStressDataVo stressDataVo) {
this.stressDataVo = stressDataVo;
}
}
@@ -0,0 +1,49 @@
package com.renkang.watch.bean.response.fouinone;
import java.math.BigDecimal;
/**
* 健康小屋大屏 心率 展示 vo
*/
public class FourInOneWatchHeartRateDataVo {
/**
* 正常
*/
private BigDecimal normal;
/**
* 警告
*/
private BigDecimal warning;
/**
* 危险
*/
private BigDecimal danger;
public BigDecimal getNormal() {
return normal;
}
public void setNormal(BigDecimal normal) {
this.normal = normal;
}
public BigDecimal getWarning() {
return warning;
}
public void setWarning(BigDecimal warning) {
this.warning = warning;
}
public BigDecimal getDanger() {
return danger;
}
public void setDanger(BigDecimal danger) {
this.danger = danger;
}
}
@@ -0,0 +1,28 @@
package com.renkang.watch.bean.response.fouinone;
import java.math.BigDecimal;
/**
* 健康小屋大屏 压力数据
*/
public class FourInOneWatchPressDataChild {
private String name;
private BigDecimal value;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public BigDecimal getValue() {
return value;
}
public void setValue(BigDecimal value) {
this.value = value;
}
}
@@ -0,0 +1,48 @@
package com.renkang.watch.bean.response.fouinone;
import java.math.BigDecimal;
import java.util.List;
/**
* 健康小屋大屏 运动里程 展示 vo
*/
public class FourInOneWatchSportDataVo {
private List<String> xAxisDataList;
private List<BigDecimal> lessThan2KmList;
private List<BigDecimal> middleList;
private List<BigDecimal> moreThan5KmList;
public List<String> getxAxisDataList() {
return xAxisDataList;
}
public void setxAxisDataList(List<String> xAxisDataList) {
this.xAxisDataList = xAxisDataList;
}
public List<BigDecimal> getLessThan2KmList() {
return lessThan2KmList;
}
public void setLessThan2KmList(List<BigDecimal> lessThan2KmList) {
this.lessThan2KmList = lessThan2KmList;
}
public List<BigDecimal> getMiddleList() {
return middleList;
}
public void setMiddleList(List<BigDecimal> middleList) {
this.middleList = middleList;
}
public List<BigDecimal> getMoreThan5KmList() {
return moreThan5KmList;
}
public void setMoreThan5KmList(List<BigDecimal> moreThan5KmList) {
this.moreThan5KmList = moreThan5KmList;
}
}
@@ -0,0 +1,41 @@
package com.renkang.watch.bean.response.fouinone;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 健康小屋大屏 压力 展示 vo
*/
public class FourInOneWatchStressDataVo {
public static final String RELAX = "放松";
public static final String NORMAL = "正常";
public static final String MIDDLE = "中等";
public static final String HIGH_SIDE = "偏高";
private List<FourInOneWatchPressDataChild> preDataList;
public FourInOneWatchStressDataVo() {
List<String> nameList = Arrays.asList(RELAX, NORMAL, MIDDLE, HIGH_SIDE);
List<FourInOneWatchPressDataChild> preDataList = new ArrayList<>();
for (String name : nameList) {
FourInOneWatchPressDataChild child = new FourInOneWatchPressDataChild();
child.setName(name);
child.setValue(BigDecimal.ZERO);
preDataList.add(child);
}
this.preDataList = preDataList;
}
public List<FourInOneWatchPressDataChild> getPreDataList() {
return preDataList;
}
public void setPreDataList(List<FourInOneWatchPressDataChild> preDataList) {
this.preDataList = preDataList;
}
}
@@ -0,0 +1,17 @@
package com.renkang.watch.bean.transfer;
import lombok.Data;
/**
* @author Jiang Shunzhi
*/
@Data
public class AbnormalCount {
private String orgCode;
private String eventType;
private Integer warningCount;
}
@@ -0,0 +1,19 @@
package com.renkang.watch.bean.transfer;
import lombok.Data;
/**
* @author Jiang Shunzhi
*/
@Data
public class DepartDeviceNum {
private String orgCode;
private Integer deviceCount;
private Integer bindCount;
private Integer wearCount;
}
@@ -0,0 +1,76 @@
package com.renkang.watch.bean.transfer;
import com.deepoove.poi.data.ChartMultiSeriesRenderData;
import com.deepoove.poi.data.ChartSingleSeriesRenderData;
import com.renkang.watch.entity.WatchMonitorData;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @author Shunzhi Jiang
* @since 2024/3/26
*/
@Data
public class DepartReport {
ChartSingleSeriesRenderData heartRatePie1;
ChartSingleSeriesRenderData heartRatePie2;
ChartMultiSeriesRenderData heartRateChart;
ChartSingleSeriesRenderData spo2Pie1;
ChartSingleSeriesRenderData spo2Pie2;
ChartMultiSeriesRenderData spo2Chart;
ChartSingleSeriesRenderData stressPie1;
ChartSingleSeriesRenderData stressPie2;
ChartMultiSeriesRenderData stressChart;
ChartSingleSeriesRenderData temperaturePie1;
ChartSingleSeriesRenderData temperaturePie2;
ChartMultiSeriesRenderData temperatureChart;
ChartSingleSeriesRenderData sleepPie1;
ChartSingleSeriesRenderData sleepPie2;
ChartSingleSeriesRenderData stepPie1;
ChartSingleSeriesRenderData stepPie2;
ChartSingleSeriesRenderData workoutPie1;
ChartSingleSeriesRenderData workoutPie2;
private List<String> watchNos;
private List<String> userIds;
private List<WatchMonitorData> watchMonitorData;
private Date startTime;
private Date endTime;
private Integer year;
private Integer month;
private Integer lastDay;
private String departName;
private String generateTime;
private Integer deviceNum;
private Integer bindNum;
private Integer dataTotal;
private Integer dataMonth;
private Integer personTotal;
private Integer personMonth;
private Integer monitorDataTotal;
private Integer monitorDataMonth;
private Integer monitorPersonMonth;
private Integer heartRateTotal;
private Integer heartRateMonth;
private Integer spo2Total;
private Integer spo2Month;
private Integer stressTotal;
private Integer stressMonth;
private Integer temperatureTotal;
private Integer temperatureMonth;
private Integer sleepTotal;
private Integer sleepMonth;
private Integer stepTotal;
private Integer stepMonth;
private Integer workoutTotal;
private Integer workoutMonth;
private Integer workoutPersonMonth;
public void calcData() {
dataTotal = heartRateTotal + spo2Total + stressTotal + temperatureTotal + sleepTotal + stepTotal + workoutTotal;
dataMonth = heartRateMonth + spo2Month + stressMonth + temperatureMonth + sleepMonth + stepMonth + workoutMonth;
}
}
@@ -0,0 +1,40 @@
package com.renkang.watch.bean.transfer;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.renkang.watch.bean.request.DepartStatsFilter;
import com.renkang.watch.vo.dept.DeptStatData;
import lombok.Data;
import lombok.experimental.Accessors;
import org.jeecg.modules.system.entity.SysDepart;
import java.util.List;
import java.util.Map;
/**
* @author Jiang Shunzhi
*/
@Data
@Accessors(fluent = true)
public class DepartStatTransfer {
private DepartStatsFilter filter;
private SysDepart secondDepart;
private SysDepart thirdDepart;
private Map<String, DepartDeviceNum> departDeviceNumMap;
private Map<String, DepartDeviceNum> departBindAndWearNumMap;
private DepartDeviceNum secondDepartBindAndWearNum;
private Map<String, Map<String, AbnormalCount>> departAbnormalCountMap;
private Map<String, AbnormalCount> secondDepartAbnormalCount;
private IPage<DeptStatData> pagedData;
private List<DeptStatData> data;
}
@@ -0,0 +1,26 @@
package com.renkang.watch.bean.transfer;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @author Jiang Shunzhi
*/
@Data
public class WearingDetail {
private String bindUserId;
private Date bindDate;
private String watchNo;
private String watchOrgCode;
private Integer dateCount;
private List<String> dateList;
}
@@ -0,0 +1,124 @@
package com.renkang.watch.bean.transfer;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.renkang.watch.bean.request.DepartStatsFilter;
import com.renkang.watch.vo.dept.DeptData;
import lombok.Data;
import lombok.experimental.Accessors;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.dto.PageExtra;
import org.jeecg.common.system.vo.LoginUserNew;
import org.jeecg.common.util.SpringContextUtils;
import org.jeecg.modules.manager.ISysCache;
import org.jeecg.modules.system.entity.SysDepart;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author Jiang Shunzhi
*/
@Data
@Accessors(fluent = true, chain = true)
@Slf4j
public class WearingDetailTransfer {
private DepartStatsFilter filter;
private SysDepart secondDepart;
private SysDepart thirdDepart;
private String startDate;
private String endDate;
private Map<String, LoginUserNew> userMap;
private Map<String, SysDepart> departMap = new ConcurrentHashMap<>(8);
private List<String> dateList;
private List<WearingDetail> rawData;
private PageExtra<DeptData, List<String>> pagedData;
private List<DeptData> data;
private static List<String> getdateList(Date start, Date end) {
if (ObjectUtil.isNull(start) || ObjectUtil.isNull(end)) {
throw new RuntimeException("请选择时间范围");
}
List<String> dateList = new ArrayList<>();
DateTime date = DateUtil.date(start);
do {
dateList.add(date.toDateStr());
date.offset(DateField.DAY_OF_YEAR, 1);
} while (date.isBeforeOrEquals(end));
return dateList;
}
public static void main(String[] args) {
List<String> strings = getdateList(DateUtil.parseDate("2024-10-01"), DateUtil.parseDate("2024-10-31"));
log.info("DATA: \n{}", strings);
}
public WearingDetailTransfer filter(DepartStatsFilter filter) {
this.filter = filter;
return this;
}
public WearingDetailTransfer initDepart() {
if (ObjectUtil.isNull(filter)) {
return this;
}
if (StrUtil.isBlank(filter.getOrgCode())) {
return this;
}
SysDepart depart = getDepartByOrgCode(filter.getOrgCode());
if (filter.getOrgCode().length() > 6) {
this.thirdDepart = depart;
this.secondDepart = getDepartByOrgCode(filter.getOrgCode().substring(0, 6));
} else {
this.secondDepart = depart;
}
return this;
}
public WearingDetailTransfer initDateString() {
if (ObjectUtil.isNull(filter)) {
return this;
}
this.startDate = getDateString(filter.getStart());
this.endDate = getDateString(filter.getEnd());
this.dateList = getdateList(filter.getStart(), filter.getEnd());
return this;
}
private String getDateString(Date date) {
return Optional.ofNullable(date)
.map(d -> DateUtil.date(d).toDateStr())
.orElse(null);
}
public String getDepartNameOrEmptyStr(String orgCode) {
return Optional.ofNullable(this.getDepartByOrgCode(orgCode))
.map(SysDepart::getDepartName)
.orElse("");
}
public SysDepart getDepartByOrgCode(String orgCode) {
return Optional.ofNullable(this.departMap.get(orgCode))
.orElseGet(() -> {
SysDepart sysDepart = SpringContextUtils.getBean(ISysCache.class).getDepartByOrgCode(orgCode);
this.departMap.put(orgCode, sysDepart);
return sysDepart;
});
}
}
@@ -0,0 +1,153 @@
package com.renkang.watch.constant;
import cn.hutool.core.util.ObjectUtil;
/**
* @Description: 运动自记录运动类型枚举类 PS:运动类型为系统内置数据,使用枚举类代替数据库表方便处理
* @Author: feng
* @Date: 2025-2-18
* @Version: V1.0
*/
public enum SportsTypeEnum {
SPORT_1(1, "步行(慢速)", "低强度",0.052),
SPORT_2(2, "步行(中速)", "低强度",0.076),
SPORT_3(3, "步行(快速)", "中强度",0.097),
SPORT_4(4, "爬楼梯", "中强度",0.057),
SPORT_5(5, "跳舞(慢速)", "低强度",0.061),
SPORT_6(6, "跳舞(快速)", "中强度",0.083),
SPORT_7(7, "跳绳", "高强度",0.13),
SPORT_8(8, "打太极拳", "中强度",0.104),
SPORT_9(9, "舞太极剑", "中强度",0.086),
SPORT_10(10, "打少林拳", "中强度",0.121),
SPORT_11(11, "跑步(慢跑)", "中强度",0.115),
SPORT_12(12, "跑步(快跑)", "高强度",0.15),
SPORT_13(13, "爬山", "高强度",0.121),
SPORT_14(14, "划船", "低强度",0.06),
SPORT_15(15, "打高尔夫球", "低强度",0.058),
SPORT_16(16, "打羽毛球", "中强度",0.083),
SPORT_17(17, "打台球", "低强度",0.042),
SPORT_18(18, "打乒乓球", "中强度",0.086),
SPORT_19(19, "打排球", "中强度",0.064),
SPORT_20(20, "打篮球", "高强度",0.118),
SPORT_21(21, "打网球", "中强度",0.109),
SPORT_22(22, "踢足球", "高强度",0.132),
SPORT_23(23, "骑车(慢骑)", "中强度",0.08),
SPORT_24(24, "骑车(快骑)", "高强度",0.122),
SPORT_25(25, "游泳(10米/分)", "低强度",0.05),
SPORT_26(26, "游泳(20米/分)", "中强度",0.07),
SPORT_27(27, "游泳(30米/分)", "超强度",0.17),
SPORT_28(28, "擦地、擦玻璃", "中强度",0.062),
SPORT_29(29, "广播体操", "中强度",0.06),
SPORT_30(30, "平板支撑", "高强度",0.14),
SPORT_31(31, "深蹲", "高强度",0.13),
SPORT_32(32, "仰卧起坐", "高强度",0.12),
SPORT_33(33, "卷腹", "高强度",0.13),
SPORT_34(34, "俯卧撑", "高强度",0.15),
SPORT_35(35, "动感单车", "高强度",0.12),
SPORT_36(36, "瑜伽(常规)", "低强度",0.038),
SPORT_37(37, "瑜伽(力量)", "高强度",0.067),
SPORT_38(38, "普拉提", "高强度",0.047);
/**
* 运动类型编码
*/
public Integer code;
/**
* 运动类型
*/
public String sport;
/**
* 运动强度
*/
public String level;
/**
* 每分钟的能量消耗值 (千卡)
*/
public Double energy;
SportsTypeEnum(Integer code, String sport, String level,Double energy) {
this.code = code;
this.sport = sport;
this.level = level;
this.energy = energy;
}
/**
* 计算热量消耗值 消耗热量 = (体重*某运动每分钟热量消耗) * 运动时长
* @param time 运动时长
* @param weight 用户体重
* @return 热量 (千卡)
*/
public Double computeConsumeEnergy(Double time ,Double weight){
if(ObjectUtil.isEmpty(weight)){
weight = 60.0; //默认体重
}
return this.energy * weight * time;
}
/**
* 计算消耗热量所需要的时长 运动时长 = 消耗热量 / (体重*某运动每分钟热量消耗)
* @param consumeEnergy 消耗的热量
* @param weight 用户体重
* @return
*/
public int computeSportTime(Double consumeEnergy,Double weight){
if(ObjectUtil.isEmpty(weight)){
weight = 60.0; //默认体重
}
return (int) (consumeEnergy / (weight * this.energy)); //只保留整数位
}
/**
* 计算总共走的步数 步数 = 时长 * 步数 快速每小时9000步 中速每小时7500步 慢速每小时6000步
* @param time 时长 分钟
* @return
*/
public long computeStep(Double time){
long stepNum = 0;
switch (code){
case 1:
stepNum = (long) (time/60*6000);
break;
case 2:
stepNum = (long) (time/60*7500);
break;
case 3:
stepNum = (long) (time/60*9000);
break;
default:
break;
}
return stepNum;
}
/**
* 根据热量 计算所需步数
* @param targetCalories 热量
* @param weight 体重
* @return
*/
public long computeStepsToReachCalories(double targetCalories, double weight) {
// 计算所需的运动时长(分钟) 109 分钟
int timeRequired = this.computeSportTime(targetCalories, weight);
// 计算所需走的步数
return this.computeStep((double) timeRequired);
}
/**
* 根据热量 计算所需步数并做特殊处理 当步数小于2000时按2000计算 , 当步数大于25000时按25000计算
* PS: 此方法用于少数的推荐运动业务
*/
public long computeStepsAndPretend(double targetCalories, double weight) {
long realStep = computeStepsToReachCalories(targetCalories,weight);
if(realStep < 2000){
return 2000;
}else if(realStep > 25000){
return 25000;
}
return realStep;
}
}
@@ -0,0 +1,42 @@
package com.renkang.watch.constant;
/**
* 手表模块常量
* @author Junqiang Zhu
* @date 2023-10-16
*/
public interface WatchConstants {
// 通知级别 全员
String NOTICE_LEVEL_ALL_0 = "0";
// 通知级别 指定用户
String NOTICE_LEVEL_ASSIGN_0 = "1";
//指定部门
String NOTICE_LEVEL_ASSIGN_2 = "2";
// 消息发送状态
String MSG_SEND_NO_0 = "0";
String MSG_SEND_FAIL_1 = "1";
String MSG_SEND_SUCCESS_2 = "2";
// 事件类型 心率异常
String WATCH_EVENT_TYPE_HEART_RATE = "heart_rate";
// 事件类型 血氧异常
String WATCH_EVENT_TYPE_SPO2 = "spo2";
// 事件类型 压力异常
String WATCH_EVENT_TYPE_STRESS = "stress";
// 事件类型 摔倒异常
String WATCH_EVENT_TYPE_FALL_DOWN = "fall_down";
// 事件类型 体温异常
String WATCH_EVENT_TYPE_TEMP = "temperature_anomalies";
// 事件类型 一键告警
String WATCH_EVENT_TYPE_A_KEY_ALARM = "a_key_alarm";
// 事件类型 功能键双击
String WATCH_EVENT_TYPE_KEY_DOUBLE_CLICK = "key_double_click";
// 事件类型 定位服务开关修改
String WATCH_EVENT_TYPE_CHANGE_GPS = "change_gps";
// 事件类型 佩戴状态
String WATCH_EVENT_TYPE_WEAR_STATE = "wear_state";
// 事件类型 来电
String WATCH_EVENT_TYPE_CALL = "call";
}
@@ -0,0 +1,42 @@
package com.renkang.watch.dto;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.renkang.watch.entity.ArchivesBodyType;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import org.jeecg.base.PageInfo;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Data
public class ArchivesBodyTypeAnalysisDTO extends PageInfo<ArchivesBodyType> {
private String userId;
@Schema(title = "类型 1:心率 5:体温")
private Integer type;
@Schema(title = "时间类型 1:日 2:周 3:月 4:年")
private Integer timeType=1;
@Setter
@Getter
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date startTime;
@Setter
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endTime;
public Date getEndTime(){
if (ObjUtil.isNotEmpty(endTime)){
endTime = DateUtil.endOfDay(endTime);
}
return endTime;
}
}
@@ -0,0 +1,18 @@
package com.renkang.watch.dto;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* @author TianZi
* @date 2023/12/5 16:45
*/
@Data
@Schema(title = "大屏数据传输对象", description = "大屏数据传输对象")
public class BigScreenDTO {
@Parameter(description = "机构编码", required = false)
private String orgCode;
@Parameter(description = "类型(day:当天,week:一周 month:一月 year:一年)", required = true)
private String type;
}
@@ -0,0 +1,36 @@
package com.renkang.watch.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @author TianZi
* @date 2023/11/7 14:13
*/
@Data
public class BindUserDTO {
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "绑定日期")
private Date bindDate;
@Schema(title = "id")
private String id;
@Schema(title = "绑定用户姓名")
private String bindRealName;
@Schema(title = "绑定用户id")
private String bindUserId;
@Schema(title = "手表编号")
private String watchNo;
@Schema(title = "是否变更用户")
private Boolean changeUser;
@Schema(title = "员工部门id")
private String deptId;
@Schema(title = "员工部门编码")
private String orgCode;
@Schema(title = "是否为职工")
private Boolean isEmployee = true;
}
@@ -0,0 +1,36 @@
package com.renkang.watch.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
@Data
public class CalorieDataByUserDTO {
@Schema(title = "用户时间数据组")
List<CalorieDataByUserDataDTO> dtoList;
@Schema(title = "分页参数")
private Integer pageNo = 0;
@Schema(title = "分页参数")
private Integer pageSize = 10;
@Schema(title = "用户姓名")
private String realName;
@Schema(title = "工号")
private String workNo;
@Schema(title = "用户id组")
private List<String> userIds;
@Schema(title = "开始时间")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date startTime;
@Schema(title = "结束时间")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endTime;
@Schema(title = "部门编码")
private String orgCode;
}
@@ -0,0 +1,14 @@
package com.renkang.watch.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
public class CalorieDataByUserDataDTO {
private String userId;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date date;
}
@@ -0,0 +1,35 @@
package com.renkang.watch.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Set;
/**
* @author feng
* @date 2025-02-27
* @Description: 查询用户当日运动打卡信息请求参数
*/
@Data
@Schema(title = "查询用户当日运动打卡信息请求参数")
public class QueryUserPlaySignParam {
/**
* PS: 传参建议 -- 若需查询的员工数量在 5000以下 可直接传参查指定用户,5000以上查所有然后在业务中筛选
*/
@Schema(title = "用户ID(不传则查当日所有打卡用户)")
private Set<String> userIds;
@Schema(title = "查询日期(yyyy-mm-dd),不传默认当天")
private String dateStr;
private Boolean onlySteps;
public QueryUserPlaySignParam(Set<String> userIds, String dateStr) {
this.userIds = userIds;
this.dateStr = dateStr;
}
public QueryUserPlaySignParam(){
}
}
@@ -0,0 +1,37 @@
package com.renkang.watch.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Set;
/**
* @author feng
* @date 2025-03-9
* @Description: 查询用户微信运动步数参数
*/
@Data
@Schema(title = "查询用户微信运动步数参数")
public class QueryWeChatSportParam {
@Schema(title = "用户ID(不传则查当日所有打卡用户)")
@NotNull(message = "缺少必填参数:userIds")
private Set<String> userIds;
@Schema(title = "开始日期")
@NotNull(message = "缺少必填参数:startDate")
private String startDate;
@Schema(title = "结束日期")
@NotNull(message = "缺少必填参数:endDate")
private String endDate;
public QueryWeChatSportParam(Set<String> userIds, String startDate, String endDate) {
this.userIds = userIds;
this.startDate = startDate;
this.endDate = endDate;
}
public QueryWeChatSportParam() {
}
}
@@ -0,0 +1,57 @@
package com.renkang.watch.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.renkang.watch.entity.WatchBindHis;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* @author TianZi
* @date 2023/11/6 14:23
*/
@Data
public class WatchBindHisDTO extends WatchBindHis {
/**
* 分页
*/
@Schema(title = "分页")
@TableField(exist = false)
private Integer pageNo;
/**
* 分页
*/
@Schema(title = "分页")
@TableField(exist = false)
private Integer pageSize;
@Schema(title = "绑定用户真实姓名")
private String bindRealName;
@Dict(dicCode = "sex2")
@Schema(title = "绑定用户性别")
private Integer sex;
@Schema(title = "绑定用户年龄")
private Integer age;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "开始时间")
private Date startDate;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "结束时间")
private Date endDate;
private List<String> bindUserIds;
}
@@ -0,0 +1,15 @@
package com.renkang.watch.dto;
import lombok.Data;
import java.util.Date;
@Data
public class WatchDInCountData {
private String orgCode;
private Date dataDate;
private String userId;
}
@@ -0,0 +1,13 @@
package com.renkang.watch.dto;
import lombok.Data;
@Data
public class WatchDataDTO {
private String dataDate;//时间
private String minutes;//分钟
private String dataValue;//步数,心率,血氧饱和度,血压,体温
}
@@ -0,0 +1,86 @@
package com.renkang.watch.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
@Data
public class WatchDataWorkoutDTO {
private static final long serialVersionUID = 1L;
/**
* 卡路里
*/
@Excel(name = "卡路里", width = 15)
@Schema(title = "卡路里")
private java.lang.Integer calorie;
/**
* 运动总时长
*/
@TableField(exist = false)
@Schema(title = "运动总时长")
private java.lang.String totalTime;
/**
* 运动开始时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "开始时间")
private java.util.Date startTimeStamp;
/**
*运动结束时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "结束时间")
private java.util.Date endTimeStamp;
/**
* 锻炼类型
*/
@Schema(title = "锻炼类型")
@Dict(dicCode = "data_sport_type")
private java.lang.String workoutType;
/**
* 距离
*/
@Excel(name = "距离", width = 15)
@Schema(title = "距离")
private java.lang.Integer distance;
/**
* 脂
*/
@TableField(exist = false)
@Schema(title = "")
private java.lang.Integer fatCalories;
/**
* 糖
*/
@TableField(exist = false)
@Schema(title = "")
private java.lang.Integer sugarCalories;
@TableField(exist = false)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "绑定日期")
private java.util.Date dataDate;
public Long getStartTimeStampLong() {
if (startTimeStamp != null) {
return startTimeStamp.getTime();
}
return null;
}
}
@@ -0,0 +1,45 @@
package com.renkang.watch.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.renkang.watch.entity.WatchDevice;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
;
/**
* @author TianZi
* @date 2023/11/6 11:05
*/
@Data
public class WatchDeviceDTO extends WatchDevice {
/**
* 分页
*/
@Schema(title = "分页")
@TableField(exist = false)
private Integer pageNo;
/**
* 分页
*/
@Schema(title = "分页")
@TableField(exist = false)
private Integer pageSize;
private List<String> bindUserIds;
public WatchDeviceDTO() {
this.pageNo = 1;
this.pageSize = 10;
}
private String watchType;
private Boolean status;
@TableField(exist = false)
private List<String> orgCodes;
}
@@ -0,0 +1,26 @@
package com.renkang.watch.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
/**
* @author TianZi
* @date 2023/11/7 15:12
*/
@Data
public class WatchDeviceExcel {
private String watchNo;
private String idCard;
private String realName;
/**
* 绑定日期
*/
@Excel(name = "日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "绑定日期")
private java.util.Date bindDate;
}
@@ -0,0 +1,24 @@
package com.renkang.watch.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
;
/**
* @author TianZi
* @date 2023/11/6 11:05
*/
@Data
public class WatchSwitchDTO {
@Schema(title = "工具编码")
private String watchNo;
@Schema(title = "工具类型")
private String wdType;
@Schema(title = "开启还是关闭(0:关闭,1:开启)")
private String switchFlag;
}
@@ -0,0 +1,22 @@
package com.renkang.watch.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
@Data
public class WatchWarnDTO {
@Schema(title = "手表编码", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
private String watchNo;
@Schema(title = "预警时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
private Date warnTime;
@Schema(title = "预警值", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
private String dataValue;
@Schema(title = "发生地点", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
private String address;
@Schema(title = "高德发生地点", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
private String addressGd;
@Schema(title = "GPS获取失败信息", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
private String gpsErrorMsg;
}
@@ -0,0 +1,32 @@
package com.renkang.watch.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
@Data
public class WatchWorkoutDTO {
private String planId;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date startTime;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endTime;
private List<String> exerciseType;
private List<String> userIds;
public WatchWorkoutDTO() {
}
public WatchWorkoutDTO(String planId, Date startTime, Date endTime, List<String> exerciseType, List<String> userIds) {
this.planId = planId;
this.startTime = startTime;
this.endTime = endTime;
this.exerciseType = exerciseType;
this.userIds = userIds;
}
}
@@ -0,0 +1,76 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
@Data
@TableName("archives_body_type")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "archives_body_type对象", description = "archives_body_type")
public class ArchivesBodyType implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private String id;
/**
* 用户ID
*/
@Excel(name = "用户ID", width = 15)
@Schema(title = "用户ID")
private String userId;
/**
* 类型
*/
@Excel(name = "类型", width = 15)
@Schema(title = "类型(1:心率 5:体温)")
private Integer type;
/**
* 来源
*/
@Excel(name = "来源", width = 15)
@Schema(title = "来源(字典data_source_dict 1:体检报告 2:员工自行维护 3:管理员后台维护 4:体重秤测量结果 5:手表监测数据)")
@Dict(dicCode = "data_source_dict")
private Integer dataSource;
/**
* 数据值
*/
@Excel(name = "数据值", width = 15)
@Schema(title = "数据值")
private String dataValue;
/**
* 创建人登录名称
*/
@Schema(title = "创建人")
private java.lang.String createBy;
/**
* 创建日期
*/
@Excel(name = "创建日期", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "创建日期")
private java.util.Date createDate;
}
@@ -0,0 +1,153 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* @Description: dept_statistic_data
* @Author: jeecg-boot
* @Date: 2023-11-09
* @Version: V1.0
*/
@Data
@TableName("dept_statistic_data")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "dept_statistic_data对象", description = "dept_statistic_data")
public class DeptStatisticData implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long id;
/**
* 二级部门
*/
@Excel(name = "二级部门", width = 15)
@Schema(title = "二级部门")
private String orgCode;
/**
* 三级部门
*/
@Excel(name = "三级部门", width = 15)
@Schema(title = "三级部门")
private String orgCodeLeaf;
/**
* 员工人数
*/
@Excel(name = "员工人数", width = 15)
@Schema(title = "员工人数")
private Integer userCount;
/**
* 入库设备数
*/
@Excel(name = "入库设备数", width = 15)
@Schema(title = "入库设备数")
private Integer deviceNum;
/**
* 分配设备数
*/
@Excel(name = "分配设备数", width = 15)
@Schema(title = "分配设备数")
private Integer allotDeviceNum;
/**
* 七日活跃次数
*/
@Excel(name = "七日活跃次数", width = 15)
@Schema(title = "七日活跃次数")
private Integer sevenDayNum;
/**
* 十四日活跃次数
*/
@Excel(name = "十四日活跃次数", width = 15)
@Schema(title = "十四日活跃次数")
private Integer fourteenDayNum;
/**
* 三十日活跃次数
*/
@Schema(title = "三十日活跃次数(应急副屏)")
private Integer thirtyDayNum;
/**
* 一年活跃次数
*/
@Schema(title = "一年活跃次数(应急副屏)")
private Integer yearDayNum;
/**
* 心率异常数
*/
@Excel(name = "心率异常数", width = 15)
@Schema(title = "心率异常数")
private Integer heartRateErrorNum;
/**
* 血氧异常数
*/
@Excel(name = "血氧异常数", width = 15)
@Schema(title = "血氧异常数")
private Integer spoErrorNum;
/**
* 压力异常数
*/
@Excel(name = "压力异常数", width = 15)
@Schema(title = "压力异常数")
private Integer stressErrorNum;
/**
* 睡眠异常数
*/
@Excel(name = "睡眠异常数", width = 15)
@Schema(title = "睡眠异常数")
private Integer tempErrorNum;
/**
* 数据日期
*/
@Excel(name = "数据日期", width = 15)
@Schema(title = "数据日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date dataDate;
/**
* 二级部门名称
*/
@TableField(exist = false)
private String orgName;
/**
* 三级部门名称
*/
@TableField(exist = false)
private String deptName;
@TableField(exist = false)
private String deptId;
public DeptStatisticData() {
this.userCount = 0;
this.deviceNum = 0;
this.allotDeviceNum = 0;
this.sevenDayNum = 0;
this.fourteenDayNum = 0;
this.thirtyDayNum = 0;
this.yearDayNum = 0;
this.heartRateErrorNum = 0;
this.spoErrorNum = 0;
this.stressErrorNum = 0;
this.tempErrorNum = 0;
}
}
@@ -0,0 +1,61 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
* @Description: 用户自主记录运动数据日汇总表 PS:该表的数据会随自记动明细表同步更新
* @Author: feng
* @Date: 2025-2-18
* @Version: V1.0
*/
@Data
@TableName("user_record_sports_day")
@Schema(title = "用户自主记录运动数据日汇总表", description = "用户自主记录运动数据日汇总表")
public class UserRecordSportsDay implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long id;
/**
*用户ID
*/
@Schema(title = "用户ID")
private String userId;
/**
*各项运动总时长(分钟)
*/
@Schema(title = "各项运动总时长(分钟)")
private Double totalSportsTime;
/**
*各项运动总消耗(千卡)
*/
@Schema(title = "各项运动总消耗(千卡)")
private Double totalConsumeEnergy;
/**
* 记录日期
*/
@Schema(title = "记录日期(yyyy-mm-dd)")
private String recordDate;
/**
* 因为步数数据需要特殊处理, 所以单独核算并存储 (包含 步行(慢速),步行(中速),步行(快速))
*/
@Schema(title = "总步数")
private Long walkSum = 0L;
@Schema(title = "自记步行总时长")
private Double walkTime = 0.0;
@Schema(title = "步行总消耗")
private Double walkEnergy = 0.0;
}
@@ -0,0 +1,80 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.renkang.watch.constant.SportsTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
/**
* @Description: 用户自主记录运动数据明细表
* @Author: feng
* @Date: 2025-2-18
* @Version: V1.0
*/
@Data
@TableName("user_record_sports_info")
@Schema(title = "用户自主记录运动数据明细表", description = "用户自主记录运动数据明细表")
public class UserRecordSportsInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long id;
/**
*用户ID
*/
@Schema(title = "用户ID")
private String userId;
/**
*运动类型编码
* @see SportsTypeEnum 参考枚举类
*/
@Schema(title = "运动类型编码")
private Integer sportsCode;
/**
*运动类型
*/
@Schema(title = "运动类型")
private String sports;
/**
*本次运动时长
*/
@Schema(title = "本次运动时长(分钟)")
private Double sportsTime;
/**
*本次运消耗
*/
@Schema(title = "本次运消耗(千卡)")
private Double consumeEnergy;
/**
* 记录日期
*/
@Schema(title = "记录日期")
private String recordDate;
/**
* 添加时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "添加时间")
private Date createTime;
public Double getConsumeEnergy() {
if(null != consumeEnergy){
return BigDecimal.valueOf(consumeEnergy).setScale(2, RoundingMode.HALF_UP).doubleValue();
}
return consumeEnergy;
}
}
@@ -0,0 +1,51 @@
package com.renkang.watch.entity;
import com.renkang.watch.constant.SportsTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Schema(title = "用户自记运动VO", description = "用户自记运动VO")
public class UserRecordSportsVO {
/**
* 运动类型编码
*/
@Schema(title = "运动类型编码")
public Integer code;
/**
* 运动类型
*/
@Schema(title = "运动类型")
public String sport;
/**
* 运动强度
*/
@Schema(title = "运动强度")
public String level;
/**
* 每分钟的能量消耗值 (千卡)
*/
@Schema(title = "每分钟的能量消耗值")
public Double energy;
/**
* 运动时长
*/
@Schema(title = "运动时长")
public Double sportsTime = 0.0;
/**
* 体重
*/
@Schema(title = "体重")
public Double weight;
public UserRecordSportsVO(SportsTypeEnum typeEnum) {
this.code = typeEnum.code;
this.sport = typeEnum.sport;
this.level = typeEnum.level;
this.energy = typeEnum.energy;
}
}
@@ -0,0 +1,79 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* @Description: 用户微信步数日汇总表
* @Author: feng
* @Date: 2025-3-09
* @Version: V1.0
*/
@Data
@TableName("user_we_chat_sports_day")
@Builder
@Schema(title = "用户微信步数日汇总表", description = "用户微信步数日汇总表")
public class UserWeChatSportsDay implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long id;
/**
*用户ID
*/
@Schema(title = "用户ID")
private String userId;
/**
* 步数
*
* 从微信小程序拉取
*/
@Schema(title = "步数")
private Integer step;
/**
* 运动日期
*
* 从微信小程序拉取
*/
@Schema(title = "运动日期(yyyy-MM-dd)")
private String stepDate;
/**
*步行时长 (单位:分钟)
*
* 自行计算
*/
@Schema(title = "步行时长(单位:分钟)")
private Integer stepTime;
/**
*步行消耗热量
*
* 自行计算
*/
@Schema(title = "步行消耗热量(千卡)")
private Integer energy;
/**
* 用户小程序uniID
*/
@Schema(title = "uniId")
private String uniId;
/**
* 数据上传时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "添加时间")
private Date createTime;
}
@@ -0,0 +1,153 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.renkang.watch.vo.dept.DeptData;
import com.renkang.watch.vo.dept.DeptStatData;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.List;
/**
* @Description: watch_bind_his
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_bind_his")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_bind_his对象", description = "watch_bind_his")
public class WatchBindHis implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private java.lang.String id;
/**
* 创建人登录名称
*/
@Schema(title = "创建人登录名称")
private java.lang.String createBy;
/**
* 创建日期
*/
// @Excel(name = "创建日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "创建日期")
private java.util.Date createDate;
/**
* 更新人登录名称
*/
@Schema(title = "更新人登录名称")
private java.lang.String updateBy;
/**
* 更新日期
*/
// @Excel(name = "更新日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "更新日期")
private java.util.Date updateDate;
/**
* 手表编码
*/
@Excel(name = "工具编码", width = 20, orderNum = "1")
@Schema(title = "工具编码")
private java.lang.String watchNo;
/**
* 绑定用户
*/
@Schema(title = "绑定用户")
private java.lang.String bindUserId;
/**
* 绑定日期
*/
@Excel(name = "绑定日期", width = 15, format = "yyyy-MM-dd", orderNum = "6")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "绑定日期")
private java.util.Date bindDate;
/**
* 绑定结束日期
*/
@Excel(name = "解绑日期", width = 15, format = "yyyy-MM-dd", orderNum = "7")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "绑定结束日期")
private java.util.Date bindEndDate;
@TableField(exist = false)
private List<String> deptIds;
/**
* 归属部门
*/
@Schema(title = "归属部门")
private String deptId;
/**
* 归属部门编码
*/
@Schema(title = "归属部门编码")
private String orgCode;
@TableField(exist = false)
private String oldDeptId;
@TableField(exist = false)
private String oldDeptName;
@Excel(name = "归属单位", width = 15, orderNum = "3")
@Schema(title = "部门名称")
@TableField(exist = false)
private String departmentName;
@Schema(title = "部门名称")
@TableField(exist = false)
private String unitName;
@Schema(title = "员工工号")
@Excel(name = "员工工号", width = 15, orderNum = "2")
@TableField(exist = false)
private String workNo;
@Schema(title = "用户id组")
@TableField(exist = false)
private List<String> userIds;
@Schema(title = "detail")
@TableField(exist = false)
private DeptStatData detail;
@TableField(exist = false)
private Integer nums;
@Schema(title = "明细详情")
@TableField(exist = false)
private DeptData deptData;
@Schema(title = "明细详情")
@TableField(exist = false)
private String secondDepart;
@Schema(title = "明细详情")
@TableField(exist = false)
private String thirdDepart;
}
@@ -0,0 +1,164 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.List;
/**
* @Description: watch_data
* @Author: jeecg-boot
* @Date: 2023-11-03
* @Version: V1.0
*/
@Data
@TableName("watch_data")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_data对象", description = "watch_data")
public class WatchData implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private java.lang.String id;
/**
* 用户ID
*/
@Excel(name = "用户ID", width = 15)
@Schema(title = "用户ID")
private java.lang.String userid;
/**
* 用户名
*/
@Excel(name = "用户名", width = 15)
@Schema(title = "用户名")
private java.lang.String username;
/**
* 机构编码
*/
@Excel(name = "机构编码", width = 15)
@Schema(title = "机构编码")
private java.lang.String orgcode;
/**
* 单位
*/
@Excel(name = "单位", width = 15)
@Schema(title = "单位")
private java.lang.String unit;
/**
* 部门
*/
@Excel(name = "部门", width = 15)
@Schema(title = "部门")
private java.lang.String department;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 监测类型 1:心率 ,2:血氧 3:压力 4:睡眠 5: 体温 6 :锻炼 7 :步数'
*/
private Integer type;
/**
* 监测类型 1:心率 ,2:血氧 3:压力 4:睡眠 5: 体温 6 :锻炼 7 :步数'
*/
private Double dataValue;
/**
* 心率(次/分钟)
*/
@Excel(name = "心率(次/分钟)", width = 15)
@Schema(title = "心率(次/分钟)")
@TableField(exist = false)
private java.lang.Integer heartRate;
/**
* 血氧(%
*/
@Excel(name = "血氧(%", width = 15)
@Schema(title = "血氧(%")
@TableField(exist = false)
private java.lang.Integer bloodOxygen;
/**
* 压力
*/
@Excel(name = "压力", width = 15)
@Schema(title = "压力")
@TableField(exist = false)
private java.lang.Integer pressure;
/**
* 睡眠
*/
@Excel(name = "睡眠", width = 15)
@Schema(title = "睡眠")
@TableField(exist = false)
private java.lang.Integer sleepTime;
/**
* 体温(摄氏度)
*/
@Excel(name = "体温(摄氏度)", width = 15)
@Schema(title = "体温(摄氏度)")
@TableField(exist = false)
private java.lang.Double temperature;
/**
* 锻炼(千卡)
*/
@Excel(name = "锻炼(千卡)", width = 15)
@Schema(title = "锻炼(千卡)")
@TableField(exist = false)
private java.lang.Integer exercise;
/**
* 步数(米)
*/
@Excel(name = "步数(米)", width = 15)
@Schema(title = "步数(米)")
@TableField(exist = false)
private java.lang.Integer stepNumber;
/**
* 最后更新时间
*/
@Excel(name = "最后更新时间", width = 15)
@Schema(title = "最后更新时间")
private java.util.Date lastUpdateTime;
/**
* 绑定日期
*/
@Excel(name = "绑定日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "绑定日期")
@TableField(exist = false)
private java.util.Date bindDate;
@Schema(title = "员工编号")
@TableField(exist = false)
private String workNo;
@Schema(title = "用户id组")
@TableField(exist = false)
private List<String> userIds;
@Schema(title = "重点指标用户(0:非重点指标用户 1:大病异常 2:慢病异常 3:指标异常)")
@TableField(exist = false)
private List<WatchKeyUser> keyUserList;
@Schema(title = "人员类型")
@TableField(exist = false)
private String errorType;
}
@@ -0,0 +1,76 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: watch_data_calorie 步行消耗记录
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_data_calorie")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_data_calorie对象", description = "watch_data_calorie")
public class WatchDataCalorie implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private java.lang.String id;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 数据值
*/
@Excel(name = "数据值", width = 15)
@Schema(title = "数据值")
private java.lang.Integer dataValue;
/**
* 产生日期
*/
@Excel(name = "产生日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "产生日期")
private java.util.Date sdcDate;
/**
* 绑定用户
*/
@Excel(name = "绑定用户", width = 15)
@Schema(title = "绑定用户")
private java.lang.String bindUserId;
/**
* 绑定日期
*/
@Excel(name = "绑定日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "绑定日期")
private java.util.Date dataDate;
/**
* 数据中心最大ID
*/
@Excel(name = "数据中心最大ID", width = 15)
@Schema(title = "数据中心最大ID")
private java.lang.String maxId;
}
@@ -0,0 +1,76 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: watch_data_distance 步行距离表
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_data_distance")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_data_distance对象", description = "watch_data_distance")
public class WatchDataDistance implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private java.lang.String id;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 数据值
*/
@Excel(name = "数据值", width = 15)
@Schema(title = "数据值")
private java.lang.Integer dataValue;
/**
* 产生日期
*/
@Excel(name = "产生日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "产生日期")
private java.util.Date sdcDate;
/**
* 绑定用户
*/
@Excel(name = "绑定用户", width = 15)
@Schema(title = "绑定用户")
private java.lang.String bindUserId;
/**
* 绑定日期
*/
@Excel(name = "绑定日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "绑定日期")
private java.util.Date dataDate;
/**
* 数据中心最大ID
*/
@Excel(name = "数据中心最大ID", width = 15)
@Schema(title = "数据中心最大ID")
private java.lang.String maxId;
}
@@ -0,0 +1,115 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @author Jiang Shunzhi
* 手表心电数据
*/
@Schema(description = "手表心电数据")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "watch_data_ecg")
public class WatchDataEcg implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
@Schema(description = "")
private String id;
/**
* 手表编码
*/
@TableField(value = "watch_no")
@Schema(description = "手表编码")
private String watchNo;
/**
* 数据日期
*/
@TableField(value = "data_date")
@Schema(description = "数据日期")
private Date dataDate;
/**
* 测量开始时间戳
*/
@TableField(value = "ecg_start_time")
@Schema(description = "测量开始时间戳")
private Long ecgStartTime;
/**
* 测量结束时间戳
*/
@TableField(value = "ecg_end_time")
@Schema(description = "测量结束时间戳")
private Long ecgEndTime;
/**
* 平均心率
*/
@TableField(value = "ecg_arrhy_avg_rate")
@Schema(description = "平均心率")
private Integer ecgArrhyAvgRate;
/**
* 算法测量结果
*/
@TableField(value = "ecg_arrhy_type")
@Schema(description = "算法测量结果")
private Integer ecgArrhyType;
/**
* 用户自己选择的症状
*/
@TableField(value = "ecg_user_symptom")
@Schema(description = "用户自己选择的症状")
private Integer ecgUserSymptom;
/**
* 原始数据文件地址
*/
@TableField(value = "ecg_data_points")
@Schema(description = "原始数据文件地址")
private String ecgDataPoints;
/**
* 原始数据点数量
*/
@TableField(value = "ecg_data_points_count")
@Schema(description = "原始数据点数量")
private Integer ecgDataPointsCount;
/**
* 算法测量结果(字典)
*/
@TableField(value = "ecg_arrhy_type_dict")
@Schema(description = "算法测量结果(字典)")
private String ecgArrhyTypeDict;
/**
* 用户自己选择的症状(字典)
*/
@TableField(value = "ecg_user_symptom_dict")
@Schema(description = "用户自己选择的症状(字典)")
private String ecgUserSymptomDict;
/**
* 同步时间
*/
@TableField(value = "sync_time")
@Schema(description = "同步时间")
private Date syncTime;
/**
* 绑定用户
*/
@TableField(value = "bind_user_id")
@Schema(description = "绑定用户")
private String bindUserId;
/**
* 数据中心最大ID
*/
@TableField(value = "max_id")
@Schema(description = "数据中心最大ID")
private String maxId;
}
@@ -0,0 +1,74 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: watch_data_exercise
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_data_exercise")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_data_exercise对象", description = "watch_data_exercise")
public class WatchDataExercise implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "id")
private java.lang.String id;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 中高强度运动时间(分钟)
*/
@Excel(name = "中高强度运动时间(分钟)", width = 15)
@Schema(title = "中高强度运动时间(分钟)")
private java.lang.Integer strengthTimes;
/**
* 总活动时长(小时)
*/
@Excel(name = "总活动时长(小时)", width = 15)
@Schema(title = "总活动时长(小时)")
private java.lang.Integer totalTime;
/**
* 数据日期
*/
@Excel(name = "数据日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "数据日期")
private java.util.Date dataDate;
/**
* 绑定用户
*/
@Excel(name = "绑定用户", width = 15)
@Schema(title = "绑定用户")
private java.lang.String bindUserId;
/**
* 数据中心最大ID
*/
@Excel(name = "数据中心最大ID", width = 15)
@Schema(title = "数据中心最大ID")
private java.lang.String maxId;
}
@@ -0,0 +1,88 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: watch_data_gps
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_data_gps")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_data_gps对象", description = "watch_data_gps")
public class WatchDataGps implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private java.lang.String id;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 经度
*/
@Excel(name = "经度", width = 15)
@Schema(title = "经度")
private java.lang.Double lon;
/**
* 纬度
*/
@Excel(name = "纬度", width = 15)
@Schema(title = "纬度")
private java.lang.Double lat;
/**
* 详细地址
*/
@Excel(name = "详细地址", width = 15)
@Schema(title = "详细地址")
private java.lang.String address;
/**
* 时间戳
*/
@Excel(name = "时间戳", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "时间戳")
private java.util.Date timeStamp;
/**
* 绑定用户
*/
@Excel(name = "绑定用户", width = 15)
@Schema(title = "绑定用户")
private java.lang.String bindUserId;
/**
* 绑定日期
*/
@Excel(name = "绑定日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "绑定日期")
private java.util.Date dataDate;
/**
* 数据中心最大ID
*/
@Excel(name = "数据中心最大ID", width = 15)
@Schema(title = "数据中心最大ID")
private java.lang.String maxId;
}
@@ -0,0 +1,83 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: 心率原始数据表
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_data_heart_rate")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_data_heart_rate对象", description = "watch_data_heart_rate")
public class WatchDataHeartRate implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private java.lang.String id;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 数据值
*/
@Excel(name = "数据值", width = 15)
@Schema(title = "数据值")
private java.lang.Double dataValue;
/**
* 静息心率
*/
@Excel(name = "静息心率", width = 15)
@Schema(title = "静息心率")
private java.lang.Double silenceValue;
/**
* 时间戳
*/
@Excel(name = "时间戳", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "时间戳")
private java.util.Date timeStamp;
/**
* 绑定用户
*/
@Excel(name = "绑定用户", width = 15)
@Schema(title = "绑定用户")
private java.lang.String bindUserId;
/**
* 绑定日期
*/
@Excel(name = "绑定日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "绑定日期")
private java.util.Date dataDate;
/**
* 数据中心最大ID
*/
@Excel(name = "数据中心最大ID", width = 15)
@Schema(title = "数据中心最大ID")
private java.lang.String maxId;
}
@@ -0,0 +1,84 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: watch_data_sleep
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_data_sleep")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_data_sleep对象", description = "watch_data_sleep")
public class WatchDataSleep implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private java.lang.String id;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 开始时间
*/
@Excel(name = "开始时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "开始时间")
private java.util.Date startTimeStamp;
/**
* 结束时间
*/
@Excel(name = "结束时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "结束时间")
private java.util.Date endTimeStamp;
/**
* 睡眠类型
*/
@Excel(name = "睡眠类型", width = 15)
@Schema(title = "睡眠类型")
private java.lang.String sleepType;
/**
* 绑定用户
*/
@Excel(name = "绑定用户", width = 15)
@Schema(title = "绑定用户")
private java.lang.String bindUserId;
/**
* 绑定日期
*/
@Excel(name = "绑定日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "绑定日期")
private java.util.Date dataDate;
/**
* 数据中心最大ID
*/
@Excel(name = "数据中心最大ID", width = 15)
@Schema(title = "数据中心最大ID")
private java.lang.String maxId;
}
@@ -0,0 +1,84 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.List;
/**
* @Description: watch_data_sleep_new
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_data_sleep_new")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_data_sleep_new对象", description = "watch_data_sleep_new")
public class WatchDataSleepNew implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "id")
private java.lang.String id;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 错误码
*/
@Excel(name = "错误码", width = 15)
@Schema(title = "错误码")
private java.lang.Integer errCode;
/**
* 是否有睡眠数据
*/
@Excel(name = "是否有睡眠数据", width = 15)
@Schema(title = "是否有睡眠数据")
private java.lang.String sleepFlag;
/**
* 数据日志
*/
@Excel(name = "数据日志", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "数据日志")
private java.util.Date dataDate;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String maxId;
/**
* 用户ID
*/
@Excel(name = "用户ID", width = 15)
@Schema(title = "用户ID")
private java.lang.String bindUserId;
@TableField(exist = false)
private List<WatchDataSleepNewDay> statusInDayList;
@TableField(exist = false)
private List<WatchDataSleepNewErr> errCodeList;
@TableField(exist = false)
private List<WatchDataSleepNewMinute> statusInMinuteList;
}
@@ -0,0 +1,116 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: watch_data_sleep_new_day
* @Author: jeecg-boot
* @Date: 2023-08-11
* @Version: V1.0
*/
@Data
@TableName("watch_data_sleep_new_day")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_data_sleep_new_day对象", description = "watch_data_sleep_new_day")
public class WatchDataSleepNewDay implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "id")
private java.lang.String id;
/**
* 主表ID
*/
@Excel(name = "主表ID", width = 15)
@Schema(title = "主表ID")
private java.lang.String sleepId;
/**
* 睡梦时长(分钟)
*/
@Excel(name = "睡梦时长(分钟)", width = 15)
@Schema(title = "睡梦时长(分钟)")
private java.lang.Integer deepSleepPartCnt;
/**
* 入睡时间点
*/
@Excel(name = "入睡时间点", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "入睡时间点")
private java.util.Date fallAsleepTime;
/**
* 上床时间
*/
@Excel(name = "上床时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "上床时间")
private java.util.Date goBedTime;
/**
* 睡眠效率百分比
*/
@Excel(name = "睡眠效率百分比", width = 15)
@Schema(title = "睡眠效率百分比")
private java.lang.Integer sleepEfficiency;
/**
* 睡眠潜伏期
*/
@Excel(name = "睡眠潜伏期", width = 15)
@Schema(title = "睡眠潜伏期")
private java.lang.Integer sleepLatency;
/**
* 睡眠得分
*/
@Excel(name = "睡眠得分", width = 15)
@Schema(title = "睡眠得分")
private java.lang.Integer sleepScore;
/**
* 原始睡眠得分
*/
@Excel(name = "原始睡眠得分", width = 15)
@Schema(title = "原始睡眠得分")
private java.lang.Integer sleepScoreOrign;
/**
* 鼾声(每小时次数)
*/
@Excel(name = "鼾声(每小时次数)", width = 15)
@Schema(title = "鼾声(每小时次数)")
private java.lang.Integer snoreFreq;
/**
* 当天的时间戳
*/
@Excel(name = "当天的时间戳", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "当天的时间戳")
private java.util.Date startTime;
/**
* 数据有效性
*/
@Excel(name = "数据有效性", width = 15)
@Schema(title = "数据有效性")
private java.math.BigDecimal validData;
/**
* 醒来时间
*/
@Excel(name = "醒来时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "醒来时间")
private java.util.Date wakeUpTime;
}
@@ -0,0 +1,64 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: watch_data_sleep_new_err
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_data_sleep_new_err")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_data_sleep_new_err对象", description = "watch_data_sleep_new_err")
public class WatchDataSleepNewErr implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "id")
private java.lang.String id;
/**
* 主表ID
*/
@Excel(name = "主表ID", width = 15)
@Schema(title = "主表ID")
private java.lang.String sleepId;
/**
* 错误码
*/
@Excel(name = "错误码", width = 15)
@Schema(title = "错误码")
private java.lang.Integer errCode;
/**
* 开始时间戳
*/
@Excel(name = "开始时间戳", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "开始时间戳")
private java.util.Date startTime;
/**
* 结束时间戳
*/
@Excel(name = "结束时间戳", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "结束时间戳")
private java.util.Date endTime;
}
@@ -0,0 +1,70 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: watch_data_sleep_new_minute
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_data_sleep_new_minute")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_data_sleep_new_minute对象", description = "watch_data_sleep_new_minute")
public class WatchDataSleepNewMinute implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "id")
private java.lang.String id;
/**
* 主表ID
*/
@Excel(name = "主表ID", width = 15)
@Schema(title = "主表ID")
private java.lang.String sleepId;
/**
* 开始时间戳
*/
@Excel(name = "开始时间戳", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "开始时间戳")
private java.util.Date startTime;
/**
* 结束时间戳
*/
@Excel(name = "结束时间戳", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "结束时间戳")
private java.util.Date endTime;
/**
* 睡眠状态
*/
@Excel(name = "睡眠状态", width = 15)
@Schema(title = "睡眠状态")
private java.lang.String status;
/**
* sleepType
*/
@Excel(name = "sleepType", width = 15)
@Schema(title = "sleepType")
private java.lang.String sleepType;
}
@@ -0,0 +1,76 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: 血氧原始数据表
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_data_spo2")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_data_spo2对象", description = "watch_data_spo2")
public class WatchDataSpo2 implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private java.lang.String id;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 数据值
*/
@Excel(name = "数据值", width = 15)
@Schema(title = "数据值")
private java.lang.Double dataValue;
/**
* 时间戳
*/
@Excel(name = "时间戳", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "时间戳")
private java.util.Date timeStamp;
/**
* 绑定用户
*/
@Excel(name = "绑定用户", width = 15)
@Schema(title = "绑定用户")
private java.lang.String bindUserId;
/**
* 绑定日期
*/
@Excel(name = "绑定日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "绑定日期")
private java.util.Date dataDate;
/**
* 数据中心最大ID
*/
@Excel(name = "数据中心最大ID", width = 15)
@Schema(title = "数据中心最大ID")
private java.lang.String maxId;
}
@@ -0,0 +1,76 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: watch_data_steps 步行步数记录表
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_data_steps")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_data_steps对象", description = "watch_data_steps")
public class WatchDataSteps implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private java.lang.String id;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 数据值
*/
@Excel(name = "数据值", width = 15)
@Schema(title = "数据值")
private java.lang.Integer dataValue;
/**
* 产生日期
*/
@Excel(name = "产生日期", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "产生日期")
private java.util.Date sdcDate;
/**
* 绑定用户
*/
@Excel(name = "绑定用户", width = 15)
@Schema(title = "绑定用户")
private java.lang.String bindUserId;
/**
* 绑定日期
*/
@Excel(name = "绑定日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "绑定日期")
private java.util.Date dataDate;
/**
* 数据中心最大ID
*/
@Excel(name = "数据中心最大ID", width = 15)
@Schema(title = "数据中心最大ID")
private java.lang.String maxId;
}
@@ -0,0 +1,78 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
@Schema
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "watch_data_steps_hf")
public class WatchDataStepsHf implements Serializable {
public static final String COL_ID = "id";
public static final String COL_WATCH_NO = "watch_no";
public static final String COL_STEP_COUNT = "step_count";
public static final String COL_STEP_DATE = "step_date";
public static final String COL_BIND_USER_ID = "bind_user_id";
public static final String COL_MAX_ID = "max_id";
public static final String COL_CREATE_TIME = "create_time";
public static final String COL_UPDATE_TIME = "update_time";
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
@Schema(description = "主键")
private String id;
/**
* 手表编码
*/
@TableField(value = "watch_no")
@Schema(description = "手表编码")
private String watchNo;
/**
* 步数
*/
@TableField(value = "step_count")
@Schema(description = "步数")
private Integer stepCount;
/**
* 步数日期
*/
@TableField(value = "step_date")
@Schema(description = "步数日期")
private Date stepDate;
/**
* 绑定用户
*/
@TableField(value = "bind_user_id")
@Schema(description = "绑定用户")
private String bindUserId;
/**
* 数据中心最大ID
*/
@TableField(value = "max_id")
@Schema(description = "数据中心最大ID")
private String maxId;
/**
* 创建时间
*/
@TableField(value = "create_time")
@Schema(description = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@TableField(value = "update_time")
@Schema(description = "的更新时间")
private Date updateTime;
}
@@ -0,0 +1,84 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: 压力数据表
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_data_stress")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_data_stress对象", description = "watch_data_stress")
public class WatchDataStress implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private java.lang.String id;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 开始时间
*/
@Excel(name = "开始时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "开始时间")
private java.util.Date startTimeStamp;
/**
* 结束时间
*/
@Excel(name = "结束时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "结束时间")
private java.util.Date endTimeStamp;
/**
* 数据值
*/
@Excel(name = "数据值", width = 15)
@Schema(title = "数据值")
private java.lang.Double dataValue;
/**
* 绑定用户
*/
@Excel(name = "绑定用户", width = 15)
@Schema(title = "绑定用户")
private java.lang.String bindUserId;
/**
* 绑定日期
*/
@Excel(name = "绑定日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "绑定日期")
private java.util.Date dataDate;
/**
* 数据中心最大ID
*/
@Excel(name = "数据中心最大ID", width = 15)
@Schema(title = "数据中心最大ID")
private java.lang.String maxId;
}
@@ -0,0 +1,82 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: 体温数据原始数据表
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_data_temperature")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_data_temperature对象", description = "watch_data_temperature")
public class WatchDataTemperature implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private java.lang.String id;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 数据值
*/
@Excel(name = "数据值", width = 15)
@Schema(title = "数据值")
private java.lang.Double dataValue;
/**
* 体表温度
*/
@Excel(name = "体表温度", width = 15)
@Schema(title = "体表温度")
private java.lang.Double skinTempera;
/**
* 时间戳
*/
@Excel(name = "时间戳", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "时间戳")
private java.util.Date timeStamp;
/**
* 绑定用户
*/
@Excel(name = "绑定用户", width = 15)
@Schema(title = "绑定用户")
private java.lang.String bindUserId;
/**
* 绑定日期
*/
@Excel(name = "绑定日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "绑定日期")
private java.util.Date dataDate;
/**
* 数据中心最大ID
*/
@Excel(name = "数据中心最大ID", width = 15)
@Schema(title = "数据中心最大ID")
private java.lang.String maxId;
}
@@ -0,0 +1,32 @@
package com.renkang.watch.entity;
import com.renkang.watch.vo.UserData.res.bodyTemperature.BodyTempStatRes;
import com.renkang.watch.vo.UserData.res.sleep.WatchDataSleepRes;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class WatchDataUnion implements Serializable {
private static final long serialVersionUID = 1L;
private List<WatchDataHeartRate> heartRateList;
private List<WatchDataSpo2> spo2List;
private Integer fallNum;
private List<WatchDataTemperature> temperatureList;
private List<BodyTempStatRes> dayTempList;
private WatchDataSleepRes watchDataSleepRes;
private List<WatchDataSleepRes> sleepList;
private WatchDataStress watchDataStress;
}
@@ -0,0 +1,136 @@
package com.renkang.watch.entity;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: watch_data_workout 用户运动明细 表
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_data_workout")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_data_workout对象", description = "watch_data_workout")
public class WatchDataWorkout implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private java.lang.String id;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 开始时间
*/
@Excel(name = "开始时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "开始时间")
private java.util.Date startTimeStamp;
/**
* 结束时间
*/
@Excel(name = "结束时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "结束时间")
private java.util.Date endTimeStamp;
/**
* 卡路里
*/
@Excel(name = "卡路里", width = 15)
@Schema(title = "卡路里")
private java.lang.Integer calorie;
/**
* 距离
*/
@Excel(name = "距离", width = 15)
@Schema(title = "距离")
private java.lang.Integer distance;
/**
* 锻炼类型
*/
@Excel(name = "锻炼类型", width = 15)
@Schema(title = "锻炼类型")
@Dict(dicCode = "watch_exercise_type")
private java.lang.String workoutType;
/**
* 绑定用户
*/
@Excel(name = "绑定用户", width = 15)
@Schema(title = "绑定用户")
private java.lang.String bindUserId;
/**
* 绑定日期
*/
@Excel(name = "绑定日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "绑定日期")
private java.util.Date dataDate;
/**
* 数据中心最大ID
*/
@Excel(name = "数据中心最大ID", width = 15)
@Schema(title = "数据中心最大ID")
private java.lang.String maxId;
@TableField(exist = false)
@Schema(title = "")
private java.lang.Integer fatCalories;
@TableField(exist = false)
@Schema(title = "")
private java.lang.Integer sugarCalories;
@TableField(exist = false)
@Schema(title = "运动总时长")
private java.lang.String totalTime;
@TableField(exist = false)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "开始时间")
private java.util.Date startTime;
/**
* 结束时间
*/
@TableField(exist = false)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "结束时间")
private java.util.Date endTime;
public String getTotalTime() {
//返回的是秒, 根据业务需求自行转换单位
if(null != startTimeStamp && null != endTimeStamp){
long betweenSecond = DateUtil.between(startTimeStamp,endTimeStamp, DateUnit.SECOND);
return String.valueOf(betweenSecond);
}
return totalTime;
}
}
@@ -0,0 +1,88 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: watch_data_workout_trace
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_data_workout_trace")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_data_workout_trace对象", description = "watch_data_workout_trace")
public class WatchDataWorkoutTrace implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "id")
private java.lang.String id;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 记录ID
*/
@Excel(name = "记录ID", width = 15)
@Schema(title = "记录ID")
private java.lang.String recordId;
/**
* 海拔
*/
@Excel(name = "海拔", width = 15)
@Schema(title = "海拔")
private java.math.BigDecimal altitude;
/**
* 纬度
*/
@Excel(name = "纬度", width = 15)
@Schema(title = "纬度")
private java.math.BigDecimal latitude;
/**
* 经度
*/
@Excel(name = "经度", width = 15)
@Schema(title = "经度")
private java.math.BigDecimal longitude;
/**
* 时间戳
*/
@Excel(name = "时间戳", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "时间戳")
@TableField("`utc_time`")
private java.util.Date utcTime;
/**
* 数据是否合法
*/
@Excel(name = "数据是否合法", width = 15)
@Schema(title = "数据是否合法")
private java.lang.String valid;
/**
* 数据中心最大ID
*/
@Excel(name = "数据中心最大ID", width = 15)
@Schema(title = "数据中心最大ID")
private java.lang.String maxId;
}
@@ -0,0 +1,116 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @author Shunzhi Jiang
* @since 2024/3/25
*/
/**
* 部门报告记录表
*/
@Schema(title = "部门报告记录表")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "watch_depart_report")
public class WatchDepartReport implements Serializable {
public static final int GEN_FLAG_NONE = 0;
public static final int GEN_FLAG_QUEUE = 1;
public static final int GEN_FLAG_PROCESSING = 2;
public static final int GEN_FLAG_ERROR = 3;
public static final int GEN_FLAG_FINISHED = 4;
public static final int GEN_FLAG_CANCEL = 5;
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private String id;
/**
* 部门Code
*/
@TableField(value = "org_code")
@Schema(title = "部门Code")
private String orgCode;
/**
* 报告年份
*/
@TableField(value = "report_year")
@Schema(title = "报告年份")
private Integer reportYear;
/**
* 报告月份
*/
@TableField(value = "report_month")
@Schema(title = "报告月份")
private Integer reportMonth;
/**
* 报告地址
*/
@TableField(value = "report_url")
@Schema(title = "报告地址")
private String reportUrl;
/**
* 生成状态 1-队列中 2-生成中 3-任务异常 4-生成完成
*/
@TableField(value = "gen_flag")
@Schema(title = "生成状态 1-队列中 2-生成中 3-任务异常 4-生成完成")
private Integer genFlag;
/**
* 生成时间
*/
@TableField(value = "gen_time")
@Schema(title = "生成时间")
private Date genTime;
/**
* 删除状态(0-正常,1-已删除)
*/
@TableField(value = "del_flag")
@Schema(title = "删除状态(0-正常,1-已删除)")
private Boolean delFlag;
/**
* 创建人
*/
@TableField(value = "create_by")
@Schema(title = "创建人")
private String createBy;
/**
* 创建时间
*/
@TableField(value = "create_time")
@Schema(title = "创建时间")
private Date createTime;
/**
* 更新人
*/
@TableField(value = "update_by")
@Schema(title = "更新人")
private String updateBy;
/**
* 更新时间
*/
@TableField(value = "update_time")
@Schema(title = "更新时间")
private Date updateTime;
/**
* 备注
*/
@TableField(value = "memo")
@Schema(title = "备注")
private String memo;
}
@@ -0,0 +1,193 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* @Description: watch_device
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_device")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_device对象", description = "watch_device")
public class WatchDevice implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private java.lang.String id;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 手表型号
*/
@Excel(name = "手表型号", width = 15)
@Schema(title = "手表型号")
private java.lang.String watchModel;
/**
* 穿戴状态
*/
@Excel(name = "穿戴状态", width = 15)
@Schema(title = "穿戴状态")
private java.lang.String wearStatus;
/**
* 穿戴状态
*/
@Excel(name = "绑定状态", width = 15)
@TableField(exist = false)
@Schema(title = "绑定状态")
private java.lang.String watchStatus;
/**
* 在线状态
*/
@Excel(name = "在线状态", width = 15)
@Schema(title = "在线状态")
private java.lang.String watchOnline;
/**
* 绑定用户
*/
@Excel(name = "绑定用户", width = 15)
@Schema(title = "绑定用户")
private java.lang.String bindUserId;
@Excel(name = "绑定用户名称", width = 15)
@Schema(title = "绑定用户名称")
@TableField(exist = false)
private String bindRealName;
@Excel(name = "员工编号", width = 15)
@Schema(title = "员工编号")
@TableField(exist = false)
private String workNo;
/**
* 绑定日期
*/
@Excel(name = "绑定日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "绑定日期")
private java.util.Date bindDate;
/**
* 创建人登录名称
*/
@Schema(title = "创建人登录名称")
private java.lang.String createBy;
/**
* 创建日期
*/
@Excel(name = "创建日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "创建日期")
private java.util.Date createDate;
/**
* 更新人登录名称
*/
@Schema(title = "更新人登录名称")
private java.lang.String updateBy;
/**
* 更新日期
*/
@Excel(name = "更新日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "更新日期")
private java.util.Date updateDate;
/**
* IMEI编码
*/
@Excel(name = "IMEI编码", width = 15)
@Schema(title = "IMEI编码")
private java.lang.String imeiNo;
/**
* EID编码
*/
@Excel(name = "EID编码", width = 15)
@Schema(title = "EID编码")
private java.lang.String eid;
/**
* 最后一次数据更新时间
*/
@Excel(name = "最后一次数据更新时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "最后一次数据更新时间")
private java.util.Date lastUpdateTime;
/**
* 归属部门
*/
@Excel(name = "归属部门", width = 15)
@Schema(title = "归属部门")
private java.lang.String deptId;
/**
* 归属部门名称
*/
@Schema(title = "归属部门名称")
@TableField(exist = false)
private java.lang.String departmentName;
@Schema(title = "部门编码")
private String orgCode;
@Schema(title = "原部门id")
@TableField(exist = false)
private String oldDeptId;
@Schema(title = "原部门名称")
@TableField(exist = false)
private String oldDepartmentName;
@Schema(title = "开始时间")
@TableField(exist = false)
private Date startTime;
@Schema(title = "结束时间")
@TableField(exist = false)
private Date endTime;
@Schema(title = "单位名称")
@TableField(exist = false)
private String orgName;
@Schema(title = "部门名称")
@TableField(exist = false)
private String deptName;
@Schema(title = "身份证号")
@TableField(exist = false)
private String idCard;
@Schema(title = "性别")
@TableField(exist = false)
private String sex;
@Schema(title = "年龄")
@TableField(exist = false)
private Integer age;
}
@@ -0,0 +1,179 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("watch_device")
public class WatchDeviceDO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private java.lang.String id;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 手表型号
*/
@Excel(name = "手表型号", width = 15)
@Schema(title = "手表型号")
private java.lang.String watchModel;
/**
* 穿戴状态
*/
@Excel(name = "穿戴状态", width = 15)
@Schema(title = "穿戴状态")
private java.lang.String wearStatus;
/**
* 穿戴状态
*/
@Excel(name = "绑定状态", width = 15)
@TableField(exist = false)
@Schema(title = "绑定状态")
private java.lang.String watchStatus;
/**
* 在线状态
*/
@Excel(name = "在线状态", width = 15)
@Schema(title = "在线状态")
private java.lang.String watchOnline;
/**
* 绑定用户
*/
@Excel(name = "绑定用户", width = 15)
@Schema(title = "绑定用户")
private java.lang.String bindUserId;
@Excel(name = "绑定用户名称", width = 15)
@Schema(title = "绑定用户名称")
@TableField(exist = false)
private String bindRealName;
@Excel(name = "员工编号", width = 15)
@Schema(title = "员工编号")
@TableField(exist = false)
private String workNo;
/**
* 绑定日期
*/
@Excel(name = "绑定日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "绑定日期")
private java.util.Date bindDate;
/**
* 创建人登录名称
*/
@Schema(title = "创建人登录名称")
private java.lang.String createBy;
/**
* 创建日期
*/
@Excel(name = "创建日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "创建日期")
private java.util.Date createDate;
/**
* 更新人登录名称
*/
@Schema(title = "更新人登录名称")
private java.lang.String updateBy;
/**
* 更新日期
*/
@Excel(name = "更新日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "更新日期")
private java.util.Date updateDate;
/**
* IMEI编码
*/
@Excel(name = "IMEI编码", width = 15)
@Schema(title = "IMEI编码")
private java.lang.String imeiNo;
/**
* EID编码
*/
@Excel(name = "EID编码", width = 15)
@Schema(title = "EID编码")
private java.lang.String eid;
/**
* 最后一次数据更新时间
*/
@Excel(name = "最后一次数据更新时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "最后一次数据更新时间")
private java.util.Date lastUpdateTime;
/**
* 归属部门
*/
@Excel(name = "归属部门", width = 15)
@Schema(title = "归属部门")
private java.lang.String deptId;
/**
* 归属部门名称
*/
@Schema(title = "归属部门名称")
@TableField(exist = false)
private java.lang.String departmentName;
@Schema(title = "部门编码")
private String orgCode;
@Schema(title = "原部门id")
@TableField(exist = false)
private String oldDeptId;
@Schema(title = "原部门名称")
@TableField(exist = false)
private String oldDepartmentName;
@Schema(title = "开始时间")
@TableField(exist = false)
private Date startTime;
@Schema(title = "结束时间")
@TableField(exist = false)
private Date endTime;
@Schema(title = "结束时间")
@TableField(exist = false)
private String wdType;
@Dict(dicCode = "data_watch_state")
@Schema(title = "结束时间")
@TableField(exist = false)
private String switchFlag;
@Dict(dicCode = "data_watch_seven")
@Schema(title = "数据是否七天传输")
@TableField(exist = false)
private String dataFlag;
}
@@ -0,0 +1,65 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: watch_device_switch
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_device_switch")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_device_switch对象", description = "watch_device_switch")
public class WatchDeviceSwitch implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "id")
private java.lang.String id;
@TableField(exist = false)
private String name;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 数据类型
*/
@Excel(name = "数据类型", width = 15)
@Schema(title = "数据类型")
private java.lang.String wdType;
/**
* 开关状态
*/
@Excel(name = "开关状态", width = 15)
@Schema(title = "开关状态")
private java.lang.String switchFlag;
/**
* 更新日期
*/
@Excel(name = "更新日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "更新日期")
private java.util.Date updateDate;
}
@@ -0,0 +1,57 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.List;
/**
* @Description: watch_data
* @Author: jeecg-boot
* @Date: 2023-11-03
* @Version: V1.0
*/
@Data
@TableName("watch_key_user")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_key_user对象", description = "watch_key_user")
public class WatchKeyUser implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private String id;
/**
* 用户ID
*/
@Schema(title = "用户ID")
private String userId;
/**
* 异常类型(watch_error_type 0:非重点指标用户 1:大病异常 2:慢病异常 3:指标异常)
*/
@Schema(title = "异常类型(watch_error_type 0:非重点指标用户 1:大病异常 2:慢病异常 3:指标异常)")
@Dict(dicCode = "watch_error_type")
private String errorType;
/**
* 删除标识0-正常,1已删除
*/
@Schema(title = "删除标识0-正常,1已删除")
@TableLogic
private Integer delFlag;
@Schema(title = "病名")
private String diseaseName;
}
@@ -0,0 +1,190 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.List;
/**
* @Description: 手表告警数据
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_monitor_data")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_monitor_data对象", description = "watch_monitor_data")
public class WatchMonitorData implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private java.lang.String id;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 事件类型
*/
@Excel(name = "事件类型", width = 15)
@Schema(title = "事件类型")
@Dict(dicCode = "watch_event_type")
private java.lang.String eventType;
/**
* 绑定用户
*/
@Excel(name = "绑定用户", width = 15)
@Schema(title = "绑定用户")
private java.lang.String bindUserId;
/**
* 创建人登录名称
*/
@Schema(title = "创建人登录名称")
private java.lang.String createBy;
/**
* 创建日期
*/
@Excel(name = "创建日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "创建日期")
private java.util.Date createDate;
/**
* 数据值
*/
@Excel(name = "数据值", width = 15)
@Schema(title = "数据值")
private java.lang.String dataValue;
/**
* 详细地址
*/
@Excel(name = "详细地址", width = 15)
@Schema(title = "详细地址")
private java.lang.String address;
/**
* 经度
*/
@Excel(name = "经度", width = 15)
@Schema(title = "经度")
private java.lang.Double lon;
/**
* 纬度
*/
@Excel(name = "纬度", width = 15)
@Schema(title = "纬度")
private java.lang.Double lat;
/**
* 数据日期
*/
@Excel(name = "数据日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "数据日期")
private java.util.Date dataDate;
/**
* 报警时间
*/
@Excel(name = "报警时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "报警时间")
private java.util.Date warnTime;
/**
* GPS错误信息
*/
@Excel(name = "GPS错误信息", width = 15)
@Schema(title = "GPS错误信息")
private java.lang.String gpsErrorMsg;
/**
* 高德经度
*/
@Excel(name = "高德经度", width = 15)
@Schema(title = "高德经度")
private java.math.BigDecimal lonGd;
/**
* 高德纬度
*/
@Excel(name = "高德纬度", width = 15)
@Schema(title = "高德纬度")
private java.math.BigDecimal latGd;
/**
* 高德地址
*/
@Excel(name = "高德地址", width = 15)
@Schema(title = "高德地址")
private java.lang.String addressGd;
/**
* 是否已短信通知
*/
@Excel(name = "是否已短信通知", width = 15)
@Schema(title = "是否已短信通知")
private java.lang.String sendFlag;
/**
* 是否大屏通知
*/
@Excel(name = "是否大屏通知", width = 15)
@Schema(title = "是否大屏通知")
private java.lang.String largeScreenFlag;
/**
* 部门编码
*/
@Excel(name = "部门编码", width = 15)
@Schema(title = "部门编码")
private java.lang.String orgCode;
@Schema(title = "员工编号")
@TableField(exist = false)
private String workNo;
@Schema(title = "用户id组")
@TableField(exist = false)
private List<String> userIds;
@Schema(title = "性别")
@TableField(exist = false)
private String sex;
@Schema(title = "民族")
@TableField(exist = false)
private String nation;
@Schema(title = "年龄")
@TableField(exist = false)
private String age;
@Schema(title = "政治面貌")
@TableField(exist = false)
private String political;
@Schema(title = "岗位层级")
@TableField(exist = false)
private String jobLevel;
@Schema(title = "结婚")
@TableField(exist = false)
private String married;
@Schema(title = "健康现状")
@TableField(exist = false)
private String ill;
}
@@ -0,0 +1,74 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: watch_monitor_mobile
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_monitor_mobile")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_monitor_mobile对象", description = "watch_monitor_mobile")
public class WatchMonitorMobile implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "id")
private java.lang.String id;
/**
* 手机号码
*/
@Excel(name = "手机号码", width = 15)
@Schema(title = "手机号码")
private java.lang.String mobile;
/**
* 有效标志
*/
@Excel(name = "有效标志", width = 15)
@Schema(title = "有效标志")
private java.lang.String validStatus;
/**
* 创建人登录名称
*/
@Schema(title = "创建人登录名称")
private java.lang.String createBy;
/**
* 创建日期
*/
@Excel(name = "创建日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "创建日期")
private java.util.Date createDate;
/**
* 更新人登录名称
*/
@Schema(title = "更新人登录名称")
private java.lang.String updateBy;
/**
* 更新日期
*/
@Excel(name = "更新日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "更新日期")
private java.util.Date updateDate;
}
@@ -0,0 +1,118 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: watch_mqtt_notice
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_mqtt_notice")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_mqtt_notice对象", description = "watch_mqtt_notice")
public class WatchMqttNotice implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private java.lang.String id;
/**
* 通知内容
*/
@Excel(name = "通知内容", width = 15)
@Schema(title = "通知内容")
private java.lang.String mqttNotice;
/**
* 消息标题
*/
@Excel(name = "消息标题", width = 15)
@Schema(title = "消息标题")
private java.lang.String mqttNoticeTitle;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 创建人登录名称
*/
@Schema(title = "创建人登录名称")
private java.lang.String createBy;
@TableField(exist = false)
private java.lang.String createByName;//创建人名称
/**
* 创建日期
*/
@Excel(name = "创建日期", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "创建日期")
private java.util.Date createDate;
/**
* 发送时间
*/
@Excel(name = "发送时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "发送时间")
private java.util.Date sendTime;
/**
* 发送状态
*/
@Excel(name = "发送状态", width = 15)
@Schema(title = "发送状态")
@Dict(dicCode = "watch_msg_send_status")
private java.lang.String noticeStatus;
/**
* 失败原因
*/
@Excel(name = "失败原因", width = 15)
@Schema(title = "失败原因")
private java.lang.String errorMsg;
/**
* 通知级别
*/
@Excel(name = "通知级别", width = 15)
@Schema(title = "通知级别")
@Dict(dicCode = "watch_notice_level")
private java.lang.String noticeLevel;
/**
* 通知用户ID
*/
@Excel(name = "通知用户ID", width = 15)
@Schema(title = "通知用户ID")
private java.lang.String userId;
/**
* 通知用户名字
*/
@Excel(name = "通知用户名字", width = 15)
@TableField(exist = false)
@Schema(title = "通知用户名字")
private java.lang.String userName;
@Schema(title = "部门")
private java.lang.String orgCode;
}
@@ -0,0 +1,102 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* @Description: watch_stat_user_info_day_heart_rate
* @Author: jeecg-boot
* @Date: 2023-11-06
* @Version: V1.0
*/
@Data
@TableName("watch_stat_user_info_day_heart_rate")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_stat_user_info_day_heart_rate对象", description = "watch_stat_user_info_day_heart_rate")
public class WatchStatUserInfoDayHeartRate implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "id")
private String id;
/**
* 用户id
*/
@Excel(name = "用户id", width = 15)
@Schema(title = "用户id")
private String userId;
/**
* 最大值
*/
@Excel(name = "最大值", width = 15)
@Schema(title = "最大值")
private Integer maxValue;
/**
* 最小值
*/
@Excel(name = "最小值", width = 15)
@Schema(title = "最小值")
private Integer minValue;
/**
* 平均值
*/
@Excel(name = "平均值", width = 15)
@Schema(title = "平均值")
private Integer avgValue;
/**
* 静息心率最大值
*/
@Excel(name = "静息心率最大值", width = 15)
@Schema(title = "静息心率最大值")
private Integer silenceMaxValue;
/**
* 静息心率最小值
*/
@Excel(name = "静息心率最小值", width = 15)
@Schema(title = "静息心率最小值")
private Integer silenceMinValue;
/**
* 静息心率平均值
*/
@Excel(name = "静息心率平均值", width = 15)
@Schema(title = "静息心率平均值")
private Integer silenceAvgValue;
/**
* 数据时间
*/
@Excel(name = "数据时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "数据时间")
private Date dataDate;
/**
* 部门编码
*/
@Excel(name = "部门编码", width = 15)
@Schema(title = "部门编码")
private String orgCode;
/**
* 最后上传时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "最后上传时间")
private Date lastUploadTime;
}
@@ -0,0 +1,73 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* @Description: watch_stat_user_info_day_sdc 步行记录按日归档统计表
* @Author: jeecg-boot
* @Date: 2023-11-06
* @Version: V1.0
*/
@Data
@TableName("watch_stat_user_info_day_sdc")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_stat_user_info_day_sdc对象", description = "watch_stat_user_info_day_sdc")
public class WatchStatUserInfoDaySdc implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "id")
private String id;
/**用户ID*/
@Excel(name = "用户ID", width = 15)
@Schema(title = "用户ID")
private String userId;
/**步数*/
@Excel(name = "步数", width = 15)
@Schema(title = "步数")
private Integer stepValue;
/**距离*/
@Excel(name = "距离", width = 15)
@Schema(title = "距离")
private Integer distanceValue;
/**卡路里*/
@Excel(name = "卡路里", width = 15)
@Schema(title = "卡路里")
private Integer calorieValue;
/**数据录入时间*/
@Excel(name = "数据录入时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@Schema(title = "数据录入时间")
private Date dataDate;
/**
* 部门编码
*/
@Excel(name = "部门编码", width = 15)
@Schema(title = "部门编码")
private String orgCode;
/**
* 最后上传时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "最后上传时间")
private Date lastUploadTime;
}
@@ -0,0 +1,186 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* @Description: watch_stat_user_info_day_sleep
* @Author: jeecg-boot
* @Date: 2023-11-06
* @Version: V1.0
*/
@Data
@TableName("watch_stat_user_info_day_sleep")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_stat_user_info_day_sleep对象", description = "watch_stat_user_info_day_sleep")
public class WatchStatUserInfoDaySleep implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "id")
private String id;
/**
* 用户id
*/
@Excel(name = "用户id", width = 15)
@Schema(title = "用户id")
private String userId;
/**
* 平均睡眠时长
*/
@Excel(name = "平均睡眠时长", width = 15)
@Schema(title = "用户id")
private Integer sleepAvg;
/**
* 平均睡眠时长
*/
@Excel(name = "平均长睡睡眠时长", width = 15)
@Schema(title = "用户id")
private Integer longDurationAvg;
/**
* 平均睡眠时长
*/
@Excel(name = "平均短睡睡眠时长", width = 15)
@Schema(title = "用户id")
private Integer shortDurationAvg;
/**
* 长睡数量
*/
@Excel(name = "长睡数量", width = 15)
@Schema(title = "长睡数量")
private Integer longCount;
/**
* 长睡最长时长
*/
@Excel(name = "长睡最长时长", width = 15)
@Schema(title = "长睡最长时长")
private Integer longDurationMax;
/**
* 长睡最短时长
*/
@Excel(name = "长睡最短时长", width = 15)
@Schema(title = "长睡最短时长")
private Integer longDurationMin;
/**
* 长睡睡眠总时长
*/
@Excel(name = "长睡睡眠总时长", width = 15)
@Schema(title = "长睡睡眠总时长")
private Integer longDurationTotal;
/**
* 长睡最早入睡时间
*/
@Excel(name = "长睡最早入睡时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "长睡最早入睡时间")
private Date longStartMin;
/**
* 长睡最晚醒来时间
*/
@Excel(name = "长睡最晚醒来时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "长睡最晚醒来时间")
private Date longEndMax;
/**
* 短睡数量
*/
@Excel(name = "短睡数量", width = 15)
@Schema(title = "短睡数量")
private Integer shortCount;
/**
* 短睡最长时长
*/
@Excel(name = "短睡最长时长", width = 15)
@Schema(title = "短睡最长时长")
private Integer shortDurationMax;
/**
* 短睡最短时长
*/
@Excel(name = "短睡最短时长", width = 15)
@Schema(title = "短睡最短时长")
private Integer shortDurationMin;
/**
* 短睡睡眠总时长
*/
@Excel(name = "短睡睡眠总时长", width = 15)
@Schema(title = "短睡睡眠总时长")
private Integer shortDurationTotal;
/**
* 短睡最早入睡时间
*/
@Excel(name = "短睡最早入睡时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "短睡最早入睡时间")
private Date shortStartMin;
/**
* 短睡最晚醒来时间
*/
@Excel(name = "短睡最晚醒来时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "短睡最晚醒来时间")
private Date shortEndMax;
/**
* 更新时间
*/
@Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "更新时间")
private Date dataDate;
/**
* 部门编码
*/
@Excel(name = "部门编码", width = 15)
@Schema(title = "部门编码")
private String orgCode;
/**
* 深睡睡眠时长
*/
private Integer deepSleepTimes;
/**
* 浅睡睡眠时长
*/
private Integer lightSleepTimes;
/**
* 睡眠总时长(light_sleep_times+deep_sleep_times
*/
private Integer deepLightTimes;
/**
* 睡眠id
*/
private String sleepId;
/**
* 最后上传时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "最后上传时间")
private Date lastUploadTime;
}
@@ -0,0 +1,70 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Description: watch_stat_user_info_day_spo2
* @Author: jeecg-boot
* @Date: 2023-11-06
* @Version: V1.0
*/
@Data
@TableName("watch_stat_user_info_day_spo2")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_stat_user_info_day_spo2对象", description = "watch_stat_user_info_day_spo2")
public class WatchStatUserInfoDaySpo2 implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "id")
private String id;
/**用户id*/
@Excel(name = "用户id", width = 15)
@Schema(title = "用户id")
private String userId;
/**最大值*/
@Excel(name = "最大值", width = 15)
@Schema(title = "最大值")
private BigDecimal maxValue;
/**最小值*/
@Excel(name = "最小值", width = 15)
@Schema(title = "最小值")
private BigDecimal minValue;
/**平均值*/
@Excel(name = "平均值", width = 15)
@Schema(title = "平均值")
private BigDecimal avgValue;
/**数据日期*/
@Excel(name = "数据日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@Schema(title = "数据日期")
private Date dataDate;
/**用户id*/
@Excel(name = "部门编码", width = 15)
@Schema(title = "部门编码")
private String orgCode;
/**
* 最后上传时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "最后上传时间")
private Date lastUploadTime;
}
@@ -0,0 +1,83 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* @Description: watch_stat_user_info_day_stress
* @Author: jeecg-boot
* @Date: 2023-11-06
* @Version: V1.0
*/
@Data
@TableName("watch_stat_user_info_day_stress")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_stat_user_info_day_stress对象", description = "watch_stat_user_info_day_stress")
public class WatchStatUserInfoDayStress implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "id")
private String id;
/**
* 用户ID
*/
@Excel(name = "用户ID", width = 15)
@Schema(title = "用户ID")
private String userId;
/**
* 最大值
*/
@Excel(name = "最大值", width = 15)
@Schema(title = "最大值")
private Integer maxValue;
/**
* 最小值
*/
@Excel(name = "最小值", width = 15)
@Schema(title = "最小值")
private Integer minValue;
/**
* 平均值
*/
@Excel(name = "平均值", width = 15)
@Schema(title = "平均值")
private Integer avgValue;
/**
* 更新时间
*/
@Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "更新时间")
private Date dataDate;
/**
* 部门编码
*/
@Excel(name = "部门编码", width = 15)
@Schema(title = "部门编码")
private String orgCode;
/**
* 最后上传时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "最后上传时间")
private Date lastUploadTime;
}
@@ -0,0 +1,84 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Description: watch_stat_user_info_day_temp
* @Author: jeecg-boot
* @Date: 2023-11-06
* @Version: V1.0
*/
@Data
@TableName("watch_stat_user_info_day_temp")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_stat_user_info_day_temp对象", description = "watch_stat_user_info_day_temp")
public class WatchStatUserInfoDayTemp implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "id")
private String id;
/**用户id*/
@Excel(name = "用户id", width = 15)
@Schema(title = "用户id")
private String userId;
/**最大值*/
@Excel(name = "最大值", width = 15)
@Schema(title = "最大值")
private BigDecimal maxValue;
/**最小值*/
@Excel(name = "最小值", width = 15)
@Schema(title = "最小值")
private BigDecimal minValue;
/**平均值*/
@Excel(name = "平均值", width = 15)
@Schema(title = "平均值")
private BigDecimal avgValue;
/**体表温度最大值*/
@Excel(name = "体表温度最大值", width = 15)
@Schema(title = "体表温度最大值")
private BigDecimal skinMaxValue;
/**体表温度最小值*/
@Excel(name = "体表温度最小值", width = 15)
@Schema(title = "体表温度最小值")
private BigDecimal skinMinValue;
/**体表温度平均值*/
@Excel(name = "体表温度平均值", width = 15)
@Schema(title = "体表温度平均值")
private BigDecimal skinAvgValue;
/**更新时间*/
@Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@Schema(title = "更新时间")
private Date dataDate;
/**
* 部门编码
*/
@Excel(name = "部门编码", width = 15)
@Schema(title = "部门编码")
private String orgCode;
/**
* 最后上传时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "最后上传时间")
private Date lastUploadTime;
}
@@ -0,0 +1,137 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* @Description: watch_stat_user_info_day_workout 用户锻炼数据按日归档表
* @Author: jeecg-boot
* @Date: 2023-11-06
* @Version: V1.0
*/
@Data
@TableName("watch_stat_user_info_day_workout")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_stat_user_info_day_workout对象", description = "watch_stat_user_info_day_workout")
public class WatchStatUserInfoDayWorkout implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "id")
private String id;
/**
* 用户ID
*/
@Excel(name = "用户ID", width = 15)
@Schema(title = "用户ID")
private String userId;
/**
* 距离最大值
*/
@Excel(name = "距离最大值", width = 15)
@Schema(title = "距离最大值")
private Integer distanceMaxValue;
/**
* 距离最小值
*/
@Excel(name = "距离最小值", width = 15)
@Schema(title = "距离最小值")
private Integer distanceMinValue;
/**
* 距离总量
*/
@Excel(name = "距离总量", width = 15)
@Schema(title = "距离总量")
private Integer distanceTotalValue;
/**
* 距离数据量
*/
@Excel(name = "距离数据量", width = 15)
@Schema(title = "距离数据量")
private Integer distanceCount;
/**
* 卡路里最大值
*/
@Excel(name = "卡路里最大值", width = 15)
@Schema(title = "卡路里最大值")
private Integer calorieMaxValue;
/**
* 卡路里最小值
*/
@Excel(name = "卡路里最小值", width = 15)
@Schema(title = "卡路里最小值")
private Integer calorieMinValue;
/**
* 卡路里总量
*/
@Excel(name = "卡路里总量", width = 15)
@Schema(title = "卡路里总量")
private Integer calorieTotalValue;
/**
* 卡路里数据量
*/
@Excel(name = "卡路里数据量", width = 15)
@Schema(title = "卡路里数据量")
private Integer calorieCount;
/**
* 锻炼时长最大值
*/
@Excel(name = "锻炼时长最大值", width = 15)
@Schema(title = "锻炼时长最大值")
private Integer durationMaxValue;
/**
* 锻炼时长最小值
*/
@Excel(name = "锻炼时长最小值", width = 15)
@Schema(title = "锻炼时长最小值")
private Integer durationMinValue;
/**
* 锻炼时长总量
*/
@Excel(name = "锻炼时长总量", width = 15)
@Schema(title = "锻炼时长总量")
private Integer durationTotalValue;
/**
* 锻炼次数
*/
@Excel(name = "锻炼次数", width = 15)
@Schema(title = "锻炼次数")
private Integer durationCount;
/**
* 数据时间
*/
@Excel(name = "数据时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "数据时间")
private Date dataDate;
/**
* 部门编码
*/
@Excel(name = "部门编码", width = 15)
@Schema(title = "部门编码")
private String orgCode;
/**
* 最后上传时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "最后上传时间")
private Date lastUploadTime;
}
@@ -0,0 +1,64 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: watch_syn_max_id
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_syn_max_id")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_syn_max_id对象", description = "watch_syn_max_id")
public class WatchSynMaxId implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "id")
private java.lang.String id;
/**
* 数据类型
*/
@Excel(name = "数据类型", width = 15)
@Schema(title = "数据类型")
private java.lang.String wdType;
/**
* 最大ID
*/
@Excel(name = "最大ID", width = 15)
@Schema(title = "最大ID")
private java.lang.String maxId;
/**
* 创建日期
*/
@Excel(name = "创建日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "创建日期")
private java.util.Date createDate;
/**
* 更新日期
*/
@Excel(name = "更新日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "更新日期")
private java.util.Date updateDate;
}
@@ -0,0 +1,87 @@
package com.renkang.watch.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.renkang.watch.vo.dept.DeptData;
import com.renkang.watch.vo.dept.DeptStatData;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.List;
/**
* @Description: watch_user_data
* @Author: jeecg-boot
* @Date: 2023-08-08
* @Version: V1.0
*/
@Data
@TableName("watch_user_data")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "watch_user_data对象", description = "watch_user_data")
public class WatchUserData implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "id")
private java.lang.String id;
/**
* 手表编码
*/
@Excel(name = "手表编码", width = 15)
@Schema(title = "手表编码")
private java.lang.String watchNo;
/**
* 绑定用户
*/
@Excel(name = "绑定用户", width = 15)
@Schema(title = "绑定用户")
private java.lang.String bindUserId;
/**
* 绑定日期
*/
@Excel(name = "绑定日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "绑定日期")
private java.util.Date dataDate;
/**
* 创建人登录名称
*/
@Schema(title = "创建人登录名称")
private java.lang.String createBy;
/**
* 创建日期
*/
@Excel(name = "创建日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "创建日期")
private java.util.Date createDate;
@Schema(title = "员工编号")
@TableField(exist = false)
private String workNo;
@Schema(title = "用户id组")
@TableField(exist = false)
private List<String> userIds;
@TableField(exist = false)
private DeptData list;
@TableField(exist = false)
private DeptStatData detail;
}
@@ -0,0 +1,13 @@
package com.renkang.watch.vo;
import lombok.Data;
/**
* @author TianZi
* @date 2023/12/20 14:09
*/
@Data
public class AllotDeviceVo {
private String orgCode;
private Integer allotDeviceNum;
}
@@ -0,0 +1,9 @@
package com.renkang.watch.vo;
import lombok.Data;
@Data
public class AppBasicsCalorieVo {
private String date;
private Integer number;
}
@@ -0,0 +1,23 @@
package com.renkang.watch.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class AppCalorieDataVo {
@Schema(title = "基础消耗")
private Integer basalMetabolism;
@Schema(title = "走跑消耗")
private Integer walkRunCalorie;
@Schema(title = "健身消耗")
private Integer fitnessCalorie;
@Schema(title = "其他消耗")
private Integer otherCalorie;
@Schema(title = "总消耗")
private Integer totalCalorie;
@Schema(title = "data")
private List<AppCalorieVo> data = new ArrayList<>();
}
@@ -0,0 +1,16 @@
package com.renkang.watch.vo;
import lombok.Data;
@Data
public class AppCalorieVo {
private String time;
private CalorieData data;
@Data
public static class CalorieData {
private Integer basicsData = 0;
private Integer walkRunData;
private Integer fitnessData;
}
}

Some files were not shown because too many files have changed in this diff Show More