1.地市数据完整性

2.监测点稳态指标合格率
This commit is contained in:
wr
2025-03-13 20:07:40 +08:00
parent d94b4e6ac7
commit 127ad2e563
41 changed files with 832 additions and 115 deletions

View File

@@ -58,5 +58,6 @@ public class BaseParam implements Serializable {
@ApiModelProperty(name = "idList",value = "索引集合")
private List<String> idList;
@ApiModelProperty(name = "type",value = "0:通用 1:省级平台 ")
private Integer type;
}

View File

@@ -231,45 +231,45 @@ public class ExecutionCenter extends BaseController {
dealResponse(calculatedParam, liteflowResponse, methodDescribe);
}
}
//
// @OperateInfo(info = LogEnum.BUSINESS_COMMON)
// @ApiOperation("单位监测点算法执行链")
// @PostMapping("/orgPointExecutor")
// @Async("asyncExecutor")
// public void orgPointExecutor(@RequestBody BaseParam baseParam) {
// String methodDescribe = getMethodDescribe("OrgPointExecutor");
// //手动判断参数是否合法,
// CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = judgeExecuteParam(baseParam);
// // 测点索引
// DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
//
// if (CollectionUtils.isEmpty(calculatedParam.getIdList())) {
// Dept data = deptFeignClient.getRootDept().getData();
// deptGetLineParam.setDeptId(data.getId());
// calculatedParam.setIdList(commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData());
// }
// LiteflowResponse liteflowResponse;
// if (baseParam.isRepair()) {
// //补招时,起始日期、截止日期必填
// DateTime startDate = DateUtil.parse(baseParam.getBeginTime(), DatePattern.NORM_DATE_FORMAT);
// DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
// long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
// //递增日期执行算法链
// for (int i = 0; i < betweenDay; i++) {
// if (i != 0) {
// startDate = DateUtil.offsetDay(startDate, 1);
// }
// calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN));
// liteflowResponse = flowExecutor.execute2Resp("org_point", calculatedParam);
// dealResponse(calculatedParam, liteflowResponse, methodDescribe);
// }
// } else {
// //非补招
// liteflowResponse = flowExecutor.execute2Resp("org_point", calculatedParam);
// dealResponse(calculatedParam, liteflowResponse, methodDescribe);
// }
//
// }
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("单位监测点算法执行链")
@PostMapping("/orgPointExecutor")
@Async("asyncExecutor")
public void orgPointExecutor(@RequestBody BaseParam baseParam) {
String methodDescribe = getMethodDescribe("OrgPointExecutor");
//手动判断参数是否合法,
CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = judgeExecuteParam(baseParam);
// 测点索引
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
if (CollectionUtils.isEmpty(calculatedParam.getIdList())) {
Dept data = deptFeignClient.getRootDept().getData();
deptGetLineParam.setDeptId(data.getId());
calculatedParam.setIdList(commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData());
}
LiteflowResponse liteflowResponse;
if (baseParam.isRepair()) {
//补招时,起始日期、截止日期必填
DateTime startDate = DateUtil.parse(baseParam.getBeginTime(), DatePattern.NORM_DATE_FORMAT);
DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
//递增日期执行算法链
for (int i = 0; i < betweenDay; i++) {
if (i != 0) {
startDate = DateUtil.offsetDay(startDate, 1);
}
calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN));
liteflowResponse = flowExecutor.execute2Resp("org_point", calculatedParam);
dealResponse(calculatedParam, liteflowResponse, methodDescribe);
}
} else {
//非补招
liteflowResponse = flowExecutor.execute2Resp("org_point", calculatedParam);
dealResponse(calculatedParam, liteflowResponse, methodDescribe);
}
}
//
// @OperateInfo(info = LogEnum.BUSINESS_COMMON)
// @ApiOperation("pms国网上送单位层级算法执行链")

View File

@@ -39,5 +39,13 @@ public class DeviceExecutor extends BaseExecutor {
onlineRateService.dataOnlineRate(bindCmp.getRequestData());
}
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "deviceOnlineRateMonth", nodeType = NodeTypeEnum.COMMON)
public boolean dataOnlineRateMonthAccess(NodeComponent bindCmp) {
return isAccess(bindCmp);
}
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "deviceOnlineRateMonth", nodeType = NodeTypeEnum.COMMON)
public void deviceOnlineRateMonthProcess(NodeComponent bindCmp) {
onlineRateService.dataOnlineRateMonth(bindCmp.getRequestData());
}
}

View File

