diff --git a/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/bo/BaseParam.java b/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/bo/BaseParam.java index caf8828..23a3bf3 100644 --- a/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/bo/BaseParam.java +++ b/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/bo/BaseParam.java @@ -58,5 +58,6 @@ public class BaseParam implements Serializable { @ApiModelProperty(name = "idList",value = "索引集合") private List idList; - + @ApiModelProperty(name = "type",value = "0:通用 1:省级平台 ") + private Integer type; } diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/ExecutionCenter.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/ExecutionCenter.java index 5061eda..c427343 100644 --- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/ExecutionCenter.java +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/ExecutionCenter.java @@ -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 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 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国网上送单位层级算法执行链") diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/DeviceExecutor.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/DeviceExecutor.java index c2d22ba..28c9edb 100644 --- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/DeviceExecutor.java +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/DeviceExecutor.java @@ -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()); + } } 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 272d897..a44d642 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 @@ -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()); + } + + + } diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/OrgPointExecutor.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/OrgPointExecutor.java new file mode 100644 index 0000000..cc841c7 --- /dev/null +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/OrgPointExecutor.java @@ -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()); + } + +} diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/IDataCrossingService.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/IDataCrossingService.java index 3f1f974..d2572bc 100644 --- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/IDataCrossingService.java +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/IDataCrossingService.java @@ -34,4 +34,13 @@ public interface IDataCrossingService { * @Date: 2025/3/12 16:03 */ List limitQualifiedDayHandler(CalculatedParam calculatedParam); + + + /** + * 监测点稳态指标合格率(月) + * @param calculatedParam + * @Author: wr + * @Date: 2025/3/12 16:03 + */ + List limitQualifiedMonthHandler(CalculatedParam calculatedParam); } diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/IDataIntegrityService.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/IDataIntegrityService.java index c2cb583..b3a91a6 100644 --- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/IDataIntegrityService.java +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/IDataIntegrityService.java @@ -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 calculatedParam); + + + /*** + * 监测点数据完整性_月表 + * @author xuyang + * @date 2023/11/09 10:08 + * @param calculatedParam 查询条件 + */ + List dataIntegrityMonth(CalculatedParam calculatedParam); } diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/IDataOrgPointService.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/IDataOrgPointService.java new file mode 100644 index 0000000..0838598 --- /dev/null +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/IDataOrgPointService.java @@ -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 dataOrgIntegrityMonth(CalculatedParam calculatedParam); +} 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 72930dc..e7ea47e 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 @@ -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 limitQualifiedDayHandler(CalculatedParam calculatedParam) { + LineCountEvaluateParam lineParam = new LineCountEvaluateParam(); + lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate())); + lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate())); + List lineIdList = calculatedParam.getIdList(); + return getQualifiedDetails(calculatedParam, lineParam, lineIdList); + } + + + @Override + public List limitQualifiedMonthHandler(CalculatedParam calculatedParam) { LineCountEvaluateParam lineParam = new LineCountEvaluateParam(); lineParam.setStartTime(TimeUtils.getBeginOfMonth(calculatedParam.getDataDate())); lineParam.setEndTime(TimeUtils.getEndOfMonth(calculatedParam.getDataDate())); - List devIdList = calculatedParam.getIdList(); + List lineIdList = calculatedParam.getIdList(); + return getQualifiedDetails(calculatedParam, lineParam, lineIdList); + } + private List getQualifiedDetails(CalculatedParam calculatedParam, LineCountEvaluateParam lineParam, List lineIdList) { List info = new ArrayList<>(); - List> pendingIds = ListUtils.partition(devIdList, NUM); + List> pendingIds = ListUtils.partition(lineIdList, NUM); for (List pendingId : pendingIds) { lineParam.setLineId(pendingId); List data = dataLimitRateFeignClient.getRawData(lineParam).getData(); @@ -277,43 +291,52 @@ 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 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 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 -> { - Integer o; - try { - o = (Integer) finalField.get(temp); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } - return o.intValue(); - }).sum() * 100.0 / all))); + double v = PubUtils.doubleRound(2, 100.0 - getaDouble(value.stream().mapToInt(temp -> { + Integer o; + try { + o = (Integer) finalField.get(temp); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + return o.intValue(); + }).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); } diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataIntegrityServiceImpl.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataIntegrityServiceImpl.java index e458eeb..b5e9b7f 100644 --- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataIntegrityServiceImpl.java +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataIntegrityServiceImpl.java @@ -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 calculatedParam) { - List poList = new ArrayList<>(); + List poList = new ArrayList<>(); List 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> pendingIds = ListUtils.partition(lineIds,5); + List> pendingIds = ListUtils.partition(lineIds, 5); for (List pendingId : pendingIds) { List lineDevGetDTOList = commTerminalGeneralClient.getMonitorDetailList(pendingId).getData(); - List countList = dataVFeignClient.getMeasurementCount(pendingId,beginDay,endDay).getData(); + List 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 dataIntegrityMonth(CalculatedParam calculatedParam) { + LineCountEvaluateParam lineParam = new LineCountEvaluateParam(); + lineParam.setStartTime(TimeUtils.getBeginOfMonth(calculatedParam.getDataDate())); + lineParam.setEndTime(TimeUtils.getEndOfMonth(calculatedParam.getDataDate())); + List devIdList = calculatedParam.getIdList(); + + List info = new ArrayList<>(); + List> pendingIds = ListUtils.partition(devIdList, 100); + for (List pendingId : pendingIds) { + lineParam.setLineId(pendingId); + List data = dataIntegrityFeignClient.getRawData(lineParam).getData(); + Map> 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; + } } 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 de560e9..7947172 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 @@ -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; } diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataOrgPointServiceImpl.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataOrgPointServiceImpl.java new file mode 100644 index 0000000..fb3a103 --- /dev/null +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataOrgPointServiceImpl.java @@ -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 info=new ArrayList<>(); + LineCountEvaluateParam lineParam = new LineCountEvaluateParam(); + lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate())); + lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate())); + List deptList = calculatedParam.getIdList(); + for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : deptList) { + List lineBaseList = deptGetChildrenMoreDTO.getLineBaseList(); + List lineIds = lineBaseList.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + lineParam.setLineId(lineIds); + List 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 dataOrgIntegrityMonth(CalculatedParam calculatedParam) { + List info=new ArrayList<>(); + LineCountEvaluateParam lineParam = new LineCountEvaluateParam(); + lineParam.setStartTime(TimeUtils.getBeginOfMonth(calculatedParam.getDataDate())); + lineParam.setEndTime(TimeUtils.getEndOfMonth(calculatedParam.getDataDate())); + List deptList = calculatedParam.getIdList(); + for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : deptList) { + lineParam.setLineId(Arrays.asList(deptGetChildrenMoreDTO.getUnitId())); + List data = dataOrgIntegrityFeignClient.getRawData(lineParam).getData(); + Map> 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; + } +} diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataIntegrityFeignClient.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataIntegrityFeignClient.java index c5511ee..38d4d0f 100644 --- a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataIntegrityFeignClient.java +++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataIntegrityFeignClient.java @@ -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 batchInsertion(@RequestBody List dataList); + HttpResult batchInsertion(@RequestBody List dataList); + @PostMapping("/getRawData") + HttpResult> getRawData(@RequestBody LineCountEvaluateParam lineParam); } diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataLimitTargetFeignClient.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataLimitTargetFeignClient.java index 743f0b3..76cc797 100644 --- a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataLimitTargetFeignClient.java +++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataLimitTargetFeignClient.java @@ -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 batchInsertion(@RequestBody List dataIDTOList); + @PostMapping("/getRawData") + HttpResult> getRawData(@RequestBody LineCountEvaluateParam lineParam); } diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataOrgIntegrityFeignClient.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataOrgIntegrityFeignClient.java new file mode 100644 index 0000000..ae8655d --- /dev/null +++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataOrgIntegrityFeignClient.java @@ -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 batchInsertion(@RequestBody List dataList); + + @PostMapping("/getRawData") + HttpResult> getRawData(@RequestBody LineCountEvaluateParam lineParam); +} diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/PqsCommunicateFeignClient.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/PqsCommunicateFeignClient.java index d56dfa0..bd221a5 100644 --- a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/PqsCommunicateFeignClient.java +++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/PqsCommunicateFeignClient.java @@ -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; diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataIntegrityFeignClientFallbackFactory.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataIntegrityFeignClientFallbackFactory.java index 4fa12bd..0746ca4 100644 --- a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataIntegrityFeignClientFallbackFactory.java +++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataIntegrityFeignClientFallbackFactory.java @@ -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 batchInsertion(List dataList) { + public HttpResult batchInsertion(List dataList) { log.error("{}异常,降级处理,异常为:{}","批量插入数据",cause.toString()); throw new BusinessException(finalExceptionEnum); } + @Override + public HttpResult> getRawData(LineCountEvaluateParam lineParam) { + log.error("{}异常,降级处理,异常为:{}","获取原始数据",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + }; } } diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataLimitTargetFeignClientFallbackFactory.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataLimitTargetFeignClientFallbackFactory.java index 271d5bb..0b708f5 100644 --- a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataLimitTargetFeignClientFallbackFactory.java +++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataLimitTargetFeignClientFallbackFactory.java @@ -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> getRawData(LineCountEvaluateParam lineParam) { + log.error("{}异常,降级处理,异常为:{}","获取原始数据",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + }; } } diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataOrgIntegrityFeignClientFallbackFactory.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataOrgIntegrityFeignClientFallbackFactory.java new file mode 100644 index 0000000..ff0242f --- /dev/null +++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataOrgIntegrityFeignClientFallbackFactory.java @@ -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 { + + + /** + * 输出远程请求接口异常日志 + * @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 batchInsertion(List dataList) { + log.error("{}异常,降级处理,异常为:{}","批量插入数据",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult> getRawData(LineCountEvaluateParam lineParam) { + log.error("{}异常,降级处理,异常为:{}","获取原始数据",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + }; + } +} diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/dto/DataIntegrityDto.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/dto/DataIntegrityDto.java index d2e7b45..6bb908e 100644 --- a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/dto/DataIntegrityDto.java +++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/dto/DataIntegrityDto.java @@ -31,5 +31,4 @@ public class DataIntegrityDto { private Integer realTime; - } diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/dto/DataOrgIntegrityDto.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/dto/DataOrgIntegrityDto.java new file mode 100644 index 0000000..8378177 --- /dev/null +++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/dto/DataOrgIntegrityDto.java @@ -0,0 +1,34 @@ +package com.njcn.dataProcess.pojo.dto; + +import lombok.Data; + +/** + *

