This commit is contained in:
listom
2024-08-13 11:27:18 +08:00
30 changed files with 1096 additions and 52 deletions

View File

@ -136,6 +136,12 @@ public class Device extends BaseEntity
@ApiModelProperty("设备摘要")
private String summary;
/**
* 设备名称编号搜索
*/
@ApiModelProperty("设备名称编号搜索")
private String deviceNameOrSerialNumber;
/** 分组ID用于分组查询 **/
@ApiModelProperty("分组ID用于分组查询")
private Long groupId;

View File

@ -136,5 +136,11 @@ public class ThingsModel extends BaseEntity
private String language;
private List<String> modelIdList;
public ThingsModel() {
}
public ThingsModel(Long productId) {
this.productId = productId;
}
}

View File

@ -12,7 +12,9 @@ import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 设备日志Mapper接口
@ -134,4 +136,17 @@ public interface DeviceLogMapper
* @return com.fastbee.common.core.domain.AjaxResult
*/
List<ThingsModelLogCountVO> countThingsModelInvoke(DataCenterParam dataCenterParam);
/**
* 创建数据库表
*
// * @param tableName 表名称
*/
// int createTable(@Param("tableName") String tableName, @Param("id") Long id);
List<HashMap<String, Object>> selectDayData(Map<String, Object> kvHashMap);
void createTableByDate(String ymTableName);
List<DeviceLog> selectDataList(HashMap<String, Object> kvHashMap);
}

View File

@ -93,7 +93,7 @@ public interface DeviceMapper
*/
public int updateDeviceThingsModelValue(ThingsModelValuesInput input);
public List<Device> selectDeviceListNotUser(Device deviceEntity);
/**
* 查询设备列表
*

View File

@ -1,5 +1,6 @@
package com.fastbee.iot.mapper;
import org.springframework.stereotype.Component;
import java.util.List;

View File

@ -8,6 +8,8 @@ import com.fastbee.iot.model.MonitorModel;
import java.util.Date;
import com.fastbee.iot.model.ThingsModelLogCountVO;
import com.fastbee.iot.model.param.DataCenterParam;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -106,4 +108,6 @@ public interface IDeviceLogService
* @return com.fastbee.common.core.domain.AjaxResult
*/
List<ThingsModelLogCountVO> countThingsModelInvoke(DataCenterParam dataCenterParam);
List<HashMap<String, Object>> selectDayData(HashMap<String, Object> kvHashMap);
}

View File

@ -13,6 +13,7 @@ import com.fastbee.common.core.thingsModel.ThingsModelValuesInput;
import com.fastbee.iot.model.dto.ThingsModelDTO;
import org.quartz.SchedulerException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -329,4 +330,9 @@ public interface IDeviceService
*/
List<DeviceGroup> listDeviceGroupByGroupIds(List<Long> groupIds);
List<Map<String,Object>> devicePointInfo(Device device);
ArrayList<Object> getDeviceLogAllCurves(Long deviceId, String beginTime, String endTime);
}

View File