@@ -2,6 +2,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.IDataIntegrityService;
import com.njcn.algorithm.service.line.IDayDataService;
import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.annotation.LiteflowMethod;
@@ -28,9 +29,12 @@ public class MeasurementExecutor extends BaseExecutor {
private IDayDataService dayDataService;
@Resource
private IDataCleanService dataCleanService;
@Resource
private IDataCrossingService dataCrossingService;
@Resource
private IDataIntegrityService dataIntegrityService;
/**
* 数据清洗 电压表
* dataV表
@@ -307,4 +311,16 @@ public class MeasurementExecutor extends BaseExecutor {
public void dataLimitTargetProcess(NodeComponent bindCmp) {
dataCrossingService.limitTargetHandler(bindCmp.getRequestData());
}
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "dataIntegrity", nodeType = NodeTypeEnum.COMMON)
public boolean dataIntegrityAccess(NodeComponent bindCmp) {
return isAccess(bindCmp);
}
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "dataIntegrity", nodeType = NodeTypeEnum.COMMON)
public void dataIntegrityProcess(NodeComponent bindCmp) {
dataIntegrityService.dataIntegrity(bindCmp.getRequestData());
}
}

View File

@@ -0,0 +1,39 @@
package com.njcn.algorithm.executor;
import com.njcn.algorithm.service.line.IDataIntegrityService;
import com.njcn.algorithm.service.line.IDataOrgPointService;
import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.annotation.LiteflowMethod;
import com.yomahub.liteflow.core.NodeComponent;
import com.yomahub.liteflow.enums.LiteFlowMethodEnum;
import com.yomahub.liteflow.enums.NodeTypeEnum;
import lombok.RequiredArgsConstructor;
import javax.annotation.Resource;
/**
* Description:
* Date: 2023/11/10 10:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
@LiteflowComponent
@RequiredArgsConstructor
public class OrgPointExecutor extends BaseExecutor{
@Resource
private IDataOrgPointService dataOrgPointService;
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "dataOrgIntegrity", nodeType = NodeTypeEnum.COMMON)
public boolean dataOrgIntegrityAccess(NodeComponent bindCmp) {
return isAccess(bindCmp);
}
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "dataOrgIntegrity", nodeType = NodeTypeEnum.COMMON)
public void dataOrgIntegrityProcess(NodeComponent bindCmp) {
dataOrgPointService.dataOrgIntegrity(bindCmp.getRequestData());
}
}

View File

@@ -34,4 +34,13 @@ public interface IDataCrossingService {
* @Date: 2025/3/12 16:03
*/
List<QualifiedDetail> limitQualifiedDayHandler(CalculatedParam calculatedParam);
/**
* 监测点稳态指标合格率(月)
* @param calculatedParam
* @Author: wr
* @Date: 2025/3/12 16:03
*/
List<QualifiedDetail> limitQualifiedMonthHandler(CalculatedParam calculatedParam);
}

View File

@@ -2,6 +2,9 @@ package com.njcn.algorithm.service.line;
import com.njcn.algorithm.pojo.bo.CalculatedParam;
import com.njcn.dataProcess.pojo.dto.DataIntegrityDto;
import java.util.List;
/**
* @author xiaoyao
@@ -17,4 +20,13 @@ public interface IDataIntegrityService {
* @param calculatedParam 查询条件
*/
void dataIntegrity(CalculatedParam<String> calculatedParam);
/***
* 监测点数据完整性_月表
* @author xuyang
* @date 2023/11/09 10:08
* @param calculatedParam 查询条件
*/
List<DataIntegrityDto> dataIntegrityMonth(CalculatedParam<String> calculatedParam);
}

View File

@@ -0,0 +1,32 @@
package com.njcn.algorithm.service.line;
import com.njcn.algorithm.pojo.bo.CalculatedParam;
import com.njcn.dataProcess.pojo.dto.DataOrgIntegrityDto;
import java.util.List;
/**
* @author xiaoyao
* @version 1.0.0
* @createTime 2022/10/24 20:06
*/
public interface IDataOrgPointService {
/***
* 地区数据完整性_日表
* @author xuyang
* @date 2023/11/09 10:08
* @param calculatedParam 查询条件
*/
void dataOrgIntegrity(CalculatedParam calculatedParam);
/***
* 地区点数据完整性_月表
* @author xuyang
* @date 2023/11/09 10:08
* @param calculatedParam 查询条件
*/
List<DataOrgIntegrityDto> dataOrgIntegrityMonth(CalculatedParam calculatedParam);
}

View File

