|
|
|
@ -120,6 +120,7 @@ public class TWTempertureDataServiceImpl implements ITWTempertureDataService
|
|
|
|
|
* @param tWTempertureData
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public List<TWTempertureData> selectLastTWTempertureDataList(TWTempertureData tWTempertureData) {
|
|
|
|
|
// 按monitorName分组并获取每个分组的最新记录
|
|
|
|
|
return tWTempertureDataMapper.selectLastTWTempertureDataList(tWTempertureData);
|
|
|
|
@ -130,6 +131,7 @@ public class TWTempertureDataServiceImpl implements ITWTempertureDataService
|
|
|
|
|
* @param tWTempertureData 需要查询的温度数据对象。
|
|
|
|
|
* @return 如果数据库中存在对应的温度数据,返回包含最新数据的列表;如果不存在或查询过程中发生异常,返回空列表。
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public List<TWTempertureData> selectLastTWTempertureData(TWTempertureData tWTempertureData) {
|
|
|
|
|
try {
|
|
|
|
|
// 从数据库中查询温度数据列表
|
|
|
|
@ -168,59 +170,59 @@ public class TWTempertureDataServiceImpl implements ITWTempertureDataService
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 将源对象中指定字段的值设置到目标对象的相应字段中,如果该值不为空且目标对象的对应字段为空。
|
|
|
|
|
*
|
|
|
|
|
* @param source 源对象,从中获取字段值
|
|
|
|
|
* @param target 目标对象,将字段值设置到此对象中
|
|
|
|
|
* @param fieldName 要操作的字段名称
|
|
|
|
|
*/
|
|
|
|
|
private void setIfNotNull(TWTempertureData source, TWTempertureData target, String fieldName) {
|
|
|
|
|
try {
|
|
|
|
|
// 获取源对象中指定字段的getter方法
|
|
|
|
|
Method getMethod = TWTempertureData.class.getMethod("get" + capitalize(fieldName));
|
|
|
|
|
// 获取目标对象中指定字段的setter方法,参数类型与getter方法返回类型一致
|
|
|
|
|
Method setMethod = TWTempertureData.class.getMethod("set" + capitalize(fieldName), getMethod.getReturnType());
|
|
|
|
|
// 调用getter方法获取源对象中的字段值
|
|
|
|
|
Object value = getMethod.invoke(source);
|
|
|
|
|
// 如果字段值不为空且目标对象中的对应字段值为空,则调用setter方法将值设置到目标对象中
|
|
|
|
|
if (value != null && getMethod.invoke(target) == null) {
|
|
|
|
|
setMethod.invoke(target, value);
|
|
|
|
|
/**
|
|
|
|
|
* 将源对象中指定字段的值设置到目标对象的相应字段中,如果该值不为空且目标对象的对应字段为空。
|
|
|
|
|
*
|
|
|
|
|
* @param source 源对象,从中获取字段值
|
|
|
|
|
* @param target 目标对象,将字段值设置到此对象中
|
|
|
|
|
* @param fieldName 要操作的字段名称
|
|
|
|
|
*/
|
|
|
|
|
private void setIfNotNull(TWTempertureData source, TWTempertureData target, String fieldName) {
|
|
|
|
|
try {
|
|
|
|
|
// 获取源对象中指定字段的getter方法
|
|
|
|
|
Method getMethod = TWTempertureData.class.getMethod("get" + capitalize(fieldName));
|
|
|
|
|
// 获取目标对象中指定字段的setter方法,参数类型与getter方法返回类型一致
|
|
|
|
|
Method setMethod = TWTempertureData.class.getMethod("set" + capitalize(fieldName), getMethod.getReturnType());
|
|
|
|
|
// 调用getter方法获取源对象中的字段值
|
|
|
|
|
Object value = getMethod.invoke(source);
|
|
|
|
|
// 如果字段值不为空且目标对象中的对应字段值为空,则调用setter方法将值设置到目标对象中
|
|
|
|
|
if (value != null && getMethod.invoke(target) == null) {
|
|
|
|
|
setMethod.invoke(target, value);
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
// 捕获并打印异常信息
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
// 捕获并打印异常信息
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 设置PM值。
|
|
|
|
|
* @param source 源TWTempertureData对象,用于提供PM值。
|
|
|
|
|
* @param target 目标TWTempertureData对象,用于接收PM值。
|
|
|
|
|
*/
|
|
|
|
|
private void setPmValues(TWTempertureData source, TWTempertureData target) {
|
|
|
|
|
setIfNotNull(source, target, "pm1");
|
|
|
|
|
if (target.getPm1() == null) {
|
|
|
|
|
setIfNotNull(source, target, "pm2");
|
|
|
|
|
}
|
|
|
|
|
if (target.getPm2() == null) {
|
|
|
|
|
setIfNotNull(source, target, "pm10");
|
|
|
|
|
/**
|
|
|
|
|
* 设置PM值。
|
|
|
|
|
* @param source 源TWTempertureData对象,用于提供PM值。
|
|
|
|
|
* @param target 目标TWTempertureData对象,用于接收PM值。
|
|
|
|
|
*/
|
|
|
|
|
private void setPmValues(TWTempertureData source, TWTempertureData target) {
|
|
|
|
|
setIfNotNull(source, target, "pm1");
|
|
|
|
|
if (target.getPm1() == null) {
|
|
|
|
|
setIfNotNull(source, target, "pm2");
|
|
|
|
|
}
|
|
|
|
|
if (target.getPm2() == null) {
|
|
|
|
|
setIfNotNull(source, target, "pm10");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 将字符串的首字母大写。
|
|
|
|
|
*
|
|
|
|
|
* @param str 要处理的字符串
|
|
|
|
|
* @return 首字母大写的字符串,如果输入为空或长度为0,则返回原字符串
|
|
|
|
|
*/
|
|
|
|
|
private String capitalize(String str) {
|
|
|
|
|
// 如果字符串为null或者长度为0,直接返回原字符串
|
|
|
|
|
if (str == null || str.length() == 0) {
|
|
|
|
|
return str;
|
|
|
|
|
/**
|
|
|
|
|
* 将字符串的首字母大写。
|
|
|
|
|
*
|
|
|
|
|
* @param str 要处理的字符串
|
|
|
|
|
* @return 首字母大写的字符串,如果输入为空或长度为0,则返回原字符串
|
|
|
|
|
*/
|
|
|
|
|
private String capitalize(String str) {
|
|
|
|
|
// 如果字符串为null或者长度为0,直接返回原字符串
|
|
|
|
|
if (str == null || str.length() == 0) {
|
|
|
|
|
return str;
|
|
|
|
|
}
|
|
|
|
|
// 将字符串的第一个字符转换为大写,并与剩余部分拼接后返回
|
|
|
|
|
return str.substring(0, 1).toUpperCase() + str.substring(1);
|
|
|
|
|
}
|
|
|
|
|
// 将字符串的第一个字符转换为大写,并与剩余部分拼接后返回
|
|
|
|
|
return str.substring(0, 1).toUpperCase() + str.substring(1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|