From 221007b367397a380394216b2ccb35ba19c44973 Mon Sep 17 00:00:00 2001 From: hzj <826100833@qq.com> Date: Thu, 21 May 2026 14:55:11 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/PqReasonableRangeFeignClient.java | 36 +++++++++++++ ...onableRangeFeignClientFallbackFactory.java | 50 +++++++++++++++++++ .../algorithm/pojo}/param/DataCleanParam.java | 2 +- .../PqReasonableRangeController.java | 2 +- .../line/IPqReasonableRangeService.java | 2 +- .../line/DataCleanServiceImpl.java | 2 +- .../line/PqReasonableRangeServiceImpl.java | 2 +- 7 files changed, 91 insertions(+), 5 deletions(-) create mode 100644 algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/api/PqReasonableRangeFeignClient.java create mode 100644 algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/api/fallback/PqReasonableRangeFeignClientFallbackFactory.java rename {data-processing/data-processing-api/src/main/java/com/njcn/dataProcess => algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo}/param/DataCleanParam.java (90%) diff --git a/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/api/PqReasonableRangeFeignClient.java b/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/api/PqReasonableRangeFeignClient.java new file mode 100644 index 0000000..18337be --- /dev/null +++ b/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/api/PqReasonableRangeFeignClient.java @@ -0,0 +1,36 @@ +package com.njcn.algorithm.pojo.api; + +/** + * Description: + * Date: 2026/05/21 下午 2:41【需求编号】 + * + * @author clam + * @version V1.0.0 + */ + +import com.njcn.algorithm.pojo.api.fallback.PqReasonableRangeFeignClientFallbackFactory; +import com.njcn.algorithm.pojo.dto.PqReasonableRangeDto; +import com.njcn.algorithm.pojo.param.DataCleanParam; +import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.response.HttpResult; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +/** + * @author xy + * @version 1.0.0 + * @date 2025年02月13日 20:11 + */ +@FeignClient(value = ServerInfo.ALGORITHM_BOOT, path = "/pqReasonableRange", fallbackFactory = PqReasonableRangeFeignClientFallbackFactory.class, contextId = "pqReasonableRange") +public interface PqReasonableRangeFeignClient { + + @PostMapping("/getData") + @ApiOperation("按条件获取数据合理范围") + HttpResult> getData(@RequestBody DataCleanParam param); + +} + diff --git a/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/api/fallback/PqReasonableRangeFeignClientFallbackFactory.java b/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/api/fallback/PqReasonableRangeFeignClientFallbackFactory.java new file mode 100644 index 0000000..56f9a96 --- /dev/null +++ b/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/api/fallback/PqReasonableRangeFeignClientFallbackFactory.java @@ -0,0 +1,50 @@ +package com.njcn.algorithm.pojo.api.fallback; + +import com.njcn.algorithm.pojo.api.PqReasonableRangeFeignClient; +import com.njcn.algorithm.pojo.dto.PqReasonableRangeDto; +import com.njcn.algorithm.pojo.param.DataCleanParam; +import com.njcn.algorithm.pojo.util.PrepareEnumUtil; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.common.pojo.response.HttpResult; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * Description: + * Date: 2026/05/21 下午 2:42【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Slf4j +@Component +public class PqReasonableRangeFeignClientFallbackFactory implements FallbackFactory { + + /** + * 输出远程请求接口异常日志 + * @param cause RPC请求异常 + */ + @Override + public PqReasonableRangeFeignClient create(Throwable cause) { + //判断抛出异常是否为解码器抛出的业务异常 + Enum exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK; + if(cause.getCause() instanceof BusinessException){ + BusinessException businessException = (BusinessException) cause.getCause(); + exceptionEnum = PrepareEnumUtil.getExceptionEnum(businessException.getResult()); + } + Enum finalExceptionEnum = exceptionEnum; + return new PqReasonableRangeFeignClient() { + + @Override + public HttpResult> getData(DataCleanParam param) { + log.error("{}异常,降级处理,异常为:{}","按条件获取数据合理范围",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + }; + } +} + diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/param/DataCleanParam.java b/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/DataCleanParam.java similarity index 90% rename from data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/param/DataCleanParam.java rename to algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/DataCleanParam.java index 9f4248d..f0c935e 100644 --- a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/param/DataCleanParam.java +++ b/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/param/DataCleanParam.java @@ -1,4 +1,4 @@ -package com.njcn.dataProcess.param; +package com.njcn.algorithm.pojo.param; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/PqReasonableRangeController.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/PqReasonableRangeController.java index 1a841cc..e82f339 100644 --- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/PqReasonableRangeController.java +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/controller/PqReasonableRangeController.java @@ -2,6 +2,7 @@ package com.njcn.algorithm.controller; import com.njcn.algorithm.pojo.dto.PqReasonableRangeDto; +import com.njcn.algorithm.pojo.param.DataCleanParam; import com.njcn.algorithm.service.line.IPqReasonableRangeService; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.OperateType; @@ -10,7 +11,6 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; import com.njcn.csdevice.enums.DeviceOperate; -import com.njcn.dataProcess.param.DataCleanParam; import com.njcn.web.advice.DeviceLog; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/IPqReasonableRangeService.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/IPqReasonableRangeService.java index 3fb2ec9..a580563 100644 --- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/IPqReasonableRangeService.java +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/IPqReasonableRangeService.java @@ -2,8 +2,8 @@ package com.njcn.algorithm.service.line; import com.baomidou.mybatisplus.extension.service.IService; import com.njcn.algorithm.pojo.dto.PqReasonableRangeDto; +import com.njcn.algorithm.pojo.param.DataCleanParam; import com.njcn.algorithm.pojo.po.PqReasonableRange; -import com.njcn.dataProcess.param.DataCleanParam; import java.util.List; diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/DataCleanServiceImpl.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/DataCleanServiceImpl.java index e3154e4..eb1ef64 100644 --- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/DataCleanServiceImpl.java +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/DataCleanServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.njcn.algorithm.pojo.bo.CalculatedParam; import com.njcn.algorithm.pojo.dto.PqReasonableRangeDto; +import com.njcn.algorithm.pojo.param.DataCleanParam; import com.njcn.algorithm.service.line.FlowAsyncService; import com.njcn.algorithm.service.line.IDataCleanService; import com.njcn.algorithm.service.line.IPqReasonableRangeService; @@ -11,7 +12,6 @@ import com.njcn.algorithm.utils.MemorySizeUtil; import com.njcn.dataProcess.api.*; import com.njcn.dataProcess.dto.RmpEventDetailDTO; import com.njcn.dataProcess.enums.DataCleanEnum; -import com.njcn.dataProcess.param.DataCleanParam; import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.pojo.dto.*; import com.njcn.dataProcess.pojo.po.PqDataVerify; diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/PqReasonableRangeServiceImpl.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/PqReasonableRangeServiceImpl.java index 926ab6b..29368fa 100644 --- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/PqReasonableRangeServiceImpl.java +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/PqReasonableRangeServiceImpl.java @@ -6,9 +6,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.algorithm.mapper.PqReasonableRangeMapper; import com.njcn.algorithm.pojo.dto.PqReasonableRangeDto; +import com.njcn.algorithm.pojo.param.DataCleanParam; import com.njcn.algorithm.pojo.po.PqReasonableRange; import com.njcn.algorithm.service.line.IPqReasonableRangeService; -import com.njcn.dataProcess.param.DataCleanParam; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils;