同步日志&监听处理
This commit is contained in:
@ -46,6 +46,10 @@ public class MqttSyncLog extends BaseEntity
|
||||
@Excel(name = "失败原因", readConverterExp = "s=tatus=FAIL时填写")
|
||||
private String errorMsg;
|
||||
|
||||
/** 同步对象 */
|
||||
@Excel(name = "同步对象")
|
||||
private String syncObject;
|
||||
|
||||
/** 同步目标 */
|
||||
@Excel(name = "同步目标")
|
||||
private String target;
|
||||
@ -130,6 +134,16 @@ public class MqttSyncLog extends BaseEntity
|
||||
return errorMsg;
|
||||
}
|
||||
|
||||
public void setSyncObject(String syncObject)
|
||||
{
|
||||
this.syncObject = syncObject;
|
||||
}
|
||||
|
||||
public String getSyncObject()
|
||||
{
|
||||
return syncObject;
|
||||
}
|
||||
|
||||
public void setTarget(String target)
|
||||
{
|
||||
this.target = target;
|
||||
@ -151,6 +165,7 @@ public class MqttSyncLog extends BaseEntity
|
||||
.append("content", getContent())
|
||||
.append("status", getStatus())
|
||||
.append("errorMsg", getErrorMsg())
|
||||
.append("syncObject", getSyncObject())
|
||||
.append("target", getTarget())
|
||||
.append("createTime", getCreateTime())
|
||||
.toString();
|
||||
|
||||
@ -62,5 +62,11 @@ public interface IMqttSyncLogService
|
||||
// 处理策略信息
|
||||
public void handleMqttStrategyData(String payload);
|
||||
// 处理设备告警保护信息
|
||||
public void handleMqttPlanData(MqttSyncLog planLog);
|
||||
public void handleMqttPlanData(String payload);
|
||||
// 处理设备保护策略触发的告警信息
|
||||
public void handleFaultAlarmData(String payload);
|
||||
// 处理保护策略告警信息
|
||||
public void handleFaultPlanIssueData(String payload);
|
||||
// 处理设备运行状态变更
|
||||
public void handleDeviceChangeLogData(String payload);
|
||||
}
|
||||
|
||||
@ -5,13 +5,13 @@ 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.service.IEmsFaultProtectionPlanService;
|
||||
import com.xzzn.ems.service.IEmsStrategyService;
|
||||
import com.xzzn.ems.domain.EmsSiteSetting;
|
||||
import com.xzzn.ems.mapper.EmsSiteSettingMapper;
|
||||
import com.xzzn.ems.service.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.xzzn.ems.mapper.MqttSyncLogMapper;
|
||||
import com.xzzn.ems.domain.MqttSyncLog;
|
||||
import com.xzzn.ems.service.IMqttSyncLogService;
|
||||
|
||||
/**
|
||||
* MQTT云上本地同步日志Service业务层处理
|
||||
@ -28,6 +28,18 @@ public class MqttSyncLogServiceImpl implements IMqttSyncLogService
|
||||
private IEmsFaultProtectionPlanService emsFaultProtectionPlanService;
|
||||
@Autowired
|
||||
private IEmsStrategyService emsStrategyService;
|
||||
@Autowired
|
||||
private IEmsAlarmRecordsService emsAlarmRecordsService;
|
||||
@Autowired
|
||||
private EmsSiteSettingMapper emsSiteSettingMapper;
|
||||
@Autowired
|
||||
private IEmsFaultIssueLogService emsFaultIssueLogService;
|
||||
@Autowired
|
||||
private IEmsDeviceChangeLogService emsDeviceChangeLogService;
|
||||
@Autowired
|
||||
private IEmsStrategyTempService emsStrategyTempService;
|
||||
@Autowired
|
||||
private IEmsStrategyTimeConfigService emsStrategyTimeConfigService;
|
||||
|
||||
/**
|
||||
* 查询MQTT云上本地同步日志
|
||||
@ -102,12 +114,103 @@ public class MqttSyncLogServiceImpl implements IMqttSyncLogService
|
||||
return mqttSyncLogMapper.deleteMqttSyncLogById(id);
|
||||
}
|
||||
|
||||
// 校验同步目标是否该站点
|
||||
private boolean checkIsSite(String target) {
|
||||
if (StringUtils.isEmpty(target)) {
|
||||
return false;
|
||||
}
|
||||
EmsSiteSetting emsSiteSetting = emsSiteSettingMapper.selectEmsSiteSettingBySiteId(target);
|
||||
if (emsSiteSetting == null) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理云上运行策略数据
|
||||
* 云上-本地:校验是否该站点
|
||||
* @param payload
|
||||
*/
|
||||
@Override
|
||||
public void handleMqttStrategyData(String payload) {
|
||||
MqttSyncLog syncLog = JSON.parseObject(payload, MqttSyncLog.class);
|
||||
if (syncLog != null) {
|
||||
// 校验是否该站点数据
|
||||
if (!checkIsSite(syncLog.getTarget())) {
|
||||
return;
|
||||
}
|
||||
// 校验是否存在
|
||||
String syncId = syncLog.getSyncId();
|
||||
MqttSyncLog existLog = mqttSyncLogMapper.selectMqttSyncLogBySyncId(syncId);
|
||||
if (existLog == null) {
|
||||
try {
|
||||
// 根据不同操作更新
|
||||
String operateType = syncLog.getOperateType();
|
||||
if (!StringUtils.isEmpty(operateType)) {
|
||||
// 不同表操作
|
||||
String tableName = syncLog.getTableName();
|
||||
switch (tableName) {
|
||||
case "ems_strategy_running":
|
||||
emsStrategyService.dealStrategyRunningData(syncLog.getContent(), operateType);
|
||||
break;
|
||||
case "ems_strategy_temp":
|
||||
emsStrategyTempService.dealStrategyTempData(syncLog.getContent(), operateType);
|
||||
break;
|
||||
case "ems_strategy_time_config":
|
||||
emsStrategyTimeConfigService.dealStrategyTimeData(syncLog.getContent(), operateType);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
syncLog.setStatus("FAIL");
|
||||
syncLog.setErrorMsg(e.getMessage());
|
||||
}
|
||||
// 保存日志
|
||||
insertMqttSyncLog(syncLog);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理云上同步的告警保护信息
|
||||
* 云上-本地:校验是否该站点
|
||||
* @param payload
|
||||
*/
|
||||
@Override
|
||||
public void handleMqttPlanData(String payload) {
|
||||
MqttSyncLog planLog = JSON.parseObject(payload, MqttSyncLog.class);
|
||||
if (planLog != null) {
|
||||
// 校验是否该站点数据
|
||||
if (!checkIsSite(planLog.getTarget())) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 校验是否存在
|
||||
String syncId = planLog.getSyncId();
|
||||
MqttSyncLog existLog = mqttSyncLogMapper.selectMqttSyncLogBySyncId(syncId);
|
||||
if (existLog == null) {
|
||||
// 处理数据
|
||||
String operateType = planLog.getOperateType();
|
||||
if (!StringUtils.isEmpty(operateType)) {
|
||||
emsFaultProtectionPlanService.dealSyncData(planLog.getContent(), operateType);
|
||||
}
|
||||
|
||||
// 保存日志
|
||||
insertMqttSyncLog(planLog);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理设备保护策略触发的告警信息
|
||||
* 本地-云上
|
||||
* @param payload
|
||||
*/
|
||||
@Override
|
||||
public void handleFaultAlarmData(String payload) {
|
||||
MqttSyncLog syncLog = JSON.parseObject(payload, MqttSyncLog.class);
|
||||
if (syncLog != null) {
|
||||
// 校验是否存在
|
||||
@ -117,34 +220,61 @@ public class MqttSyncLogServiceImpl implements IMqttSyncLogService
|
||||
// 根据不同操作更新
|
||||
String operateType = syncLog.getOperateType();
|
||||
if (!StringUtils.isEmpty(operateType)) {
|
||||
emsStrategyService.dealStrategyData(syncLog.getContent(),operateType);
|
||||
emsAlarmRecordsService.dealSyncData(syncLog.getContent(),operateType);
|
||||
}
|
||||
|
||||
// 保存日志
|
||||
insertMqttSyncLog(syncLog);
|
||||
}
|
||||
// 保存日志
|
||||
insertMqttSyncLog(syncLog);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理云上同步的告警保护信息
|
||||
* @param planLog
|
||||
* 处理保护策略告警信息
|
||||
* 本地-云上
|
||||
* @param payload
|
||||
*/
|
||||
@Override
|
||||
public void handleMqttPlanData(MqttSyncLog planLog) {
|
||||
// 校验是否存在
|
||||
String syncId = planLog.getSyncId();
|
||||
MqttSyncLog existLog = mqttSyncLogMapper.selectMqttSyncLogBySyncId(syncId);
|
||||
if (existLog != null) {
|
||||
return;
|
||||
}
|
||||
// 保存日志
|
||||
insertMqttSyncLog(planLog);
|
||||
public void handleFaultPlanIssueData(String payload) {
|
||||
MqttSyncLog syncLog = JSON.parseObject(payload, MqttSyncLog.class);
|
||||
if (syncLog != null) {
|
||||
// 校验是否存在
|
||||
String syncId = syncLog.getSyncId();
|
||||
MqttSyncLog existLog = mqttSyncLogMapper.selectMqttSyncLogBySyncId(syncId);
|
||||
if (existLog == null) {
|
||||
// 根据不同操作更新
|
||||
String operateType = syncLog.getOperateType();
|
||||
if (!StringUtils.isEmpty(operateType)) {
|
||||
emsFaultIssueLogService.dealSyncData(syncLog.getContent(),operateType);
|
||||
}
|
||||
|
||||
// 处理数据
|
||||
String operateType = planLog.getOperateType();
|
||||
if (!StringUtils.isEmpty(operateType)) {
|
||||
emsFaultProtectionPlanService.dealSyncData(planLog.getContent(),operateType);
|
||||
// 保存日志
|
||||
insertMqttSyncLog(syncLog);
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 处理设备运行状态变更日志
|
||||
* 本地-云上
|
||||
* @param payload
|
||||
*/
|
||||
@Override
|
||||
public void handleDeviceChangeLogData(String payload) {
|
||||
MqttSyncLog syncLog = JSON.parseObject(payload, MqttSyncLog.class);
|
||||
if (syncLog == null) {
|
||||
// 校验是否存在
|
||||
String syncId = syncLog.getSyncId();
|
||||
MqttSyncLog existLog = mqttSyncLogMapper.selectMqttSyncLogBySyncId(syncId);
|
||||
if (existLog == null) {
|
||||
// 根据不同操作更新
|
||||
String operateType = syncLog.getOperateType();
|
||||
if (!StringUtils.isEmpty(operateType)) {
|
||||
emsDeviceChangeLogService.dealSyncData(syncLog.getContent(),operateType);
|
||||
}
|
||||
|
||||
// 保存日志
|
||||
insertMqttSyncLog(syncLog);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user