feat(record): 增加环境监测设备名称字段并优化查询 SQL

- 在 RecordIotenvInstant 模型中添加 monitorName 字段,用于显示设备名称
- 修改 RecordIotenvInstantMapper.xml 中的 SQL 查询语句,通过左连接 ems_base_monitor_info表来获取设备名称
-优化 SQL 查询的排序条件,提高查询效率
boardTest
zch 3 months ago
parent d885cd2eed
commit 19c9cedb3f

@ -79,140 +79,145 @@ public class RecordIotenvInstant extends BaseEntity
private String[] monitorIds;
public void setObjid(Long objid)
{
this.objid = objid;
}
//关联查询设备名称
private String monitorName;
public Long getObjid()
{
return objid;
}
public void setMonitorId(String monitorId)
{
this.monitorId = monitorId;
}
public String getMonitorId()
{
return monitorId;
}
public void setTemperature(BigDecimal temperature)
{
this.temperature = temperature;
}
public BigDecimal getTemperature()
{
return temperature;
}
public void setHumidity(BigDecimal humidity)
{
this.humidity = humidity;
}
public BigDecimal getHumidity()
{
return humidity;
}
public void setIlluminance(BigDecimal illuminance)
{
this.illuminance = illuminance;
}
public BigDecimal getIlluminance()
{
return illuminance;
}
public void setNoise(BigDecimal noise)
{
this.noise = noise;
}
public BigDecimal getNoise()
{
return noise;
}
public void setConcentration(BigDecimal concentration)
{
this.concentration = concentration;
}
public BigDecimal getConcentration()
{
return concentration;
}
public void setVibrationSpeed(BigDecimal vibrationSpeed)
{
this.vibrationSpeed = vibrationSpeed;
}
public BigDecimal getVibrationSpeed()
{
return vibrationSpeed;
}
public void setVibrationDisplacement(BigDecimal vibrationDisplacement)
{
this.vibrationDisplacement = vibrationDisplacement;
}
public BigDecimal getVibrationDisplacement()
{
return vibrationDisplacement;
}
public void setVibrationAcceleration(BigDecimal vibrationAcceleration)
{
this.vibrationAcceleration = vibrationAcceleration;
}
public BigDecimal getVibrationAcceleration()
{
return vibrationAcceleration;
}
public void setVibrationTemp(BigDecimal vibrationTemp)
{
this.vibrationTemp = vibrationTemp;
}
public BigDecimal getVibrationTemp()
{
return vibrationTemp;
}
public void setCollectTime(Date collectTime)
{
this.collectTime = collectTime;
}
public Date getCollectTime()
{
return collectTime;
}
public void setRecodeTime(Date recodeTime)
{
this.recodeTime = recodeTime;
}
public Date getRecodeTime()
{
return recodeTime;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("objid", getObjid())
.append("monitorId", getMonitorId())
.append("temperature", getTemperature())
.append("humidity", getHumidity())
.append("illuminance", getIlluminance())
.append("noise", getNoise())
.append("concentration", getConcentration())
.append("vibrationSpeed", getVibrationSpeed())
.append("vibrationDisplacement", getVibrationDisplacement())
.append("vibrationAcceleration", getVibrationAcceleration())
.append("vibrationTemp", getVibrationTemp())
.append("collectTime", getCollectTime())
.append("recodeTime", getRecodeTime())
.toString();
}
//
// public void setObjid(Long objid)
// {
// this.objid = objid;
// }
//
// public Long getObjid()
// {
// return objid;
// }
// public void setMonitorId(String monitorId)
// {
// this.monitorId = monitorId;
// }
//
// public String getMonitorId()
// {
// return monitorId;
// }
// public void setTemperature(BigDecimal temperature)
// {
// this.temperature = temperature;
// }
//
// public BigDecimal getTemperature()
// {
// return temperature;
// }
// public void setHumidity(BigDecimal humidity)
// {
// this.humidity = humidity;
// }
//
// public BigDecimal getHumidity()
// {
// return humidity;
// }
// public void setIlluminance(BigDecimal illuminance)
// {
// this.illuminance = illuminance;
// }
//
// public BigDecimal getIlluminance()
// {
// return illuminance;
// }
// public void setNoise(BigDecimal noise)
// {
// this.noise = noise;
// }
//
// public BigDecimal getNoise()
// {
// return noise;
// }
// public void setConcentration(BigDecimal concentration)
// {
// this.concentration = concentration;
// }
//
// public BigDecimal getConcentration()
// {
// return concentration;
// }
// public void setVibrationSpeed(BigDecimal vibrationSpeed)
// {
// this.vibrationSpeed = vibrationSpeed;
// }
//
// public BigDecimal getVibrationSpeed()
// {
// return vibrationSpeed;
// }
// public void setVibrationDisplacement(BigDecimal vibrationDisplacement)
// {
// this.vibrationDisplacement = vibrationDisplacement;
// }
//
// public BigDecimal getVibrationDisplacement()
// {
// return vibrationDisplacement;
// }
// public void setVibrationAcceleration(BigDecimal vibrationAcceleration)
// {
// this.vibrationAcceleration = vibrationAcceleration;
// }
//
// public BigDecimal getVibrationAcceleration()
// {
// return vibrationAcceleration;
// }
// public void setVibrationTemp(BigDecimal vibrationTemp)
// {
// this.vibrationTemp = vibrationTemp;
// }
//
// public BigDecimal getVibrationTemp()
// {
// return vibrationTemp;
// }
// public void setCollectTime(Date collectTime)
// {
// this.collectTime = collectTime;
// }
//
// public Date getCollectTime()
// {
// return collectTime;
// }
// public void setRecodeTime(Date recodeTime)
// {
// this.recodeTime = recodeTime;
// }
//
// public Date getRecodeTime()
// {
// return recodeTime;
// }
//
// @Override
// public String toString() {
// return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
// .append("objid", getObjid())
// .append("monitorId", getMonitorId())
// .append("temperature", getTemperature())
// .append("humidity", getHumidity())
// .append("illuminance", getIlluminance())
// .append("noise", getNoise())
// .append("concentration", getConcentration())
// .append("vibrationSpeed", getVibrationSpeed())
// .append("vibrationDisplacement", getVibrationDisplacement())
// .append("vibrationAcceleration", getVibrationAcceleration())
// .append("vibrationTemp", getVibrationTemp())
// .append("collectTime", getCollectTime())
// .append("recodeTime", getRecodeTime())
// .toString();
// }
}

