From 0a6b4e9aca95351a5d4a3033c7d2ed574a976f33 Mon Sep 17 00:00:00 2001 From: hzj <826100833@qq.com> Date: Fri, 1 Aug 2025 10:48:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E9=99=8D=E5=8E=9F=E5=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../advance/api/EventCauseFeignClient.java | 24 +++++ .../EventCauseFeignClientFallbackFactory.java | 41 ++++++++ .../advance/pojo/dto}/EventAnalysisDTO.java | 2 +- .../controller/EventCauseController.java | 7 +- .../event/service/IEventAdvanceService.java | 2 +- .../service/impl/EventAdvanceServiceImpl.java | 2 +- pqs-event/event-boot/pom.xml | 5 + .../Impl/EventDetailServiceImpl.java | 95 +++++++++++++++++-- 8 files changed, 165 insertions(+), 13 deletions(-) create mode 100644 pqs-advance/advance-api/src/main/java/com/njcn/advance/api/EventCauseFeignClient.java create mode 100644 pqs-advance/advance-api/src/main/java/com/njcn/advance/api/fallback/EventCauseFeignClientFallbackFactory.java rename pqs-advance/{advance-boot/src/main/java/com/njcn/advance/event/pojo => advance-api/src/main/java/com/njcn/advance/pojo/dto}/EventAnalysisDTO.java (97%) diff --git a/pqs-advance/advance-api/src/main/java/com/njcn/advance/api/EventCauseFeignClient.java b/pqs-advance/advance-api/src/main/java/com/njcn/advance/api/EventCauseFeignClient.java new file mode 100644 index 000000000..561938825 --- /dev/null +++ b/pqs-advance/advance-api/src/main/java/com/njcn/advance/api/EventCauseFeignClient.java @@ -0,0 +1,24 @@ +package com.njcn.advance.api; + +import com.njcn.advance.api.fallback.EventCauseFeignClientFallbackFactory; +import com.njcn.advance.pojo.dto.EventAnalysisDTO; +import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.response.HttpResult; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +/** + * Description: + * Date: 2025/08/01 上午 8:54【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@FeignClient(value = ServerInfo.ADVANCE_BOOT,path = "/eventAdvance", + fallbackFactory = EventCauseFeignClientFallbackFactory.class, + contextId = "eventAdvance" ) +public interface EventCauseFeignClient { + @PostMapping(value = "/analysisCauseAndType") + HttpResult analysisCauseAndType(@RequestBody EventAnalysisDTO eventAnalysis); +} diff --git a/pqs-advance/advance-api/src/main/java/com/njcn/advance/api/fallback/EventCauseFeignClientFallbackFactory.java b/pqs-advance/advance-api/src/main/java/com/njcn/advance/api/fallback/EventCauseFeignClientFallbackFactory.java new file mode 100644 index 000000000..8bc1a0552 --- /dev/null +++ b/pqs-advance/advance-api/src/main/java/com/njcn/advance/api/fallback/EventCauseFeignClientFallbackFactory.java @@ -0,0 +1,41 @@ +package com.njcn.advance.api.fallback; + +import com.njcn.advance.api.EventCauseFeignClient; +import com.njcn.advance.api.EventWaveAnalysisFeignClient; +import com.njcn.advance.pojo.dto.EventAnalysisDTO; +import com.njcn.advance.pojo.dto.waveAnalysis.EntityAdvancedData; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.event.utils.EventlEnumUtil; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + + +/** + * @author wr + */ +@Slf4j +@Component +public class EventCauseFeignClientFallbackFactory implements FallbackFactory { + @Override + public EventCauseFeignClient create(Throwable throwable) { + //判断抛出异常是否为解码器抛出的业务异常 + Enum exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK; + if (throwable.getCause() instanceof BusinessException) { + BusinessException businessException = (BusinessException) throwable.getCause(); + exceptionEnum = EventlEnumUtil.getExceptionEnum(businessException.getResult()); + } + Enum finalExceptionEnum = exceptionEnum; + + return new EventCauseFeignClient() { + + @Override + public HttpResult analysisCauseAndType(EventAnalysisDTO eventAnalysis) { + log.error("{}异常,降级处理,异常为:{}", "暂降原因分析", throwable.toString()); + throw new BusinessException(finalExceptionEnum); + } + }; + } +} diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/event/pojo/EventAnalysisDTO.java b/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/dto/EventAnalysisDTO.java similarity index 97% rename from pqs-advance/advance-boot/src/main/java/com/njcn/advance/event/pojo/EventAnalysisDTO.java rename to pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/dto/EventAnalysisDTO.java index 2886cd12b..3c3f650e5 100644 --- a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/event/pojo/EventAnalysisDTO.java +++ b/pqs-advance/advance-api/src/main/java/com/njcn/advance/pojo/dto/EventAnalysisDTO.java @@ -1,4 +1,4 @@ -package com.njcn.advance.event.pojo; +package com.njcn.advance.pojo.dto; import lombok.Data; diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/event/controller/EventCauseController.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/event/controller/EventCauseController.java index ba9f9bf34..f14c8a623 100644 --- a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/event/controller/EventCauseController.java +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/event/controller/EventCauseController.java @@ -1,6 +1,6 @@ package com.njcn.advance.event.controller; -import com.njcn.advance.event.pojo.EventAnalysisDTO; +import com.njcn.advance.pojo.dto.EventAnalysisDTO; import com.njcn.advance.event.service.IEventAdvanceService; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.enums.common.LogEnum; @@ -13,11 +13,10 @@ import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.List; - /** * @author hongawen * @version 1.0 @@ -35,7 +34,7 @@ public class EventCauseController extends BaseController { @PostMapping(value = "/analysisCauseAndType") @ApiOperation("分析暂降事件的原因和类型") @OperateInfo(info = LogEnum.BUSINESS_COMMON) - public HttpResult analysisCauseAndType(EventAnalysisDTO eventAnalysis) { + public HttpResult analysisCauseAndType(@RequestBody EventAnalysisDTO eventAnalysis) { String methodDescribe = getMethodDescribe("analysisCauseAndType"); eventAnalysis = eventAdvanceService.analysisCauseAndType(eventAnalysis); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eventAnalysis, methodDescribe); diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/event/service/IEventAdvanceService.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/event/service/IEventAdvanceService.java index efd595b13..331395551 100644 --- a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/event/service/IEventAdvanceService.java +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/event/service/IEventAdvanceService.java @@ -1,6 +1,6 @@ package com.njcn.advance.event.service; -import com.njcn.advance.event.pojo.EventAnalysisDTO; +import com.njcn.advance.pojo.dto.EventAnalysisDTO; /** * @author hongawen diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/event/service/impl/EventAdvanceServiceImpl.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/event/service/impl/EventAdvanceServiceImpl.java index c069a167a..3899452e3 100644 --- a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/event/service/impl/EventAdvanceServiceImpl.java +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/event/service/impl/EventAdvanceServiceImpl.java @@ -5,7 +5,7 @@ import com.njcn.advance.event.cause.core.VoltageSagAnalyzer; import com.njcn.advance.event.cause.model.AnalysisResult; import com.njcn.advance.event.cause.model.DataFeature; import com.njcn.advance.event.cause.model.QvvrDataStruct; -import com.njcn.advance.event.pojo.EventAnalysisDTO; +import com.njcn.advance.pojo.dto.EventAnalysisDTO; import com.njcn.advance.event.service.IEventAdvanceService; import com.njcn.advance.event.type.jna.QvvrDLL; import com.njcn.common.config.GeneralInfo; diff --git a/pqs-event/event-boot/pom.xml b/pqs-event/event-boot/pom.xml index 217042a16..9b9f086e8 100644 --- a/pqs-event/event-boot/pom.xml +++ b/pqs-event/event-boot/pom.xml @@ -89,6 +89,11 @@ supervision-api ${project.version} + + com.njcn + advance-api + ${project.version} + diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java index 55671466d..dae743869 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java @@ -9,6 +9,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.tocrhz.mqtt.publisher.MqttPublisher; +import com.njcn.advance.api.EventCauseFeignClient; +import com.njcn.advance.api.EventWaveAnalysisFeignClient; +import com.njcn.advance.pojo.dto.EventAnalysisDTO; import com.njcn.common.pojo.constant.LogInfo; import com.njcn.common.pojo.dto.LogInfoDTO; import com.njcn.common.utils.PubUtils; @@ -19,6 +22,7 @@ import com.njcn.device.pq.api.DeptLineFeignClient; import com.njcn.device.pq.api.LineFeignClient; import com.njcn.device.pq.pojo.po.DeptLine; import com.njcn.device.pq.pojo.vo.AreaLineInfoVO; +import com.njcn.device.pq.pojo.vo.LineDetailDataVO; import com.njcn.event.pojo.vo.SendEventVO; import com.njcn.event.utils.EventUtil; import com.njcn.event.mapper.majornetwork.EventDetailMapper; @@ -66,7 +70,7 @@ public class EventDetailServiceImpl extends ServiceImpl getEventDetailData(String id, String startTime, String endTime) { //数据暂降查询 @@ -168,12 +172,26 @@ public class EventDetailServiceImpl extends ServiceImpl