平台修改意见20251120-设备监控实时运行页面数据图按照小时展示,共用时间范围,新增时间查询条件

This commit is contained in:
gaojinming
2025-11-25 14:23:26 +08:00
parent 7298acc785
commit a5e977c0d1
11 changed files with 232 additions and 112 deletions

View File

@ -7,6 +7,7 @@ import com.xzzn.common.utils.StringUtils;
import com.xzzn.ems.domain.vo.BMSBatteryDataList; import com.xzzn.ems.domain.vo.BMSBatteryDataList;
import com.xzzn.ems.domain.vo.BatteryDataStatsListVo; import com.xzzn.ems.domain.vo.BatteryDataStatsListVo;
import com.xzzn.ems.domain.vo.DateSearchRequest; import com.xzzn.ems.domain.vo.DateSearchRequest;
import com.xzzn.ems.domain.vo.RunningGraphRequest;
import com.xzzn.ems.domain.vo.SiteBatteryDataList; import com.xzzn.ems.domain.vo.SiteBatteryDataList;
import com.xzzn.ems.service.IEmsSiteService; import com.xzzn.ems.service.IEmsSiteService;
import com.xzzn.ems.service.IEmsStatsReportService; import com.xzzn.ems.service.IEmsStatsReportService;
@ -55,27 +56,27 @@ public class EmsSiteMonitorController extends BaseController{
* 单站监控-设备监控-实时运行曲线图数据 * 单站监控-设备监控-实时运行曲线图数据
*/ */
@GetMapping("/runningGraph/storagePower") @GetMapping("/runningGraph/storagePower")
public AjaxResult getRunningGraphStorage(@RequestParam String siteId) public AjaxResult getRunningGraphStorage(RunningGraphRequest request)
{ {
return success(iSingleSiteService.getRunningGraphStorage(siteId)); return success(iSingleSiteService.getRunningGraphStorage(request));
} }
@GetMapping("/runningGraph/pcsMaxTemp") @GetMapping("/runningGraph/pcsMaxTemp")
public AjaxResult getRunningGraphPcsMaxTemp(@RequestParam String siteId) public AjaxResult getRunningGraphPcsMaxTemp(RunningGraphRequest request)
{ {
return success(iSingleSiteService.getRunningGraphPcsMaxTemp(siteId)); return success(iSingleSiteService.getRunningGraphPcsMaxTemp(request));
} }
@GetMapping("/runningGraph/batteryAveSoc") @GetMapping("/runningGraph/batteryAveSoc")
public AjaxResult getRunningGraphBatterySoc(@RequestParam String siteId) public AjaxResult getRunningGraphBatterySoc(RunningGraphRequest request)
{ {
return success(iSingleSiteService.getRunningGraphBatterySoc(siteId)); return success(iSingleSiteService.getRunningGraphBatterySoc(request));
} }
@GetMapping("/runningGraph/batteryAveTemp") @GetMapping("/runningGraph/batteryAveTemp")
public AjaxResult getRunningGraphBatteryTemp(@RequestParam String siteId) public AjaxResult getRunningGraphBatteryTemp(RunningGraphRequest request)
{ {
return success(iSingleSiteService.getRunningGraphBatteryTemp(siteId)); return success(iSingleSiteService.getRunningGraphBatteryTemp(request));
} }
/** /**

View File

@ -8,6 +8,11 @@ import java.util.Date;
* *
*/ */
public class BatteryAveSOCVo { public class BatteryAveSOCVo {
/**
* 游标显示日期
*/
private String dateDay;
/** /**
* 数据时间 * 数据时间
*/ */
@ -33,4 +38,12 @@ public class BatteryAveSOCVo {
public void setBatterySOC(BigDecimal batterySOC) { public void setBatterySOC(BigDecimal batterySOC) {
this.batterySOC = batterySOC; this.batterySOC = batterySOC;
} }
public String getDateDay() {
return dateDay;
}
public void setDateDay(String dateDay) {
this.dateDay = dateDay;
}
} }

View File

@ -8,6 +8,11 @@ import java.util.Date;
* *
*/ */
public class BatteryAveTempVo { public class BatteryAveTempVo {
/**
* 游标显示日期
*/
private String dateDay;
/** /**
* 数据时间 * 数据时间
*/ */
@ -33,4 +38,12 @@ public class BatteryAveTempVo {
public void setBatteryTemp(BigDecimal batteryTemp) { public void setBatteryTemp(BigDecimal batteryTemp) {
this.batteryTemp = batteryTemp; this.batteryTemp = batteryTemp;
} }
public String getDateDay() {
return dateDay;
}
public void setDateDay(String dateDay) {
this.dateDay = dateDay;
}
} }

View File

@ -8,6 +8,11 @@ import java.util.Date;
* *
*/ */
public class EnergyStoragePowVo { public class EnergyStoragePowVo {
/**
* 游标显示日期
*/
private String dateDay;
/** /**
* 显示日期 * 显示日期
*/ */
@ -54,6 +59,14 @@ public class EnergyStoragePowVo {
return pcsTotalReactivePower; return pcsTotalReactivePower;
} }
public String getDateDay() {
return dateDay;
}
public void setDateDay(String dateDay) {
this.dateDay = dateDay;
}
public void setPcsTotalReactivePower(BigDecimal pcsTotalReactivePower) { public void setPcsTotalReactivePower(BigDecimal pcsTotalReactivePower) {
this.pcsTotalReactivePower = pcsTotalReactivePower; this.pcsTotalReactivePower = pcsTotalReactivePower;
} }

View File

@ -7,6 +7,12 @@ import java.math.BigDecimal;
* *
*/ */
public class PcsMaxTempVo { public class PcsMaxTempVo {
/**
* 游标显示日期
*/
private String dateDay;
/** /**
* 数据时间 * 数据时间
*/ */
@ -42,4 +48,12 @@ public class PcsMaxTempVo {
public void setTemp(BigDecimal temp) { public void setTemp(BigDecimal temp) {
this.temp = temp; this.temp = temp;
} }
public String getDateDay() {
return dateDay;
}
public void setDateDay(String dateDay) {
this.dateDay = dateDay;
}
} }

View File

@ -0,0 +1,45 @@
package com.xzzn.ems.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
/**
* 实时运行曲线图请求参数
*/
public class RunningGraphRequest {
/** 开始时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startDate;
/** 结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endDate;
private String siteId;
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public String getSiteId() {
return siteId;
}
public void setSiteId(String siteId) {
this.siteId = siteId;
}
}

View File

@ -17,7 +17,7 @@ public interface ISingleSiteService
public SiteMonitorRunningHeadInfoVo getSiteRunningHeadInfo(String siteId); public SiteMonitorRunningHeadInfoVo getSiteRunningHeadInfo(String siteId);
public SiteMonitorRuningInfoVo getRunningGraphStorage(String siteId); public SiteMonitorRuningInfoVo getRunningGraphStorage(RunningGraphRequest request);
public List<PcsDetailInfoVo> getPcsDetailInfo(String siteId); public List<PcsDetailInfoVo> getPcsDetailInfo(String siteId);
@ -32,11 +32,11 @@ public interface ISingleSiteService
public List<AmmeterDataVo> getAmmeterDataList(String siteId); public List<AmmeterDataVo> getAmmeterDataList(String siteId);
public SiteMonitorRuningInfoVo getRunningGraphPcsMaxTemp(String siteId); public SiteMonitorRuningInfoVo getRunningGraphPcsMaxTemp(RunningGraphRequest request);
public SiteMonitorRuningInfoVo getRunningGraphBatterySoc(String siteId); public SiteMonitorRuningInfoVo getRunningGraphBatterySoc(RunningGraphRequest request);
public SiteMonitorRuningInfoVo getRunningGraphBatteryTemp(String siteId); public SiteMonitorRuningInfoVo getRunningGraphBatteryTemp(RunningGraphRequest request);
public List<BMSBatteryDataList> getClusterBatteryList(String siteId, String stackDeviceId, String clusterDeviceId); public List<BMSBatteryDataList> getClusterBatteryList(String siteId, String stackDeviceId, String clusterDeviceId);

View File

@ -165,46 +165,50 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
// 获取单站监控实时运行-PCS有功无功功率 // 获取单站监控实时运行-PCS有功无功功率
@Override @Override
public SiteMonitorRuningInfoVo getRunningGraphStorage(String siteId) { public SiteMonitorRuningInfoVo getRunningGraphStorage(RunningGraphRequest request) {
SiteMonitorRuningInfoVo siteMonitorRuningInfoVo = new SiteMonitorRuningInfoVo(); SiteMonitorRuningInfoVo siteMonitorRuningInfoVo = new SiteMonitorRuningInfoVo();
if (!StringUtils.isEmpty(siteId)) { if (Objects.isNull(request) || StringUtils.isEmpty(request.getSiteId())) {
// 时间暂定今日+昨日 return siteMonitorRuningInfoVo;
Date today = DateUtils.getNowDate();
Date yesterday = DateUtils.addDays(today, -1);
//pcs有功无功
List<PcsPowerList> pcsPowerList = new ArrayList<>();
List<EnergyStoragePowVo> energyStoragePowList = emsPcsDataMapper.getStoragePowerList(siteId, yesterday, today);
// List<EnergyStoragePowVo> -> 按pcs的deviceId分组转成List<PcsPowerList>
if (!CollectionUtils.isEmpty(energyStoragePowList)) {
Map<String, List<EnergyStoragePowVo>> dataMap = energyStoragePowList.stream()
.collect(Collectors.groupingBy(
EnergyStoragePowVo::getDeviceId,
Collectors.toList()));
pcsPowerList = dataMap.entrySet().stream()
.map(entry -> {
PcsPowerList pcdData = new PcsPowerList();
pcdData.setDeviceId(entry.getKey());
pcdData.setEnergyStoragePowList(entry.getValue());
return pcdData;
}).collect(Collectors.toList());
// 生成时间列表(每分钟一个)
List<LocalDateTime> targetMinutes = new ArrayList<>(60);
LocalDateTime startDate = DateUtils.toLocalDateTime(yesterday).truncatedTo(ChronoUnit.DAYS);
LocalDateTime endDate = DateUtils.toLocalDateTime(today);
while (startDate.isBefore(endDate)) {
targetMinutes.add(startDate);
startDate = startDate.plusMinutes(1); // 递增1分钟
}
// 根据时间列表填充数据
pcsPowerList = fullFillData(pcsPowerList,targetMinutes);
}
siteMonitorRuningInfoVo.setPcsPowerList(pcsPowerList);
} }
// // 时间暂定今日+昨日
// Date today = DateUtils.getNowDate();
// Date yesterday = DateUtils.addDays(today, -1);
Date startDate = request.getStartDate();
Date endDate = request.getEndDate();
//pcs有功无功
List<PcsPowerList> pcsPowerList = new ArrayList<>();
List<EnergyStoragePowVo> energyStoragePowList = emsPcsDataMapper.getStoragePowerList(request.getSiteId(), startDate, endDate);
// List<EnergyStoragePowVo> -> 按pcs的deviceId分组转成List<PcsPowerList>
if (!CollectionUtils.isEmpty(energyStoragePowList)) {
Map<String, List<EnergyStoragePowVo>> dataMap = energyStoragePowList.stream()
.collect(Collectors.groupingBy(
EnergyStoragePowVo::getDeviceId,
Collectors.toList()));
pcsPowerList = dataMap.entrySet().stream()
.map(entry -> {
PcsPowerList pcdData = new PcsPowerList();
pcdData.setDeviceId(entry.getKey());
pcdData.setEnergyStoragePowList(entry.getValue());
return pcdData;
}).collect(Collectors.toList());
// // 生成时间列表(每分钟一个)
// List<LocalDateTime> targetMinutes = new ArrayList<>(60);
// LocalDateTime startDate = DateUtils.toLocalDateTime(yesterday).truncatedTo(ChronoUnit.DAYS);
// LocalDateTime endDate = DateUtils.toLocalDateTime(today);
// while (startDate.isBefore(endDate)) {
// targetMinutes.add(startDate);
// startDate = startDate.plusMinutes(1); // 递增1分钟
// }
// // 根据时间列表填充数据
// pcsPowerList = fullFillData(pcsPowerList, targetMinutes);
}
siteMonitorRuningInfoVo.setPcsPowerList(pcsPowerList);
return siteMonitorRuningInfoVo; return siteMonitorRuningInfoVo;
} }
private List<PcsPowerList> fullFillData(List<PcsPowerList> pcsPowerList, List<LocalDateTime> targetMinutes) { private List<PcsPowerList> fullFillData(List<PcsPowerList> pcsPowerList, List<LocalDateTime> targetMinutes) {
@ -259,18 +263,21 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
// 获取单站监控实时运行-pcs最高温度 // 获取单站监控实时运行-pcs最高温度
@Override @Override
public SiteMonitorRuningInfoVo getRunningGraphPcsMaxTemp(String siteId) { public SiteMonitorRuningInfoVo getRunningGraphPcsMaxTemp(RunningGraphRequest request) {
SiteMonitorRuningInfoVo siteMonitorRuningInfoVo = new SiteMonitorRuningInfoVo(); SiteMonitorRuningInfoVo siteMonitorRuningInfoVo = new SiteMonitorRuningInfoVo();
List<PcsMaxTempList> pcsMaxTempList = new ArrayList<>(); List<PcsMaxTempList> pcsMaxTempList = new ArrayList<>();
// 时间暂定今日+昨日 // // 时间暂定今日+昨日
Date today = new Date(); // Date today = new Date();
Date yesterday = DateUtils.addDays(today, -1); // Date yesterday = DateUtils.addDays(today, -1);
String siteId = request.getSiteId();
Date startDate = request.getStartDate();
Date endDate = request.getEndDate();
//PCS最高温度list //PCS最高温度list
List<PcsMaxTempVo> pcsMaxTempVos = new ArrayList<>(); List<PcsMaxTempVo> pcsMaxTempVos = new ArrayList<>();
if (SiteEnum.FX.getCode().equals(siteId)) { if (SiteEnum.FX.getCode().equals(siteId)) {
pcsMaxTempVos = emsPcsDataMapper.getFXMaxTemp(siteId, yesterday, today); pcsMaxTempVos = emsPcsDataMapper.getFXMaxTemp(siteId, startDate, endDate);
} else if (SiteEnum.DDS.getCode().equals(siteId)) { } else if (SiteEnum.DDS.getCode().equals(siteId)) {
pcsMaxTempVos = emsPcsDataMapper.getDDSMaxTemp(siteId, yesterday, today); pcsMaxTempVos = emsPcsDataMapper.getDDSMaxTemp(siteId, startDate, endDate);
} }
// List<PcsMaxTempVo> -> 按pcs的deviceId分组转成List<PcsMaxTempList> // List<PcsMaxTempVo> -> 按pcs的deviceId分组转成List<PcsMaxTempList>
@ -288,16 +295,16 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
return pcdData; return pcdData;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
// 生成时间列表(每小时一个) // // 生成时间列表(每小时一个)
List<LocalDateTime> targetHours = new ArrayList<>(60); // List<LocalDateTime> targetHours = new ArrayList<>(60);
LocalDateTime startDate = DateUtils.toLocalDateTime(yesterday).truncatedTo(ChronoUnit.DAYS); // LocalDateTime startDate = DateUtils.toLocalDateTime(yesterday).truncatedTo(ChronoUnit.DAYS);
LocalDateTime endDate = DateUtils.toLocalDateTime(today); // LocalDateTime endDate = DateUtils.toLocalDateTime(today);
while (startDate.isBefore(endDate)) { // while (startDate.isBefore(endDate)) {
targetHours.add(startDate); // targetHours.add(startDate);
startDate = startDate.plusHours(1); // 递增1小时 // startDate = startDate.plusHours(1); // 递增1小时
} // }
// 根据时间列表填充数据 // // 根据时间列表填充数据
pcsMaxTempList = fullFillMaxTempData(pcsMaxTempList,targetHours); // pcsMaxTempList = fullFillMaxTempData(pcsMaxTempList,targetHours);
} }
siteMonitorRuningInfoVo.setPcsMaxTempList(pcsMaxTempList); siteMonitorRuningInfoVo.setPcsMaxTempList(pcsMaxTempList);
@ -355,35 +362,49 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
// 获取单站监控实时运行-平均soc // 获取单站监控实时运行-平均soc
@Override @Override
public SiteMonitorRuningInfoVo getRunningGraphBatterySoc(String siteId) { public SiteMonitorRuningInfoVo getRunningGraphBatterySoc(RunningGraphRequest request) {
SiteMonitorRuningInfoVo siteMonitorRuningInfoVo = new SiteMonitorRuningInfoVo(); SiteMonitorRuningInfoVo siteMonitorRuningInfoVo = new SiteMonitorRuningInfoVo();
if (!StringUtils.isEmpty(siteId)) { if (!StringUtils.isEmpty(request.getSiteId())) {
// 时间暂定今日+昨日 // // 时间暂定今日+昨日
Date today = new Date(); // Date today = new Date();
Date yesterday = DateUtils.addDays(today, -1); // Date yesterday = DateUtils.addDays(today, -1);
//电池平均soclist //电池平均soclist
List<BatteryAveSOCVo> batteryAveSOCList = emsBatteryStackMapper.getAveSocList(siteId, yesterday, today); List<BatteryAveSOCVo> batteryAveSOCList = emsBatteryStackMapper.getAveSocList(request.getSiteId(), request.getStartDate(), request.getEndDate());
siteMonitorRuningInfoVo.setBatteryAveSOCList(batteryAveSOCList); siteMonitorRuningInfoVo.setBatteryAveSOCList(batteryAveSOCList);
} }
return siteMonitorRuningInfoVo; return siteMonitorRuningInfoVo;
} }
// 获取单站监控实时运行-电池平均温度 // 获取单站监控实时运行-电池平均温度
@Override @Override
public SiteMonitorRuningInfoVo getRunningGraphBatteryTemp(String siteId) { public SiteMonitorRuningInfoVo getRunningGraphBatteryTemp(RunningGraphRequest request) {
SiteMonitorRuningInfoVo siteMonitorRuningInfoVo = new SiteMonitorRuningInfoVo(); SiteMonitorRuningInfoVo siteMonitorRuningInfoVo = new SiteMonitorRuningInfoVo();
if (!StringUtils.isEmpty(siteId)) { if (Objects.isNull(request) || StringUtils.isEmpty(request.getSiteId())) {
// 时间暂定今日+昨日 return siteMonitorRuningInfoVo;
Date today = new Date();
Date yesterday = DateUtils.addDays(today, -1);
//电池平均温度list
List<BatteryAveTempVo> batteryAveTempList = new ArrayList<>();
if (SiteEnum.FX.getCode().equals(siteId)) {
batteryAveTempList = emsBatteryClusterMapper.getBatteryAveTempList(siteId, yesterday, today);
} else if (SiteEnum.DDS.getCode().equals(siteId)) {
batteryAveTempList = emsBatteryStackMapper.getBatteryAveTempList(siteId, yesterday, today);
}
siteMonitorRuningInfoVo.setBatteryAveTempList(batteryAveTempList);
} }
String siteId = request.getSiteId();
Date startDate = request.getStartDate();
Date endDate = request.getEndDate();
//电池平均温度list
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);
}
siteMonitorRuningInfoVo.setBatteryAveTempList(batteryAveTempList);
// if (!StringUtils.isEmpty(siteId)) {
// // 时间暂定今日+昨日
// Date today = new Date();
// Date yesterday = DateUtils.addDays(today, -1);
// //电池平均温度list
// List<BatteryAveTempVo> batteryAveTempList = new ArrayList<>();
// if (SiteEnum.FX.getCode().equals(siteId)) {
// batteryAveTempList = emsBatteryClusterMapper.getBatteryAveTempList(siteId, yesterday, today);
// } else if (SiteEnum.DDS.getCode().equals(siteId)) {
// batteryAveTempList = emsBatteryStackMapper.getBatteryAveTempList(siteId, yesterday, today);
// }
// siteMonitorRuningInfoVo.setBatteryAveTempList(batteryAveTempList);
// }
return siteMonitorRuningInfoVo; return siteMonitorRuningInfoVo;
} }

View File

@ -327,13 +327,12 @@
<select id="getBatteryAveTempList" resultType="com.xzzn.ems.domain.vo.BatteryAveTempVo"> <select id="getBatteryAveTempList" resultType="com.xzzn.ems.domain.vo.BatteryAveTempVo">
select t.site_id, select t.site_id,
avg(t.avg_cell_temp) as batteryTemp, round(avg(t.avg_cell_temp)) as batteryTemp,
DATE_FORMAT(t.create_time, '%Y-%m-%d') AS dateDay, DATE_FORMAT(t.create_time, '%Y-%m-%d') AS dateDay,
DATE_FORMAT(t.create_time, '%H:%i:00') AS createDate DATE_FORMAT(t.create_time, '%H:00:00') AS createDate
from ems_battery_cluster t from ems_battery_cluster t
where t.site_id = #{siteId} where t.site_id = #{siteId}
AND t.create_time &gt;= Date(#{startDate}) AND Date(t.create_time) between #{startDate} and #{endDate}
AND t.create_time &lt;= #{endDate}
GROUP BY t.site_id,dateDay,createDate GROUP BY t.site_id,dateDay,createDate
order by dateDay,createDate order by dateDay,createDate
</select> </select>

View File

@ -347,13 +347,12 @@
<select id="getBatteryAveTempList" resultType="com.xzzn.ems.domain.vo.BatteryAveTempVo"> <select id="getBatteryAveTempList" resultType="com.xzzn.ems.domain.vo.BatteryAveTempVo">
select t.site_id, select t.site_id,
avg(t.avg_temperature) as batteryTemp, round(avg(t.avg_cell_temp)) as batteryTemp,
DATE_FORMAT(t.create_time, '%Y-%m-%d') AS dateDay, DATE_FORMAT(t.create_time, '%Y-%m-%d') AS dateDay,
DATE_FORMAT(t.create_time, '%H:%i:00') AS createDate DATE_FORMAT(t.create_time, '%H:00:00') AS createDate
from ems_battery_stack t from ems_battery_stack t
where t.site_id = #{siteId} where t.site_id = #{siteId}
AND t.create_time &gt;= Date(#{startDate}) AND Date(t.create_time) between #{startDate} and #{endDate}
AND t.create_time &lt;= #{endDate}
GROUP BY t.site_id,dateDay,createDate GROUP BY t.site_id,dateDay,createDate
order by dateDay,createDate order by dateDay,createDate
</select> </select>
@ -495,13 +494,12 @@
<select id="getAveSocList" resultType="com.xzzn.ems.domain.vo.BatteryAveSOCVo"> <select id="getAveSocList" resultType="com.xzzn.ems.domain.vo.BatteryAveSOCVo">
select t.site_id, select t.site_id,
avg(t.stack_soc) as batterySOC, round(avg(t.stack_soc)) as batterySOC,
DATE_FORMAT(t.create_time, '%Y-%m-%d') AS dateDay, DATE_FORMAT(t.create_time, '%Y-%m-%d') AS dateDay,
DATE_FORMAT(t.create_time, '%H:%i:00') AS createDate DATE_FORMAT(t.create_time, '%H:00:00') AS createDate
from ems_battery_stack t from ems_battery_stack t
where t.site_id = #{siteId} where t.site_id = #{siteId}
AND t.create_time &gt;= Date(#{startDate}) AND Date(t.create_time) between #{startDate} and #{endDate}
AND t.create_time &lt;= #{endDate}
GROUP BY t.site_id,dateDay,createDate GROUP BY t.site_id,dateDay,createDate
order by dateDay,createDate order by dateDay,createDate
</select> </select>

View File

@ -461,13 +461,14 @@
SELECT t.site_id,t.device_id as deviceId, SELECT t.site_id,t.device_id as deviceId,
t.total_active_power AS pcsTotalActPower, t.total_active_power AS pcsTotalActPower,
t.total_reactive_power AS pcsTotalReactivePower, t.total_reactive_power AS pcsTotalReactivePower,
DATE_FORMAT(t.data_update_time, '%Y-%m-%d %H:%i:00') AS createDate DATE_FORMAT(t.create_time, '%Y-%m-%d') AS dateDay,
DATE_FORMAT(t.data_update_time, '%H:%i:00') AS createDate
FROM ems_pcs_data t FROM ems_pcs_data t
WHERE t.site_id = #{siteId} WHERE t.site_id = #{siteId}
AND t.data_update_time &gt;= Date(#{startDate}) AND Date(t.data_update_time) between #{startDate} and #{endDate}
AND t.data_update_time &lt;= #{endDate} AND minute(t.data_update_time) = 0
GROUP BY t.site_id, deviceId,pcsTotalActPower,pcsTotalReactivePower,createDate GROUP BY t.site_id, deviceId,pcsTotalActPower,pcsTotalReactivePower,dateDay,createDate
ORDER BY createDate ORDER BY dateDay,createDate
</select> </select>
<select id="getPcsDataByMonth" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo"> <select id="getPcsDataByMonth" resultType="com.xzzn.ems.domain.vo.SiteMonitorDataVo">
@ -581,18 +582,19 @@
COALESCE(t.v_temperature, -999), COALESCE(t.v_temperature, -999),
COALESCE(t.w_temperature, -999) COALESCE(t.w_temperature, -999)
) AS temp, ) AS temp,
latest.dateHour as createDate DATE_FORMAT(latest.dateHour, '%Y-%m-%d') AS dateDay,
DATE_FORMAT(latest.dateHour, '%H:%i:00') AS createDate
from ( SELECT p.site_id, p.device_id,DATE_FORMAT(p.data_update_time, '%Y-%m-%d %H:00:00') AS dateHour,MAX(p.data_update_time) as max_update_time from ( SELECT p.site_id, p.device_id,DATE_FORMAT(p.data_update_time, '%Y-%m-%d %H:00:00') AS dateHour,MAX(p.data_update_time) as max_update_time
FROM ems_pcs_data p FROM ems_pcs_data p
WHERE p.site_id = #{siteId} WHERE p.site_id = #{siteId}
AND p.data_update_time &gt;= Date(#{startDate}) AND Date(p.data_update_time) between #{startDate} and #{endDate}
AND p.data_update_time &lt;= #{endDate} AND minute(p.data_update_time) = 0
GROUP BY p.site_id, p.device_id,dateHour GROUP BY p.site_id, p.device_id,dateHour
) latest inner join ems_pcs_data t ON latest.site_id = t.site_id ) latest inner join ems_pcs_data t ON latest.site_id = t.site_id
AND latest.device_id = t.device_id AND latest.device_id = t.device_id
AND latest.max_update_time = t.data_update_time AND latest.max_update_time = t.data_update_time
group by deviceId,createDate,temp group by deviceId,dateDay,createDate,temp
order by createDate desc order by dateDay,createDate
</select> </select>
<select id="getDDSMaxTemp" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.PcsMaxTempVo"> <select id="getDDSMaxTemp" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.PcsMaxTempVo">
@ -603,17 +605,18 @@
COALESCE(t.module3_temp, -999), COALESCE(t.module3_temp, -999),
COALESCE(t.module4_temp, -999) COALESCE(t.module4_temp, -999)
) AS temp, ) AS temp,
latest.dateHour as createDate DATE_FORMAT(latest.dateHour, '%Y-%m-%d') AS dateDay,
DATE_FORMAT(latest.dateHour, '%H:%i:00') AS createDate
from ( SELECT p.site_id, p.device_id,DATE_FORMAT(p.data_update_time, '%Y-%m-%d %H:00:00') AS dateHour,MAX(p.data_update_time) as max_update_time from ( SELECT p.site_id, p.device_id,DATE_FORMAT(p.data_update_time, '%Y-%m-%d %H:00:00') AS dateHour,MAX(p.data_update_time) as max_update_time
FROM ems_pcs_data p FROM ems_pcs_data p
WHERE p.site_id = #{siteId} WHERE p.site_id = #{siteId}
AND p.data_update_time &gt;= Date(#{startDate}) AND Date(p.data_update_time) between #{startDate} and #{endDate}
AND p.data_update_time &lt;= #{endDate} AND minute(p.data_update_time) = 0
GROUP BY p.site_id, p.device_id,dateHour GROUP BY p.site_id, p.device_id,dateHour
) latest inner join ems_pcs_data t ON latest.site_id = t.site_id ) latest inner join ems_pcs_data t ON latest.site_id = t.site_id
AND latest.device_id = t.device_id AND latest.device_id = t.device_id
AND latest.max_update_time = t.data_update_time AND latest.max_update_time = t.data_update_time
group by deviceId,createDate,temp group by deviceId,dateDay,createDate,temp
order by createDate desc order by dateDay,createDate
</select> </select>
</mapper> </mapper>