Compare commits
4 Commits
26c534cae9
...
b3f7ca7a81
| Author | SHA1 | Date | |
|---|---|---|---|
| b3f7ca7a81 | |||
| 5eccb35568 | |||
| c007016224 | |||
| 768dd0bead |
@ -1,7 +1,6 @@
|
|||||||
package com.xzzn.ems.domain.vo;
|
package com.xzzn.ems.domain.vo;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 实时运行-有功无功功率数据
|
* 实时运行-有功无功功率数据
|
||||||
@ -31,6 +30,8 @@ public class EnergyStoragePowVo {
|
|||||||
|
|
||||||
private String deviceId;
|
private String deviceId;
|
||||||
|
|
||||||
|
private String groupTime;
|
||||||
|
|
||||||
public String getDeviceId() {
|
public String getDeviceId() {
|
||||||
return deviceId;
|
return deviceId;
|
||||||
}
|
}
|
||||||
@ -67,6 +68,14 @@ public class EnergyStoragePowVo {
|
|||||||
this.dateDay = dateDay;
|
this.dateDay = dateDay;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getGroupTime() {
|
||||||
|
return groupTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGroupTime(String groupTime) {
|
||||||
|
this.groupTime = groupTime;
|
||||||
|
}
|
||||||
|
|
||||||
public void setPcsTotalReactivePower(BigDecimal pcsTotalReactivePower) {
|
public void setPcsTotalReactivePower(BigDecimal pcsTotalReactivePower) {
|
||||||
this.pcsTotalReactivePower = pcsTotalReactivePower;
|
this.pcsTotalReactivePower = pcsTotalReactivePower;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -140,4 +140,6 @@ public interface EmsPcsDataMapper
|
|||||||
public List<PcsMaxTempVo> getFXMaxTemp(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
|
public List<PcsMaxTempVo> getFXMaxTemp(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
|
||||||
// 实时运行-dds-pcs最高温度
|
// 实时运行-dds-pcs最高温度
|
||||||
public List<PcsMaxTempVo> getDDSMaxTemp(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
|
public List<PcsMaxTempVo> getDDSMaxTemp(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
|
||||||
|
|
||||||
|
List<PcsMaxTempVo> getPcsMaxTemp(@Param("siteId") String siteId, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -238,13 +238,13 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
return pcdData;
|
return pcdData;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
// // 生成时间列表(每分钟一个)
|
// // 生成时间列表(每5分钟一个)
|
||||||
// List<LocalDateTime> targetMinutes = new ArrayList<>(60);
|
// List<LocalDateTime> targetMinutes = new ArrayList<>(12);
|
||||||
// LocalDateTime startDate = DateUtils.toLocalDateTime(yesterday).truncatedTo(ChronoUnit.DAYS);
|
// LocalDateTime startLocalDate = DateUtils.toLocalDateTime(startDate).truncatedTo(ChronoUnit.DAYS);
|
||||||
// LocalDateTime endDate = DateUtils.toLocalDateTime(today);
|
// LocalDateTime endLocalDate = DateUtils.toLocalDateTime(endDate).with(LocalDateTime.now().toLocalTime());
|
||||||
// while (startDate.isBefore(endDate)) {
|
// while (startLocalDate.isBefore(endLocalDate)) {
|
||||||
// targetMinutes.add(startDate);
|
// targetMinutes.add(startLocalDate);
|
||||||
// startDate = startDate.plusMinutes(1); // 递增1分钟
|
// startLocalDate = startLocalDate.plusMinutes(5); // 递增5分钟
|
||||||
// }
|
// }
|
||||||
// // 根据时间列表填充数据
|
// // 根据时间列表填充数据
|
||||||
// pcsPowerList = fullFillData(pcsPowerList, targetMinutes);
|
// pcsPowerList = fullFillData(pcsPowerList, targetMinutes);
|
||||||
@ -254,6 +254,7 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
|
|
||||||
return siteMonitorRuningInfoVo;
|
return siteMonitorRuningInfoVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<PcsPowerList> fullFillData(List<PcsPowerList> pcsPowerList, List<LocalDateTime> targetMinutes) {
|
private List<PcsPowerList> fullFillData(List<PcsPowerList> pcsPowerList, List<LocalDateTime> targetMinutes) {
|
||||||
List<PcsPowerList> resultList = new ArrayList<>();
|
List<PcsPowerList> resultList = new ArrayList<>();
|
||||||
|
|
||||||
@ -269,7 +270,7 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
// 将数据转Map便于后续根据时间获取
|
// 将数据转Map便于后续根据时间获取
|
||||||
dataMap = powerList.stream().collect(
|
dataMap = powerList.stream().collect(
|
||||||
Collectors.toMap(
|
Collectors.toMap(
|
||||||
data -> data.getCreateDate(),
|
data -> data.getGroupTime(),
|
||||||
data -> data,
|
data -> data,
|
||||||
(existing, replacement) -> replacement
|
(existing, replacement) -> replacement
|
||||||
));
|
));
|
||||||
@ -293,7 +294,8 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
currentData.setDeviceId(deviceId);
|
currentData.setDeviceId(deviceId);
|
||||||
}
|
}
|
||||||
lastData = currentData;
|
lastData = currentData;
|
||||||
currentData.setCreateDate(currentDate.substring(11));
|
// currentData.setCreateDate(currentDate.substring(11));
|
||||||
|
currentData.setCreateDate(currentData.getCreateDate());
|
||||||
resultPowerList.add(currentData);
|
resultPowerList.add(currentData);
|
||||||
}
|
}
|
||||||
pcsResultPower.setDeviceId(deviceId);
|
pcsResultPower.setDeviceId(deviceId);
|
||||||
@ -316,12 +318,12 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
Date startDate = request.getStartDate();
|
Date startDate = request.getStartDate();
|
||||||
Date endDate = request.getEndDate();
|
Date endDate = request.getEndDate();
|
||||||
//PCS最高温度list
|
//PCS最高温度list
|
||||||
List<PcsMaxTempVo> pcsMaxTempVos = new ArrayList<>();
|
List<PcsMaxTempVo> pcsMaxTempVos = emsPcsDataMapper.getPcsMaxTemp(siteId, startDate, endDate);
|
||||||
if (SiteEnum.FX.getCode().equals(siteId)) {
|
// if (SiteEnum.FX.getCode().equals(siteId)) {
|
||||||
pcsMaxTempVos = emsPcsDataMapper.getFXMaxTemp(siteId, startDate, endDate);
|
// pcsMaxTempVos = emsPcsDataMapper.getFXMaxTemp(siteId, startDate, endDate);
|
||||||
} else if (SiteEnum.DDS.getCode().equals(siteId)) {
|
// } else if (SiteEnum.DDS.getCode().equals(siteId)) {
|
||||||
pcsMaxTempVos = emsPcsDataMapper.getDDSMaxTemp(siteId, startDate, endDate);
|
// pcsMaxTempVos = emsPcsDataMapper.getDDSMaxTemp(siteId, startDate, endDate);
|
||||||
}
|
// }
|
||||||
|
|
||||||
// List<PcsMaxTempVo> -> 按pcs的deviceId分组转成List<PcsMaxTempList>
|
// List<PcsMaxTempVo> -> 按pcs的deviceId分组转成List<PcsMaxTempList>
|
||||||
if (!CollectionUtils.isEmpty(pcsMaxTempVos)) {
|
if (!CollectionUtils.isEmpty(pcsMaxTempVos)) {
|
||||||
@ -427,13 +429,18 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
String siteId = request.getSiteId();
|
String siteId = request.getSiteId();
|
||||||
Date startDate = request.getStartDate();
|
Date startDate = request.getStartDate();
|
||||||
Date endDate = request.getEndDate();
|
Date endDate = request.getEndDate();
|
||||||
//电池平均温度list
|
//电池平均温度list,优先从电池堆取,电池堆没有的话再从电池簇取
|
||||||
List<BatteryAveTempVo> batteryAveTempList = new ArrayList<>();
|
List<BatteryAveTempVo> batteryAveTempList = new ArrayList<>();
|
||||||
if (SiteEnum.FX.getCode().equals(siteId)) {
|
|
||||||
batteryAveTempList = emsBatteryClusterMapper.getBatteryAveTempList(siteId, startDate, endDate);
|
|
||||||
} else if (SiteEnum.DDS.getCode().equals(siteId)) {
|
|
||||||
batteryAveTempList = emsBatteryStackMapper.getBatteryAveTempList(siteId, startDate, endDate);
|
batteryAveTempList = emsBatteryStackMapper.getBatteryAveTempList(siteId, startDate, endDate);
|
||||||
|
// 电池堆暂无数据,从电池簇取
|
||||||
|
if (CollectionUtils.isEmpty(batteryAveTempList)) {
|
||||||
|
batteryAveTempList = emsBatteryClusterMapper.getBatteryAveTempList(siteId, startDate, endDate);
|
||||||
}
|
}
|
||||||
|
// if (SiteEnum.FX.getCode().equals(siteId)) {
|
||||||
|
// batteryAveTempList = emsBatteryClusterMapper.getBatteryAveTempList(siteId, startDate, endDate);
|
||||||
|
// } else if (SiteEnum.DDS.getCode().equals(siteId)) {
|
||||||
|
// batteryAveTempList = emsBatteryStackMapper.getBatteryAveTempList(siteId, startDate, endDate);
|
||||||
|
// }
|
||||||
siteMonitorRuningInfoVo.setBatteryAveTempList(batteryAveTempList);
|
siteMonitorRuningInfoVo.setBatteryAveTempList(batteryAveTempList);
|
||||||
// if (!StringUtils.isEmpty(siteId)) {
|
// if (!StringUtils.isEmpty(siteId)) {
|
||||||
// // 时间暂定今日+昨日
|
// // 时间暂定今日+昨日
|
||||||
@ -746,7 +753,7 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
|
|
||||||
private void dealAmmeterData(EmsAmmeterData ammeterData, AmmeterDataVo ammeterDataVo) {
|
private void dealAmmeterData(EmsAmmeterData ammeterData, AmmeterDataVo ammeterDataVo) {
|
||||||
if (ammeterData != null) {
|
if (ammeterData != null) {
|
||||||
ammeterDataVo.setActivePower(ammeterData.getTotalActivePower());
|
ammeterDataVo.setActivePower(ammeterData.getTotalActivePower() == null ? ammeterData.getPower() : ammeterData.getTotalActivePower());
|
||||||
ammeterDataVo.setReactivePower(ammeterData.getTotalReactivePower());
|
ammeterDataVo.setReactivePower(ammeterData.getTotalReactivePower());
|
||||||
ammeterDataVo.setForwardActive(ammeterData.getCurrentForwardActiveTotal());
|
ammeterDataVo.setForwardActive(ammeterData.getCurrentForwardActiveTotal());
|
||||||
ammeterDataVo.setForwardReactive(ammeterData.getCurrentForwardReactiveTotal());
|
ammeterDataVo.setForwardReactive(ammeterData.getCurrentForwardReactiveTotal());
|
||||||
|
|||||||
@ -176,6 +176,7 @@
|
|||||||
AND (date_format(t.alarm_start_time,'%Y%m%d') BETWEEN date_format(#{alarmStartTime},'%Y%m%d') and date_format(#{alarmEndTime},'%Y%m%d')
|
AND (date_format(t.alarm_start_time,'%Y%m%d') BETWEEN date_format(#{alarmStartTime},'%Y%m%d') and date_format(#{alarmEndTime},'%Y%m%d')
|
||||||
or date_format(t.alarm_end_time,'%Y%m%d') BETWEEN date_format(#{alarmStartTime},'%Y%m%d') and date_format(#{alarmEndTime},'%Y%m%d') )
|
or date_format(t.alarm_end_time,'%Y%m%d') BETWEEN date_format(#{alarmStartTime},'%Y%m%d') and date_format(#{alarmEndTime},'%Y%m%d') )
|
||||||
</if>
|
</if>
|
||||||
|
order by t.alarm_start_time desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getDeviceAlarmNum" resultType="java.lang.Integer">
|
<select id="getDeviceAlarmNum" resultType="java.lang.Integer">
|
||||||
|
|||||||
@ -331,18 +331,27 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getBatteryAveTempList" resultType="com.xzzn.ems.domain.vo.BatteryAveTempVo">
|
<select id="getBatteryAveTempList" resultType="com.xzzn.ems.domain.vo.BatteryAveTempVo">
|
||||||
select t.site_id,
|
WITH ranked AS (
|
||||||
round(avg(t.avg_cell_temp)) as batteryTemp,
|
SELECT
|
||||||
DATE_FORMAT(t.create_time, '%Y-%m-%d') AS dateDay,
|
*,
|
||||||
DATE_FORMAT(t.create_time, '%H:00:00') AS createDate
|
date_format(create_time, '%Y-%m-%d %H:00:00') + INTERVAL FLOOR(MINUTE(create_time) / 5) * 5 MINUTE AS group_time,
|
||||||
from ems_battery_cluster t
|
ROW_NUMBER() OVER (PARTITION BY date_format(create_time, '%Y-%m-%d %H:00:00'), FLOOR(MINUTE(create_time) / 5) ORDER BY create_time) as rn
|
||||||
WHERE t.site_id = #{siteId}
|
FROM
|
||||||
AND t.create_time >= #{startDate}
|
ems_battery_cluster
|
||||||
AND t.create_time < DATE_ADD(#{endDate}, INTERVAL 1 DAY)
|
where site_id = #{siteId}
|
||||||
GROUP BY t.site_id,
|
and create_time >= #{startDate}
|
||||||
DATE_FORMAT(t.create_time, '%Y-%m-%d'),
|
and create_time < DATE_ADD(#{endDate}, INTERVAL 1 DAY)
|
||||||
DATE_FORMAT(t.create_time, '%H:00:00')
|
and avg_cell_temp is not null
|
||||||
ORDER BY dateDay, createDate
|
)
|
||||||
|
SELECT
|
||||||
|
site_id,
|
||||||
|
round(avg(avg_cell_temp)) as batteryTemp,
|
||||||
|
DATE_FORMAT(group_time, '%Y-%m-%d') as dateDay,
|
||||||
|
DATE_FORMAT(group_time, '%H:%i:00') as createDate,
|
||||||
|
group_time as groupTime
|
||||||
|
FROM
|
||||||
|
ranked
|
||||||
|
GROUP BY site_id,groupTime
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|||||||
@ -351,18 +351,27 @@
|
|||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
<select id="getBatteryAveTempList" resultType="com.xzzn.ems.domain.vo.BatteryAveTempVo">
|
<select id="getBatteryAveTempList" resultType="com.xzzn.ems.domain.vo.BatteryAveTempVo">
|
||||||
select t.site_id,
|
WITH ranked AS (
|
||||||
round(avg(t.avg_temperature)) as batteryTemp,
|
SELECT
|
||||||
DATE_FORMAT(t.create_time, '%Y-%m-%d') AS dateDay,
|
*,
|
||||||
DATE_FORMAT(t.create_time, '%H:00:00') AS createDate
|
date_format(create_time, '%Y-%m-%d %H:00:00') + INTERVAL FLOOR(MINUTE(create_time) / 5) * 5 MINUTE AS group_time,
|
||||||
from ems_battery_stack t
|
ROW_NUMBER() OVER (PARTITION BY date_format(create_time, '%Y-%m-%d %H:00:00'), FLOOR(MINUTE(create_time) / 5) ORDER BY create_time) as rn
|
||||||
WHERE t.site_id = #{siteId}
|
FROM
|
||||||
AND t.create_time >= #{startDate}
|
ems_battery_stack
|
||||||
AND t.create_time < DATE_ADD(#{endDate}, INTERVAL 1 DAY)
|
where site_id = #{siteId}
|
||||||
GROUP BY t.site_id,
|
and create_time >= #{startDate}
|
||||||
DATE_FORMAT(t.create_time, '%Y-%m-%d'),
|
and create_time < DATE_ADD(#{endDate}, INTERVAL 1 DAY)
|
||||||
DATE_FORMAT(t.create_time, '%H:00:00')
|
and avg_temperature is not null
|
||||||
ORDER BY dateDay, createDate
|
)
|
||||||
|
SELECT
|
||||||
|
site_id,
|
||||||
|
round(avg(avg_temperature)) as batteryTemp,
|
||||||
|
DATE_FORMAT(group_time, '%Y-%m-%d') as dateDay,
|
||||||
|
DATE_FORMAT(group_time, '%H:%i:00') as createDate,
|
||||||
|
group_time as groupTime
|
||||||
|
FROM
|
||||||
|
ranked
|
||||||
|
GROUP BY site_id,groupTime
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<sql id="statisCommonFilter">
|
<sql id="statisCommonFilter">
|
||||||
@ -501,15 +510,25 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getAveSocList" resultType="com.xzzn.ems.domain.vo.BatteryAveSOCVo">
|
<select id="getAveSocList" resultType="com.xzzn.ems.domain.vo.BatteryAveSOCVo">
|
||||||
select t.site_id,
|
WITH ranked AS (
|
||||||
round(avg(t.stack_soc)) as batterySOC,
|
SELECT
|
||||||
DATE_FORMAT(t.create_time, '%Y-%m-%d') AS dateDay,
|
*,
|
||||||
DATE_FORMAT(t.create_time, '%H:00:00') AS createDate
|
date_format(create_time, '%Y-%m-%d %H:00:00') + INTERVAL FLOOR(MINUTE(create_time) / 5) * 5 MINUTE AS group_time,
|
||||||
from ems_battery_stack t
|
ROW_NUMBER() OVER (PARTITION BY date_format(create_time, '%Y-%m-%d %H:00:00'), FLOOR(MINUTE(create_time) / 5) ORDER BY create_time) as rn
|
||||||
where t.site_id = #{siteId}
|
FROM
|
||||||
AND t.create_time >= #{startDate}
|
ems_battery_stack
|
||||||
AND t.create_time < DATE_ADD(#{endDate}, INTERVAL 1 DAY)
|
where site_id = #{siteId}
|
||||||
GROUP BY t.site_id,dateDay,createDate
|
and create_time >= #{startDate}
|
||||||
order by dateDay,createDate
|
and create_time < DATE_ADD(#{endDate}, INTERVAL 1 DAY)
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
site_id,
|
||||||
|
round(avg(stack_soc)) as batterySOC,
|
||||||
|
DATE_FORMAT(group_time, '%Y-%m-%d') as dateDay,
|
||||||
|
DATE_FORMAT(group_time, '%H:%i:00') as createDate,
|
||||||
|
group_time as groupTime
|
||||||
|
FROM
|
||||||
|
ranked
|
||||||
|
GROUP BY site_id,groupTime
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@ -469,19 +469,30 @@
|
|||||||
order by ammeterDate desc
|
order by ammeterDate desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getStoragePowerList" resultType="com.xzzn.ems.domain.vo.EnergyStoragePowVo">
|
<select id="getStoragePowerList" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.EnergyStoragePowVo">
|
||||||
SELECT t.site_id,t.device_id as deviceId,
|
WITH ranked AS (
|
||||||
t.total_active_power AS pcsTotalActPower,
|
SELECT
|
||||||
t.total_reactive_power AS pcsTotalReactivePower,
|
*,
|
||||||
DATE_FORMAT(t.create_time, '%Y-%m-%d') AS dateDay,
|
date_format(data_update_time, '%Y-%m-%d %H:00:00') + INTERVAL FLOOR(MINUTE(data_update_time) / 5) * 5 MINUTE AS group_time,
|
||||||
DATE_FORMAT(t.data_update_time, '%H:%i:00') AS createDate
|
ROW_NUMBER() OVER (PARTITION BY device_id, date_format(data_update_time, '%Y-%m-%d %H:00:00'), FLOOR(MINUTE(data_update_time) / 5) ORDER BY data_update_time) as rn
|
||||||
FROM ems_pcs_data t
|
FROM
|
||||||
WHERE t.site_id = #{siteId}
|
ems_pcs_data
|
||||||
AND t.data_update_time >= #{startDate}
|
where site_id = #{siteId}
|
||||||
AND t.data_update_time < DATE_ADD(#{endDate}, INTERVAL 1 DAY)
|
and data_update_time >= #{startDate}
|
||||||
AND minute(t.data_update_time) = 0
|
and data_update_time < DATE_ADD(#{endDate}, INTERVAL 1 DAY)
|
||||||
GROUP BY t.site_id, deviceId,pcsTotalActPower,pcsTotalReactivePower,dateDay,createDate
|
)
|
||||||
ORDER BY dateDay,createDate
|
SELECT
|
||||||
|
site_id,
|
||||||
|
device_id as deviceId,
|
||||||
|
total_active_power as pcsTotalActPower,
|
||||||
|
total_reactive_power as pcsTotalReactivePower,
|
||||||
|
DATE_FORMAT(group_time, '%Y-%m-%d') as dateDay,
|
||||||
|
DATE_FORMAT(group_time, '%H:%i:00') as createDate,
|
||||||
|
group_time as groupTime
|
||||||
|
FROM
|
||||||
|
ranked
|
||||||
|
WHERE
|
||||||
|
rn = 1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getPcsDataByMonth" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo">
|
<select id="getPcsDataByMonth" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo">
|
||||||
@ -634,4 +645,37 @@
|
|||||||
group by deviceId,dateDay,createDate,temp
|
group by deviceId,dateDay,createDate,temp
|
||||||
order by dateDay,createDate
|
order by dateDay,createDate
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getPcsMaxTemp" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.PcsMaxTempVo">
|
||||||
|
WITH ranked AS (
|
||||||
|
SELECT
|
||||||
|
*,
|
||||||
|
date_format(data_update_time, '%Y-%m-%d %H:00:00') + INTERVAL FLOOR(MINUTE(data_update_time) / 5) * 5 MINUTE AS group_time,
|
||||||
|
ROW_NUMBER() OVER (PARTITION BY device_id, date_format(data_update_time, '%Y-%m-%d %H:00:00'), FLOOR(MINUTE(data_update_time) / 5) ORDER BY data_update_time) as rn
|
||||||
|
FROM
|
||||||
|
ems_pcs_data
|
||||||
|
where site_id = #{siteId}
|
||||||
|
and data_update_time >= #{startDate}
|
||||||
|
and data_update_time < DATE_ADD(#{endDate}, INTERVAL 1 DAY)
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
site_id,
|
||||||
|
device_id as deviceId,
|
||||||
|
GREATEST(
|
||||||
|
COALESCE(u_temperature, -999),
|
||||||
|
COALESCE(v_temperature, -999),
|
||||||
|
COALESCE(w_temperature, -999),
|
||||||
|
COALESCE(module1_temp, -999),
|
||||||
|
COALESCE(module2_temp, -999),
|
||||||
|
COALESCE(module3_temp, -999),
|
||||||
|
COALESCE(module4_temp, -999)
|
||||||
|
) AS temp,
|
||||||
|
DATE_FORMAT(group_time, '%Y-%m-%d') as dateDay,
|
||||||
|
DATE_FORMAT(group_time, '%H:%i:00') as createDate,
|
||||||
|
group_time as groupTime
|
||||||
|
FROM
|
||||||
|
ranked
|
||||||
|
WHERE
|
||||||
|
rn = 1
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
Reference in New Issue
Block a user