@@ -24,6 +24,7 @@ import com.njcn.influx.pojo.constant.InfluxDBTableConstant;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@@ -260,13 +261,26 @@ public class IDataCrossingServiceImpl implements IDataCrossingService {
@Override
public List<QualifiedDetail> limitQualifiedDayHandler(CalculatedParam calculatedParam) {
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate()));
lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate()));
List<String> lineIdList = calculatedParam.getIdList();
return getQualifiedDetails(calculatedParam, lineParam, lineIdList);
}
@Override
public List<QualifiedDetail> limitQualifiedMonthHandler(CalculatedParam calculatedParam) {
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
lineParam.setStartTime(TimeUtils.getBeginOfMonth(calculatedParam.getDataDate()));
lineParam.setEndTime(TimeUtils.getEndOfMonth(calculatedParam.getDataDate()));
List<String> devIdList = calculatedParam.getIdList();
List<String> lineIdList = calculatedParam.getIdList();
return getQualifiedDetails(calculatedParam, lineParam, lineIdList);
}
private List<QualifiedDetail> getQualifiedDetails(CalculatedParam calculatedParam, LineCountEvaluateParam lineParam, List<String> lineIdList) {
List<QualifiedDetail> info = new ArrayList<>();
List<List<String>> pendingIds = ListUtils.partition(devIdList, NUM);
List<List<String>> pendingIds = ListUtils.partition(lineIdList, NUM);
for (List<String> pendingId : pendingIds) {
lineParam.setLineId(pendingId);
List<DataLimitRateDto> data = dataLimitRateFeignClient.getRawData(lineParam).getData();
@@ -277,35 +291,41 @@ public class IDataCrossingServiceImpl implements IDataCrossingService {
qualified.setTime(calculatedParam.getDataDate());
int all = value.stream().mapToInt(DataLimitRateDto::getAllTime).sum();
if (all > 0) {
qualified.setFreqDevOvertime(PubUtils.doubleRound(2, 100.0 - (value.stream().mapToInt(DataLimitRateDto::getFreqDevOvertime).sum() * 100.0 / all)));
qualified.setVoltageDevOvertime(PubUtils.doubleRound(2, 100.0 - (value.stream().mapToInt(DataLimitRateDto::getVoltageDevOvertime).sum() * 100.0 / all)));
qualified.setUbalanceOvertime(PubUtils.doubleRound(2, 100.0 - (value.stream().mapToInt(DataLimitRateDto::getUbalanceOvertime).sum() * 100.0 / all)));
qualified.setUaberranceOvertime(PubUtils.doubleRound(2, 100.0 - (value.stream().mapToInt(DataLimitRateDto::getUaberranceOvertime).sum() * 100.0 / all)));
qualified.setINegOvertime(PubUtils.doubleRound(2, 100.0 - (value.stream().mapToInt(DataLimitRateDto::getINegOvertime).sum() * 100.0 / all)));
setOverTime(2,25,"getUharm",value, qualified, all);
setOverTime(2,25,"getIharm",value, qualified, all);
setOverTime(1,16,"getInuharm",value, qualified, all);
qualified.setFreqDevOvertime(PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(DataLimitRateDto::getFreqDevOvertime).sum() * 100.0, all)));
qualified.setVoltageDevOvertime(PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(DataLimitRateDto::getVoltageDevOvertime).sum() * 100.0, all)));
qualified.setUbalanceOvertime(PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(DataLimitRateDto::getUbalanceOvertime).sum() * 100.0, all)));
qualified.setUaberranceOvertime(PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(DataLimitRateDto::getUaberranceOvertime).sum() * 100.0, all)));
qualified.setINegOvertime(PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(DataLimitRateDto::getINegOvertime).sum() * 100.0, all)));
setOverTime(2, 25, "uharm", value, qualified, all);
setOverTime(2, 25, "iharm", value, qualified, all);
setOverTime(1, 16, "inuharm", value, qualified, all);
}
int flickerAll = value.stream().mapToInt(DataLimitRateDto::getFlickerAllTime).sum();
if (flickerAll > 0) {
qualified.setFlickerOvertime(PubUtils.doubleRound(2, 100.0 - (value.stream().mapToInt(DataLimitRateDto::getFlickerOvertime).sum() * 100.0 / flickerAll)));
qualified.setFlickerOvertime(PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(DataLimitRateDto::getFlickerOvertime).sum() * 100.0, flickerAll)));
}
info.add(qualified);
});
}
if (CollUtil.isNotEmpty(info)) {
}
return info;
}
private static void setOverTime(Integer start, Integer end, String targetName,List<DataLimitRateDto> value, QualifiedDetail qualified, int all) {
private double getaDouble(double value, int all) {
return value * 100.0 / all;
}
private void setOverTime(Integer start, Integer end, String targetName, List<DataLimitRateDto> value, QualifiedDetail qualified, int all) {
for (int i = start; i <= end; i++) {
// 构造方法名
String methodName = targetName + i + "Overtime";
try {
Field finalField = DataLimitRateDto.class.getDeclaredField(methodName);
finalField.setAccessible(true);
finalField.set(qualified, PubUtils.doubleRound(2, 100.0 - (value.stream().mapToInt(temp -> {
double v = PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(temp -> {
Integer o;
try {
o = (Integer) finalField.get(temp);
@@ -313,7 +333,10 @@ public class IDataCrossingServiceImpl implements IDataCrossingService {
throw new RuntimeException(e);
}
return o.intValue();
}).sum() * 100.0 / all)));
}).sum() * 100.0, all));
Field declared = QualifiedDetail.class.getDeclaredField(methodName);
declared.setAccessible(true);
declared.set(qualified, v);
} catch (NoSuchFieldException | IllegalAccessException e) {
throw new RuntimeException(e);
}

View File

@@ -8,14 +8,12 @@ import com.njcn.algorithm.service.line.IDataIntegrityService;
import com.njcn.dataProcess.api.DataIntegrityFeignClient;
import com.njcn.dataProcess.api.DataVFeignClient;
import com.njcn.dataProcess.dto.MeasurementCountDTO;
import com.njcn.dataProcess.pojo.po.RStatIntegrityD;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataIntegrityDto;
import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.influx.pojo.bo.MeasurementCount;
import com.njcn.influx.pojo.constant.InfluxDBTableConstant;
import com.njcn.influx.pojo.po.DataV;
import com.njcn.influx.query.InfluxQueryWrapper;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils;
import org.springframework.stereotype.Service;
@@ -23,6 +21,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
@@ -36,15 +35,15 @@ import java.util.stream.Collectors;
public class IDataIntegrityServiceImpl implements IDataIntegrityService {
@Resource
private CommTerminalGeneralClient commTerminalGeneralClient;
private final DataVFeignClient dataVFeignClient;
private final DataIntegrityFeignClient dataIntegrityFeignClient;
@Resource
private DataVFeignClient dataVFeignClient;
@Resource
private DataIntegrityFeignClient dataIntegrityFeignClient;
@Override
public void dataIntegrity(CalculatedParam<String> calculatedParam) {
List<RStatIntegrityD> poList = new ArrayList<>();
List<DataIntegrityDto> poList = new ArrayList<>();
List<String> lineIds = calculatedParam.getIdList();
String beginDay = LocalDateTimeUtil.format(
LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),
@@ -55,15 +54,15 @@ public class IDataIntegrityServiceImpl implements IDataIntegrityService {
DatePattern.NORM_DATETIME_PATTERN
);
//以尺寸100分片
List<List<String>> pendingIds = ListUtils.partition(lineIds,5);
List<List<String>> pendingIds = ListUtils.partition(lineIds, 5);
for (List<String> pendingId : pendingIds) {
List<LineDevGetDTO> lineDevGetDTOList = commTerminalGeneralClient.getMonitorDetailList(pendingId).getData();
List<MeasurementCountDTO> countList = dataVFeignClient.getMeasurementCount(pendingId,beginDay,endDay).getData();
List<MeasurementCountDTO> countList = dataVFeignClient.getMeasurementCount(pendingId, beginDay, endDay).getData();
poList.addAll(
lineDevGetDTOList.stream()
.map(item -> {
RStatIntegrityD integrityDpo = new RStatIntegrityD();
integrityDpo.setTimeId(LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
DataIntegrityDto integrityDpo = new DataIntegrityDto();
integrityDpo.setTimeId(calculatedParam.getDataDate());
integrityDpo.setLineIndex(item.getPointId());
integrityDpo.setDueTime(InfluxDBTableConstant.DAY_MINUTE / item.getInterval());
integrityDpo.setRealTime(countList.stream()
@@ -76,12 +75,40 @@ public class IDataIntegrityServiceImpl implements IDataIntegrityService {
.collect(Collectors.toList())
);
}
if(CollUtil.isNotEmpty(poList)){
if (CollUtil.isNotEmpty(poList)) {
dataIntegrityFeignClient.batchInsertion(poList);
}
}
@Override
public List<DataIntegrityDto> dataIntegrityMonth(CalculatedParam<String> calculatedParam) {
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
lineParam.setStartTime(TimeUtils.getBeginOfMonth(calculatedParam.getDataDate()));
lineParam.setEndTime(TimeUtils.getEndOfMonth(calculatedParam.getDataDate()));
List<String> devIdList = calculatedParam.getIdList();
List<DataIntegrityDto> info = new ArrayList<>();
List<List<String>> pendingIds = ListUtils.partition(devIdList, 100);
for (List<String> pendingId : pendingIds) {
lineParam.setLineId(pendingId);
List<DataIntegrityDto> data = dataIntegrityFeignClient.getRawData(lineParam).getData();
Map<String, List<DataIntegrityDto>> collect = data.stream().collect(Collectors.groupingBy(DataIntegrityDto::getLineIndex));
collect.forEach((key, value) -> {
DataIntegrityDto integrity = new DataIntegrityDto();
integrity.setTimeId(calculatedParam.getDataDate());
integrity.setLineIndex(key);
integrity.setDueTime(value.stream().mapToInt(DataIntegrityDto::getDueTime).sum());
integrity.setRealTime(value.stream().mapToInt(DataIntegrityDto::getRealTime).sum());
info.add(integrity);
});
}
if (CollUtil.isNotEmpty(info)) {
}
return info;
}
}

View File

@@ -1,6 +1,7 @@
package com.njcn.algorithm.serviceimpl.line;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
@@ -22,7 +23,6 @@ import com.njcn.influx.deprecated.InfluxDBPublicParam;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections4.ListUtils;
import org.springframework.stereotype.Service;
@@ -136,6 +136,10 @@ public class IDataOnlineRateServiceImpl implements IDataOnlineRateService {
onlineRateDto.setOfflineMin(value.stream().mapToInt(DataOnlineRateDto.Detail::getOfflineMin).sum());
info.add(onlineRateDto);
});
}
if(CollUtil.isNotEmpty(info)){
}
return info;
}

View File

@@ -0,0 +1,86 @@
package com.njcn.algorithm.serviceimpl.line;
import cn.hutool.core.collection.CollUtil;
import com.njcn.algorithm.pojo.bo.CalculatedParam;
import com.njcn.algorithm.service.line.IDataOrgPointService;
import com.njcn.dataProcess.api.DataIntegrityFeignClient;
import com.njcn.dataProcess.api.DataOrgIntegrityFeignClient;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataIntegrityDto;
import com.njcn.dataProcess.pojo.dto.DataOrgIntegrityDto;
import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Author: cdf
* @CreateTime: 2025-02-28
* @Description: 数据完成性
*/
@Service
@RequiredArgsConstructor
public class IDataOrgPointServiceImpl implements IDataOrgPointService {
@Resource
private DataIntegrityFeignClient dataIntegrityFeignClient;
@Resource
private DataOrgIntegrityFeignClient dataOrgIntegrityFeignClient;
@Override
public void dataOrgIntegrity(CalculatedParam calculatedParam) {
List<DataOrgIntegrityDto> info=new ArrayList<>();
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate()));
lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate()));
List<DeptGetChildrenMoreDTO> deptList = calculatedParam.getIdList();
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : deptList) {
List<LineDevGetDTO> lineBaseList = deptGetChildrenMoreDTO.getLineBaseList();
List<String> lineIds = lineBaseList.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
lineParam.setLineId(lineIds);
List<DataIntegrityDto> data = dataIntegrityFeignClient.getRawData(lineParam).getData();
DataOrgIntegrityDto integrity = new DataOrgIntegrityDto();
integrity.setTimeId(calculatedParam.getDataDate());
integrity.setOrgId(deptGetChildrenMoreDTO.getUnitId());
integrity.setDueTime(data.stream().mapToInt(DataIntegrityDto::getDueTime).sum());
integrity.setRealTime(data.stream().mapToInt(DataIntegrityDto::getRealTime).sum());
info.add(integrity);
}
if(CollUtil.isNotEmpty(info)){
dataOrgIntegrityFeignClient.batchInsertion(info);
}
}
@Override
public List<DataOrgIntegrityDto> dataOrgIntegrityMonth(CalculatedParam calculatedParam) {
List<DataOrgIntegrityDto> info=new ArrayList<>();
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
lineParam.setStartTime(TimeUtils.getBeginOfMonth(calculatedParam.getDataDate()));
lineParam.setEndTime(TimeUtils.getEndOfMonth(calculatedParam.getDataDate()));
List<DeptGetChildrenMoreDTO> deptList = calculatedParam.getIdList();
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : deptList) {
lineParam.setLineId(Arrays.asList(deptGetChildrenMoreDTO.getUnitId()));
List<DataOrgIntegrityDto> data = dataOrgIntegrityFeignClient.getRawData(lineParam).getData();
Map<String, List<DataOrgIntegrityDto>> collect = data.stream().collect(Collectors.groupingBy(DataOrgIntegrityDto::getOrgId));
collect.forEach((key, value) -> {
DataOrgIntegrityDto integrity = new DataOrgIntegrityDto();
integrity.setTimeId(calculatedParam.getDataDate());
integrity.setOrgId(deptGetChildrenMoreDTO.getUnitId());
integrity.setDueTime(data.stream().mapToInt(DataOrgIntegrityDto::getDueTime).sum());
integrity.setRealTime(data.stream().mapToInt(DataOrgIntegrityDto::getRealTime).sum());
info.add(integrity);
});
}
if(CollUtil.isNotEmpty(info)){
}
return info;
}
}