@ -1,11 +1,13 @@
package com.fastbee.iot.service.impl;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson2.JSONObject;
import com.fastbee.common.utils.DateUtils;
import com.fastbee.common.utils.StringUtils;
import com.fastbee.iot.domain.Device;
import com.fastbee.iot.domain.DeviceLog;
import com.fastbee.iot.domain.ThingsModel;
import com.fastbee.iot.mapper.TableMapper;
import com.fastbee.iot.model.DeviceReport;
import com.fastbee.iot.model.HistoryModel;
import com.fastbee.iot.service.IDeviceService;
@ -44,6 +46,10 @@ public class DeviceLogServiceImpl implements IDeviceLogService {
@Autowired
private IDeviceService deviceService;
@Autowired
private TableMapper tableMapper;
private String tableName = "iot_device_log_";
/**
* 查询设备日志
*
@ -216,4 +222,26 @@ public class DeviceLogServiceImpl implements IDeviceLogService {
public List<ThingsModelLogCountVO> countThingsModelInvoke(DataCenterParam dataCenterParam) {
return logService.countThingsModelInvoke(dataCenterParam);
}
@Override
public List<HashMap<String, Object>> selectDayData(HashMap<String, Object> kvHashMap) {
String serialNumber = (String) kvHashMap.get("serialNumber");
if (kvHashMap.get("tableName") == null) {
Date date = new Date();
String ym = DateUtils.parseDateToStr(DateUtils.YYYYMM, date);
kvHashMap.put("tableName", tableName + ym);
}
if (kvHashMap.get("tableName2") == null) {
String ym = DateUtils.parseDateToStr(DateUtils.YYYYMM, DateUtil.offsetMonth(new Date(), -1));
kvHashMap.put("tableName2", tableName + ym);
}
if (tableMapper.getTableByName(kvHashMap.get("tableName").toString()) == null) {
deviceLogMapper.createTable(kvHashMap.get("tableName").toString(),1L);
}
if (tableMapper.getTableByName(kvHashMap.get("tableName2").toString()) == null) {
deviceLogMapper.createTable(kvHashMap.get("tableName2").toString(),1L);
}
return deviceLogMapper.selectDayData(kvHashMap);
}
}

View File

@ -29,7 +29,7 @@ import com.fastbee.iot.mapper.*;
import com.fastbee.iot.model.*;
import com.fastbee.iot.model.ThingsModelItem.Datatype;
import com.fastbee.iot.model.ThingsModelItem.EnumItem;
import com.fastbee.iot.model.ThingsModelItem.ThingsModel;
import com.fastbee.iot.domain.ThingsModel;
import com.fastbee.iot.model.ThingsModels.*;
import com.fastbee.iot.model.dto.ThingsModelDTO;
import com.fastbee.iot.model.gateWay.SubDeviceListVO;
@ -623,11 +623,11 @@ public class DeviceServiceImpl implements IDeviceService {
// 排序
thingsList = thingsList.stream().sorted(Comparator.comparing(ThingsModelValueItem::getOrder).reversed()).collect(Collectors.toList());
// 数组类型物模型里面对象赋值
List<ThingsModel>[] arrayParams = new List[dataType.getArrayCount()];
List<com.fastbee.iot.model.ThingsModelItem.ThingsModel>[] arrayParams = new List[dataType.getArrayCount()];
for (int i = 0; i < dataType.getArrayCount(); i++) {
List<ThingsModel> thingsModels = new ArrayList<>();
List<com.fastbee.iot.model.ThingsModelItem.ThingsModel> thingsModels = new ArrayList<>();
for (int j = 0; j < thingsList.size(); j++) {
ThingsModel thingsModel = new ThingsModel();
com.fastbee.iot.model.ThingsModelItem.ThingsModel thingsModel = new com.fastbee.iot.model.ThingsModelItem.ThingsModel();
BeanUtils.copyProperties(thingsList.get(j), thingsModel);
String shadow = thingsList.get(j).getShadow();
if (StringUtils.isNotEmpty(shadow) && !shadow.equals("")) {
@ -1592,5 +1592,75 @@ public class DeviceServiceImpl implements IDeviceService {
return deviceMapper.listDeviceGroupByGroupIds(groupIds);
}
/**
* 所有设备点数据
*
* @return
*/
@Override
public List<Map<String, Object>> devicePointInfo(Device devices) {
ArrayList<Map<String, Object>> resultList = new ArrayList<>();
List<Device> deviceList = selectDeviceList(devices);
for (Device device : deviceList) {
HashMap<String, Object> itemMap = new HashMap<>();
resultList.add(itemMap);
Integer integer = 0;
itemMap.put("device",device);
if (device.getStatus() != null) {
if (device.getStatus().equals(4)) {
integer = 1;
}
}
itemMap.put("online",integer);
}
return resultList;
}
@Override
public ArrayList<Object> getDeviceLogAllCurves(Long deviceId, String beginTime, String endTime) {
if (deviceId == null) {
throw new RuntimeException("请上传devicerId");
}
Device device = selectDeviceByDeviceId(deviceId);
if (device == null) {
throw new RuntimeException("未查到该设备");
}
ArrayList<Object> list = new ArrayList<>();
HashMap<String, Object> kvHashMap = new HashMap<>();
kvHashMap.put("serialNumber", device.getSerialNumber());
kvHashMap.put("beginTime", beginTime);
kvHashMap.put("endTime", endTime);
List<ThingsModel> thingsModels = thingsModelService.selectThingsModelList(new ThingsModel(device.getProductId()));
List<DeviceLog> deviceLogs= logService.selectDataList(kvHashMap);
Map<String, List<DeviceLog>> collect = deviceLogs != null ? deviceLogs.stream().collect(Collectors.groupingBy(t -> t.getIdentity())): new HashMap();
for (ThingsModel modelDevice : thingsModels) {
HashMap<String, Object> dataListMap = new HashMap<>();
List<DeviceLog> deviceLogs1 = collect.get(modelDevice.getIdentifier());
dataListMap.put("name", modelDevice.getModelName());
if (StringUtils.isNotEmpty(modelDevice.getSpecs())) {
cn.hutool.json.JSONObject object = new cn.hutool.json.JSONObject(modelDevice.getSpecs());
dataListMap.put("unit",object.get("unit"));
}else{
dataListMap.put("unit","");
}
if (deviceLogs1 != null) {
System.out.println(deviceLogs1);
dataListMap.put("time",deviceLogs1.stream().map(t->t.getCreateTime()).collect(Collectors.toList()));
dataListMap.put("data",deviceLogs1.stream().map(t->t.getLogValue()).collect(Collectors.toList()));
}else{
dataListMap.put("time",new ArrayList<>());
dataListMap.put("data",new ArrayList<>());
}
list.add(dataListMap);
}
return list ;
}
}

