0918优化-单站监控-实时运行曲线图取值
This commit is contained in:
@ -356,4 +356,20 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
|
|||||||
String dateStr = convertToString(time);
|
String dateStr = convertToString(time);
|
||||||
return dateTime(YYYY_MM_DD_HH_MM_SS,dateStr);
|
return dateTime(YYYY_MM_DD_HH_MM_SS,dateStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 增加 Date ==> LocalDateTime
|
||||||
|
*/
|
||||||
|
public static LocalDateTime toLocalDateTime(Date date)
|
||||||
|
{
|
||||||
|
if (date == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1. Date → LocalDateTime(保留原始时间)
|
||||||
|
LocalDateTime dateTime = date.toInstant()
|
||||||
|
.atZone(TimeZone.getDefault().toZoneId()) // 关联时区
|
||||||
|
.toLocalDateTime();
|
||||||
|
return dateTime;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import java.math.BigDecimal;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 实时运行-储能功率数据
|
* 实时运行-有功无功功率数据
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class EnergyStoragePowVo {
|
public class EnergyStoragePowVo {
|
||||||
@ -12,7 +12,7 @@ public class EnergyStoragePowVo {
|
|||||||
* 显示日期
|
* 显示日期
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private Date createDate;
|
private String createDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pcs实时有功功率
|
* pcs实时有功功率
|
||||||
@ -24,12 +24,21 @@ public class EnergyStoragePowVo {
|
|||||||
*/
|
*/
|
||||||
private BigDecimal pcsTotalReactivePower;
|
private BigDecimal pcsTotalReactivePower;
|
||||||
|
|
||||||
|
private String deviceId;
|
||||||
|
|
||||||
public Date getCreateDate() {
|
public String getDeviceId() {
|
||||||
|
return deviceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeviceId(String deviceId) {
|
||||||
|
this.deviceId = deviceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCreateDate() {
|
||||||
return createDate;
|
return createDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCreateDate(Date createDate) {
|
public void setCreateDate(String createDate) {
|
||||||
this.createDate = createDate;
|
this.createDate = createDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,32 @@
|
|||||||
|
package com.xzzn.ems.domain.vo;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实时运行-PCS数据list
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class PcsPowerList {
|
||||||
|
|
||||||
|
private String deviceId;
|
||||||
|
// 有功和无功功率数据
|
||||||
|
private List<EnergyStoragePowVo> energyStoragePowList;
|
||||||
|
|
||||||
|
public List<EnergyStoragePowVo> getEnergyStoragePowList() {
|
||||||
|
return energyStoragePowList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnergyStoragePowList(List<EnergyStoragePowVo> energyStoragePowList) {
|
||||||
|
this.energyStoragePowList = energyStoragePowList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDeviceId() {
|
||||||
|
return deviceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeviceId(String deviceId) {
|
||||||
|
this.deviceId = deviceId;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -8,17 +8,17 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public class SiteMonitorRuningInfoVo {
|
public class SiteMonitorRuningInfoVo {
|
||||||
/**
|
/**
|
||||||
* 储能功率list
|
* PCS有功和无功功率
|
||||||
*/
|
*/
|
||||||
private List<EnergyStoragePowVo> energyStoragePowList;
|
private List<PcsPowerList> pcsPowerList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pcs平均温度list
|
* PCS最高温度
|
||||||
*/
|
*/
|
||||||
private List<StackAveTempVo> stackAveTempList;
|
private List<StackAveTempVo> stackAveTempList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电池平均soclist
|
* 平均soclist
|
||||||
*/
|
*/
|
||||||
private List<BatteryAveSOCVo> batteryAveSOCList;
|
private List<BatteryAveSOCVo> batteryAveSOCList;
|
||||||
|
|
||||||
@ -27,12 +27,12 @@ public class SiteMonitorRuningInfoVo {
|
|||||||
*/
|
*/
|
||||||
private List<BatteryAveTempVo> batteryAveTempList;
|
private List<BatteryAveTempVo> batteryAveTempList;
|
||||||
|
|
||||||
public List<EnergyStoragePowVo> getEnergyStoragePowList() {
|
public List<PcsPowerList> getPcsPowerList() {
|
||||||
return energyStoragePowList;
|
return pcsPowerList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setEnergyStoragePowList(List<EnergyStoragePowVo> energyStoragePowList) {
|
public void setPcsPowerList(List<PcsPowerList> pcsPowerList) {
|
||||||
this.energyStoragePowList = energyStoragePowList;
|
this.pcsPowerList = pcsPowerList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<StackAveTempVo> getStackAveTempList() {
|
public List<StackAveTempVo> getStackAveTempList() {
|
||||||
|
|||||||
@ -73,15 +73,7 @@ public interface EmsBatteryClusterMapper
|
|||||||
*/
|
*/
|
||||||
public List<BMSBatteryDataList> getBmsBatteryData(@Param("siteId")String siteId, @Param("stackDeviceId")String stackDeviceId);
|
public List<BMSBatteryDataList> getBmsBatteryData(@Param("siteId")String siteId, @Param("stackDeviceId")String stackDeviceId);
|
||||||
|
|
||||||
/**
|
// 实时运行-FX平均温度
|
||||||
* 实时运行-平均soc+平均温度
|
|
||||||
* @param siteId
|
|
||||||
* @param startDate
|
|
||||||
* @param endDate
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public List<BatteryAveSOCVo> getAveSocList(@Param("siteId")String siteId, @Param("startDate") Date startDate, @Param("endDate")Date endDate);
|
|
||||||
|
|
||||||
public List<BatteryAveTempVo> getBatteryAveTempList(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
|
public List<BatteryAveTempVo> getBatteryAveTempList(@Param("siteId")String siteId, @Param("startDate")Date startDate, @Param("endDate")Date endDate);
|
||||||
|
|
||||||
/** 堆电池温度数据-获取当天每小时簇 */
|
/** 堆电池温度数据-获取当天每小时簇 */
|
||||||
|
|||||||
@ -3,10 +3,7 @@ package com.xzzn.ems.mapper;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.xzzn.ems.domain.EmsBatteryStack;
|
import com.xzzn.ems.domain.EmsBatteryStack;
|
||||||
import com.xzzn.ems.domain.vo.DateSearchRequest;
|
import com.xzzn.ems.domain.vo.*;
|
||||||
import com.xzzn.ems.domain.vo.StackAveTempVo;
|
|
||||||
import com.xzzn.ems.domain.vo.StackPointVo;
|
|
||||||
import com.xzzn.ems.domain.vo.StackStatisListVo;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -91,4 +88,10 @@ public interface EmsBatteryStackMapper
|
|||||||
public List<StackPointVo> getStackPointByHour(DateSearchRequest requestVo);
|
public List<StackPointVo> getStackPointByHour(DateSearchRequest requestVo);
|
||||||
public List<StackPointVo> getStackPointByDay(DateSearchRequest requestVo);
|
public List<StackPointVo> getStackPointByDay(DateSearchRequest requestVo);
|
||||||
public List<StackPointVo> getStackPointByMonth(DateSearchRequest requestVo);
|
public List<StackPointVo> getStackPointByMonth(DateSearchRequest requestVo);
|
||||||
|
|
||||||
|
|
||||||
|
// 实时运行-平均soc
|
||||||
|
public List<BatteryAveSOCVo> getAveSocList(@Param("siteId") String siteId, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
|
||||||
|
// 实时运行-DDS平均温度
|
||||||
|
public List<BatteryAveTempVo> getBatteryAveTempList(@Param("siteId")String siteId, @Param("startDate")Date yesterday, @Param("endDate") Date today);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import java.math.RoundingMode;
|
|||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.LocalTime;
|
import java.time.LocalTime;
|
||||||
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -36,10 +37,6 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
|
|
||||||
private static final String CLUSTER_DATA_SOC = "SOC";
|
private static final String CLUSTER_DATA_SOC = "SOC";
|
||||||
|
|
||||||
private static final String AMMETER_DEVICE_LOAD = "LOAD";
|
|
||||||
|
|
||||||
private static final String AMMETER_DEVICE_METE = "METE";
|
|
||||||
|
|
||||||
private static Map<String, BigDecimal> storageFactor = new HashMap<>();
|
private static Map<String, BigDecimal> storageFactor = new HashMap<>();
|
||||||
static {
|
static {
|
||||||
storageFactor.put("021_DDS_01", new BigDecimal("0.1"));
|
storageFactor.put("021_DDS_01", new BigDecimal("0.1"));
|
||||||
@ -157,7 +154,7 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
return siteMonitorRunningHeadInfoVo;
|
return siteMonitorRunningHeadInfoVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取单站监控实时运行-储能功率数据
|
// 获取单站监控实时运行-PCS有功无功功率
|
||||||
@Override
|
@Override
|
||||||
public SiteMonitorRuningInfoVo getRunningGraphStorage(String siteId) {
|
public SiteMonitorRuningInfoVo getRunningGraphStorage(String siteId) {
|
||||||
SiteMonitorRuningInfoVo siteMonitorRuningInfoVo = new SiteMonitorRuningInfoVo();
|
SiteMonitorRuningInfoVo siteMonitorRuningInfoVo = new SiteMonitorRuningInfoVo();
|
||||||
@ -166,12 +163,92 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
Date today = DateUtils.getNowDate();
|
Date today = DateUtils.getNowDate();
|
||||||
Date yesterday = DateUtils.addDays(today, -1);
|
Date yesterday = DateUtils.addDays(today, -1);
|
||||||
|
|
||||||
//储能功率list
|
//pcs有功无功
|
||||||
|
List<PcsPowerList> pcsPowerList = new ArrayList<>();
|
||||||
List<EnergyStoragePowVo> energyStoragePowList = emsPcsDataMapper.getStoragePowerList(siteId, yesterday, today);
|
List<EnergyStoragePowVo> energyStoragePowList = emsPcsDataMapper.getStoragePowerList(siteId, yesterday, today);
|
||||||
siteMonitorRuningInfoVo.setEnergyStoragePowList(energyStoragePowList);
|
|
||||||
|
// 生成时间列表(每分钟一个)
|
||||||
|
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分钟
|
||||||
|
}
|
||||||
|
|
||||||
|
// 数据格式转换
|
||||||
|
if (!CollectionUtils.isEmpty(energyStoragePowList) && !CollectionUtils.isEmpty(targetMinutes)) {
|
||||||
|
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());
|
||||||
|
|
||||||
|
// 根据时间列表填充数据
|
||||||
|
pcsPowerList = fullFillData(pcsPowerList,targetMinutes);
|
||||||
|
}
|
||||||
|
|
||||||
|
siteMonitorRuningInfoVo.setPcsPowerList(pcsPowerList);
|
||||||
}
|
}
|
||||||
return siteMonitorRuningInfoVo;
|
return siteMonitorRuningInfoVo;
|
||||||
}
|
}
|
||||||
|
private List<PcsPowerList> fullFillData(List<PcsPowerList> pcsPowerList, List<LocalDateTime> targetMinutes) {
|
||||||
|
List<PcsPowerList> resultList = new ArrayList<>();
|
||||||
|
|
||||||
|
for (PcsPowerList pcsPower : pcsPowerList) {
|
||||||
|
Map<String, EnergyStoragePowVo> dataMap = new HashMap<>();
|
||||||
|
PcsPowerList pcsResultPower = new PcsPowerList();
|
||||||
|
String deviceId = pcsPower.getDeviceId();
|
||||||
|
List<EnergyStoragePowVo> powerList = pcsPower.getEnergyStoragePowList();
|
||||||
|
|
||||||
|
if (CollectionUtils.isEmpty(powerList)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// 将数据转Map便于后续根据时间获取
|
||||||
|
dataMap = powerList.stream().collect(
|
||||||
|
Collectors.toMap(
|
||||||
|
data -> data.getCreateDate(),
|
||||||
|
data -> data,
|
||||||
|
(existing, replacement) -> replacement
|
||||||
|
));
|
||||||
|
|
||||||
|
// 按时间列表遍历
|
||||||
|
List<EnergyStoragePowVo> resultPowerList = new ArrayList<>();
|
||||||
|
EnergyStoragePowVo lastData = null;
|
||||||
|
for(LocalDateTime targetMinute : targetMinutes) {
|
||||||
|
String currentDate = DateUtils.convertToString(targetMinute);
|
||||||
|
EnergyStoragePowVo currentData = dataMap.get(currentDate);
|
||||||
|
if (currentData == null && lastData != null) {
|
||||||
|
BigDecimal pcsTotalActPower = lastData.getPcsTotalActPower();
|
||||||
|
BigDecimal pcsTotalReactivePower = lastData.getPcsTotalReactivePower();
|
||||||
|
currentData = new EnergyStoragePowVo();
|
||||||
|
currentData.setPcsTotalActPower(pcsTotalActPower);
|
||||||
|
currentData.setPcsTotalReactivePower(pcsTotalReactivePower);
|
||||||
|
currentData.setDeviceId(deviceId);
|
||||||
|
} else if (currentData == null && lastData == null){
|
||||||
|
// 开头无数据,所有字段设为null
|
||||||
|
currentData = new EnergyStoragePowVo();
|
||||||
|
currentData.setDeviceId(deviceId);
|
||||||
|
}
|
||||||
|
lastData = currentData;
|
||||||
|
currentData.setCreateDate(currentDate.substring(11));
|
||||||
|
resultPowerList.add(currentData);
|
||||||
|
}
|
||||||
|
pcsResultPower.setDeviceId(deviceId);
|
||||||
|
pcsResultPower.setEnergyStoragePowList(resultPowerList);
|
||||||
|
resultList.add(pcsResultPower);
|
||||||
|
}
|
||||||
|
|
||||||
|
return resultList;
|
||||||
|
}
|
||||||
|
|
||||||
// 获取单站监控实时运行-stack平均温度
|
// 获取单站监控实时运行-stack平均温度
|
||||||
// 20250811 按小时
|
// 20250811 按小时
|
||||||
@Override
|
@Override
|
||||||
@ -187,7 +264,7 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
}
|
}
|
||||||
return siteMonitorRuningInfoVo;
|
return siteMonitorRuningInfoVo;
|
||||||
}
|
}
|
||||||
// 获取单站监控实时运行-电池平均soc
|
// 获取单站监控实时运行-平均soc
|
||||||
@Override
|
@Override
|
||||||
public SiteMonitorRuningInfoVo getRunningGraphBatterySoc(String siteId) {
|
public SiteMonitorRuningInfoVo getRunningGraphBatterySoc(String siteId) {
|
||||||
SiteMonitorRuningInfoVo siteMonitorRuningInfoVo = new SiteMonitorRuningInfoVo();
|
SiteMonitorRuningInfoVo siteMonitorRuningInfoVo = new SiteMonitorRuningInfoVo();
|
||||||
@ -196,7 +273,7 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
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 = emsBatteryClusterMapper.getAveSocList(siteId, yesterday, today);
|
List<BatteryAveSOCVo> batteryAveSOCList = emsBatteryStackMapper.getAveSocList(siteId, yesterday, today);
|
||||||
siteMonitorRuningInfoVo.setBatteryAveSOCList(batteryAveSOCList);
|
siteMonitorRuningInfoVo.setBatteryAveSOCList(batteryAveSOCList);
|
||||||
}
|
}
|
||||||
return siteMonitorRuningInfoVo;
|
return siteMonitorRuningInfoVo;
|
||||||
@ -210,7 +287,12 @@ public class SingleSiteServiceImpl implements ISingleSiteService {
|
|||||||
Date today = new Date();
|
Date today = new Date();
|
||||||
Date yesterday = DateUtils.addDays(today, -1);
|
Date yesterday = DateUtils.addDays(today, -1);
|
||||||
//电池平均温度list
|
//电池平均温度list
|
||||||
List<BatteryAveTempVo> batteryAveTempList = emsBatteryClusterMapper.getBatteryAveTempList(siteId, yesterday, today);
|
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);
|
siteMonitorRuningInfoVo.setBatteryAveTempList(batteryAveTempList);
|
||||||
}
|
}
|
||||||
return siteMonitorRuningInfoVo;
|
return siteMonitorRuningInfoVo;
|
||||||
|
|||||||
@ -325,19 +325,6 @@
|
|||||||
t.max_cell_temp,t.min_cell_temp
|
t.max_cell_temp,t.min_cell_temp
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<select id="getAveSocList" resultType="com.xzzn.ems.domain.vo.BatteryAveSOCVo">
|
|
||||||
select t.site_id,
|
|
||||||
avg(t.battery_pack_soc) as batterySOC,
|
|
||||||
DATE_FORMAT(t.create_time, '%Y-%m-%d %H:%i:00') AS createDate
|
|
||||||
from ems_battery_cluster t
|
|
||||||
where t.site_id = #{siteId}
|
|
||||||
AND t.create_time >= Date(#{startDate})
|
|
||||||
AND t.create_time <= #{endDate}
|
|
||||||
GROUP BY t.site_id,DATE_FORMAT(t.create_time, '%Y-%m-%d %H:%i:00')
|
|
||||||
order by createDate
|
|
||||||
</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,
|
select t.site_id,
|
||||||
avg(t.avg_cell_temp) as batteryTemp,
|
avg(t.avg_cell_temp) as batteryTemp,
|
||||||
|
|||||||
@ -345,10 +345,10 @@
|
|||||||
</foreach>
|
</foreach>
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
<select id="getStackAveTempList" resultType="com.xzzn.ems.domain.vo.StackAveTempVo">
|
<select id="getBatteryAveTempList" resultType="com.xzzn.ems.domain.vo.BatteryAveTempVo">
|
||||||
select t.site_id,
|
select t.site_id,
|
||||||
avg(t.operating_temp) as temp,
|
avg(t.avg_temperature) as batteryTemp,
|
||||||
DATE_FORMAT(t.create_time, '%Y-%m-%d %H:00:00') AS createDate
|
DATE_FORMAT(t.create_time, '%Y-%m-%d %H:%i: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 >= Date(#{startDate})
|
AND t.create_time >= Date(#{startDate})
|
||||||
@ -491,4 +491,16 @@
|
|||||||
GROUP BY latest.dateMonth
|
GROUP BY latest.dateMonth
|
||||||
ORDER BY statisDate
|
ORDER BY statisDate
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getAveSocList" resultType="com.xzzn.ems.domain.vo.BatteryAveSOCVo">
|
||||||
|
select t.site_id,
|
||||||
|
avg(t.stack_soc) as batterySOC,
|
||||||
|
DATE_FORMAT(t.create_time, '%Y-%m-%d %H:%i:00') AS createDate
|
||||||
|
from ems_battery_stack t
|
||||||
|
where t.site_id = #{siteId}
|
||||||
|
AND t.create_time >= Date(#{startDate})
|
||||||
|
AND t.create_time <= #{endDate}
|
||||||
|
GROUP BY t.site_id,DATE_FORMAT(t.create_time, '%Y-%m-%d %H:%i:00')
|
||||||
|
order by createDate
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@ -424,15 +424,15 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getStoragePowerList" resultType="com.xzzn.ems.domain.vo.EnergyStoragePowVo">
|
<select id="getStoragePowerList" resultType="com.xzzn.ems.domain.vo.EnergyStoragePowVo">
|
||||||
SELECT t.site_id,
|
SELECT t.site_id,t.device_id as deviceId,
|
||||||
SUM(t.total_active_power) AS pcsTotalActPower,
|
t.total_active_power AS pcsTotalActPower,
|
||||||
SUM(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.data_update_time, '%Y-%m-%d %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 >= Date(#{startDate})
|
AND t.data_update_time >= Date(#{startDate})
|
||||||
AND t.data_update_time <= #{endDate}
|
AND t.data_update_time <= #{endDate}
|
||||||
GROUP BY t.site_id, DATE_FORMAT(t.data_update_time, '%Y-%m-%d %H:%i:00')
|
GROUP BY t.site_id, deviceId,pcsTotalActPower,pcsTotalReactivePower,createDate
|
||||||
ORDER BY createDate
|
ORDER BY createDate
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user