+ * 数据完整性日表 + *

+ * + * @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; + + +} diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/po/RStatIntegrityD.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/po/RStatIntegrityD.java index 8ff5329..255b9b5 100644 --- a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/po/RStatIntegrityD.java +++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/po/RStatIntegrityD.java @@ -29,7 +29,7 @@ public class RStatIntegrityD { @MppMultiId @TableField(value = "time_id") - private LocalDate timeId; + private String timeId; @MppMultiId @TableField(value = "line_index") diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/po/RStatOrgIntegrityD.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/po/RStatOrgIntegrityD.java new file mode 100644 index 0000000..7a8b821 --- /dev/null +++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/po/RStatOrgIntegrityD.java @@ -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; + +/** + *

+ * 数据完整性日表 + *

+ * + * @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; + + +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataIntegrityController.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataIntegrityController.java index 76b3c07..efcf643 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataIntegrityController.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataIntegrityController.java @@ -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 batchInsertion(@RequestBody List poList) { + public HttpResult batchInsertion(@RequestBody List 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> getRawData(@RequestBody LineCountEvaluateParam lineParam) { + String methodDescribe = getMethodDescribe("getRawData"); + List rawData = iDataIntegrityInsert.getRawData(lineParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rawData, methodDescribe); + } } 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 3db41d7..ca220f8 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 @@ -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> getRawData(@RequestBody LineCountEvaluateParam lineParam) { diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataLimitTargetController.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataLimitTargetController.java index b1d3414..343780a 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataLimitTargetController.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataLimitTargetController.java @@ -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> getRawData(@RequestBody LineCountEvaluateParam lineParam) { + String methodDescribe = getMethodDescribe("getRawData"); + List rawData = limitTargetInsert.getRawData(lineParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rawData, methodDescribe); + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataOnlineRateController.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataOnlineRateController.java index ff1368c..6d6ba99 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataOnlineRateController.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataOnlineRateController.java @@ -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> getRawData(@RequestBody LineCountEvaluateParam lineParam) { diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataOrgIntegrityController.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataOrgIntegrityController.java new file mode 100644 index 0000000..eafc3d9 --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataOrgIntegrityController.java @@ -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 batchInsertion(@RequestBody List 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> getRawData(@RequestBody LineCountEvaluateParam lineParam) { + String methodDescribe = getMethodDescribe("getRawData"); + List rawData = dataOrgIntegrityInsert.getRawData(lineParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rawData, methodDescribe); + } +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/PqsCommunicateController.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/PqsCommunicateController.java index 767c1b9..56f9521 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/PqsCommunicateController.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/PqsCommunicateController.java @@ -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 insertion(@RequestBody PqsCommunicateDto pqsCommunicateDto) { diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/dao/relation/mapper/RStatOrgIntegrityDMapper.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/dao/relation/mapper/RStatOrgIntegrityDMapper.java new file mode 100644 index 0000000..afa063c --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/dao/relation/mapper/RStatOrgIntegrityDMapper.java @@ -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 { + + + +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataIntegrity.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataIntegrity.java index 7f0b474..052e276 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataIntegrity.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataIntegrity.java @@ -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{ * 批量插入数据 * @param onlineRateList */ - void batchInsertion(List onlineRateList); + void batchInsertion(List onlineRateList); + + + /** + * 获取原始数据 + * @param lineParam + */ + List getRawData(LineCountEvaluateParam lineParam); } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataLimitTarget.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataLimitTarget.java index ef2eca6..579f893 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataLimitTarget.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataLimitTarget.java @@ -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 { */ void batchInsertion(List limitRateList); + + /** + * 获取原始数据 + * @param lineParam + * @return + */ + List getRawData(LineCountEvaluateParam lineParam); } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataOrgIntegrity.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataOrgIntegrity.java new file mode 100644 index 0000000..e33ea70 --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataOrgIntegrity.java @@ -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{ + + /** + * 批量插入数据 + * @param onlineRateList + */ + void batchInsertion(List onlineRateList); + + + + /** + * 获取原始数据 + * @param lineParam + */ + List getRawData(LineCountEvaluateParam lineParam); +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataIntegrityImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataIntegrityImpl.java index 8e4a476..af178dd 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataIntegrityImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataIntegrityImpl.java @@ -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 onlineRateList) { + public void batchInsertion(List onlineRateList) { } + + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + return Collections.emptyList(); + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataLimitTargetImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataLimitTargetImpl.java index b284d08..dba2aa3 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataLimitTargetImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataLimitTargetImpl.java @@ -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 limitRateList) { } + + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + return Collections.emptyList(); + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataOrgIntegrityImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataOrgIntegrityImpl.java new file mode 100644 index 0000000..95069ad --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataOrgIntegrityImpl.java @@ -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 implements IDataOrgIntegrity { + + + @Override + public void batchInsertion(List onlineRateList) { + + } + + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + return Collections.emptyList(); + } +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RStatIntegrityDImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RStatIntegrityDImpl.java deleted file mode 100644 index 659f234..0000000 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RStatIntegrityDImpl.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.njcn.dataProcess.service.impl.relation; - -/** - * @Author: cdf - * @CreateTime: 2025-03-12 - * @Description: 数据完整性 - */ -public class RStatIntegrityDImpl { -} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataIntegrityImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataIntegrityImpl.java index c8c3c26..d21b01c 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataIntegrityImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataIntegrityImpl.java @@ -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 dataIntegrityDtoList) { - this.saveOrUpdateBatchByMultiId(dataIntegrityDtoList); + public void batchInsertion(List dataIntegrityDtoList) { + List result = new ArrayList<>(); + dataIntegrityDtoList.forEach(item->{ + RStatIntegrityD onlineRate = new RStatIntegrityD(); + BeanUtils.copyProperties(item, onlineRate); + result.add(onlineRate); + }); + this.saveOrUpdateBatchByMultiId(result); + } + + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + List result = new ArrayList<>(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(CollUtil.isNotEmpty(lineParam.getLineId()),RStatIntegrityD::getLineIndex,lineParam.getLineId()) + .ge(RStatIntegrityD::getTimeId,lineParam.getStartTime()) + .le(RStatIntegrityD::getTimeId,lineParam.getEndTime()); + List list = this.list(lambdaQueryWrapper); + + list.forEach(item->{ + DataIntegrityDto dto = new DataIntegrityDto(); + BeanUtils.copyProperties(item,dto); + result.add(dto); + }); + return result; } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataLimitTargetImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataLimitTargetImpl.java index 28aff40..e6eedcd 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataLimitTargetImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataLimitTargetImpl.java @@ -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 getRawData(LineCountEvaluateParam lineParam) { + List result = new ArrayList<>(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(CollUtil.isNotEmpty(lineParam.getLineId()),RStatLimitTargetD::getLineId,lineParam.getLineId()) + .ge(RStatLimitTargetD::getTime,lineParam.getStartTime()) + .le(RStatLimitTargetD::getTime,lineParam.getEndTime()); + List list = this.list(lambdaQueryWrapper); + + list.forEach(item->{ + DataLimitTargetDto dto = new DataLimitTargetDto(); + BeanUtils.copyProperties(item,dto); + result.add(dto); + }); + return result; + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataOnlineRateImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataOnlineRateImpl.java index d308bfb..d2e1f6b 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataOnlineRateImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataOnlineRateImpl.java @@ -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; diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataOrgIntegrityImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataOrgIntegrityImpl.java new file mode 100644 index 0000000..03c11aa --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataOrgIntegrityImpl.java @@ -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 implements IDataOrgIntegrity { + + + @Override + public void batchInsertion(List dataIntegrityDtoList) { + List result = new ArrayList<>(); + dataIntegrityDtoList.forEach(item->{ + RStatOrgIntegrityD onlineRate = new RStatOrgIntegrityD(); + BeanUtils.copyProperties(item, onlineRate); + result.add(onlineRate); + }); + this.saveOrUpdateBatchByMultiId(result); + } + + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + List result = new ArrayList<>(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(CollUtil.isNotEmpty(lineParam.getLineId()),RStatOrgIntegrityD::getOrgId,lineParam.getLineId()) + .ge(RStatOrgIntegrityD::getTimeId,lineParam.getStartTime()) + .le(RStatOrgIntegrityD::getTimeId,lineParam.getEndTime()); + List list = this.list(lambdaQueryWrapper); + + list.forEach(item->{ + DataOrgIntegrityDto dto = new DataOrgIntegrityDto(); + BeanUtils.copyProperties(item,dto); + result.add(dto); + }); + return result; + } +}