View File

@ -12,6 +12,7 @@ import com.fastbee.iot.tdengine.service.model.TdLogDto;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -73,4 +74,6 @@ public interface ILogService {
List<ThingsModelLogCountVO> countThingsModelInvoke(DataCenterParam dataCenterParam);
DeviceLog selectLastReport(DeviceLog deviceLog);
List<DeviceLog> selectDataList(HashMap<String, Object> kvHashMap);
}

View File

@ -1,5 +1,7 @@
package com.fastbee.iot.tdengine.service.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.fastbee.common.utils.DateUtils;
import com.fastbee.iot.domain.Device;
import com.fastbee.iot.domain.DeviceLog;
@ -15,9 +17,7 @@ import com.fastbee.iot.tdengine.service.model.TdLogDto;
import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -28,9 +28,9 @@ import java.util.stream.Collectors;
*/
public class MySqlLogServiceImpl implements ILogService {
private String tableName = "iot_device_log_";
private DeviceLogMapper deviceLogMapper;
private String tableName = "iot_device_log_";
@Resource
private TableMapper tableMapper;
@ -148,4 +148,35 @@ public class MySqlLogServiceImpl implements ILogService {
public DeviceLog selectLastReport(DeviceLog deviceLog) {
return deviceLogMapper.selectLastReport(deviceLog);
}
@Override
public List<DeviceLog> selectDataList(HashMap<String, Object> kvHashMap) {
if (kvHashMap.get("endTime") != null) {
DateTime endTime = DateUtil.parse(kvHashMap.get("endTime").toString());
String yyyyMM = endTime.toString("yyyyMM");
String yyyyMM2 = DateUtil.offsetMonth(endTime, -1).toString("yyyyMM");
if (tableMapper.getTableByName(tableName + yyyyMM) == null) {
deviceLogMapper.createTableByDate(tableName + yyyyMM);
}
if (tableMapper.getTableByName(tableName + yyyyMM2) == null) {
deviceLogMapper.createTableByDate(tableName + yyyyMM2);
}
kvHashMap.put("tableName", tableName + yyyyMM);
kvHashMap.put("tableName2", tableName + yyyyMM2);
}
if (kvHashMap.get("tableName") == null) {
Date date = new Date();
String ym = DateUtils.parseDateToStr(DateUtils.YYYYMM, date);
String ym2 = DateUtils.parseDateToStr(DateUtils.YYYYMM, DateUtil.offsetMonth(new Date(), -1));
if (tableMapper.getTableByName(tableName + ym) == null) {
deviceLogMapper.createTableByDate(tableName + ym);
}
if (tableMapper.getTableByName(tableName + ym2) == null) {
deviceLogMapper.createTableByDate(tableName + ym2);
}
kvHashMap.put("tableName", tableName + ym);
kvHashMap.put("tableName2", tableName + ym2);
}
return deviceLogMapper.selectDataList(kvHashMap);
}
}

View File

@ -15,6 +15,8 @@ import com.fastbee.iot.tdengine.service.model.TdLogDto;
import com.fastbee.iot.util.SnowflakeIdWorker;
import org.springframework.context.ApplicationContext;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -162,4 +164,9 @@ public class TdengineLogServiceImpl implements ILogService {
public DeviceLog selectLastReport(DeviceLog deviceLog) {
return null;
}
@Override
public List<DeviceLog> selectDataList(HashMap<String, Object> kvHashMap) {
return Collections.emptyList();
}
}

View File

@ -262,6 +262,154 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
</where>
</select>
<select id="selectDataList" resultType="com.fastbee.iot.domain.DeviceLog">
select log_id,identity,device_id,device_name,serial_number,log_value,user_id,user_name,log_type,is_monitor,mode
,create_by,create_time,tenant_id,tenant_name,remark
from ${tableName}
<where>
<if test="identity != null and identity != ''">and identity = #{identity}</if>
<if test="deviceId != null and deviceId !=0">and device_id = #{deviceId}</if>
<if test="serialNumber != null and serialNumber !=''">and serial_number = #{serialNumber}</if>
<if test="beginTime != null and beginTime!= ''"><!-- 开始时间检索 -->
and date_format(create_time,'%y%m%d%H%i%s') &gt;= date_format(#{beginTime},'%y%m%d%H%i%s')
</if>
<if test=" endTime != null and endTime != ''"><!-- 结束时间检索 -->
and date_format(create_time,'%y%m%d%H%i%s') &lt;= date_format(#{endTime},'%y%m%d%H%i%s')
</if>
<if test="identitys != null and identitys != '' and identitys.size > 0">
AND identity in
<foreach item="identity" collection="identitys" open="(" separator="," close=")">
#{identity}
</foreach>
</if>
</where>
union
select log_id,identity,device_id,device_name,serial_number,log_value,user_id,user_name,log_type,is_monitor,mode
,create_by,create_time,tenant_id,tenant_name,remark
from ${tableName2}
<where>
<if test="identity != null and identity != ''">and identity = #{identity}</if>
<if test="deviceId != null and deviceId !=0">and device_id = #{deviceId}</if>
<if test="serialNumber != null and serialNumber !=''">and serial_number = #{serialNumber}</if>
<if test="beginTime != null and beginTime!= ''"><!-- 开始时间检索 -->
and date_format(create_time,'%y%m%d%H%i%s') &gt;= date_format(#{beginTime},'%y%m%d%H%i%s')
</if>
<if test=" endTime != null and endTime != ''"><!-- 结束时间检索 -->
and date_format(create_time,'%y%m%d%H%i%s') &lt;= date_format(#{endTime},'%y%m%d%H%i%s')
</if>
<if test="identitys != null and identitys != '' and identitys.size > 0">
AND identity in
<foreach item="identity" collection="identitys" open="(" separator="," close=")">
#{identity}
</foreach>
</if>
</where>
order by create_time desc
</select>
<update id="createTableByDate">
CREATE TABLE `${tableName}`
(
`log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '设备日志ID',
`identity` varchar(64) NOT NULL COMMENT '标识符',
`log_type` tinyint(1) NOT NULL COMMENT '类型1=属性上报2=调用功能3=事件上报4=设备升级5=设备上线6=设备离线)',
`log_value` decimal(18, 3) default 0 comment '日志值',
`device_id` bigint(20) DEFAULT NULL COMMENT '设备ID',
`device_name` varchar(64) DEFAULT NULL COMMENT '设备名称',
`serial_number` varchar(64) DEFAULT NULL COMMENT '设备编号',
`is_monitor` tinyint(1) unsigned zerofill DEFAULT '0' COMMENT '是否监测数据1=是0=否)',
`mode` tinyint(1) unsigned zerofill DEFAULT '0' COMMENT '模式(1=影子模式2=在线模式3=其他)',
`user_id` bigint(20) DEFAULT NULL COMMENT '用户ID',
`user_name` varchar(30) DEFAULT '' COMMENT '用户昵称',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户ID',
`tenant_name` varchar(30) DEFAULT '' COMMENT '租户名称',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`remark` varchar(200) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`log_id`) USING BTREE,
KEY `iot_device_log_index_serial_number` (`serial_number`) USING BTREE,
KEY `iot_device_log_index_tenant_id` (`tenant_id`) USING BTREE,
KEY `iot_device_log_index_user_id` (`user_id`) USING BTREE,
KEY `iot_device_log_index_identity_device_id` (`identity`, `device_id`) USING BTREE,
KEY `iot_device_log_index_identity_createTime` (`identity`, `create_time`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8
ROW_FORMAT = DYNAMIC COMMENT ='设备日志';
</update>
<select id="selectDayData" resultType="java.util.Map">
select create_time,
avg(log_value ) as avgLogValue ,
max(log_value ) as maxLogValue ,
sum(log_value ) as sumLogValue ,
min(log_value ) as minLogValue
from ${tableName}
<where>
<if test="identity != null and identity != ''">and identity = #{identity}</if>
<if test="deviceId != null and deviceId !=0">and device_id = #{deviceId}</if>
<if test="serialNumber != null and serialNumber !=''">and serial_number = #{serialNumber}</if>
<if test="beginTime != null and beginTime!= ''"><!-- 开始时间检索 -->
and date_format(create_time,'%y%m%d%H%i%s') &gt;= date_format(#{beginTime},'%y%m%d%H%i%s')
</if>
<if test=" endTime != null and endTime != ''"><!-- 结束时间检索 -->
and date_format(create_time,'%y%m%d%H%i%s') &lt;= date_format(#{endTime},'%y%m%d%H%i%s')
</if>
</where>
group by date_format(create_time,'%Y-%m-%d %H')
union
select create_time,
avg(log_value ) as avgLogValue ,
max(log_value ) as maxLogValue ,
sum(log_value ) as sumLogValue ,
min(log_value ) as minLogValue
from ${tableName2}
<where>
<if test="identity != null and identity != ''">and identity = #{identity}</if>
<if test="deviceId != null and deviceId !=0">and device_id = #{deviceId}</if>
<if test="serialNumber != null and serialNumber !=''">and serial_number = #{serialNumber}</if>
<if test="beginTime != null and beginTime!= ''"><!-- 开始时间检索 -->
and date_format(create_time,'%y%m%d%H%i%s') &gt;= date_format(#{beginTime},'%y%m%d%H%i%s')
</if>
<if test=" endTime != null and endTime != ''"><!-- 结束时间检索 -->
and date_format(create_time,'%y%m%d%H%i%s') &lt;= date_format(#{endTime},'%y%m%d%H%i%s')
</if>
</where>
group by date_format(create_time,'%Y-%m-%d %H')
order by create_time desc
</select>
<update id="createTable">
CREATE TABLE ${tableName}
(
`log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '设备监测信息ID',
`identity` varchar(64) NOT NULL COMMENT '标识符',
`model_name` varchar(255) DEFAULT NULL COMMENT '物模型名称',
`log_type` tinyint(1) NOT NULL COMMENT '类型1=属性上报2=调用功能3=事件上报4=设备升级5=设备上线6=设备离线)',
`log_value` varchar(64) NOT NULL COMMENT '日志值',
`device_id` bigint(20) DEFAULT NULL COMMENT '设备ID',
`device_name` varchar(64) DEFAULT NULL COMMENT '设备名称',
`serial_number` varchar(64) DEFAULT NULL COMMENT '设备编号',
`is_monitor` tinyint(1) unsigned zerofill NOT NULL DEFAULT '0' COMMENT '是否监测数据1=是0=否)',
`mode` tinyint(1) unsigned zerofill NOT NULL DEFAULT '0' COMMENT '模式(1=影子模式2=在线模式3=其他)',
`user_id` bigint(20) DEFAULT NULL COMMENT '用户ID',
`user_name` varchar(30) DEFAULT '' COMMENT '用户昵称',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户ID',
`tenant_name` varchar(30) DEFAULT '' COMMENT '租户名称',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`remark` varchar(200) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`log_id`) USING BTREE,
KEY `iot_device_log_index_serial_number` (`serial_number`) USING BTREE,
KEY `iot_device_log_index_tenant_id` (`tenant_id`) USING BTREE,
KEY `iot_device_log_index_user_id` (`user_id`) USING BTREE,
KEY `iot_device_log_index_device_id` (`device_id`) USING BTREE,
KEY `index_serialNumber_createTime` (`serial_number`,`create_time`) USING BTREE,
KEY `index_isMonitor_serialNumber_createTime` (`serial_number`,`is_monitor`,`create_time`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='设备日志';
</update>
<select id="countThingsModelInvoke" resultType="com.fastbee.iot.model.ThingsModelLogCountVO">
select identity identifier, min(model_name) modelName, count(identity) count

View File

@ -287,6 +287,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select product_id,product_name,device_id,device_name,serial_number,gw_dev_code,is_shadow,is_simulate,status,tenant_id, tenant_name,things_model_value from iot_device where serial_number = #{serialNumber}
</select>
<select id="selectDeviceListNotUser" parameterType="com.fastbee.iot.domain.Device" resultMap="DeviceResult">
<include refid="selectDeviceShortVo"/>
<where>
<if test="deviceNameOrSerialNumber != null and deviceNameOrSerialNumber != ''">
and (device_name like concat('%', #{deviceNameOrSerialNumber},'%') or
serial_number like concat('%',
#{deviceNameOrSerialNumber},'%'))
</if>
<if test="productId != null ">and product_id = #{productId}</if>
<if test="status != null ">and status = #{status}</if>
</where>
order by create_time desc
</select>
<update id="updateDeviceThingsModelValue" parameterType="com.fastbee.common.core.thingsModel.ThingsModelValuesInput">
update iot_device set things_model_value=#{stringValue} where device_id = #{deviceId}
</update>

View File

@ -1,5 +1,6 @@
package com.fastbee.waterele.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -7,70 +8,96 @@ import lombok.EqualsAndHashCode;
import com.fastbee.common.annotation.Excel;
import com.fastbee.common.core.domain.BaseEntity;
import java.util.Date;
/**
* 灌溉记录对象 ma_guangai_record
*
* @author kerwincui
* @date 2024-08-12
*/
@ApiModel(value = "MaGuangaiRecord",description = "灌溉记录 ma_guangai_record")
@ApiModel(value = "MaGuangaiRecord", description = "灌溉记录 ma_guangai_record")
@Data
@EqualsAndHashCode(callSuper = true)
public class MaGuangaiRecord extends BaseEntity
{
private static final long serialVersionUID = 1L;
public class MaGuangaiRecord extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 序号 */
/**
* 序号
*/
private Long id;
/** 设备编号 */
@Excel(name = "设备编号")
@ApiModelProperty("设备编号")
/**
* 设备编号
*/
@Excel(name = "设备编号")
@ApiModelProperty("设备编号")
private String devSn;
/** 开泵时间 */
@Excel(name = "开泵时间")
@ApiModelProperty("开泵时间")
private Long startTime;
/**
* 开泵时间
*/
@Excel(name = "开泵时间")
@ApiModelProperty("开泵时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
/** 关泵时间 */
@Excel(name = "关泵时间")
@ApiModelProperty("关泵时间")
private Long endTime;
/**
* 关泵时间
*/
@Excel(name = "关泵时间")
@ApiModelProperty("关泵时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
/** 灌溉最新上报时间 */
@Excel(name = "灌溉最新上报时间")
@ApiModelProperty("灌溉最新上报时间")
private Long lastTime;
/**
* 灌溉最新上报时间
*/
@Excel(name = "灌溉最新上报时间")
@ApiModelProperty("灌溉最新上报时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date lastTime;
/** 卡编号 */
@Excel(name = "卡编号")
@ApiModelProperty("卡编号")
/**
* 卡编号
*/
@Excel(name = "卡编号")
@ApiModelProperty("卡编号")
private String cardId;
/** 区域号 */
@Excel(name = "区域号")
@ApiModelProperty("区域号")
/**
* 区域号
*/
@Excel(name = "区域号")
@ApiModelProperty("区域号")
private String areaCode;
/** 卡内余额 */
@Excel(name = "卡内余额")
@ApiModelProperty("卡内余额")
/**
* 卡内余额
*/
@Excel(name = "卡内余额")
@ApiModelProperty("卡内余额")
private String userBalance;
/** 本次用水量 */
@Excel(name = "本次用水量")
@ApiModelProperty("本次用水量")
/**
* 本次用水量
*/
@Excel(name = "本次用水量")
@ApiModelProperty("本次用水量")
private String curFlow;
/** 本次用电量 */
@Excel(name = "本次用电量")
@ApiModelProperty("本次用电量")
/**
* 本次用电量
*/
@Excel(name = "本次用电量")
@ApiModelProperty("本次用电量")
private String curEle;
/** 灌溉状态 */
@Excel(name = "灌溉状态")
@ApiModelProperty("灌溉状态")
/**
* 灌溉状态
*/
@Excel(name = "灌溉状态")
@ApiModelProperty("灌溉状态:1=开始灌溉,2=结束灌溉")
private Integer status;
}

View File

@ -107,7 +107,7 @@ private static final long serialVersionUID = 1L;
/** 当前动作 */
@Excel(name = "当前动作")
@ApiModelProperty("当前动作")
@ApiModelProperty("当前动作:timeMsg=灌溉定时报,startPump=开始灌溉,stopPump=停止灌溉,safeMsg=定时报")
private String action;
}

View File

@ -0,0 +1,37 @@
package com.fastbee.waterele.domain.dto;
import com.fastbee.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 灌溉记录查询入参
*/
@Data
public class MaGuangaiRecordDto {
/** 设备编号 */
private String devSn;
/** 开泵开始时间 */
private String startBeginTime;
/** 开泵结束时间 */
private String startEndTime;
/** 关泵开始时间 */
private String endBeginTime;
/** 关泵结束时间 */
private String endEndTime;
/** 卡编号 */
private String cardId;
/** 区域号 */
private String areaCode;
/** 灌溉状态 */
private Integer status;
/**
* 设备ID
*/
private Long deviceId;
}

View File

@ -0,0 +1,33 @@
package com.fastbee.waterele.domain.dto;
import lombok.Data;
@Data
public class MaWatereleRecordDto {
/** 设备编号 */
private String devSn;
/** 工作状态:0=关泵,1=开泵 */
private Integer workstate;
/** 卡编号 */
private String cardid;
/** 区域号 */
private String areacode;
/** 当前动作:timeMsg=灌溉定时报,startPump=开始灌溉,stopPump=停止灌溉,safeMsg=定时报 */
private String action;
/**
* 设备ID
*/
private Long deviceId;
/**
* 开始时间
*/
private String startTime;
/**
* 结束时间
*/
private String endTime;
}