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 1/4] =?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; From c02acfca4fdb78ff6fb512277a53c22e525b9a7f Mon Sep 17 00:00:00 2001 From: xy <748613696@qq.com> Date: Thu, 21 May 2026 19:48:08 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix(data):=20=E4=BF=AE=E5=A4=8D=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=B8=85=E7=90=86=E5=8F=82=E6=95=B0=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E4=B8=BA=E7=A9=BA=E6=97=B6=E7=9A=84=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加系统类型参数非空校验 - 避免空值导致数据库查询错误 - 保持原有数据源条件判断逻辑 --- .../serviceimpl/line/PqReasonableRangeServiceImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 29368fa..c759dc6 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 @@ -34,7 +34,9 @@ public class PqReasonableRangeServiceImpl extends ServiceImpl getReasonableRangeList(DataCleanParam param) { List result = new ArrayList<>(); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(PqReasonableRange::getBelongingSystem,param.getSystemType()); + if (StrUtil.isNotBlank(param.getSystemType())) { + queryWrapper.eq(PqReasonableRange::getBelongingSystem,param.getSystemType()); + } if(StrUtil.isNotBlank(param.getDataSource())){ queryWrapper.eq(PqReasonableRange::getDataSource,param.getDataSource()); } From f1eb4515da2459bd7101eec6046c51e836a1b44a Mon Sep 17 00:00:00 2001 From: hzj <826100833@qq.com> Date: Wed, 27 May 2026 16:27:02 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E7=8E=87=E7=AE=97?= =?UTF-8?q?=E6=B3=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../algorithm/serviceimpl/line/IDataOnlineRateServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataOnlineRateServiceImpl.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataOnlineRateServiceImpl.java index f9ad603..c5a6a2b 100644 --- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataOnlineRateServiceImpl.java +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataOnlineRateServiceImpl.java @@ -247,6 +247,8 @@ public class IDataOnlineRateServiceImpl implements IDataOnlineRateService { long differ = DateUtil.between(date, newDate, DateUnit.MINUTE); if (online.equals(type)) { minute = InfluxDBPublicParam.DAY_MINUTE - (int) differ; + }else{ + minute = (int) differ; } } else { List communicateDataOld = communicateFeignClient.getRawDataEnd(lineParam).getData(); From 761fbc73f289a9d30a934afccf767d9f80804bd4 Mon Sep 17 00:00:00 2001 From: cdf <857448963@qq.com> Date: Mon, 1 Jun 2026 16:51:51 +0800 Subject: [PATCH 4/4] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../njcn/algorithm/serviceimpl/line/PollutionServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/PollutionServiceImpl.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/PollutionServiceImpl.java index 011d711..4092d68 100644 --- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/PollutionServiceImpl.java +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/PollutionServiceImpl.java @@ -101,7 +101,7 @@ public class PollutionServiceImpl implements IPollutionService { Map interHarmonicVoltageList = getInterharmonicVoltage(lineCountEvaluateParam, limitMap); Map voltageFlickerList = getVoltageFlicker(lineCountEvaluateParam, limitMap); - List pollutionList = processPollutionList(local, idList, dictData, harmonicVoltageList, harmonicCurrentList, frequencyDeviationList, voltageDeviationList, + List pollutionList = processPollutionList(local, list, dictData, harmonicVoltageList, harmonicCurrentList, frequencyDeviationList, voltageDeviationList, threePhaseVoltageList, negativeSequenceList, interHarmonicVoltageList, voltageFlickerList); if (CollUtil.isNotEmpty(pollutionList)) {