diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/MeasurementExecutor.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/MeasurementExecutor.java index ac59d5c..8aa971a 100644 --- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/MeasurementExecutor.java +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/MeasurementExecutor.java @@ -1,6 +1,7 @@ package com.njcn.algorithm.executor; import com.njcn.algorithm.service.line.IDataCleanService; +import com.njcn.algorithm.service.line.IDataCrossingService; import com.njcn.algorithm.service.line.IDayDataService; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.annotation.LiteflowMethod; @@ -28,8 +29,8 @@ public class MeasurementExecutor extends BaseExecutor { @Resource private IDataCleanService dataCleanService; - - + @Resource + private IDataCrossingService dataCrossingService; /** * 数据清洗 电压表 * dataV表 @@ -289,4 +290,12 @@ public class MeasurementExecutor extends BaseExecutor { + @LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "dataLimitRate", nodeType = NodeTypeEnum.COMMON) + public boolean dataLimitRateAccess(NodeComponent bindCmp) { + return isAccess(bindCmp); + } + @LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "dataLimitRate", nodeType = NodeTypeEnum.COMMON) + public void dataLimitRateProcess(NodeComponent bindCmp) { + dataCrossingService.limitRateHandler(bindCmp.getRequestData()); + } } diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataCrossingServiceImpl.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataCrossingServiceImpl.java index 280e007..66ccf1c 100644 --- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataCrossingServiceImpl.java +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataCrossingServiceImpl.java @@ -57,7 +57,8 @@ public class IDataCrossingServiceImpl implements IDataCrossingService { private DataInharmVFeignClient dataInharmVFeignClient; @Resource private DataHarmRateVFeignClient dataHarmRateVFeignClient; - + @Resource + private DataLimitRateFeignClient dataLimitRateFeignClient; @Override public void limitRateHandler(CalculatedParam calculatedParam) { @@ -204,10 +205,9 @@ public class IDataCrossingServiceImpl implements IDataCrossingService { if (CollUtil.isNotEmpty(result)) { //存储数据 - + dataLimitRateFeignClient.batchInsertion(result); } - } diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataLimitRateFeignClient.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataLimitRateFeignClient.java new file mode 100644 index 0000000..5148fdc --- /dev/null +++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataLimitRateFeignClient.java @@ -0,0 +1,24 @@ +package com.njcn.dataProcess.api; + +import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.dataProcess.api.fallback.DataIFeignClientFallbackFactory; +import com.njcn.dataProcess.pojo.dto.DataLimitRateDto; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +/** + * @Description: + * @Author: wr + * @Date: 2025/3/7 9:30 + */ +@FeignClient(value = ServerInfo.PLATFORM_DATA_PROCESSING_BOOT, path = "/dataLimitRate", fallbackFactory = DataIFeignClientFallbackFactory.class, contextId = "dataLimitRate") +public interface DataLimitRateFeignClient { + + @PostMapping("/batchInsertion") + HttpResult batchInsertion(@RequestBody List dataIDTOList); + +} diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataLimitRateFeignClientFallbackFactory.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataLimitRateFeignClientFallbackFactory.java new file mode 100644 index 0000000..5bf9cb6 --- /dev/null +++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataLimitRateFeignClientFallbackFactory.java @@ -0,0 +1,47 @@ +package com.njcn.dataProcess.api.fallback; + +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.dataProcess.api.DataLimitRateFeignClient; +import com.njcn.dataProcess.pojo.dto.DataLimitRateDto; +import com.njcn.dataProcess.util.DataProcessingEnumUtil; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @Description: + * @Author: wr + * @Date: 2025/3/7 9:30 + */ +@Slf4j +@Component +public class DataLimitRateFeignClientFallbackFactory implements FallbackFactory { + + + /** + * 输出远程请求接口异常日志 + * @param cause RPC请求异常 + */ + @Override + public DataLimitRateFeignClient create(Throwable cause) { + //判断抛出异常是否为解码器抛出的业务异常 + Enum exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK; + if(cause.getCause() instanceof BusinessException){ + BusinessException businessException = (BusinessException) cause.getCause(); + exceptionEnum = DataProcessingEnumUtil.getExceptionEnum(businessException.getResult()); + } + Enum finalExceptionEnum = exceptionEnum; + return new DataLimitRateFeignClient() { + + @Override + public HttpResult batchInsertion(List dataIDTOList) { + log.error("{}异常,降级处理,异常为:{}","批量插入数据",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + }; + } +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataLimitRateController.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataLimitRateController.java index 4cd7fe2..8415663 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataLimitRateController.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataLimitRateController.java @@ -40,7 +40,7 @@ import java.util.Map; @Slf4j @Controller @RestController -@RequestMapping("/dataV") +@RequestMapping("/dataLimitRate") @Api(tags = "电压类数据获取") public class DataLimitRateController extends BaseController { diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/ILimitRateService.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/ILimitRateService.java index 741edea..5b6d9d6 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/ILimitRateService.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/ILimitRateService.java @@ -16,7 +16,7 @@ public interface ILimitRateService extends IMppService { /** * 批量插入数据 - * @param dataVDTOList + * @param limitRateList */ - void batchInsertion(List dataVDTOList); + void batchInsertion(List limitRateList); } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbLimitRateImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbLimitRateImpl.java index 7a9b49f..04e470d 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbLimitRateImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbLimitRateImpl.java @@ -1,6 +1,7 @@ package com.njcn.dataProcess.service.impl.influxdb; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.dataProcess.dao.imapper.DataVMapper; import com.njcn.dataProcess.dao.relation.mapper.RStatLimitRateRelationMapper; import com.njcn.dataProcess.pojo.dto.DataLimitRateDto; import com.njcn.dataProcess.pojo.po.RStatLimitRateD; @@ -17,12 +18,12 @@ import java.util.List; * @author clam * @version V1.0.0 */ -@Service("InfluxdbILimitRateImpl") +@Service("InfluxdbLimitRateImpl") @RequiredArgsConstructor public class InfluxdbLimitRateImpl extends MppServiceImpl implements ILimitRateService { @Override - public void batchInsertion(List dataVDTOList) { + public void batchInsertion(List limitRateList) { } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataHarmRateVCvtImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataHarmRateVCvtImpl.java index 8fce304..b063d03 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataHarmRateVCvtImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataHarmRateVCvtImpl.java @@ -15,7 +15,7 @@ import java.util.List; * @author clam * @version V1.0.0 */ -@Service +@Service("RelationDataHarmRateVCvtImpl") public class RelationDataHarmRateVCvtImpl implements IDataHarmRateVCvt { @Override public List getRawData(LineCountEvaluateParam lineParam) { diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationLimitRateImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationLimitRateImpl.java index 8148a74..4a31158 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationLimitRateImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationLimitRateImpl.java @@ -3,11 +3,17 @@ package com.njcn.dataProcess.service.impl.relation; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.relation.mapper.RStatLimitRateRelationMapper; import com.njcn.dataProcess.pojo.dto.DataLimitRateDto; +import com.njcn.dataProcess.pojo.po.RStatDataVD; import com.njcn.dataProcess.pojo.po.RStatLimitRateD; +import com.njcn.dataProcess.service.IDataV; import com.njcn.dataProcess.service.ILimitRateService; +import com.njcn.dataProcess.util.TimeUtils; import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; @@ -16,13 +22,21 @@ import java.util.List; * @version 1.0 * @data 2024/11/7 11:02 */ -@Service("RelationDataVImpl") +@Service("RelationLimitRateImpl") @RequiredArgsConstructor public class RelationLimitRateImpl extends MppServiceImpl implements ILimitRateService { + @Resource + private ILimitRateService limitRateService; @Override - public void batchInsertion(List dataVDTOList) { - + public void batchInsertion(List limitRateList) { + List result = new ArrayList<>(); + limitRateList.forEach(item->{ + RStatLimitRateD limitRate = new RStatLimitRateD(); + BeanUtils.copyProperties(item, limitRate); + result.add(limitRate); + }); + limitRateService.saveOrUpdateBatchByMultiId(result); } }