20250808优化-告警优化&主路线图优化

This commit is contained in:
2025-08-27 01:32:05 +08:00
parent d6276dc21f
commit 1a1558f8cd
8 changed files with 71 additions and 4 deletions

View File

@ -26,6 +26,9 @@ public class AlarmRecordListRequestVo {
/** 设备id */ /** 设备id */
private String deviceId; private String deviceId;
/** 告警状态 */
private String status;
public String getSiteId() { public String getSiteId() {
return siteId; return siteId;
} }
@ -73,4 +76,12 @@ public class AlarmRecordListRequestVo {
public void setDeviceId(String deviceId) { public void setDeviceId(String deviceId) {
this.deviceId = deviceId; this.deviceId = deviceId;
} }
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
} }

View File

@ -25,6 +25,8 @@ public class SiteDeviceListVo {
private String id; private String id;
/** 父类id */ /** 父类id */
private String parentId; private String parentId;
/** 单体电池个数-仅stack设备下有 */
private int batteryNum;
public String getSiteId() { public String getSiteId() {
return siteId; return siteId;
@ -105,4 +107,12 @@ public class SiteDeviceListVo {
public void setParentId(String parentId) { public void setParentId(String parentId) {
this.parentId = parentId; this.parentId = parentId;
} }
public int getBatteryNum() {
return batteryNum;
}
public void setBatteryNum(int batteryNum) {
this.batteryNum = batteryNum;
}
} }

View File

@ -4,6 +4,8 @@ import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import com.xzzn.ems.domain.EmsBatteryDataDay; import com.xzzn.ems.domain.EmsBatteryDataDay;
import com.xzzn.ems.domain.EmsBatteryDataHour; import com.xzzn.ems.domain.EmsBatteryDataHour;
import com.xzzn.ems.domain.vo.BatteryDataStatsListVo;
import com.xzzn.ems.domain.vo.DateSearchRequest;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
/** /**
@ -69,4 +71,6 @@ public interface EmsBatteryDataDayMapper
* 批量插入或更新天级数据(存在则更新,不存在则插入) * 批量插入或更新天级数据(存在则更新,不存在则插入)
*/ */
void batchInsertOrUpdate(@Param("list") List<EmsBatteryDataDay> dayDataList); void batchInsertOrUpdate(@Param("list") List<EmsBatteryDataDay> dayDataList);
public List<BatteryDataStatsListVo> getBatteryDayData(DateSearchRequest requestVo);
} }

View File

@ -815,13 +815,13 @@ public class DDSDataProcessServiceImpl extends AbstractBatteryDataProcessor impl
dataMete.setCurrentCombActiveFlat(StringUtils.getBigDecimal(obj.get("DQZHYGPDN"))); dataMete.setCurrentCombActiveFlat(StringUtils.getBigDecimal(obj.get("DQZHYGPDN")));
dataMete.setCurrentCombActiveValley(StringUtils.getBigDecimal(obj.get("DQZHYGGDN"))); dataMete.setCurrentCombActiveValley(StringUtils.getBigDecimal(obj.get("DQZHYGGDN")));
// 电能设置-正向有功 // 电能设置-正向有功
dataMete.setCurrentForwardActiveTotal(StringUtils.getBigDecimal(obj.get("DQZXYGZDN"))); dataMete.setCurrentForwardActiveTotal(StringUtils.getBigDecimal(obj.get("DQZXZYGDN")));
dataMete.setCurrentForwardActivePeak(StringUtils.getBigDecimal(obj.get("DQZXYGJDN"))); dataMete.setCurrentForwardActivePeak(StringUtils.getBigDecimal(obj.get("DQZXYGJDN")));
dataMete.setCurrentForwardActiveHigh(StringUtils.getBigDecimal(obj.get("DQZXYGFDN"))); dataMete.setCurrentForwardActiveHigh(StringUtils.getBigDecimal(obj.get("DQZXYGFDN")));
dataMete.setCurrentForwardActiveFlat(StringUtils.getBigDecimal(obj.get("DQZXYGPDN"))); dataMete.setCurrentForwardActiveFlat(StringUtils.getBigDecimal(obj.get("DQZXYGPDN")));
dataMete.setCurrentForwardActiveValley(StringUtils.getBigDecimal(obj.get("DQZXYGGDN"))); dataMete.setCurrentForwardActiveValley(StringUtils.getBigDecimal(obj.get("DQZXYGGDN")));
// 电能设置-反向有功 // 电能设置-反向有功
dataMete.setCurrentReverseActiveTotal(StringUtils.getBigDecimal(obj.get("DQFXYGZDN"))); dataMete.setCurrentReverseActiveTotal(StringUtils.getBigDecimal(obj.get("DQFXZYGDN")));
dataMete.setCurrentReverseActivePeak(StringUtils.getBigDecimal(obj.get("DQFXYGJDN"))); dataMete.setCurrentReverseActivePeak(StringUtils.getBigDecimal(obj.get("DQFXYGJDN")));
dataMete.setCurrentReverseActiveHigh(StringUtils.getBigDecimal(obj.get("DQFXYGFDN"))); dataMete.setCurrentReverseActiveHigh(StringUtils.getBigDecimal(obj.get("DQFXYGFDN")));
dataMete.setCurrentReverseActiveFlat(StringUtils.getBigDecimal(obj.get("DQFXYGPDN"))); dataMete.setCurrentReverseActiveFlat(StringUtils.getBigDecimal(obj.get("DQFXYGPDN")));

View File

@ -1,6 +1,9 @@
package com.xzzn.ems.service.impl; package com.xzzn.ems.service.impl;
import com.xzzn.common.constant.RedisKeyConstants;
import com.xzzn.common.core.redis.RedisCache;
import com.xzzn.common.enums.DeviceCategory; import com.xzzn.common.enums.DeviceCategory;
import com.xzzn.ems.domain.EmsBatteryData;
import com.xzzn.ems.domain.EmsSiteSetting; import com.xzzn.ems.domain.EmsSiteSetting;
import com.xzzn.ems.domain.vo.SiteDeviceListVo; import com.xzzn.ems.domain.vo.SiteDeviceListVo;
import com.xzzn.ems.domain.vo.SiteTotalInfoVo; import com.xzzn.ems.domain.vo.SiteTotalInfoVo;
@ -25,6 +28,8 @@ public class EmsSiteServiceImpl implements IEmsSiteService
private EmsSiteSettingMapper emsSiteMapper; private EmsSiteSettingMapper emsSiteMapper;
@Autowired @Autowired
private EmsDevicesSettingMapper emsDevicesMapper; private EmsDevicesSettingMapper emsDevicesMapper;
@Autowired
private RedisCache redisCache;
@Override @Override
public List<EmsSiteSetting> getAllSites() { public List<EmsSiteSetting> getAllSites() {
@ -76,7 +81,20 @@ public class EmsSiteServiceImpl implements IEmsSiteService
*/ */
@Override @Override
public List<SiteDeviceListVo> getAllDeviceList(String siteId) { public List<SiteDeviceListVo> getAllDeviceList(String siteId) {
return emsSiteMapper.getAllSiteDeviceList(siteId); List<SiteDeviceListVo> resultData = emsSiteMapper.getAllSiteDeviceList(siteId);
if(resultData == null || resultData.size() == 0){
return resultData;
}
for (SiteDeviceListVo siteDeviceListVo : resultData) {
String clusterId = siteDeviceListVo.getDeviceId();
String deviceCategory = siteDeviceListVo.getDeviceCategory();
if(DeviceCategory.CLUSTER.getCode().equals(deviceCategory)){
// 获取该stack下面有多少单体电池
List<EmsBatteryData> batteryDataList = redisCache.getCacheList(RedisKeyConstants.BATTERY + siteId + "_" + clusterId);
siteDeviceListVo.setBatteryNum(batteryDataList == null ? 0 : batteryDataList.size());
}
}
return resultData;
} }
/** /**

View File

@ -39,6 +39,8 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService
private EmsBatteryDataMapper emsBatteryDataMapper; private EmsBatteryDataMapper emsBatteryDataMapper;
@Autowired @Autowired
private EmsBatteryDailyLatestMapper emsBatteryDailyLatestMapper; private EmsBatteryDailyLatestMapper emsBatteryDailyLatestMapper;
@Autowired
private EmsBatteryDataDayMapper emsBatteryDataDayMapper;
// 电量指标 // 电量指标
@Override @Override
@ -295,6 +297,6 @@ public class EmsStatsReportServiceImpl implements IEmsStatsReportService
public List<BatteryDataStatsListVo> getSingleBatteryData(DateSearchRequest requestVo) { public List<BatteryDataStatsListVo> getSingleBatteryData(DateSearchRequest requestVo) {
// 默认时间-7天 // 默认时间-7天
dealRequestTime(requestVo); dealRequestTime(requestVo);
return emsBatteryDailyLatestMapper.getBatteryDailyLatest(requestVo); return emsBatteryDataDayMapper.getBatteryDayData(requestVo);
} }
} }

View File

@ -162,6 +162,13 @@
<if test="deviceId != null and deviceId != ''"> <if test="deviceId != null and deviceId != ''">
AND t.device_id = #{deviceId} AND t.device_id = #{deviceId}
</if> </if>
<if test="status != null and status != ''">
AND t.status IN (
<foreach collection="status.split(',')" item="item" separator=",">
#{item}
</foreach>
)
</if>
<if test="alarmStartTime != null and alarmStartTime != null and alarmEndTime != null and alarmEndTime != ''"> <if test="alarmStartTime != null and alarmStartTime != null and alarmEndTime != null and alarmEndTime != ''">
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') )

View File

@ -198,4 +198,19 @@
update_by = IF(VALUES(temperature) > temperature, VALUES(update_by), update_by), update_by = IF(VALUES(temperature) > temperature, VALUES(update_by), update_by),
temperature = IF(VALUES(temperature) > temperature, VALUES(temperature), temperature) temperature = IF(VALUES(temperature) > temperature, VALUES(temperature), temperature)
</insert> </insert>
<select id="getBatteryDayData" parameterType="com.xzzn.ems.domain.vo.DateSearchRequest" resultType="com.xzzn.ems.domain.vo.BatteryDataStatsListVo">
SELECT day_time as dataTimestamp,
voltage, temperature, soc, soh,
device_id as deviceId,
cluster_device_id as clusterDeviceId
FROM ems_battery_data_day
WHERE site_id = #{siteId}
and cluster_device_id = #{clusterDeviceId}
and device_id = #{deviceId}
and day_time &gt;= #{startDate}
and day_time &lt;= #{endDate}
order by day_time
</select>
</mapper> </mapper>