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; private String[] monitorIds;
public void setObjid(Long objid) //关联查询设备名称
{ private String monitorName;
this.objid = objid;
}
public Long getObjid()
{
return objid;
}
public void setMonitorId(String monitorId)
{
this.monitorId = monitorId;
}
public String getMonitorId() //
{ // public void setObjid(Long objid)
return monitorId; // {
} // this.objid = objid;
public void setTemperature(BigDecimal temperature) // }
{ //
this.temperature = temperature; // public Long getObjid()
} // {
// return objid;
public BigDecimal getTemperature() // }
{ // public void setMonitorId(String monitorId)
return temperature; // {
} // this.monitorId = monitorId;
public void setHumidity(BigDecimal humidity) // }
{ //
this.humidity = humidity; // public String getMonitorId()
} // {
// return monitorId;
public BigDecimal getHumidity() // }
{ // public void setTemperature(BigDecimal temperature)
return humidity; // {
} // this.temperature = temperature;
public void setIlluminance(BigDecimal illuminance) // }
{ //
this.illuminance = illuminance; // public BigDecimal getTemperature()
} // {
// return temperature;
public BigDecimal getIlluminance() // }
{ // public void setHumidity(BigDecimal humidity)
return illuminance; // {
} // this.humidity = humidity;
public void setNoise(BigDecimal noise) // }
{ //
this.noise = noise; // public BigDecimal getHumidity()
} // {
// return humidity;
public BigDecimal getNoise() // }
{ // public void setIlluminance(BigDecimal illuminance)
return noise; // {
} // this.illuminance = illuminance;
public void setConcentration(BigDecimal concentration) // }
{ //
this.concentration = concentration; // public BigDecimal getIlluminance()
} // {
// return illuminance;
public BigDecimal getConcentration() // }
{ // public void setNoise(BigDecimal noise)
return concentration; // {
} // this.noise = noise;
public void setVibrationSpeed(BigDecimal vibrationSpeed) // }
{ //
this.vibrationSpeed = vibrationSpeed; // public BigDecimal getNoise()
} // {
// return noise;
public BigDecimal getVibrationSpeed() // }
{ // public void setConcentration(BigDecimal concentration)
return vibrationSpeed; // {
} // this.concentration = concentration;
public void setVibrationDisplacement(BigDecimal vibrationDisplacement) // }
{ //
this.vibrationDisplacement = vibrationDisplacement; // public BigDecimal getConcentration()
} // {
// return concentration;
public BigDecimal getVibrationDisplacement() // }
{ // public void setVibrationSpeed(BigDecimal vibrationSpeed)
return vibrationDisplacement; // {
} // this.vibrationSpeed = vibrationSpeed;
public void setVibrationAcceleration(BigDecimal vibrationAcceleration) // }
{ //
this.vibrationAcceleration = vibrationAcceleration; // public BigDecimal getVibrationSpeed()
} // {
// return vibrationSpeed;
public BigDecimal getVibrationAcceleration() // }
{ // public void setVibrationDisplacement(BigDecimal vibrationDisplacement)
return vibrationAcceleration; // {
} // this.vibrationDisplacement = vibrationDisplacement;
public void setVibrationTemp(BigDecimal vibrationTemp) // }
{ //
this.vibrationTemp = vibrationTemp; // public BigDecimal getVibrationDisplacement()
} // {
// return vibrationDisplacement;
public BigDecimal getVibrationTemp() // }
{ // public void setVibrationAcceleration(BigDecimal vibrationAcceleration)
return vibrationTemp; // {
} // this.vibrationAcceleration = vibrationAcceleration;
public void setCollectTime(Date collectTime) // }
{ //
this.collectTime = collectTime; // public BigDecimal getVibrationAcceleration()
} // {
// return vibrationAcceleration;
public Date getCollectTime() // }
{ // public void setVibrationTemp(BigDecimal vibrationTemp)
return collectTime; // {
} // this.vibrationTemp = vibrationTemp;
public void setRecodeTime(Date recodeTime) // }
{ //
this.recodeTime = recodeTime; // public BigDecimal getVibrationTemp()
} // {
// return vibrationTemp;
public Date getRecodeTime() // }
{ // public void setCollectTime(Date collectTime)
return recodeTime; // {
} // this.collectTime = collectTime;
// }
@Override //
public String toString() { // public Date getCollectTime()
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) // {
.append("objid", getObjid()) // return collectTime;
.append("monitorId", getMonitorId()) // }
.append("temperature", getTemperature()) // public void setRecodeTime(Date recodeTime)
.append("humidity", getHumidity()) // {
.append("illuminance", getIlluminance()) // this.recodeTime = recodeTime;
.append("noise", getNoise()) // }
.append("concentration", getConcentration()) //
.append("vibrationSpeed", getVibrationSpeed()) // public Date getRecodeTime()
.append("vibrationDisplacement", getVibrationDisplacement()) // {
.append("vibrationAcceleration", getVibrationAcceleration()) // return recodeTime;
.append("vibrationTemp", getVibrationTemp()) // }
.append("collectTime", getCollectTime()) //
.append("recodeTime", getRecodeTime()) // @Override
.toString(); // 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="vibrationTemp" column="vibration_temp" />
<result property="collectTime" column="collectTime" /> <result property="collectTime" column="collectTime" />
<result property="recodeTime" column="recodeTime" /> <result property="recodeTime" column="recodeTime" />
<result property="monitorName" column="monitor_name" />
</resultMap> </resultMap>
<sql id="selectRecordIotenvInstantVo"> <sql id="selectRecordIotenvInstantVo">
@ -168,10 +169,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<!-- <select id="selectFromTablesWithPage" resultMap="RecordIotenvInstantResult"> <!-- <select id="selectFromTablesWithPage" resultMap="RecordIotenvInstantResult">
select * from ( select * from (
<foreach collection="tableNames" item="tableName" separator=" UNION ALL "> <foreach collection="tableNames" item="tableName" separator=" UNION ALL ">
SELECT objid, monitorId, temperature, humidity, illuminance, noise, concentration, (SELECT t.objid, t.monitorId, t.temperature, t.humidity, t.illuminance, t.noise, t.concentration,
vibration_speed, vibration_displacement, vibration_acceleration, vibration_temp, t.vibration_speed, t.vibration_displacement, t.vibration_acceleration, t.vibration_temp,
collectTime, recodeTime t.collectTime, t.recodeTime,
FROM ${tableName} ebmi.monitor_name
FROM ${tableName} t
left join ems_base_monitor_info ebmi on t.monitorId = ebmi.obj_id
<where> <where>
<if test="recordIotenvInstant.monitorId != null and recordIotenvInstant.monitorId != ''"> and monitorId = #{recordIotenvInstant.monitorId}</if> <if test="recordIotenvInstant.monitorId != null and recordIotenvInstant.monitorId != ''"> and monitorId = #{recordIotenvInstant.monitorId}</if>
<if test="recordIotenvInstant.temperature != null "> and temperature = #{recordIotenvInstant.temperature}</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 从多个表查询物联网数据列表 ,具有分页功能--> <!-- 测试二: 使用 UNION ALL 从多个表查询物联网数据列表 ,具有分页功能-->
<select id="selectFromTablesWithPage" resultMap="RecordIotenvInstantResult"> <select id="selectFromTablesWithPage" resultMap="RecordIotenvInstantResult">
SELECT * FROM ( 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 ( FROM (
<foreach collection="tableNames" item="tableName" separator=" UNION ALL "> <foreach collection="tableNames" item="tableName" separator=" UNION ALL ">
(SELECT objid, monitorId, temperature, humidity, illuminance, noise, concentration, (SELECT t.objid, t.monitorId, t.temperature, t.humidity, t.illuminance, t.noise, t.concentration,
vibration_speed, vibration_displacement, vibration_acceleration, vibration_temp, t.vibration_speed, t.vibration_displacement, t.vibration_acceleration, t.vibration_temp,
collectTime, recodeTime t.collectTime, t.recodeTime,
FROM ${tableName} ebmi.monitor_name
FROM ${tableName} t
left join ems_base_monitor_info ebmi on t.monitorId = ebmi.obj_id
<where> <where>
<if test="recordIotenvInstant.monitorId != null and recordIotenvInstant.monitorId != ''"> and monitorId = #{recordIotenvInstant.monitorId}</if> <if test="recordIotenvInstant.monitorId != null and recordIotenvInstant.monitorId != ''"> and monitorId = #{recordIotenvInstant.monitorId}</if>
<if test="recordIotenvInstant.temperature != null "> and temperature = #{recordIotenvInstant.temperature}</if> <if test="recordIotenvInstant.temperature != null "> and temperature = #{recordIotenvInstant.temperature}</if>
@ -241,7 +246,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if> </if>
</where> </where>
ORDER BY objid DESC) )
</foreach> </foreach>
) AS all_data ) AS all_data
) AS paged_data ) AS paged_data

Loading…
Cancel
Save