View File

@@ -3,10 +3,8 @@ 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.DataIntegrityFeignClientFallbackFactory;
import com.njcn.dataProcess.api.fallback.DataOnlineRateFeignClientFallbackFactory;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataIntegrityDto;
import com.njcn.dataProcess.pojo.dto.DataOnlineRateDto;
import com.njcn.dataProcess.pojo.po.RStatIntegrityD;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -22,6 +20,8 @@ import java.util.List;
public interface DataIntegrityFeignClient {
@PostMapping("/batchInsertion")
HttpResult<String> batchInsertion(@RequestBody List<RStatIntegrityD> dataList);
HttpResult<String> batchInsertion(@RequestBody List<DataIntegrityDto> dataList);
@PostMapping("/getRawData")
HttpResult<List<DataIntegrityDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam);
}

View File

@@ -3,6 +3,7 @@ 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.DataLimitTargetFeignClientFallbackFactory;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataLimitTargetDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
@@ -21,4 +22,6 @@ public interface DataLimitTargetFeignClient {
@PostMapping("/batchInsertion")
HttpResult<String> batchInsertion(@RequestBody List<DataLimitTargetDto> dataIDTOList);
@PostMapping("/getRawData")
HttpResult<List<DataLimitTargetDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam);
}

View File

@@ -0,0 +1,27 @@
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.DataOrgIntegrityFeignClientFallbackFactory;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataOrgIntegrityDto;
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 = "/dataOrgIntegrity", fallbackFactory = DataOrgIntegrityFeignClientFallbackFactory.class, contextId = "dataOrgIntegrity")
public interface DataOrgIntegrityFeignClient {
@PostMapping("/batchInsertion")
HttpResult<String> batchInsertion(@RequestBody List<DataOrgIntegrityDto> dataList);
@PostMapping("/getRawData")
HttpResult<List<DataOrgIntegrityDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam);
}