@ -18,6 +18,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="vibrationTemp" column="vibration_temp" />
<result property="collectTime" column="collectTime" />
<result property="recodeTime" column="recodeTime" />
<result property="monitorName" column="monitor_name" />
</resultMap>
<sql id="selectRecordIotenvInstantVo">
@ -168,10 +169,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<!-- <select id="selectFromTablesWithPage" resultMap="RecordIotenvInstantResult">
select * from (
<foreach collection="tableNames" item="tableName" separator=" UNION ALL ">
SELECT objid, monitorId, temperature, humidity, illuminance, noise, concentration,
vibration_speed, vibration_displacement, vibration_acceleration, vibration_temp,
collectTime, recodeTime
FROM ${tableName}
(SELECT t.objid, t.monitorId, t.temperature, t.humidity, t.illuminance, t.noise, t.concentration,
t.vibration_speed, t.vibration_displacement, t.vibration_acceleration, t.vibration_temp,
t.collectTime, t.recodeTime,
ebmi.monitor_name
FROM ${tableName} t
left join ems_base_monitor_info ebmi on t.monitorId = ebmi.obj_id
<where>
<if test="recordIotenvInstant.monitorId != null and recordIotenvInstant.monitorId != ''"> and monitorId = #{recordIotenvInstant.monitorId}</if>
<if test="recordIotenvInstant.temperature != null "> and temperature = #{recordIotenvInstant.temperature}</if>
@ -208,13 +211,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<!-- 测试二: 使用 UNION ALL 从多个表查询物联网数据列表 ,具有分页功能-->
<select id="selectFromTablesWithPage" resultMap="RecordIotenvInstantResult">
SELECT * FROM (
SELECT *, ROW_NUMBER() OVER (ORDER BY recodeTime DESC) as row_num
SELECT *, ROW_NUMBER() OVER (ORDER BY recodeTime DESC,objid DESC) as row_num
FROM (
<foreach collection="tableNames" item="tableName" separator=" UNION ALL ">
(SELECT objid, monitorId, temperature, humidity, illuminance, noise, concentration,
vibration_speed, vibration_displacement, vibration_acceleration, vibration_temp,
collectTime, recodeTime
FROM ${tableName}
(SELECT t.objid, t.monitorId, t.temperature, t.humidity, t.illuminance, t.noise, t.concentration,
t.vibration_speed, t.vibration_displacement, t.vibration_acceleration, t.vibration_temp,
t.collectTime, t.recodeTime,
ebmi.monitor_name
FROM ${tableName} t
left join ems_base_monitor_info ebmi on t.monitorId = ebmi.obj_id
<where>
<if test="recordIotenvInstant.monitorId != null and recordIotenvInstant.monitorId != ''"> and monitorId = #{recordIotenvInstant.monitorId}</if>
<if test="recordIotenvInstant.temperature != null "> and temperature = #{recordIotenvInstant.temperature}</if>
@ -241,7 +246,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
</where>
ORDER BY objid DESC)
)
</foreach>
) AS all_data
) AS paged_data

Loading…
Cancel
Save