监测点稳态指标越限次数统计

This commit is contained in:
wr
2025-03-07 09:52:00 +08:00
parent 7b65b79662
commit 3a24d0f765
9 changed files with 109 additions and 14 deletions

View File

@@ -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());
}
}

View File

@@ -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);
}
}

View File

@@ -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<String> batchInsertion(@RequestBody List<DataLimitRateDto> dataIDTOList);
}

View File

@@ -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<DataLimitRateFeignClient> {
/**
* 输出远程请求接口异常日志
* @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<String> batchInsertion(List<DataLimitRateDto> dataIDTOList) {
log.error("{}异常,降级处理,异常为:{}","批量插入数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -40,7 +40,7 @@ import java.util.Map;
@Slf4j
@Controller
@RestController
@RequestMapping("/dataV")
@RequestMapping("/dataLimitRate")
@Api(tags = "电压类数据获取")
public class DataLimitRateController extends BaseController {

View File

@@ -16,7 +16,7 @@ public interface ILimitRateService extends IMppService<RStatLimitRateD> {
/**
* 批量插入数据
* @param dataVDTOList
* @param limitRateList
*/
void batchInsertion(List<DataLimitRateDto> dataVDTOList);
void batchInsertion(List<DataLimitRateDto> limitRateList);
}

View File

@@ -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<RStatLimitRateRelationMapper, RStatLimitRateD> implements ILimitRateService {
@Override
public void batchInsertion(List<DataLimitRateDto> dataVDTOList) {
public void batchInsertion(List<DataLimitRateDto> limitRateList) {
}
}

View File

@@ -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<DataHarmRateVCvtDto> getRawData(LineCountEvaluateParam lineParam) {

View File

@@ -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<RStatLimitRateRelationMapper, RStatLimitRateD> implements ILimitRateService {
@Resource
private ILimitRateService limitRateService;
@Override
public void batchInsertion(List<DataLimitRateDto> dataVDTOList) {
public void batchInsertion(List<DataLimitRateDto> limitRateList) {
List<RStatLimitRateD> result = new ArrayList<>();
limitRateList.forEach(item->{
RStatLimitRateD limitRate = new RStatLimitRateD();
BeanUtils.copyProperties(item, limitRate);
result.add(limitRate);
});
limitRateService.saveOrUpdateBatchByMultiId(result);
}
}