Commit bd88cfc2 authored by June's avatar June

v2- 新增 iotdata

parent 5f02e5d2
......@@ -53,6 +53,18 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.jiankangyouyi.cloud</groupId>
<artifactId>health-cloud-iot-data-api</artifactId>
<version>1.0-TK-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.jiankangyouyi.cloud</groupId>
<artifactId>health-cloud-assessment-api</artifactId>
......
package com.jiankangyouyi.cloud.iotdata.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 记录状态
*
* @author yangsongbo
*/
@AllArgsConstructor
@Getter
public enum RecordStatusEnum {
/**
* 待认领
*/
WAITING_FOR_CLAIM("0", "待认领"),
/**
* 已认领(有效数据)
*/
CLAIMED_VALID("1", "有效"),
/**
* 无效
*/
INVALID("2", "无效"),
;
private String status;
private String describe;
public static RecordStatusEnum getEnum(String status) {
RecordStatusEnum[] values = values();
if (status == null) {
return null;
}
for (RecordStatusEnum value : values) {
if (status.equals(value.status)) {
return value;
}
}
return null;
}
}
package com.jiankangyouyi.cloud.iotdata.model.entity.mongo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* 设备激活表
*
* @author : yangsongbo
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@CompoundIndexes(
value = {
@CompoundIndex(
name = "appId_-1_deviceId_1_bizType_1",
def = "{'appId':-1,'deviceId':1,'bizType':1}",
unique = true
),
@CompoundIndex(
name = "appId_-1_bizType_1_activeDate_-1",
def = "{'appId':-1,'bizType':1,'activeDate':-1}"
)
}
)
@Document(collection = "v3.device.active")
public class DeviceActiveDO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@Id
private ObjectId id;
/**
* 更新时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
* 创建时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 创建日期
*/
private String createDate;
/**
* 应用ID
*/
private String appId;
/**
* 设备ID
*/
private String deviceId;
/**
* 业务类型
*/
private String bizType;
/**
* 最后使用用户ID
*/
private String userId;
/**
* 激活状态 1 已激活 2 未激活
*/
private String activeStatus;
/**
* 激活时间
*/
private Date activeTime;
/**
* 激活日期 yyyy-MM-dd
*/
private String activeDate;
/**
* 最后活跃日期 yyyy-MM-dd
*/
private String lastDate;
public static final String FIELD_ID = "_id";
public static final String FIELD_UPDATETIME = "updateTime";
public static final String FIELD_CREATETIME = "createTime";
public static final String FIELD_CREATEDATE = "createDate";
public static final String FIELD_APPID = "appId";
public static final String FIELD_DEVICEID = "deviceId";
public static final String FIELD_BIZTYPE = "bizType";
public static final String FIELD_USERID = "userId";
public static final String FIELD_ACTIVESTATUS = "activeStatus";
public static final String FIELD_ACTIVETIME = "activeTime";
public static final String FIELD_ACTIVEDATE = "activeDate";
public static final String FIELD_LASTDATE = "lastDate";
}
package com.jiankangyouyi.cloud.iotdata.model.entity.mongo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* 设备电量表
*
* @author : yangsongbo
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@CompoundIndexes(
value = {
@CompoundIndex(
name = "appId_-1_deviceId_1_bizType_1_createTime_-1",
def = "{'appId':-1,'deviceId':1,'bizType':1,'createTime':-1}"
)
}
)
@Document(collection = "v3.device.battery")
public class DeviceBatteryDO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
* <p>
* 当主键设置为id时,执行DeviceBatteryService.findList(String appId, Collection<String> deviceIds, String bizType, int rangeHours)
* 方法时,报 org.springframework.data.mapping.context.InvalidPersistentPropertyPath: No property '_id' found on...错误,定义成_id
* 后执行成功。
* <p>
* 因此,主键定义为_id,与数据库字段一致
*/
@Id
private ObjectId _id;
/**
* 创建时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 创建日期
*/
private String createDate;
/**
* 应用ID
*/
private String appId;
/**
* 设备ID
*/
private String deviceId;
/**
* 业务类型
*/
private String bizType;
/**
* 电量(百分比)
*/
private Integer battery;
/**
* 保存的用户,可以为空
*/
private String userId;
public static final String FIELD_ID = "_id";
public static final String FIELD_CREATETIME = "createTime";
public static final String FIELD_CREATEDATE = "createDate";
public static final String FIELD_APPID = "appId";
public static final String FIELD_DEVICEID = "deviceId";
public static final String FIELD_BIZTYPE = "bizType";
public static final String FIELD_BATTERY = "battery";
public static final String FIELD_USERID = "userId";
}
package com.jiankangyouyi.cloud.iotdata.model.entity.mongo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* 设备定位数据表
*
* @author : yangsongbo
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@CompoundIndexes(
value = {
@CompoundIndex(
name = "appId_-1_bizType_1_deviceId_-1_userId_-1_createDate_-1_validStatus_1",
def = "{ 'appId': -1,'bizType': 1,'deviceId':-1,'userId':-1,'createDate':-1,'validStatus':1}"
)
}
)
@Document(collection = "v3.device.location")
public class DeviceLocationDO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@Id
private ObjectId id;
/**
* 更新时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
* 创建时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 创建日期
*/
private String createDate;
/**
* 应用ID
*/
private String appId;
/**
* 业务类型
*/
private String bizType;
/**
* 设备ID
*/
private String deviceId;
/**
* 用户ID
*/
private String userId;
/**
* 地图类型
*/
private String mapType;
/**
* 经度
*/
private String longitude;
/**
* 纬度
*/
private String latitude;
/**
* 有效标识
*/
private String validStatus;
public static final String FIELD_ID = "_id";
public static final String FIELD_UPDATETIME = "updateTime";
public static final String FIELD_CREATETIME = "createTime";
public static final String FIELD_CREATEDATE = "createDate";
public static final String FIELD_APPID = "appId";
public static final String FIELD_BIZTYPE = "bizType";
public static final String FIELD_DEVICEID = "deviceId";
public static final String FIELD_USERID = "userId";
public static final String FIELD_MAPTYPE = "mapType";
public static final String FIELD_LONGITUDE = "longitude";
public static final String FIELD_LATITUDE = "latitude";
public static final String FIELD_VALIDSTATUS = "validStatus";
}
package com.jiankangyouyi.cloud.iotdata.model.entity.mongo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 设备指标记录表
*
* @author : yangsongbo
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@CompoundIndexes(
value = {
@CompoundIndex(
name = "appId_-1_userId_-1_deviceId_1_bizType_1_indicatorType_1",
def = "{'appId':-1,'userId':-1,'deviceId':1,'bizType':1,'indicatorType':1}"
)
}
)
@Document(collection = "v3.iot.record.body.indicator")
@Builder
public class IotRecordBodyIndicatorDO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@Id
private ObjectId _id;
/**
* 更新时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
* 创建时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 记录状态 {@link com.jiankangyouyi.cloud.iot.enums.common.RecordStatusEnum}
*/
private String recordStatus;
/**
* 记录ID
*/
@Indexed(unique = true)
private String recordId;
/**
* 批次号
*/
@Indexed
private String batchId;
/**
* 记录日期 yyyy-MM-dd
*/
private String recordDate;
/**
* 记录时间,与创建时间有区别,记录时间表示当前记录数据产生的时间
*/
private Date recordTime;
/**
* 应用ID,当记录状态为待认领时,appId设置为默认值 "0"
*/
private String appId;
/**
* 用户ID,当记录状态为待认领时,userId设置为默认值 "0"
*/
private String userId;
/**
* 业务类型
*/
private String bizType;
/**
* 设备ID
*/
private String deviceId;
/**
* 设备名称
*/
private String deviceName;
/**
* 指标类型 {@link com.jiankangyouyi.cloud.data.center.api.enums.IndicatorEnum}
*/
private String indicatorType;
/**
* 指标值
*/
private String indicatorValue;
/**
* 身体指标标签 目前血糖用药情况 分类 {@link com.jiankangyouyi.cloud.data.center.api.enums.BloodGlucoseTagEnum}
*/
private List<Integer> indicatorTagCodes;
public static final String FIELD_ID = "_id";
public static final String FIELD_UPDATETIME = "updateTime";
public static final String FIELD_CREATETIME = "createTime";
public static final String FIELD_VALIDSTATUS = "recordStatus";
public static final String FIELD_RECORDID = "recordId";
public static final String FIELD_BATCH_ID = "batchId";
public static final String FIELD_RECORDDATE = "recordDate";
public static final String FIELD_RECORDTIME = "recordTime";
public static final String FIELD_APPID = "appId";
public static final String FIELD_USERID = "userId";
public static final String FIELD_BIZTYPE = "bizType";
public static final String FIELD_DEVICEID = "deviceId";
public static final String FIELD_INDICATORTYPE = "indicatorType";
public static final String FIELD_INDICATORVALUE = "indicatorValue";
public static final String FIELD_RECORD_STATUS = "recordStatus";
public static final String FIELD_INDICATOR_TAG_CODES = "indicatorTagCodes";
public static final String FIELD_VERSION_ID = "batchId";
public static final String FIELD_DEVICE_NAME = "deviceName";
}
package com.jiankangyouyi.cloud.iotdata.model.entity.mysql;
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.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.*;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.sql.Date;
import java.sql.Timestamp;
/**
* <p>
* IOT用户设备绑定表
* </p>
*
* @author
* @since 2021-12-07
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("biz_iot_user_binding")
public class BizIotUserBindingDO extends Model<BizIotUserBindingDO> {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 更新时间
*/
@TableField("update_time")
private Timestamp updateTime;
/**
* 创建时间
*/
@TableField("create_time")
private Timestamp createTime;
/**
* 创建日期
*/
@TableField("create_date")
private Date createDate;
/**
* 有效标识 1 有效 UUID 无效
*/
@TableField("valid_status")
private String validStatus;
/**
* 应用ID
*/
@TableField("app_id")
private String appId;
/**
* 用户ID
*/
@TableField("user_id")
private String userId;
/**
* 设备ID
*/
@TableField("device_id")
private String deviceId;
/**
* 设备序列号
*/
@TableField("device_sn")
private String deviceSn;
/**
* 业务类型
*/
@TableField("biz_type")
private String bizType;
/**
* 设备扩展数据
*/
@TableField("device_extra")
private String deviceExtra;
/**
* 设备名称
*/
@TableField("device_name")
private String deviceName;
/**
* 最后上报数据时间
*/
@TableField("upload_data_time")
private Timestamp uploadDataTime;
/**
* 解绑时间
*/
@TableField("unbind_time")
private Timestamp unbindTime;
/**
* 解绑账号
*/
@TableField("unbind_account")
private String unbindAccount;
public static final String ID = "id";
public static final String UPDATE_TIME = "update_time";
public static final String CREATE_TIME = "create_time";
public static final String CREATE_DATE = "create_date";
public static final String VALID_STATUS = "valid_status";
public static final String APP_ID = "app_id";
public static final String USER_ID = "user_id";
public static final String DEVICE_ID = "device_id";
public static final String DEVICE_SN = "device_sn";
public static final String BIZ_TYPE = "biz_type";
public static final String DEVICE_EXTRA = "device_extra";
public static final String DEVICE_NAME = "device_name";
public static final String UPLOAD_DATA_TIME = "upload_data_time";
public static final String UNBIND_TIME = "unbind_time";
public static final String UNBIND_ACCOUNT = "unbind_account";
@Override
protected Serializable pkVal() {
return this.id;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment