【验收】6-保护方案告警同步云端&& 【验收】7-下发操作日志同步云端

This commit is contained in:
2025-11-16 22:48:14 +08:00
parent c62aa46fcb
commit 3ee99fa8d4
10 changed files with 767 additions and 15 deletions

View File

@ -0,0 +1,150 @@
package com.xzzn.ems.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.xzzn.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.xzzn.common.annotation.Excel;
/**
* 告警保护方案下发日志对象 ems_fault_issue_log
*
* @author xzzn
* @date 2025-11-15
*/
public class EmsFaultIssueLog extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 日志IDUUID */
@Excel(name = "日志ID", readConverterExp = "U=UID")
private String logId;
/** 日志时间(精确到秒) */
@Excel(name = "日志时间", readConverterExp = "精=确到秒")
private Date logTime;
/** 日志等级同方案等级1/2/3等 */
@Excel(name = "日志等级", readConverterExp = "同=方案等级1/2/3等")
private Integer logLevel;
/** 站点名称/编号 */
@Excel(name = "站点名称/编号")
private String siteId;
/** 设备ID */
@Excel(name = "设备ID")
private String deviceId;
/** 操作点位 */
@Excel(name = "操作点位")
private String point;
/** 设置数据 */
@Excel(name = "设置数据")
private BigDecimal value;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setLogId(String logId)
{
this.logId = logId;
}
public String getLogId()
{
return logId;
}
public void setLogTime(Date logTime)
{
this.logTime = logTime;
}
public Date getLogTime()
{
return logTime;
}
public void setLogLevel(Integer logLevel)
{
this.logLevel = logLevel;
}
public Integer getLogLevel()
{
return logLevel;
}
public void setSiteId(String siteId)
{
this.siteId = siteId;
}
public String getSiteId()
{
return siteId;
}
public void setDeviceId(String deviceId)
{
this.deviceId = deviceId;
}
public String getDeviceId()
{
return deviceId;
}
public void setPoint(String point)
{
this.point = point;
}
public String getPoint()
{
return point;
}
public void setValue(BigDecimal value)
{
this.value = value;
}
public BigDecimal getValue()
{
return value;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("logId", getLogId())
.append("logTime", getLogTime())
.append("logLevel", getLogLevel())
.append("site", getSiteId())
.append("deviceId", getDeviceId())
.append("point", getPoint())
.append("value", getValue())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
}

View File

@ -0,0 +1,64 @@
package com.xzzn.ems.mapper;
import java.util.List;
import com.xzzn.ems.domain.EmsFaultIssueLog;
/**
* 告警保护方案下发日志Mapper接口
*
* @author xzzn
* @date 2025-11-15
*/
public interface EmsFaultIssueLogMapper
{
/**
* 查询告警保护方案下发日志
*
* @param id 告警保护方案下发日志主键
* @return 告警保护方案下发日志
*/
public EmsFaultIssueLog selectEmsFaultIssueLogById(Long id);
/**
* 查询告警保护方案下发日志列表
*
* @param emsFaultIssueLog 告警保护方案下发日志
* @return 告警保护方案下发日志集合
*/
public List<EmsFaultIssueLog> selectEmsFaultIssueLogList(EmsFaultIssueLog emsFaultIssueLog);
/**
* 新增告警保护方案下发日志
*
* @param emsFaultIssueLog 告警保护方案下发日志
* @return 结果
*/
public int insertEmsFaultIssueLog(EmsFaultIssueLog emsFaultIssueLog);
/**
* 修改告警保护方案下发日志
*
* @param emsFaultIssueLog 告警保护方案下发日志
* @return 结果
*/
public int updateEmsFaultIssueLog(EmsFaultIssueLog emsFaultIssueLog);
/**
* 删除告警保护方案下发日志
*
* @param id 告警保护方案下发日志主键
* @return 结果
*/
public int deleteEmsFaultIssueLogById(Long id);
/**
* 批量删除告警保护方案下发日志
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteEmsFaultIssueLogByIds(Long[] ids);
// 根据logId获取日志
public EmsFaultIssueLog selectEmsFaultIssueLogByLogId(String logId);
}

View File

@ -95,4 +95,7 @@ public interface IEmsAlarmRecordsService
// 根据site_id和deviceId更新对应的redis
public void updateRedisAlarmRecords(String siteId, String deviceId);
// 处理本地端同步的保护策略告警信息
public void dealSyncData(String content, String operateType);
}

View File

@ -0,0 +1,64 @@
package com.xzzn.ems.service;
import java.util.List;
import com.xzzn.ems.domain.EmsFaultIssueLog;
/**
* 告警保护方案下发日志Service接口
*
* @author xzzn
* @date 2025-11-15
*/
public interface IEmsFaultIssueLogService
{
/**
* 查询告警保护方案下发日志
*
* @param id 告警保护方案下发日志主键
* @return 告警保护方案下发日志
*/
public EmsFaultIssueLog selectEmsFaultIssueLogById(Long id);
/**
* 查询告警保护方案下发日志列表
*
* @param emsFaultIssueLog 告警保护方案下发日志
* @return 告警保护方案下发日志集合
*/
public List<EmsFaultIssueLog> selectEmsFaultIssueLogList(EmsFaultIssueLog emsFaultIssueLog);
/**
* 新增告警保护方案下发日志
*
* @param emsFaultIssueLog 告警保护方案下发日志
* @return 结果
*/
public int insertEmsFaultIssueLog(EmsFaultIssueLog emsFaultIssueLog);
/**
* 修改告警保护方案下发日志
*
* @param emsFaultIssueLog 告警保护方案下发日志
* @return 结果
*/
public int updateEmsFaultIssueLog(EmsFaultIssueLog emsFaultIssueLog);
/**
* 批量删除告警保护方案下发日志
*
* @param ids 需要删除的告警保护方案下发日志主键集合
* @return 结果
*/
public int deleteEmsFaultIssueLogByIds(Long[] ids);
/**
* 删除告警保护方案下发日志信息
*
* @param id 告警保护方案下发日志主键
* @return 结果
*/
public int deleteEmsFaultIssueLogById(Long id);
// 处理本地端同步的告警保护下发日志信息
public void dealSyncData(String content, String operateType);
}

View File

@ -4,6 +4,7 @@ import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import com.alibaba.fastjson2.JSON;
import com.xzzn.common.constant.RedisKeyConstants;
import com.xzzn.common.core.domain.entity.SysUser;
import com.xzzn.common.core.redis.RedisCache;
@ -18,7 +19,6 @@ import com.xzzn.ems.domain.vo.AlarmRecordListRequestVo;
import com.xzzn.ems.domain.vo.AlarmRecordListResponseVo;
import com.xzzn.ems.mapper.EmsAlarmMatchDataMapper;
import com.xzzn.ems.mapper.EmsTicketMapper;
import com.xzzn.ems.service.IEmsTicketService;
import com.xzzn.system.mapper.SysUserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -292,5 +292,21 @@ public class EmsAlarmRecordsServiceImpl implements IEmsAlarmRecordsService
redisCache.setAllCacheMapValue(redisKey, newAlarms);
}
@Override
public void dealSyncData(String content, String operateType) {
if (StringUtils.isEmpty(content)) {
return;
}
EmsAlarmRecords alarmRecords = JSON.parseObject(content, EmsAlarmRecords.class);
switch(operateType) {
case "INSERT":
insertEmsAlarmRecords(alarmRecords);
break;
default:
break;
}
}
}

View File

@ -0,0 +1,129 @@
package com.xzzn.ems.service.impl;
import java.util.List;
import com.alibaba.fastjson2.JSON;
import com.xzzn.common.utils.DateUtils;
import com.xzzn.common.utils.StringUtils;
import com.xzzn.ems.domain.EmsAlarmRecords;
import com.xzzn.ems.service.IFXXAlarmDataProcessService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xzzn.ems.mapper.EmsFaultIssueLogMapper;
import com.xzzn.ems.domain.EmsFaultIssueLog;
import com.xzzn.ems.service.IEmsFaultIssueLogService;
/**
* 告警保护方案下发日志Service业务层处理
*
* @author xzzn
* @date 2025-11-15
*/
@Service
public class EmsFaultIssueLogServiceImpl implements IEmsFaultIssueLogService
{
@Autowired
private EmsFaultIssueLogMapper emsFaultIssueLogMapper;
/**
* 查询告警保护方案下发日志
*
* @param id 告警保护方案下发日志主键
* @return 告警保护方案下发日志
*/
@Override
public EmsFaultIssueLog selectEmsFaultIssueLogById(Long id)
{
return emsFaultIssueLogMapper.selectEmsFaultIssueLogById(id);
}
/**
* 新增告警保护方案下发日志
*
* @param emsFaultIssueLog 告警保护方案下发日志
* @return 结果
*/
@Override
public int insertEmsFaultIssueLog(EmsFaultIssueLog emsFaultIssueLog)
{
emsFaultIssueLog.setCreateTime(DateUtils.getNowDate());
return emsFaultIssueLogMapper.insertEmsFaultIssueLog(emsFaultIssueLog);
}
/**
* 查询告警保护方案下发日志列表
*
* @param emsFaultIssueLog 告警保护方案下发日志
* @return 告警保护方案下发日志
*/
@Override
public List<EmsFaultIssueLog> selectEmsFaultIssueLogList(EmsFaultIssueLog emsFaultIssueLog)
{
return emsFaultIssueLogMapper.selectEmsFaultIssueLogList(emsFaultIssueLog);
}
/**
* 修改告警保护方案下发日志
*
* @param emsFaultIssueLog 告警保护方案下发日志
* @return 结果
*/
@Override
public int updateEmsFaultIssueLog(EmsFaultIssueLog emsFaultIssueLog)
{
emsFaultIssueLog.setUpdateTime(DateUtils.getNowDate());
return emsFaultIssueLogMapper.updateEmsFaultIssueLog(emsFaultIssueLog);
}
/**
* 批量删除告警保护方案下发日志
*
* @param ids 需要删除的告警保护方案下发日志主键
* @return 结果
*/
@Override
public int deleteEmsFaultIssueLogByIds(Long[] ids)
{
return emsFaultIssueLogMapper.deleteEmsFaultIssueLogByIds(ids);
}
/**
* 删除告警保护方案下发日志信息
*
* @param id 告警保护方案下发日志主键
* @return 结果
*/
@Override
public int deleteEmsFaultIssueLogById(Long id)
{
return emsFaultIssueLogMapper.deleteEmsFaultIssueLogById(id);
}
@Override
public void dealSyncData(String content, String operateType) {
if (StringUtils.isEmpty(content)) {
return;
}
EmsFaultIssueLog issueLog = JSON.parseObject(content, EmsFaultIssueLog.class);
String logId = issueLog.getLogId();
if (checkLogIsExist(logId)) {
return;
}
switch(operateType) {
case "INSERT":
insertEmsFaultIssueLog(issueLog);
break;
default:
break;
}
}
private boolean checkLogIsExist(String logId) {
EmsFaultIssueLog issueLog = emsFaultIssueLogMapper.selectEmsFaultIssueLogByLogId(logId);
if (issueLog != null) {
return true;
}
return false;
}
}