View File

@@ -2,7 +2,6 @@ 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.DataInharmVFeignClientFallbackFactory;
import com.njcn.dataProcess.api.fallback.PqsCommunicateFeignClientFallbackFactory;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.PqsCommunicateDto;

View File

@@ -4,10 +4,8 @@ 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.DataIntegrityFeignClient;
import com.njcn.dataProcess.api.DataOnlineRateFeignClient;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataIntegrityDto;
import com.njcn.dataProcess.pojo.dto.DataOnlineRateDto;
import com.njcn.dataProcess.pojo.po.RStatIntegrityD;
import com.njcn.dataProcess.util.DataProcessingEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
@@ -40,11 +38,17 @@ public class DataIntegrityFeignClientFallbackFactory implements FallbackFactory<
Enum<?> finalExceptionEnum = exceptionEnum;
return new DataIntegrityFeignClient() {
@Override
public HttpResult<String> batchInsertion(List<RStatIntegrityD> dataList) {
public HttpResult<String> batchInsertion(List<DataIntegrityDto> dataList) {
log.error("{}异常,降级处理,异常为:{}","批量插入数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<DataIntegrityDto>> getRawData(LineCountEvaluateParam lineParam) {
log.error("{}异常,降级处理,异常为:{}","获取原始数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -4,6 +4,7 @@ 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.DataLimitTargetFeignClient;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataLimitTargetDto;
import com.njcn.dataProcess.util.DataProcessingEnumUtil;
import feign.hystrix.FallbackFactory;
@@ -43,6 +44,12 @@ public class DataLimitTargetFeignClientFallbackFactory implements FallbackFactor
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<DataLimitTargetDto>> getRawData(LineCountEvaluateParam lineParam) {
log.error("{}异常,降级处理,异常为:{}","获取原始数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,55 @@
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.DataOrgIntegrityFeignClient;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataIntegrityDto;
import com.njcn.dataProcess.pojo.dto.DataOrgIntegrityDto;
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 DataOrgIntegrityFeignClientFallbackFactory implements FallbackFactory<DataOrgIntegrityFeignClient> {
/**
* 输出远程请求接口异常日志
* @param cause RPC请求异常
*/
@Override
public DataOrgIntegrityFeignClient 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 DataOrgIntegrityFeignClient() {
@Override
public HttpResult<String> batchInsertion(List<DataOrgIntegrityDto> dataList) {
log.error("{}异常,降级处理,异常为:{}","批量插入数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<DataOrgIntegrityDto>> getRawData(LineCountEvaluateParam lineParam) {
log.error("{}异常,降级处理,异常为:{}","获取原始数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -31,5 +31,4 @@ public class DataIntegrityDto {
private Integer realTime;
}

View File

@@ -0,0 +1,34 @@
package com.njcn.dataProcess.pojo.dto;
import lombok.Data;
/**
* <p>
* 数据完整性日表
* </p>
*
* @author hongawen
* @since 2023-03-28
*/
@Data
public class DataOrgIntegrityDto {
private static final long serialVersionUID = 1L;
private String timeId;
private String orgId;
/**
* 应收数量
*/
private Integer dueTime;
/**
* 实收数量
*/
private Integer realTime;
}

View File

@@ -29,7 +29,7 @@ public class RStatIntegrityD {
@MppMultiId
@TableField(value = "time_id")
private LocalDate timeId;
private String timeId;
@MppMultiId
@TableField(value = "line_index")

View File

@@ -0,0 +1,42 @@
package com.njcn.dataProcess.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
/**
* <p>
* 数据完整性日表
* </p>
*
* @author hongawen
* @since 2023-03-28
*/
@Data
@TableName("r_stat_org_integrity_d")
public class RStatOrgIntegrityD {
private static final long serialVersionUID = 1L;
@MppMultiId
@TableField(value = "time_id")
private String timeId;
@MppMultiId
@TableField(value = "org_id")
private String orgId;
/**
* 应收数量
*/
@TableField(value = "due_time")
private Integer dueTime;
/**
* 实收数量
*/
@TableField(value = "real_time")
private Integer realTime;
}

View File

@@ -7,9 +7,9 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataIntegrityDto;
import com.njcn.dataProcess.pojo.dto.DataLimitRateDto;
import com.njcn.dataProcess.pojo.po.RStatIntegrityD;
import com.njcn.dataProcess.service.IDataIntegrity;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
@@ -34,15 +34,27 @@ import java.util.List;
@RequiredArgsConstructor
public class DataIntegrityController extends BaseController {
@QueryBean
private IDataIntegrity iDataIntegrityQuery;
@InsertBean
private IDataIntegrity iDataIntegrity;
private IDataIntegrity iDataIntegrityInsert;
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/batchInsertion")
@ApiOperation("批量插入")
public HttpResult<String> batchInsertion(@RequestBody List<RStatIntegrityD> poList) {
public HttpResult<String> batchInsertion(@RequestBody List<DataIntegrityDto> poList) {
String methodDescribe = getMethodDescribe("batchInsertion");
iDataIntegrity.batchInsertion(poList);
iDataIntegrityInsert.batchInsertion(poList);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getRawData")
@ApiOperation("获取原始数据")
public HttpResult<List<DataIntegrityDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getRawData");
List<DataIntegrityDto> rawData = iDataIntegrityInsert.getRawData(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rawData, methodDescribe);
}
}

View File

@@ -50,7 +50,7 @@ public class DataLimitRateController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getRawData")
@ApiOperation("获取原始数据")
public HttpResult<List<DataLimitRateDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam) {

View File

@@ -8,6 +8,8 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataIntegrityDto;
import com.njcn.dataProcess.pojo.dto.DataLimitTargetDto;
import com.njcn.dataProcess.service.IDataLimitTarget;
import com.njcn.web.controller.BaseController;
@@ -52,4 +54,12 @@ public class DataLimitTargetController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getRawData")
@ApiOperation("获取原始数据")
public HttpResult<List<DataLimitTargetDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getRawData");
List<DataLimitTargetDto> rawData = limitTargetInsert.getRawData(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rawData, methodDescribe);
}
}

View File

@@ -54,7 +54,7 @@ public class DataOnlineRateController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getRawData")
@ApiOperation("获取原始数据")
public HttpResult<List<DataOnlineRateDto.Detail>> getRawData(@RequestBody LineCountEvaluateParam lineParam) {

View File

@@ -0,0 +1,60 @@
package com.njcn.dataProcess.controller;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataOrgIntegrityDto;
import com.njcn.dataProcess.service.IDataOrgIntegrity;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Author: cdf
* @CreateTime: 2025-03-12
* @Description: 数据完整性
*/
@RestController
@RequestMapping("/dataOrgIntegrity")
@Api(tags = "单位数据完整性")
@RequiredArgsConstructor
public class DataOrgIntegrityController extends BaseController {
@QueryBean
private IDataOrgIntegrity dataOrgIntegrityQuery;
@InsertBean
private IDataOrgIntegrity dataOrgIntegrityInsert;
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/batchInsertion")
@ApiOperation("批量插入")
public HttpResult<String> batchInsertion(@RequestBody List<DataOrgIntegrityDto> poList) {
String methodDescribe = getMethodDescribe("batchInsertion");
dataOrgIntegrityInsert.batchInsertion(poList);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getRawData")
@ApiOperation("获取原始数据")
public HttpResult<List<DataOrgIntegrityDto>> getRawData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getRawData");
List<DataOrgIntegrityDto> rawData = dataOrgIntegrityInsert.getRawData(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rawData, methodDescribe);
}
}

View File

@@ -1,6 +1,7 @@
package com.njcn.dataProcess.controller;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
@@ -71,7 +72,7 @@ public class PqsCommunicateController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rawData, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/insertion")
@ApiOperation("插入数据")
public HttpResult<String> insertion(@RequestBody PqsCommunicateDto pqsCommunicateDto) {

View File

@@ -0,0 +1,16 @@
package com.njcn.dataProcess.dao.relation.mapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.dataProcess.pojo.po.RStatOrgIntegrityD;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/12 9:29
*/
public interface RStatOrgIntegrityDMapper extends MppBaseMapper<RStatOrgIntegrityD> {
}

View File

@@ -2,6 +2,7 @@ package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataIntegrityDto;
import com.njcn.dataProcess.pojo.po.RStatIntegrityD;
@@ -18,6 +19,13 @@ public interface IDataIntegrity extends IMppService<RStatIntegrityD>{
* 批量插入数据
* @param onlineRateList
*/
void batchInsertion(List<RStatIntegrityD> onlineRateList);
void batchInsertion(List<DataIntegrityDto> onlineRateList);
/**
* 获取原始数据
* @param lineParam
*/
List<DataIntegrityDto> getRawData(LineCountEvaluateParam lineParam);
}

View File

@@ -1,6 +1,7 @@
package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataLimitTargetDto;
import com.njcn.dataProcess.pojo.po.RStatLimitTargetD;
@@ -20,4 +21,11 @@ public interface IDataLimitTarget extends IMppService<RStatLimitTargetD> {
*/
void batchInsertion(List<DataLimitTargetDto> limitRateList);
/**
* 获取原始数据
* @param lineParam
* @return
*/
List<DataLimitTargetDto> getRawData(LineCountEvaluateParam lineParam);
}

View File

@@ -0,0 +1,31 @@
package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataOrgIntegrityDto;
import com.njcn.dataProcess.pojo.po.RStatOrgIntegrityD;
import java.util.List;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/12 9:32
*/
public interface IDataOrgIntegrity extends IMppService<RStatOrgIntegrityD>{
/**
* 批量插入数据
* @param onlineRateList
*/
void batchInsertion(List<DataOrgIntegrityDto> onlineRateList);
/**
* 获取原始数据
* @param lineParam
*/
List<DataOrgIntegrityDto> getRawData(LineCountEvaluateParam lineParam);
}

View File

@@ -3,12 +3,14 @@ package com.njcn.dataProcess.service.impl.influxdb;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatIntegrityDMapper;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataIntegrityDto;
import com.njcn.dataProcess.pojo.po.RStatIntegrityD;
import com.njcn.dataProcess.service.IDataIntegrity;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
@@ -23,7 +25,12 @@ public class InfluxdbDataIntegrityImpl extends MppServiceImpl<RStatIntegrityDMap
@Override
public void batchInsertion(List<RStatIntegrityD> onlineRateList) {
public void batchInsertion(List<DataIntegrityDto> onlineRateList) {
}
@Override
public List<DataIntegrityDto> getRawData(LineCountEvaluateParam lineParam) {
return Collections.emptyList();
}
}

View File

@@ -2,12 +2,14 @@ package com.njcn.dataProcess.service.impl.influxdb;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatLimitTargetRelationMapper;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataLimitTargetDto;
import com.njcn.dataProcess.pojo.po.RStatLimitTargetD;
import com.njcn.dataProcess.service.IDataLimitTarget;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
@@ -25,4 +27,9 @@ public class InfluxdbDataLimitTargetImpl extends MppServiceImpl<RStatLimitTarget
public void batchInsertion(List<DataLimitTargetDto> limitRateList) {
}
@Override
public List<DataLimitTargetDto> getRawData(LineCountEvaluateParam lineParam) {
return Collections.emptyList();
}
}

View File

@@ -0,0 +1,36 @@
package com.njcn.dataProcess.service.impl.influxdb;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatOrgIntegrityDMapper;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataOrgIntegrityDto;
import com.njcn.dataProcess.pojo.po.RStatOrgIntegrityD;
import com.njcn.dataProcess.service.IDataOrgIntegrity;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/6 10:22
*/
@Service("InfluxdbDataOrgIntegrityImpl")
@RequiredArgsConstructor
public class InfluxdbDataOrgIntegrityImpl extends MppServiceImpl<RStatOrgIntegrityDMapper, RStatOrgIntegrityD> implements IDataOrgIntegrity {
@Override
public void batchInsertion(List<DataOrgIntegrityDto> onlineRateList) {
}
@Override
public List<DataOrgIntegrityDto> getRawData(LineCountEvaluateParam lineParam) {
return Collections.emptyList();
}
}

View File

@@ -1,9 +0,0 @@
package com.njcn.dataProcess.service.impl.relation;
/**
* @Author: cdf
* @CreateTime: 2025-03-12
* @Description: 数据完整性
*/
public class RStatIntegrityDImpl {
}

View File

@@ -1,15 +1,19 @@
package com.njcn.dataProcess.service.impl.relation;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatIntegrityDMapper;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataIntegrityDto;
import com.njcn.dataProcess.pojo.po.RStatIntegrityD;
import com.njcn.dataProcess.service.IDataIntegrity;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@@ -24,7 +28,30 @@ public class RelationDataIntegrityImpl extends MppServiceImpl<RStatIntegrityDMap
@Override
public void batchInsertion(List<RStatIntegrityD> dataIntegrityDtoList) {
this.saveOrUpdateBatchByMultiId(dataIntegrityDtoList);
public void batchInsertion(List<DataIntegrityDto> dataIntegrityDtoList) {
List<RStatIntegrityD> result = new ArrayList<>();
dataIntegrityDtoList.forEach(item->{
RStatIntegrityD onlineRate = new RStatIntegrityD();
BeanUtils.copyProperties(item, onlineRate);
result.add(onlineRate);
});
this.saveOrUpdateBatchByMultiId(result);
}
@Override
public List<DataIntegrityDto> getRawData(LineCountEvaluateParam lineParam) {
List<DataIntegrityDto> result = new ArrayList<>();
LambdaQueryWrapper<RStatIntegrityD> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(CollUtil.isNotEmpty(lineParam.getLineId()),RStatIntegrityD::getLineIndex,lineParam.getLineId())
.ge(RStatIntegrityD::getTimeId,lineParam.getStartTime())
.le(RStatIntegrityD::getTimeId,lineParam.getEndTime());
List<RStatIntegrityD> list = this.list(lambdaQueryWrapper);
list.forEach(item->{
DataIntegrityDto dto = new DataIntegrityDto();
BeanUtils.copyProperties(item,dto);
result.add(dto);
});
return result;
}
}

View File

@@ -1,8 +1,13 @@
package com.njcn.dataProcess.service.impl.relation;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatLimitTargetRelationMapper;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataIntegrityDto;
import com.njcn.dataProcess.pojo.dto.DataLimitTargetDto;
import com.njcn.dataProcess.pojo.po.RStatIntegrityD;
import com.njcn.dataProcess.pojo.po.RStatLimitTargetD;
import com.njcn.dataProcess.service.IDataLimitRate;
import com.njcn.dataProcess.service.IDataLimitTarget;
@@ -12,6 +17,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -38,4 +44,21 @@ public class RelationDataLimitTargetImpl extends MppServiceImpl<RStatLimitTarget
});
this.saveOrUpdateBatchByMultiId(result);
}
@Override
public List<DataLimitTargetDto> getRawData(LineCountEvaluateParam lineParam) {
List<DataLimitTargetDto> result = new ArrayList<>();
LambdaQueryWrapper<RStatLimitTargetD> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(CollUtil.isNotEmpty(lineParam.getLineId()),RStatLimitTargetD::getLineId,lineParam.getLineId())
.ge(RStatLimitTargetD::getTime,lineParam.getStartTime())
.le(RStatLimitTargetD::getTime,lineParam.getEndTime());
List<RStatLimitTargetD> list = this.list(lambdaQueryWrapper);
list.forEach(item->{
DataLimitTargetDto dto = new DataLimitTargetDto();
BeanUtils.copyProperties(item,dto);
result.add(dto);
});
return result;
}
}

View File

@@ -4,12 +4,9 @@ package com.njcn.dataProcess.service.impl.relation;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.constant.PhaseType;
import com.njcn.dataProcess.dao.relation.mapper.RStatOnlineRateDMapper;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataLimitRateDto;
import com.njcn.dataProcess.pojo.dto.DataOnlineRateDto;
import com.njcn.dataProcess.pojo.po.RStatLimitRateD;
import com.njcn.dataProcess.pojo.po.RStatOnlineRateD;
import com.njcn.dataProcess.service.IDataOnlineRate;
import lombok.RequiredArgsConstructor;
@@ -17,7 +14,6 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

View File

@@ -0,0 +1,57 @@
package com.njcn.dataProcess.service.impl.relation;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatOrgIntegrityDMapper;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.DataOrgIntegrityDto;
import com.njcn.dataProcess.pojo.po.RStatOrgIntegrityD;
import com.njcn.dataProcess.service.IDataOrgIntegrity;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* @Description:
* @Author: wr
* @Date: 2025/3/6 10:22
*/
@Service("RelationDataOrgIntegrityImpl")
@RequiredArgsConstructor
public class RelationDataOrgIntegrityImpl extends MppServiceImpl<RStatOrgIntegrityDMapper, RStatOrgIntegrityD> implements IDataOrgIntegrity {
@Override
public void batchInsertion(List<DataOrgIntegrityDto> dataIntegrityDtoList) {
List<RStatOrgIntegrityD> result = new ArrayList<>();
dataIntegrityDtoList.forEach(item->{
RStatOrgIntegrityD onlineRate = new RStatOrgIntegrityD();
BeanUtils.copyProperties(item, onlineRate);
result.add(onlineRate);
});
this.saveOrUpdateBatchByMultiId(result);
}
@Override
public List<DataOrgIntegrityDto> getRawData(LineCountEvaluateParam lineParam) {
List<DataOrgIntegrityDto> result = new ArrayList<>();
LambdaQueryWrapper<RStatOrgIntegrityD> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(CollUtil.isNotEmpty(lineParam.getLineId()),RStatOrgIntegrityD::getOrgId,lineParam.getLineId())
.ge(RStatOrgIntegrityD::getTimeId,lineParam.getStartTime())
.le(RStatOrgIntegrityD::getTimeId,lineParam.getEndTime());
List<RStatOrgIntegrityD> list = this.list(lambdaQueryWrapper);
list.forEach(item->{
DataOrgIntegrityDto dto = new DataOrgIntegrityDto();
BeanUtils.copyProperties(item,dto);
result.add(dto);
});
return result;
}
}