重构监测首页接口

This commit is contained in:
feng
2026-01-21 13:40:01 +08:00
parent 4ba67b70c5
commit 4f8ca1b97b
11 changed files with 380 additions and 36 deletions
@@ -0,0 +1,83 @@
package com.renkang.watch;
import cn.hutool.core.util.StrUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.renkang.watch.vo.WatchH5IndexItemVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
@Data
public class WatchH5IndexItemNewVo {
@Schema(title = "数据类型")
private String wdType;
@Schema(title = "数据类型名称")
private String wdTypeName;
@Schema(title = "最新数据日期")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date dataDate;
/**
* 注意 当wdType=sleep时此字段返回长睡时长
*/
@Schema(title = "监测数据最大值(当wdType=sleep时此字段返回长睡时长)")
private String dataMax;
/**
*注意 当wdType=sleep时此字段返回短睡时长
*/
@Schema(title = "监测数据最小值(当wdType=sleep时此字段返回短睡时长)")
private String dataMin;
@Schema(title = "监测数据平均值")
private String dataAvg;
@Schema(title = "最新数据值")
private String dataValue;
@Schema(title = "最低阈值")
private String warnMin;
@Schema(title = "最高阈值")
private String warnMax;
public String getDataAvg() {
if(StrUtil.isNotEmpty(dataAvg)){
try {
return BigDecimal.valueOf(Double.parseDouble(dataAvg)).setScale(1, RoundingMode.HALF_UP).toString();
} catch (NumberFormatException e) {
return dataAvg;
}
}
return dataAvg;
}
public String getWdTypeName() {
if (!StringUtils.hasLength(wdType)) {
return "";
}
switch (wdType) {
case "sleep":
return "睡眠";
case "steps":
return "步数";
case "heart_rate":
return "心率";
case "spo2":
return "血氧饱和度";
case "stress":
return "压力";
case "temperature":
return "体温";
default:
return "";
}
}
public void fieldCopy(WatchH5IndexItemVo watchH5IndexItemVo){
this.setWarnMax(watchH5IndexItemVo.getWarnMax());
this.setWarnMin(watchH5IndexItemVo.getWarnMin());
this.setWdType(watchH5IndexItemVo.getWdType());
this.setWdTypeName(watchH5IndexItemVo.getWdTypeName());
}
}
@@ -0,0 +1,20 @@
package com.renkang.watch.vo;
import com.renkang.watch.WatchH5IndexItemNewVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Data
@Schema(title = "手表监测首页数据V2版本")
public class WatchIndexNewVo {
@Schema(title = "手表使用天数")
private Integer days = 0;
@Schema(title = "步行距离")
private Integer distance;
@Schema(title = "平均睡眠(所有数据求出的平均睡眠)")
private Double aveSleep;
@Schema(title = "各项指标数据")
private List<WatchH5IndexItemNewVo> indexItemVos;
}