diff --git a/ems-framework/src/main/java/com/xzzn/framework/aspectj/FaultProtPlanAspect.java b/ems-framework/src/main/java/com/xzzn/framework/aspectj/FaultProtPlanAspect.java index 8352f5a..bea0f63 100644 --- a/ems-framework/src/main/java/com/xzzn/framework/aspectj/FaultProtPlanAspect.java +++ b/ems-framework/src/main/java/com/xzzn/framework/aspectj/FaultProtPlanAspect.java @@ -8,6 +8,8 @@ import com.xzzn.ems.mapper.EmsFaultProtectionPlanMapper; import com.xzzn.ems.mapper.EmsMqttTopicConfigMapper; import com.xzzn.ems.mapper.MqttSyncLogMapper; import com.xzzn.framework.web.service.MqttPublisher; +import org.apache.juli.logging.Log; +import org.apache.juli.logging.LogFactory; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; @@ -23,16 +25,18 @@ import java.util.Map; import java.util.UUID; /** - * 设备保护告警同步 + * 设备保护告警方案同步 + * 云端 - 本地 */ @Aspect @Component public class FaultProtPlanAspect { + private static final Log logger = LogFactory.getLog(FaultProtPlanAspect.class); @Autowired private MqttPublisher mqttPublisher; private static final ObjectMapper objectMapper = new ObjectMapper(); - private static final String STRATEGY_TOPIC = "FAULT_PROTECTION_PLAN_UP"; + private static final String MQTT_TOPIC = "FAULT_PROTECTION_PLAN_UP"; private static final String TABLE_NAME = "ems_fault_protection_plan"; @Autowired private EmsMqttTopicConfigMapper emsMqttTopicConfigMapper; @@ -60,24 +64,31 @@ public class FaultProtPlanAspect { // 定义切点:拦截策略相关表的Mapper方法 @Pointcut("(execution(* com.xzzn.ems.mapper.EmsFaultProtectionPlanMapper.insertEmsFaultProtectionPlan(..)) && args(insertEntity)) ") public void insertPointCut(EmsFaultProtectionPlan insertEntity) { - System.out.println("【新增设备保护告警】FaultProtPlanAspect 实例化"); + logger.info("【新增设备保护告警】FaultProtPlanAspect 实例化"); } @Pointcut("(execution(* com.xzzn.ems.mapper.EmsFaultProtectionPlanMapper.updateEmsFaultProtectionPlan(..)) && args(updateEntity)) ") public void updatePointCut(EmsFaultProtectionPlan updateEntity) { - System.out.println("【更新设备保护告警】FaultProtPlanAspect 实例化"); + logger.info("【更新设备保护告警】FaultProtPlanAspect 实例化"); } @Pointcut("(execution(* com.xzzn.ems.mapper.EmsFaultProtectionPlanMapper.deleteEmsFaultProtectionPlanByIds(..)) && args(ids)) ") public void deletePointCut(Long[] ids) { - System.out.println("【删除设备保护告警】FaultProtPlanAspect 实例化"); + logger.info("【删除设备保护告警】FaultProtPlanAspect 实例化"); } // 方法执行成功后发布同步消息 @AfterReturning(pointcut = "insertPointCut(insertEntity)", returning = "result") public void afterInsert(JoinPoint joinPoint, EmsFaultProtectionPlan insertEntity, Integer result) { - System.out.println("【新增设备保护告警切面进入成功】"); - if (result == 0) { + logger.info("【新增设备保护告警切面进入成功】"); + if (result == 0 || insertEntity == null) { return; } + + // 校验是否配置监听topic-监听则不发布 + String topic = emsMqttTopicConfigMapper.checkTopicIsExist(MQTT_TOPIC); + if (!StringUtils.isEmpty(topic)) { + return; + } + // 解析方法名,获取操作类型(INSERT/UPDATE/DELETE)和表名 String methodName = joinPoint.getSignature().getName(); String operateType = getOperateType(methodName); @@ -92,10 +103,7 @@ public class FaultProtPlanAspect { message.setContent(content); // 发布到MQTT主题 - String topic = emsMqttTopicConfigMapper.checkTopicIsExist(STRATEGY_TOPIC); - if (StringUtils.isEmpty(topic)) { - mqttPublisher.publish(STRATEGY_TOPIC, objectMapper.writeValueAsString(message), 1); - } + mqttPublisher.publish(MQTT_TOPIC, objectMapper.writeValueAsString(message), 1); } catch (Exception e) { message.setStatus("FAIL"); message.setErrorMsg(e.getMessage()); @@ -105,10 +113,16 @@ public class FaultProtPlanAspect { } @AfterReturning(pointcut = "updatePointCut(updateEntity)", returning = "result") public void afterUpdate(JoinPoint joinPoint, EmsFaultProtectionPlan updateEntity, Integer result) { - System.out.println("【更新设备保护告警切面进入成功】"); - if (result == 0) { + logger.info("【更新设备保护告警切面进入成功】"); + if (result == 0 || updateEntity == null) { return; } + // 校验是否配置监听topic-监听则不发布 + /*String topic = emsMqttTopicConfigMapper.checkTopicIsExist(MQTT_TOPIC); + if (!StringUtils.isEmpty(topic)) { + return; + }*/ + // 解析方法名,获取操作类型(INSERT/UPDATE/DELETE)和表名 String methodName = joinPoint.getSignature().getName(); String operateType = getOperateType(methodName); @@ -122,11 +136,8 @@ public class FaultProtPlanAspect { String content = convertEntityToJson(updateEntity); message.setContent(content); - // 发布到MQTT主题 - 判断区分本地还是云上 - String topic = emsMqttTopicConfigMapper.checkTopicIsExist(STRATEGY_TOPIC); - if (StringUtils.isEmpty(topic)) { - mqttPublisher.publish(STRATEGY_TOPIC, objectMapper.writeValueAsString(message), 1); - } + // 发布到MQTT主题 + mqttPublisher.publish(MQTT_TOPIC, objectMapper.writeValueAsString(message), 1); } catch (Exception e) { message.setStatus("FAIL"); message.setErrorMsg(e.getMessage()); @@ -136,10 +147,16 @@ public class FaultProtPlanAspect { } @AfterReturning(pointcut = "deletePointCut(id)", returning = "result") public void afterDelete(JoinPoint joinPoint, Long[] id, Integer result) { - System.out.println("【删除设备保护告警切面进入成功】"); - if (result == 0) { + logger.info("【删除设备保护告警切面进入成功】"); + if (result == 0 || id == null) { return; } + // 校验是否配置监听topic-监听则不发布 + String topic = emsMqttTopicConfigMapper.checkTopicIsExist(MQTT_TOPIC); + if (!StringUtils.isEmpty(topic)) { + return; + } + // 解析方法名,获取操作类型(INSERT/UPDATE/DELETE)和表名 String methodName = joinPoint.getSignature().getName(); String operateType = getOperateType(methodName); @@ -159,10 +176,7 @@ public class FaultProtPlanAspect { message.setContent(content); // 发布到MQTT主题 - String topic = emsMqttTopicConfigMapper.checkTopicIsExist(STRATEGY_TOPIC); - if (StringUtils.isEmpty(topic)) { - mqttPublisher.publish(STRATEGY_TOPIC, objectMapper.writeValueAsString(message), 1); - } + mqttPublisher.publish(MQTT_TOPIC, objectMapper.writeValueAsString(message), 1); } catch (Exception e) { message.setStatus("FAIL"); message.setErrorMsg(e.getMessage()); @@ -178,8 +192,9 @@ public class FaultProtPlanAspect { message.setOperateType(operateType); message.setTableName(TABLE_NAME); message.setCreateTime(new Date()); - message.setTopic(STRATEGY_TOPIC); + message.setTopic(MQTT_TOPIC); message.setStatus("SUCCESS"); + message.setSyncObject("CLOUD"); message.setTarget(siteId); return message; }