Commit 8913e735 authored by huangcb's avatar huangcb

代码整理

parent dcea88c0
package com.esv.datacenter.iot.common.component; package com.esv.datacenter.iot.common.component;
import com.esv.datacenter.iot.module.omodel.dto.ModelAndInstanceDto;
import com.esv.datacenter.iot.module.datamodel.entity.DataModelEntity;
import com.esv.datacenter.iot.module.datamodel.entity.DataModelPropertyEntity; import com.esv.datacenter.iot.module.datamodel.entity.DataModelPropertyEntity;
import com.zaxxer.hikari.HikariDataSource; import com.zaxxer.hikari.HikariDataSource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -68,18 +66,17 @@ public class TimescaleComponent { ...@@ -68,18 +66,17 @@ public class TimescaleComponent {
/** /**
* @description 创建表 * @description 创建表
* @param modelAndInstanceDto: * @param modelId:
* @param propertyEntityList:
* @return java.lang.Boolean * @return java.lang.Boolean
* @author huangChaobin@esvtek.com * @author huangChaobin@esvtek.com
* @createTime 2020/08/03 14:22 * @createTime 2020/08/03 14:22
**/ **/
public Boolean createTable(ModelAndInstanceDto modelAndInstanceDto) { public Boolean createTable(Long modelId, List<DataModelPropertyEntity> propertyEntityList) {
HikariDataSource dataSource = this.getHikariDataSource4Transaction(); HikariDataSource dataSource = this.getHikariDataSource4Transaction();
// 表名 // 表名
DataModelEntity modelEntity = modelAndInstanceDto.getDataModelEntity(); String table = tablePrefix + modelId;
List<DataModelPropertyEntity> propertyEntityList = modelAndInstanceDto.getDataModelPropertyEntityList();
String table = tablePrefix + modelEntity.getId();
try { try {
// 校验表名是否已存在 // 校验表名是否已存在
...@@ -167,7 +164,7 @@ public class TimescaleComponent { ...@@ -167,7 +164,7 @@ public class TimescaleComponent {
StringBuffer sb = new StringBuffer(); StringBuffer sb = new StringBuffer();
sb.append("create table if not exists ").append(table).append("(") sb.append("create table if not exists ").append(table).append("(")
.append("time TIMESTAMPTZ NOT NULL,") .append("time TIMESTAMPTZ NOT NULL,")
.append("instance_id int8 NULL"); .append("device_id int8 NULL");
String propertyType; String propertyType;
String defaultValue; String defaultValue;
for (DataModelPropertyEntity propertyEntity : propertyEntityList) { for (DataModelPropertyEntity propertyEntity : propertyEntityList) {
......
package com.esv.datacenter.iot.module.datamodel.controller;
import com.esv.datacenter.iot.common.exception.EException;
import com.esv.datacenter.iot.common.response.ECode;
import com.esv.datacenter.iot.common.response.EResponse;
import com.esv.datacenter.iot.common.validator.groups.ValidatorInsert;
import com.esv.datacenter.iot.common.validator.groups.ValidatorList;
import com.esv.datacenter.iot.module.datamodel.form.DataModelAlarmRuleForm;
import com.esv.datacenter.iot.module.datamodel.service.DataModelAlarmRuleService;
import com.esv.datacenter.iot.module.datamodel.service.DataModelService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @description:
* @author: huangchaobin@esvtek.com
* @createTime: 2020/08/05 16:27
* @version:1.0
*/
@Slf4j
@RestController
@RequestMapping("/dataModel/alarmRule")
@Validated
public class DataModelAlarmRuleController {
private DataModelService dataModelService;
private DataModelAlarmRuleService dataModelAlarmRuleService;
public DataModelAlarmRuleController(DataModelService dataModelService, DataModelAlarmRuleService dataModelAlarmRuleService) {
this.dataModelService = dataModelService;
this.dataModelAlarmRuleService = dataModelAlarmRuleService;
}
/**
* @description 保存告警规则
* @param form:
* @return com.esv.datacenter.iot.common.response.EResponse
* @author huangChaobin@esvtek.com
* @createTime 2020/08/05 17:08
**/
@PostMapping("/save")
public EResponse save(@RequestBody @Validated(ValidatorInsert.class) DataModelAlarmRuleForm form) throws EException {
// 模型ID有效性校验
if (!dataModelService.isModelExits(form.getModelId())) {
throw new EException(ECode.BIZ_PARAM_ERROR.code(), "无效的模型ID值");
}
// 保存告警规则
dataModelAlarmRuleService.saveAlarmRule(form);
return EResponse.ok();
}
/**
* @description 获取指定数据模型的告警规则列表
* @param form:
* @return com.esv.datacenter.iot.common.response.EResponse
* @author huangChaobin@esvtek.com
* @createTime 2020/08/06 9:16
**/
@PostMapping("/list")
public EResponse list(@RequestBody @Validated(ValidatorList.class) DataModelAlarmRuleForm form) throws EException {
// 模型ID有效性校验
if (!dataModelService.isModelExits(form.getModelId())) {
throw new EException(ECode.BIZ_PARAM_ERROR.code(), "无效的模型ID值");
}
return EResponse.ok(dataModelAlarmRuleService.getAlarmRuleList(form.getModelId()));
}
}
package com.esv.datacenter.iot.module.datamodel.dao;
import com.esv.datacenter.iot.module.datamodel.entity.DataModelAlarmRuleEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* 数据模型告警规则表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-05 16:23:06
*/
@Mapper
public interface DataModelAlarmRuleDao extends BaseMapper<DataModelAlarmRuleEntity> {
}
package com.esv.datacenter.iot.module.datamodel.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 数据模型告警规则表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-05 16:23:06
*/
@Data
@TableName("data_model_alarm_rule")
public class DataModelAlarmRuleEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId
private Long id;
/**
* 租户ID
*/
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
/**
* 部门ID
*/
@TableField(fill = FieldFill.INSERT)
private Long departmentId;
/**
* 数据模型ID
*/
private Long modelId;
/**
* 模型属性ID
*/
private Long propertyId;
/**
* 判定规则代码(字典表)
*/
private Integer ruleExpression;
/**
* 告警等级(字典表)
*/
private Integer alarmLevel;
/**
* 阈值
*/
private String threshold;
/**
* 排列序号
*/
private Long sortNum;
/**
* 创建者
*/
@TableField(fill = FieldFill.INSERT)
private String createUser;
/**
* 修改者
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private String updateUser;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date updateTime;
}
package com.esv.datacenter.iot.module.datamodel.form;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* @description:
* @author: huangchaobin@esvtek.com
* @createTime: 2020/08/05 16:41
* @version:1.0
*/
@Data
public class AlarmRuleItemForm {
/**
* 模型属性ID
*/
private Long propertyId;
/**
* 判定规则(字典表)
*/
private Integer ruleExpression;
/**
* 告警等级(字典表)
*/
private Integer alarmLevel;
/**
* 阈值
*/
private String threshold;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
}
}
package com.esv.datacenter.iot.module.datamodel.form;
import com.esv.datacenter.iot.common.validator.groups.ValidatorInsert;
import com.esv.datacenter.iot.common.validator.groups.ValidatorList;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @description:
* @author: huangchaobin@esvtek.com
* @createTime: 2020/08/05 16:29
* @version:1.0
*/
@Data
public class DataModelAlarmRuleForm {
/**
* 数据模型ID
*/
@NotNull(message = "[模型ID]不能为空", groups = {ValidatorInsert.class, ValidatorList.class})
private Long modelId;
/**
* 告警规则列表
*/
@NotNull(message = "[告警规则]不能为空", groups = {ValidatorInsert.class})
private List<AlarmRuleItemForm> alarmRuleItemList;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
}
}
package com.esv.datacenter.iot.module.datamodel.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.esv.datacenter.iot.module.datamodel.entity.DataModelAlarmRuleEntity;
import com.esv.datacenter.iot.module.datamodel.form.DataModelAlarmRuleForm;
import com.esv.datacenter.iot.module.datamodel.vo.AlarmRuleItemVO;
import java.util.List;
/**
* 数据模型告警规则Service
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-05 16:23:06
*/
public interface DataModelAlarmRuleService extends IService<DataModelAlarmRuleEntity> {
/**
* @description 保存数据模型告警规则
* @param form:
* @return void
* @author huangChaobin@esvtek.com
* @createTime 2020/08/05 16:38
**/
void saveAlarmRule(DataModelAlarmRuleForm form);
/**
* @description 获取指定数据模型的告警规则列表
* @param modelId:
* @return java.util.List<com.esv.datacenter.iot.module.datamodel.vo.AlarmRuleItemVO>
* @author huangChaobin@esvtek.com
* @createTime 2020/08/06 9:11
**/
List<AlarmRuleItemVO> getAlarmRuleList(Long modelId);
}
package com.esv.datacenter.iot.module.datamodel.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.esv.datacenter.iot.common.util.ReqUtils;
import com.esv.datacenter.iot.module.datamodel.dao.DataModelAlarmRuleDao;
import com.esv.datacenter.iot.module.datamodel.entity.DataModelAlarmRuleEntity;
import com.esv.datacenter.iot.module.datamodel.form.AlarmRuleItemForm;
import com.esv.datacenter.iot.module.datamodel.form.DataModelAlarmRuleForm;
import com.esv.datacenter.iot.module.datamodel.service.DataModelAlarmRuleService;
import com.esv.datacenter.iot.module.datamodel.vo.AlarmRuleItemVO;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@Service("dataModelAlarmRuleService")
public class DataModelAlarmRuleServiceImpl extends ServiceImpl<DataModelAlarmRuleDao, DataModelAlarmRuleEntity> implements DataModelAlarmRuleService {
@Override
@Transactional(rollbackFor = Exception.class)
public void saveAlarmRule(DataModelAlarmRuleForm form) {
// 删除模型告警规则
Long modelId = form.getModelId();
this.getBaseMapper().delete(new LambdaQueryWrapper<DataModelAlarmRuleEntity>().eq(DataModelAlarmRuleEntity::getModelId, modelId));
// 新增模型告警规则
String[] notBlandParams = new String[]{"propertyId", "ruleExpression", "alarmLevel", "threshold"};
List<AlarmRuleItemForm> alarmRuleItemList = form.getAlarmRuleItemList();
for (AlarmRuleItemForm ruleItemForm : alarmRuleItemList) {
// 告警规则必填校验
ReqUtils.checkParamsNotBlank(JSON.parseObject(ruleItemForm.toString()), notBlandParams);
DataModelAlarmRuleEntity entity = new DataModelAlarmRuleEntity();
BeanUtils.copyProperties(ruleItemForm, entity);
entity.setModelId(form.getModelId());
this.getBaseMapper().insert(entity);
// 更新排序
DataModelAlarmRuleEntity sortEntity = new DataModelAlarmRuleEntity();
sortEntity.setId(entity.getId());
sortEntity.setSortNum(entity.getId());
this.getBaseMapper().updateById(sortEntity);
}
}
@Override
public List<AlarmRuleItemVO> getAlarmRuleList(Long modelId) {
List<DataModelAlarmRuleEntity> entityList = this.getBaseMapper().selectList(new LambdaQueryWrapper<DataModelAlarmRuleEntity>()
.eq(DataModelAlarmRuleEntity::getModelId, modelId)
.orderByAsc(DataModelAlarmRuleEntity::getSortNum));
List<AlarmRuleItemVO> voList = new ArrayList<>();
for (DataModelAlarmRuleEntity entity : entityList) {
AlarmRuleItemVO vo = new AlarmRuleItemVO();
BeanUtils.copyProperties(entity, vo);
voList.add(vo);
}
return voList;
}
}
\ No newline at end of file
...@@ -18,7 +18,6 @@ import com.esv.datacenter.iot.module.datamodel.service.DataModelPropertyService; ...@@ -18,7 +18,6 @@ import com.esv.datacenter.iot.module.datamodel.service.DataModelPropertyService;
import com.esv.datacenter.iot.module.datamodel.service.DataModelService; import com.esv.datacenter.iot.module.datamodel.service.DataModelService;
import com.esv.datacenter.iot.module.datamodel.vo.DataDataModelDetailVO; import com.esv.datacenter.iot.module.datamodel.vo.DataDataModelDetailVO;
import com.esv.datacenter.iot.module.datamodel.vo.DataModelVO; import com.esv.datacenter.iot.module.datamodel.vo.DataModelVO;
import com.esv.datacenter.iot.module.omodel.dto.ModelAndInstanceDto;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -58,7 +57,8 @@ public class DataModelServiceImpl extends ServiceImpl<DataModelDao, DataModelEnt ...@@ -58,7 +57,8 @@ public class DataModelServiceImpl extends ServiceImpl<DataModelDao, DataModelEnt
this.dataModelPropertyService.saveModelProperty(modelId, form.getPropertyList()); this.dataModelPropertyService.saveModelProperty(modelId, form.getPropertyList());
// 3.创建时序数据库表 // 3.创建时序数据库表
this.createModelTimescaleDB(modelEntity, form); form.setId(modelId);
this.createModelTimescaleDB(modelId, form.getPropertyList());
return modelId; return modelId;
} }
...@@ -119,7 +119,7 @@ public class DataModelServiceImpl extends ServiceImpl<DataModelDao, DataModelEnt ...@@ -119,7 +119,7 @@ public class DataModelServiceImpl extends ServiceImpl<DataModelDao, DataModelEnt
modelEntity.setDescription(form.getDescription()); modelEntity.setDescription(form.getDescription());
this.getBaseMapper().updateById(modelEntity); this.getBaseMapper().updateById(modelEntity);
// TODO,判断是否修改模型属性并校验 // 判断是否修改模型属性并校验
List<DataModelPropertyForm> propertyList = form.getPropertyList(); List<DataModelPropertyForm> propertyList = form.getPropertyList();
if (null != propertyList && 0 < propertyList.size()) { if (null != propertyList && 0 < propertyList.size()) {
// 保存模型属性 // 保存模型属性
...@@ -129,7 +129,7 @@ public class DataModelServiceImpl extends ServiceImpl<DataModelDao, DataModelEnt ...@@ -129,7 +129,7 @@ public class DataModelServiceImpl extends ServiceImpl<DataModelDao, DataModelEnt
this.timescaleComponent.dropTable(modelId); this.timescaleComponent.dropTable(modelId);
// 创建时序数据库表 // 创建时序数据库表
this.createModelTimescaleDB(modelEntity, form); this.createModelTimescaleDB(modelId, propertyList);
} }
} }
...@@ -184,20 +184,16 @@ public class DataModelServiceImpl extends ServiceImpl<DataModelDao, DataModelEnt ...@@ -184,20 +184,16 @@ public class DataModelServiceImpl extends ServiceImpl<DataModelDao, DataModelEnt
return this.getBaseMapper().selectById(id); return this.getBaseMapper().selectById(id);
} }
private Boolean createModelTimescaleDB(DataModelEntity modelEntity, DataModelForm form) { private Boolean createModelTimescaleDB(Long modelId, List<DataModelPropertyForm> propertyList) {
ModelAndInstanceDto modelAndInstanceDto = new ModelAndInstanceDto();
modelAndInstanceDto.setDataModelEntity(modelEntity);
List<DataModelPropertyEntity> modelPropertyEntityList = new ArrayList<>(); List<DataModelPropertyEntity> modelPropertyEntityList = new ArrayList<>();
for (DataModelPropertyForm propertyForm : form.getPropertyList()) { for (DataModelPropertyForm propertyForm : propertyList) {
DataModelPropertyEntity entity = new DataModelPropertyEntity(); DataModelPropertyEntity entity = new DataModelPropertyEntity();
BeanUtils.copyProperties(propertyForm, entity); BeanUtils.copyProperties(propertyForm, entity);
entity.setModelId(modelEntity.getId()); entity.setModelId(modelId);
modelPropertyEntityList.add(entity); modelPropertyEntityList.add(entity);
} }
modelAndInstanceDto.setDataModelPropertyEntityList(modelPropertyEntityList);
return timescaleComponent.createTable(modelAndInstanceDto); return timescaleComponent.createTable(modelId, modelPropertyEntityList);
} }
} }
\ No newline at end of file
package com.esv.datacenter.iot.module.datamodel.vo;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* @description:
* @author: huangchaobin@esvtek.com
* @createTime: 2020/08/05 17:29
* @version:1.0
*/
@Data
public class AlarmRuleItemVO {
/**
* 模型属性ID
*/
private Long propertyId;
/**
* 判定规则(字典表)
*/
private Integer ruleExpression;
/**
* 告警等级(字典表)
*/
private Integer alarmLevel;
/**
* 阈值
*/
private String threshold;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
}
}
package com.esv.datacenter.iot.module.devicemodel.dao;
import com.esv.datacenter.iot.module.devicemodel.entity.DeviceDataMapEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* 设备数据模型映射表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 10:23:24
*/
@Mapper
public interface DeviceDataMapDao extends BaseMapper<DeviceDataMapEntity> {
}
package com.esv.datacenter.iot.module.devicemodel.dao;
import com.esv.datacenter.iot.module.devicemodel.entity.DeviceModelEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* 设备模型表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 10:23:24
*/
@Mapper
public interface DeviceModelDao extends BaseMapper<DeviceModelEntity> {
}
package com.esv.datacenter.iot.module.devicemodel.dao;
import com.esv.datacenter.iot.module.devicemodel.entity.DeviceModelInstanceEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* 设备模型实例表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 10:23:24
*/
@Mapper
public interface DeviceModelInstanceDao extends BaseMapper<DeviceModelInstanceEntity> {
}
package com.esv.datacenter.iot.module.devicemodel.dao;
import com.esv.datacenter.iot.module.devicemodel.entity.DeviceModelPropertyEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* 设备模型属性表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 10:23:24
*/
@Mapper
public interface DeviceModelPropertyDao extends BaseMapper<DeviceModelPropertyEntity> {
}
package com.esv.datacenter.iot.module.devicemodel.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 设备数据模型映射表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 10:23:24
*/
@Data
@TableName("device_data_map")
public class DeviceDataMapEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId
private Long id;
/**
* 租户ID
*/
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
/**
* 部门ID
*/
@TableField(fill = FieldFill.INSERT)
private Long departmentId;
/**
* 设备模型ID
*/
private Long deviceModelId;
/**
* 数据模型ID
*/
private Long dataModelId;
/**
* 创建者
*/
@TableField(fill = FieldFill.INSERT)
private String createUser;
/**
* 修改者
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private String updateUser;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date updateTime;
}
package com.esv.datacenter.iot.module.devicemodel.entity;
import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 设备模型表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 10:23:24
*/
@Data
@TableName("device_model")
public class DeviceModelEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId
private Long id;
/**
* 租户ID
*/
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
/**
* 部门ID
*/
@TableField(fill = FieldFill.INSERT)
private Long departmentId;
/**
* 模型名称
*/
private String name;
/**
* 模型描述
*/
private String description;
/**
* 是否删除:0-未删除、1-已删除
*/
@TableLogic
private Boolean deleted;
/**
* 创建者
*/
@TableField(fill = FieldFill.INSERT)
private String createUser;
/**
* 修改者
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private String updateUser;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date updateTime;
}
package com.esv.datacenter.iot.module.devicemodel.entity;
import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 设备模型实例表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 10:23:24
*/
@Data
@TableName("device_model_instance")
public class DeviceModelInstanceEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId
private Long id;
/**
* 租户ID
*/
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
/**
* 部门ID
*/
@TableField(fill = FieldFill.INSERT)
private Long departmentId;
/**
* 模型ID
*/
private Long modelId;
/**
* 实例名称
*/
private String name;
/**
* 实例描述
*/
private String description;
/**
* 是否删除:0-未删除、1-已删除
*/
@TableLogic
private Boolean deleted;
/**
* 创建者
*/
@TableField(fill = FieldFill.INSERT)
private String createUser;
/**
* 修改者
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private String updateUser;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date updateTime;
}
package com.esv.datacenter.iot.module.devicemodel.entity;
import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 设备模型属性表
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 10:23:24
*/
@Data
@TableName("device_model_property")
public class DeviceModelPropertyEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId
private Long id;
/**
* 租户ID
*/
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
/**
* 部门ID
*/
@TableField(fill = FieldFill.INSERT)
private Long departmentId;
/**
* 模型ID
*/
private Long modelId;
/**
* 属性代码
*/
private String propertyCode;
/**
* 属性名称
*/
private String propertyName;
/**
* 属性类型(字典表)
*/
private Integer propertyType;
/**
* 属性默认值
*/
private String propertyDefaultValue;
/**
* 属性单位
*/
private String propertyUnit;
/**
* 排列序号
*/
private Long sortNum;
/**
* 是否删除:0-未删除、1-已删除
*/
@TableLogic
private Boolean deleted;
/**
* 创建者
*/
@TableField(fill = FieldFill.INSERT)
private String createUser;
/**
* 修改者
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private String updateUser;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date updateTime;
}
package com.esv.datacenter.iot.module.devicemodel.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.esv.datacenter.iot.module.devicemodel.entity.DeviceDataMapEntity;
/**
* 设备数据模型映射Service
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 10:23:24
*/
public interface DeviceDataMapService extends IService<DeviceDataMapEntity> {
}
package com.esv.datacenter.iot.module.devicemodel.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.esv.datacenter.iot.module.devicemodel.entity.DeviceModelInstanceEntity;
/**
* 设备模型实例Service
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 10:23:24
*/
public interface DeviceModelInstanceService extends IService<DeviceModelInstanceEntity> {
}
package com.esv.datacenter.iot.module.devicemodel.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.esv.datacenter.iot.module.devicemodel.entity.DeviceModelPropertyEntity;
/**
* 设备模型属性Service
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 10:23:24
*/
public interface DeviceModelPropertyService extends IService<DeviceModelPropertyEntity> {
}
package com.esv.datacenter.iot.module.devicemodel.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.esv.datacenter.iot.module.devicemodel.entity.DeviceModelEntity;
/**
* 设备模型Service
*
* @author 黄朝斌
* @email huangchaobin@esvtek.com
* @date 2020-08-06 10:23:24
*/
public interface DeviceModelService extends IService<DeviceModelEntity> {
}
package com.esv.datacenter.iot.module.devicemodel.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.esv.datacenter.iot.module.devicemodel.dao.DeviceDataMapDao;
import com.esv.datacenter.iot.module.devicemodel.entity.DeviceDataMapEntity;
import com.esv.datacenter.iot.module.devicemodel.service.DeviceDataMapService;
import org.springframework.stereotype.Service;
@Service("deviceDataMapService")
public class DeviceDataMapServiceImpl extends ServiceImpl<DeviceDataMapDao, DeviceDataMapEntity> implements DeviceDataMapService {
}
\ No newline at end of file
package com.esv.datacenter.iot.module.devicemodel.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.esv.datacenter.iot.module.devicemodel.dao.DeviceModelInstanceDao;
import com.esv.datacenter.iot.module.devicemodel.entity.DeviceModelInstanceEntity;
import com.esv.datacenter.iot.module.devicemodel.service.DeviceModelInstanceService;
import org.springframework.stereotype.Service;
@Service("deviceModelInstanceService")
public class DeviceModelInstanceServiceImpl extends ServiceImpl<DeviceModelInstanceDao, DeviceModelInstanceEntity> implements DeviceModelInstanceService {
}
\ No newline at end of file
package com.esv.datacenter.iot.module.devicemodel.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.esv.datacenter.iot.module.devicemodel.dao.DeviceModelPropertyDao;
import com.esv.datacenter.iot.module.devicemodel.entity.DeviceModelPropertyEntity;
import com.esv.datacenter.iot.module.devicemodel.service.DeviceModelPropertyService;
import org.springframework.stereotype.Service;
@Service("deviceModelPropertyService")
public class DeviceModelPropertyServiceImpl extends ServiceImpl<DeviceModelPropertyDao, DeviceModelPropertyEntity> implements DeviceModelPropertyService {
}
\ No newline at end of file
package com.esv.datacenter.iot.module.devicemodel.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.esv.datacenter.iot.module.devicemodel.dao.DeviceModelDao;
import com.esv.datacenter.iot.module.devicemodel.entity.DeviceModelEntity;
import com.esv.datacenter.iot.module.devicemodel.service.DeviceModelService;
import org.springframework.stereotype.Service;
@Service("deviceModelService")
public class DeviceModelServiceImpl extends ServiceImpl<DeviceModelDao, DeviceModelEntity> implements DeviceModelService {
}
\ No newline at end of file
...@@ -85,4 +85,6 @@ timescale: ...@@ -85,4 +85,6 @@ timescale:
max-lifetime: 0 max-lifetime: 0
table-field: table-field:
map: string-text,number-numeric,boolean-bit(1) map: string-text,number-numeric,boolean-bit(1)
table-prefix: iot_model_ table-prefix: iot_data_model_
\ No newline at end of file rdbms:
table-prefix: iot_device_model_
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.esv.datacenter.iot.module.datamodel.dao.DataModelAlarmRuleDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.esv.datacenter.iot.module.datamodel.entity.DataModelAlarmRuleEntity" id="dataModelAlarmRuleMap">
<result property="id" column="id"/>
<result property="tenantId" column="tenant_id"/>
<result property="departmentId" column="department_id"/>
<result property="modelId" column="model_id"/>
<result property="propertyId" column="property_id"/>
<result property="ruleExpression" column="rule_expression"/>
<result property="alarmLevel" column="alarm_level"/>
<result property="threshold" column="threshold"/>
<result property="sortNum" column="sort_num"/>
<result property="createUser" column="create_user"/>
<result property="updateUser" column="update_user"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.esv.datacenter.iot.module.devicemodel.dao.DeviceDataMapDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.esv.datacenter.iot.module.devicemodel.entity.DeviceDataMapEntity" id="deviceDataMapMap">
<result property="id" column="id"/>
<result property="tenantId" column="tenant_id"/>
<result property="departmentId" column="department_id"/>
<result property="deviceModelId" column="device_model_id"/>
<result property="dataModelId" column="data_model_id"/>
<result property="createUser" column="create_user"/>
<result property="updateUser" column="update_user"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.esv.datacenter.iot.module.devicemodel.dao.DeviceModelDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.esv.datacenter.iot.module.devicemodel.entity.DeviceModelEntity" id="deviceModelMap">
<result property="id" column="id"/>
<result property="tenantId" column="tenant_id"/>
<result property="departmentId" column="department_id"/>
<result property="name" column="name"/>
<result property="description" column="description"/>
<result property="deleted" column="deleted"/>
<result property="createUser" column="create_user"/>
<result property="updateUser" column="update_user"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.esv.datacenter.iot.module.devicemodel.dao.DeviceModelInstanceDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.esv.datacenter.iot.module.devicemodel.entity.DeviceModelInstanceEntity" id="deviceModelInstanceMap">
<result property="id" column="id"/>
<result property="tenantId" column="tenant_id"/>
<result property="departmentId" column="department_id"/>
<result property="modelId" column="model_id"/>
<result property="name" column="name"/>
<result property="description" column="description"/>
<result property="deleted" column="deleted"/>
<result property="createUser" column="create_user"/>
<result property="updateUser" column="update_user"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.esv.datacenter.iot.module.devicemodel.dao.DeviceModelPropertyDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.esv.datacenter.iot.module.devicemodel.entity.DeviceModelPropertyEntity" id="deviceModelPropertyMap">
<result property="id" column="id"/>
<result property="tenantId" column="tenant_id"/>
<result property="departmentId" column="department_id"/>
<result property="modelId" column="model_id"/>
<result property="propertyCode" column="property_code"/>
<result property="propertyName" column="property_name"/>
<result property="propertyType" column="property_type"/>
<result property="propertyDefaultValue" column="property_default_value"/>
<result property="propertyUnit" column="property_unit"/>
<result property="sortNum" column="sort_num"/>
<result property="deleted" column="deleted"/>
<result property="createUser" column="create_user"/>
<result property="updateUser" column="update_user"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
</mapper>
\ No newline at end of file
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