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

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; package com.njcn.algorithm.executor;
import com.njcn.algorithm.service.line.IDataCleanService; import com.njcn.algorithm.service.line.IDataCleanService;
import com.njcn.algorithm.service.line.IDataCrossingService;
import com.njcn.algorithm.service.line.IDayDataService; import com.njcn.algorithm.service.line.IDayDataService;
import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.annotation.LiteflowMethod; import com.yomahub.liteflow.annotation.LiteflowMethod;
@@ -28,8 +29,8 @@ public class MeasurementExecutor extends BaseExecutor {
@Resource @Resource
private IDataCleanService dataCleanService; private IDataCleanService dataCleanService;
@Resource
private IDataCrossingService dataCrossingService;
/** /**
* 数据清洗 电压表 * 数据清洗 电压表
* dataV表 * 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; private DataInharmVFeignClient dataInharmVFeignClient;
@Resource @Resource
private DataHarmRateVFeignClient dataHarmRateVFeignClient; private DataHarmRateVFeignClient dataHarmRateVFeignClient;
@Resource
private DataLimitRateFeignClient dataLimitRateFeignClient;
@Override @Override
public void limitRateHandler(CalculatedParam calculatedParam) { public void limitRateHandler(CalculatedParam calculatedParam) {
@@ -204,10 +205,9 @@ public class IDataCrossingServiceImpl implements IDataCrossingService {
if (CollUtil.isNotEmpty(result)) { 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 @Slf4j
@Controller @Controller
@RestController @RestController
@RequestMapping("/dataV") @RequestMapping("/dataLimitRate")
@Api(tags = "电压类数据获取") @Api(tags = "电压类数据获取")
public class DataLimitRateController extends BaseController { 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; package com.njcn.dataProcess.service.impl.influxdb;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; 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.dao.relation.mapper.RStatLimitRateRelationMapper;
import com.njcn.dataProcess.pojo.dto.DataLimitRateDto; import com.njcn.dataProcess.pojo.dto.DataLimitRateDto;
import com.njcn.dataProcess.pojo.po.RStatLimitRateD; import com.njcn.dataProcess.pojo.po.RStatLimitRateD;
@@ -17,12 +18,12 @@ import java.util.List;
* @author clam * @author clam
* @version V1.0.0 * @version V1.0.0
*/ */
@Service("InfluxdbILimitRateImpl") @Service("InfluxdbLimitRateImpl")
@RequiredArgsConstructor @RequiredArgsConstructor
public class InfluxdbLimitRateImpl extends MppServiceImpl<RStatLimitRateRelationMapper, RStatLimitRateD> implements ILimitRateService { public class InfluxdbLimitRateImpl extends MppServiceImpl<RStatLimitRateRelationMapper, RStatLimitRateD> implements ILimitRateService {
@Override @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 * @author clam
* @version V1.0.0 * @version V1.0.0
*/ */
@Service @Service("RelationDataHarmRateVCvtImpl")
public class RelationDataHarmRateVCvtImpl implements IDataHarmRateVCvt { public class RelationDataHarmRateVCvtImpl implements IDataHarmRateVCvt {
@Override @Override
public List<DataHarmRateVCvtDto> getRawData(LineCountEvaluateParam lineParam) { 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.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatLimitRateRelationMapper; import com.njcn.dataProcess.dao.relation.mapper.RStatLimitRateRelationMapper;
import com.njcn.dataProcess.pojo.dto.DataLimitRateDto; 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.pojo.po.RStatLimitRateD;
import com.njcn.dataProcess.service.IDataV;
import com.njcn.dataProcess.service.ILimitRateService; import com.njcn.dataProcess.service.ILimitRateService;
import com.njcn.dataProcess.util.TimeUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -16,13 +22,21 @@ import java.util.List;
* @version 1.0 * @version 1.0
* @data 2024/11/7 11:02 * @data 2024/11/7 11:02
*/ */
@Service("RelationDataVImpl") @Service("RelationLimitRateImpl")
@RequiredArgsConstructor @RequiredArgsConstructor
public class RelationLimitRateImpl extends MppServiceImpl<RStatLimitRateRelationMapper, RStatLimitRateD> implements ILimitRateService { public class RelationLimitRateImpl extends MppServiceImpl<RStatLimitRateRelationMapper, RStatLimitRateD> implements ILimitRateService {
@Resource
private ILimitRateService limitRateService;
@Override @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);
} }
} }