diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/line/RMpPassRateDPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/line/RMpPassRateDPO.java index 12de74c96..6dfc85167 100644 --- a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/line/RMpPassRateDPO.java +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/line/RMpPassRateDPO.java @@ -3,7 +3,9 @@ package com.njcn.prepare.harmonic.pojo.mysql.po.line; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import lombok.Data; +import java.time.LocalDate; import java.util.Date; /** @@ -14,6 +16,7 @@ import java.util.Date; * @author clam * @version V1.0.0 */ +@Data @TableName(value = "r_mp_pass_rate_d") public class RMpPassRateDPO { /** @@ -26,7 +29,7 @@ public class RMpPassRateDPO { * 生成数据的时间,每日统计一次 */ @MppMultiId(value = "data_date") - private Date dataDate; + private LocalDate dataDate; /** * 有效监测时长 @@ -52,111 +55,5 @@ public class RMpPassRateDPO { @TableField(value = "flicker_time") private Integer flickerTime; - /** - * 获取监测点ID - * - * @return measurement_point_id - 监测点ID - */ - public String getMeasurementPointId() { - return measurementPointId; - } - /** - * 设置监测点ID - * - * @param measurementPointId 监测点ID - */ - public void setMeasurementPointId(String measurementPointId) { - this.measurementPointId = measurementPointId; - } - - /** - * 获取生成数据的时间,每日统计一次 - * - * @return data_date - 生成数据的时间,每日统计一次 - */ - public Date getDataDate() { - return dataDate; - } - - /** - * 设置生成数据的时间,每日统计一次 - * - * @param dataDate 生成数据的时间,每日统计一次 - */ - public void setDataDate(Date dataDate) { - this.dataDate = dataDate; - } - - /** - * 获取有效监测时长 - * - * @return effective_time - 有效监测时长 - */ - public Integer getEffectiveTime() { - return effectiveTime; - } - - /** - * 设置有效监测时长 - * - * @param effectiveTime 有效监测时长 - */ - public void setEffectiveTime(Integer effectiveTime) { - this.effectiveTime = effectiveTime; - } - - /** - * 获取频率偏差超标时长 - * - * @return freq_time - 频率偏差超标时长 - */ - public Integer getFreqTime() { - return freqTime; - } - - /** - * 设置频率偏差超标时长 - * - * @param freqTime 频率偏差超标时长 - */ - public void setFreqTime(Integer freqTime) { - this.freqTime = freqTime; - } - - /** - * 获取电压偏差超标时长 - * - * @return v_dev_time - 电压偏差超标时长 - */ - public Integer getvDevTime() { - return vDevTime; - } - - /** - * 设置电压偏差超标时长 - * - * @param vDevTime 电压偏差超标时长 - */ - public void setvDevTime(Integer vDevTime) { - this.vDevTime = vDevTime; - } - - /** - * 获取闪变超标时长 - * - * @return flicker_time - 闪变超标时长 - */ - public Integer getFlickerTime() { - return flickerTime; - } - - /** - * 设置闪变超标时长 - * - * @param flickerTime 闪变超标时长 - */ - public void setFlickerTime(Integer flickerTime) { - this.flickerTime = flickerTime; - } } \ No newline at end of file diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/line/RMpPassRateMPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/line/RMpPassRateMPO.java index be80b2f68..480432205 100644 --- a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/line/RMpPassRateMPO.java +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/line/RMpPassRateMPO.java @@ -3,7 +3,9 @@ package com.njcn.prepare.harmonic.pojo.mysql.po.line; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import lombok.Data; +import java.time.LocalDate; import java.util.Date; /** @@ -14,6 +16,7 @@ import java.util.Date; * @author clam * @version V1.0.0 */ +@Data @TableName(value = "r_mp_pass_rate_m") public class RMpPassRateMPO { /** @@ -26,7 +29,7 @@ public class RMpPassRateMPO { * 生成数据的时间,每月统计一次 */ @MppMultiId(value = "data_date") - private Date dataDate; + private LocalDate dataDate; /** * 频率偏差合格率 @@ -46,93 +49,5 @@ public class RMpPassRateMPO { @TableField(value = "flicker_pass_rate") private Double flickerPassRate; - /** - * 获取监测点ID - * - * @return measurement_point_id - 监测点ID - */ - public String getMeasurementPointId() { - return measurementPointId; - } - /** - * 设置监测点ID - * - * @param measurementPointId 监测点ID - */ - public void setMeasurementPointId(String measurementPointId) { - this.measurementPointId = measurementPointId; - } - - /** - * 获取生成数据的时间,每月统计一次 - * - * @return data_date - 生成数据的时间,每月统计一次 - */ - public Date getDataDate() { - return dataDate; - } - - /** - * 设置生成数据的时间,每月统计一次 - * - * @param dataDate 生成数据的时间,每月统计一次 - */ - public void setDataDate(Date dataDate) { - this.dataDate = dataDate; - } - - /** - * 获取频率偏差合格率 - * - * @return freq_pass_rate - 频率偏差合格率 - */ - public Double getFreqPassRate() { - return freqPassRate; - } - - /** - * 设置频率偏差合格率 - * - * @param freqPassRate 频率偏差合格率 - */ - public void setFreqPassRate(Double freqPassRate) { - this.freqPassRate = freqPassRate; - } - - /** - * 获取电压偏差合格率 - * - * @return v_dev_pass_rate - 电压偏差合格率 - */ - public Double getvDevPassRate() { - return vDevPassRate; - } - - /** - * 设置电压偏差合格率 - * - * @param vDevPassRate 电压偏差合格率 - */ - public void setvDevPassRate(Double vDevPassRate) { - this.vDevPassRate = vDevPassRate; - } - - /** - * 获取闪变合格率 - * - * @return flicker_pass_rate - 闪变合格率 - */ - public Double getFlickerPassRate() { - return flickerPassRate; - } - - /** - * 设置闪变合格率 - * - * @param flickerPassRate 闪变合格率 - */ - public void setFlickerPassRate(Double flickerPassRate) { - this.flickerPassRate = flickerPassRate; - } } \ No newline at end of file diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/line/RMpPassRateQPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/line/RMpPassRateQPO.java index 273a9f4ba..ec75577f7 100644 --- a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/line/RMpPassRateQPO.java +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/line/RMpPassRateQPO.java @@ -3,7 +3,9 @@ package com.njcn.prepare.harmonic.pojo.mysql.po.line; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import lombok.Data; +import java.time.LocalDate; import java.util.Date; /** @@ -15,6 +17,7 @@ import java.util.Date; * @version V1.0.0 */ @TableName(value = "r_mp_pass_rate_q") +@Data public class RMpPassRateQPO { /** * 监测点ID @@ -26,7 +29,7 @@ public class RMpPassRateQPO { * 生成数据的时间,每季统计一次 */ @MppMultiId(value = "data_date") - private Date dataDate; + private LocalDate dataDate; /** * 频率偏差合格率 @@ -46,93 +49,5 @@ public class RMpPassRateQPO { @TableField(value = "flicker_pass_rate") private Double flickerPassRate; - /** - * 获取监测点ID - * - * @return measurement_point_id - 监测点ID - */ - public String getMeasurementPointId() { - return measurementPointId; - } - /** - * 设置监测点ID - * - * @param measurementPointId 监测点ID - */ - public void setMeasurementPointId(String measurementPointId) { - this.measurementPointId = measurementPointId; - } - - /** - * 获取生成数据的时间,每季统计一次 - * - * @return data_date - 生成数据的时间,每季统计一次 - */ - public Date getDataDate() { - return dataDate; - } - - /** - * 设置生成数据的时间,每季统计一次 - * - * @param dataDate 生成数据的时间,每季统计一次 - */ - public void setDataDate(Date dataDate) { - this.dataDate = dataDate; - } - - /** - * 获取频率偏差合格率 - * - * @return freq_pass_rate - 频率偏差合格率 - */ - public Double getFreqPassRate() { - return freqPassRate; - } - - /** - * 设置频率偏差合格率 - * - * @param freqPassRate 频率偏差合格率 - */ - public void setFreqPassRate(Double freqPassRate) { - this.freqPassRate = freqPassRate; - } - - /** - * 获取电压偏差合格率 - * - * @return v_dev_pass_rate - 电压偏差合格率 - */ - public Double getvDevPassRate() { - return vDevPassRate; - } - - /** - * 设置电压偏差合格率 - * - * @param vDevPassRate 电压偏差合格率 - */ - public void setvDevPassRate(Double vDevPassRate) { - this.vDevPassRate = vDevPassRate; - } - - /** - * 获取闪变合格率 - * - * @return flicker_pass_rate - 闪变合格率 - */ - public Double getFlickerPassRate() { - return flickerPassRate; - } - - /** - * 设置闪变合格率 - * - * @param flickerPassRate 闪变合格率 - */ - public void setFlickerPassRate(Double flickerPassRate) { - this.flickerPassRate = flickerPassRate; - } } \ No newline at end of file diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/line/RMpPassRateYPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/line/RMpPassRateYPO.java index 0b46c73f6..b04a8fc05 100644 --- a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/line/RMpPassRateYPO.java +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/mysql/po/line/RMpPassRateYPO.java @@ -3,7 +3,9 @@ package com.njcn.prepare.harmonic.pojo.mysql.po.line; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import lombok.Data; +import java.time.LocalDate; import java.util.Date; /** @@ -14,6 +16,7 @@ import java.util.Date; * @author clam * @version V1.0.0 */ +@Data @TableName(value = "r_mp_pass_rate_y") public class RMpPassRateYPO { /** @@ -26,7 +29,7 @@ public class RMpPassRateYPO { * 生成数据的时间,每年统计一次 */ @MppMultiId(value = "data_date") - private Date dataDate; + private LocalDate dataDate; /** * 频率偏差合格率 @@ -46,93 +49,4 @@ public class RMpPassRateYPO { @TableField(value = "flicker_pass_rate") private Double flickerPassRate; - /** - * 获取监测点ID - * - * @return measurement_point_id - 监测点ID - */ - public String getMeasurementPointId() { - return measurementPointId; - } - - /** - * 设置监测点ID - * - * @param measurementPointId 监测点ID - */ - public void setMeasurementPointId(String measurementPointId) { - this.measurementPointId = measurementPointId; - } - - /** - * 获取生成数据的时间,每年统计一次 - * - * @return data_date - 生成数据的时间,每年统计一次 - */ - public Date getDataDate() { - return dataDate; - } - - /** - * 设置生成数据的时间,每年统计一次 - * - * @param dataDate 生成数据的时间,每年统计一次 - */ - public void setDataDate(Date dataDate) { - this.dataDate = dataDate; - } - - /** - * 获取频率偏差合格率 - * - * @return freq_pass_rate - 频率偏差合格率 - */ - public Double getFreqPassRate() { - return freqPassRate; - } - - /** - * 设置频率偏差合格率 - * - * @param freqPassRate 频率偏差合格率 - */ - public void setFreqPassRate(Double freqPassRate) { - this.freqPassRate = freqPassRate; - } - - /** - * 获取电压偏差合格率 - * - * @return v_dev_pass_rate - 电压偏差合格率 - */ - public Double getvDevPassRate() { - return vDevPassRate; - } - - /** - * 设置电压偏差合格率 - * - * @param vDevPassRate 电压偏差合格率 - */ - public void setvDevPassRate(Double vDevPassRate) { - this.vDevPassRate = vDevPassRate; - } - - /** - * 获取闪变合格率 - * - * @return flicker_pass_rate - 闪变合格率 - */ - public Double getFlickerPassRate() { - return flickerPassRate; - } - - /** - * 设置闪变合格率 - * - * @param flickerPassRate 闪变合格率 - */ - public void setFlickerPassRate(Double flickerPassRate) { - this.flickerPassRate = flickerPassRate; - } } \ No newline at end of file diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RDnOperatingIndexMPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RDnOperatingIndexMPO.java index 87635d268..03e6f7c3d 100644 --- a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RDnOperatingIndexMPO.java +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RDnOperatingIndexMPO.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.github.jeffreyning.mybatisplus.anno.MppMultiId; import lombok.Data; +import java.time.LocalDate; import java.util.Date; /** @@ -31,7 +32,7 @@ public class RDnOperatingIndexMPO { * 时间 */ @MppMultiId(value = "data_date") - private Date dataDate; + private LocalDate dataDate; /** * 监测点类型 diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RDnOperatingQPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RDnOperatingQPO.java index a89367827..b182a63c1 100644 --- a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RDnOperatingQPO.java +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RDnOperatingQPO.java @@ -5,7 +5,9 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.github.jeffreyning.mybatisplus.anno.MppMultiId; import lombok.Data; +import org.apache.tomcat.jni.Local; +import java.time.LocalDate; import java.util.Date; /** @@ -29,7 +31,7 @@ public class RDnOperatingQPO { * 时间 */ @MppMultiId(value = "data_date") - private Date dataDate; + private LocalDate dataDate; /** * 监测点类型 diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RDnOperatingYPO.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RDnOperatingYPO.java index 20124d407..945d1f23b 100644 --- a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RDnOperatingYPO.java +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/pojo/po/RDnOperatingYPO.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.github.jeffreyning.mybatisplus.anno.MppMultiId; import lombok.Data; +import java.time.LocalDate; import java.util.Date; /** @@ -29,7 +30,7 @@ public class RDnOperatingYPO { * 时间 */ @MppMultiId(value = "data_date") - private Date dataDate; + private LocalDate dataDate; /** * 监测点类型 diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/ExecutionCenter.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/ExecutionCenter.java index 7a9ff20d1..e46aab347 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/ExecutionCenter.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/ExecutionCenter.java @@ -155,8 +155,8 @@ public class ExecutionCenter extends BaseController { } @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiOperation("单位监测点算法执行链") - @PostMapping("/OrgPointExecutor") - public void OrgPointExecutor(@RequestBody BaseParam baseParam) { + @PostMapping("/orgPointExecutor") + public void orgPointExecutor(@RequestBody BaseParam baseParam) { String methodDescribe = getMethodDescribe("OrgPointExecutor"); //手动判断参数是否合法, CalculatedParam calculatedParam = judgeExecuteParam(baseParam); @@ -180,12 +180,12 @@ public class ExecutionCenter extends BaseController { startDate = DateUtil.offsetDay(startDate, 1); } calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN)); - liteflowResponse = flowExecutor.execute2Resp("measurement_point", calculatedParam); + liteflowResponse = flowExecutor.execute2Resp("org_point", calculatedParam); dealResponse(calculatedParam, liteflowResponse, methodDescribe); } } else { //非补招 - liteflowResponse = flowExecutor.execute2Resp("measurement_point", calculatedParam); + liteflowResponse = flowExecutor.execute2Resp("org_point", calculatedParam); dealResponse(calculatedParam, liteflowResponse, methodDescribe); } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/MeasurementExecutor.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/MeasurementExecutor.java index f76ecdc98..f655ca4e5 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/MeasurementExecutor.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/MeasurementExecutor.java @@ -35,6 +35,10 @@ public class MeasurementExecutor extends BaseExecutor { private final ROperatingMonitorService rOperatingMonitorService; private final ROperatingMonitorMService rOperatingMonitorMService; + + private final RMpPassRateDService rMpPassRateDService; + + /** * 算法名: 3.3.1.1-----监测点评价 * @@ -129,4 +133,40 @@ public class MeasurementExecutor extends BaseExecutor { } } } + /*** + *3.4.1.5. 监测点稳态指标合格率 + * + * + */ + @LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rMpPassRate", nodeType = NodeTypeEnum.COMMON) + public boolean processRMpPassRateAccess(NodeComponent bindCmp) { + return isAccess(bindCmp); + } + @LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rMpPassRate", nodeType = NodeTypeEnum.COMMON) + public void processRMpPassRateProcess(NodeComponent bindCmp) { + String tag = bindCmp.getTag(); + CalculatedParam calculatedParam = bindCmp.getRequestData(); + if (tag.equalsIgnoreCase("r_mp_pass_rate_d")) { + //日表 + rMpPassRateDService.handleDay(calculatedParam); + } else if (tag.equalsIgnoreCase("r_mp_pass_rate_m")) { + //数据补招不执行非日表算法 + if (!calculatedParam.isRepair()) { + //月表 + rMpPassRateDService.handleMonth(calculatedParam); + } + }else if (tag.equalsIgnoreCase("r_mp_pass_rate_q")) { + //数据补招不执行非日表算法 + if (!calculatedParam.isRepair()) { + //季表 + rMpPassRateDService.handleQtr(calculatedParam); + } + }else if (tag.equalsIgnoreCase("r_mp_pass_rate_y")) { + //数据补招不执行非日表算法 + if (!calculatedParam.isRepair()) { + //年表 + rMpPassRateDService.handleYear(calculatedParam); + } + } + } } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java new file mode 100644 index 000000000..cb11c6467 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java @@ -0,0 +1,57 @@ +package com.njcn.prepare.executor; + +import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; +import com.njcn.prepare.bo.CalculatedParam; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.ROperatingIndexService; +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; + +/** + * Description: + * Date: 2023/11/10 10:39【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@LiteflowComponent +@RequiredArgsConstructor +public class OrgPointExecutor extends BaseExecutor{ + + private final ROperatingIndexService rOperatingIndexService; + + + /** + * + * 3.3.2. 单位标数据质量 + */ + + @LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rOperatingIndex", nodeType = NodeTypeEnum.COMMON) + public boolean processOperatingIndexAccess(NodeComponent bindCmp) { + return isAccess(bindCmp); + } + @LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rOperatingIndex", nodeType = NodeTypeEnum.COMMON) + public void processOperatingIndexProcess(NodeComponent bindCmp) { + String tag = bindCmp.getTag(); + CalculatedParam calculatedParam = bindCmp.getRequestData(); + if (tag.equalsIgnoreCase("r_operating_index_m")) { + //日表 + rOperatingIndexService.handleMonth(calculatedParam); + } else if (tag.equalsIgnoreCase("r_operating_index_q")) { + //数据补招不执行非日表算法 + if (!calculatedParam.isRepair()) { + //月表 + rOperatingIndexService.handleQtr(calculatedParam); + } + }else if (tag.equalsIgnoreCase("r_operating_index_y")) { + //数据补招不执行非日表算法 + if (!calculatedParam.isRepair()) { + //月表 + rOperatingIndexService.handleYear(calculatedParam); + } + } + } +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/line/RmpPassRateController.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/line/RmpPassRateController.java deleted file mode 100644 index 5ab469525..000000000 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/line/RmpPassRateController.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.njcn.prepare.harmonic.controller.line; - -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.device.pq.api.LineFeignClient; -import com.njcn.prepare.harmonic.pojo.param.LineParam; -import com.njcn.prepare.harmonic.service.mysql.line.RmpPassRateService; -import com.njcn.web.controller.BaseController; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiOperation; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.util.CollectionUtils; -import org.springframework.validation.annotation.Validated; -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.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -/** - * @author qijian - * @date 2022/10/26 - * 数据是否异常 - */ -@Validated -@Slf4j -@RestController -@RequestMapping("/RmpPassRate") -@Api(tags = "监测点稳态指标合格率") -@AllArgsConstructor -@Deprecated -public class RmpPassRateController extends BaseController { - - private final LineFeignClient lineFeignClient; - private final RmpPassRateService rmpPassRateService; - @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) - @PostMapping("/RmpPassRateD") - @ApiOperation("监测点稳态指标合格率-日计算") - @ApiImplicitParam(name = "lineParam", value = "算法通用查询参数", required = true) - public HttpResult rmpPassRateDHandler(@RequestBody @Validated LineParam lineParam) { - log.info(LocalDateTime.now()+"rmpPassRateDHandler开始执行"); - String methodDescribe = getMethodDescribe("rmpPassRateDHandler"); - Boolean result = true; - List indexLists = new ArrayList<> (); - if(CollectionUtils.isEmpty (lineParam.getLineIds ())){ - indexLists = lineFeignClient.getLineList ( ).getData ( ); - }else{ - indexLists = lineParam.getLineIds (); - } - rmpPassRateService.rmpPassRateDHandler (lineParam); - if (result){ - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); - } else { - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe); - } - } -} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/PrimaryGridDataServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/PrimaryGridDataServiceImpl.java index 8181fb15e..2378c4e51 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/PrimaryGridDataServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/PrimaryGridDataServiceImpl.java @@ -31,6 +31,7 @@ import org.springframework.util.StringUtils; import java.math.BigDecimal; import java.text.SimpleDateFormat; +import java.time.LocalDate; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -323,7 +324,7 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService { ROperatingIndexMPO rOperatingIndexMPO = new ROperatingIndexMPO(); rOperatingIndexMPO.setOrgNo(orgid); - rOperatingIndexMPO.setDataDate(DateUtil.parse(primaryGridParam.getDataDate())); + rOperatingIndexMPO.setDataDate(LocalDate.parse(primaryGridParam.getDataDate())); rOperatingIndexMPO.setMeasurementRunPoints(measurement_run_points); rOperatingIndexMPO.setTransitMeasurementPoints(transit_measurement_points); rOperatingIndexMPO.setEffectiveAccessMeasurementCount(effective_access_measurement_count); @@ -528,7 +529,7 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService { ROperatingIndexQPO rOperatingIndexQPO = new ROperatingIndexQPO(); rOperatingIndexQPO.setOrgNo(orgid); - rOperatingIndexQPO.setDataDate(DateUtil.parse(primaryGridParam.getDataDate())); + rOperatingIndexQPO.setDataDate(LocalDate.parse(primaryGridParam.getDataDate())); rOperatingIndexQPO.setMeasurementRunPoints(measurement_run_points); rOperatingIndexQPO.setTransitMeasurementPoints(transit_measurement_points); rOperatingIndexQPO.setEffectiveAccessMeasurementCount(effective_access_measurement_count); @@ -597,7 +598,7 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService { ROperatingIndexYPO rOperatingIndexYPO = new ROperatingIndexYPO(); rOperatingIndexYPO.setOrgNo(orgid); - rOperatingIndexYPO.setDataDate(DateUtil.parse(primaryGridParam.getDataDate())); + rOperatingIndexYPO.setDataDate(LocalDate.parse(primaryGridParam.getDataDate())); rOperatingIndexYPO.setMeasurementRunPoints(measurement_run_points); rOperatingIndexYPO.setTransitMeasurementPoints(transit_measurement_points); rOperatingIndexYPO.setEffectiveAccessMeasurementCount(effective_access_measurement_count); diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgServiceImpl.java index de3b5f5ca..e35069582 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgServiceImpl.java @@ -182,7 +182,7 @@ public class RStatOrgServiceImpl implements RStatOrgService { RMpPassRateYPO rMpPassRateYPO = rMpPassRateYMapper.selectOne(rMpPassRateYPOQueryWrapper); rStatOrgYPO.setFreqPassRate(rMpPassRateYPO.getFreqPassRate()); rStatOrgYPO.setFlickerPassRate(rMpPassRateYPO.getFlickerPassRate()); - rStatOrgYPO.setVDevPassRate(rMpPassRateYPO.getvDevPassRate()); + rStatOrgYPO.setVDevPassRate(rMpPassRateYPO.getVDevPassRate()); @@ -302,7 +302,7 @@ public class RStatOrgServiceImpl implements RStatOrgService { RMpPassRateYPO rMpPassRateYPO = rMpPassRateYMapper.selectOne(rMpPassRateYPOQueryWrapper); rStatOrgYPO.setFreqPassRate(rMpPassRateYPO.getFreqPassRate()); rStatOrgYPO.setFlickerPassRate(rMpPassRateYPO.getFlickerPassRate()); - rStatOrgYPO.setVDevPassRate(rMpPassRateYPO.getvDevPassRate()); + rStatOrgYPO.setVDevPassRate(rMpPassRateYPO.getVDevPassRate()); @@ -459,7 +459,7 @@ public class RStatOrgServiceImpl implements RStatOrgService { RMpPassRateQPO rMpPassRateQPO = rMpPassRateQMapper.selectOne(rMpPassRateQPOQueryWrapper); rStatOrgQPO.setFreqPassRate(rMpPassRateQPO.getFreqPassRate()); rStatOrgQPO.setFlickerPassRate(rMpPassRateQPO.getFlickerPassRate()); - rStatOrgQPO.setVDevPassRate(rMpPassRateQPO.getvDevPassRate()); + rStatOrgQPO.setVDevPassRate(rMpPassRateQPO.getVDevPassRate()); @@ -580,7 +580,7 @@ public class RStatOrgServiceImpl implements RStatOrgService { RMpPassRateQPO rMpPassRateQPO = rMpPassRateQMapper.selectOne(rMpPassRateQPOQueryWrapper); rStatOrgQPO.setFreqPassRate(rMpPassRateQPO.getFreqPassRate()); rStatOrgQPO.setFlickerPassRate(rMpPassRateQPO.getFlickerPassRate()); - rStatOrgQPO.setVDevPassRate(rMpPassRateQPO.getvDevPassRate()); + rStatOrgQPO.setVDevPassRate(rMpPassRateQPO.getVDevPassRate()); @@ -732,7 +732,7 @@ public class RStatOrgServiceImpl implements RStatOrgService { // if (!Objects.isNull(rMpPassRateMPO)){ rStatOrgMPO.setFreqPassRate(rMpPassRateMPO.getFreqPassRate()); rStatOrgMPO.setFlickerPassRate(rMpPassRateMPO.getFlickerPassRate()); - rStatOrgMPO.setVDevPassRate(rMpPassRateMPO.getvDevPassRate()); + rStatOrgMPO.setVDevPassRate(rMpPassRateMPO.getVDevPassRate()); // } /*11、日均监测到暂态指标的监测点数*/ @@ -843,7 +843,7 @@ public class RStatOrgServiceImpl implements RStatOrgService { RMpPassRateMPO rMpPassRateMPO = rMpPassRateMMapper.selectOne(rMpPassRateMPOQueryWrapper); rStatOrgMPO.setFreqPassRate(rMpPassRateMPO.getFreqPassRate()); rStatOrgMPO.setFlickerPassRate(rMpPassRateMPO.getFlickerPassRate()); - rStatOrgMPO.setVDevPassRate(rMpPassRateMPO.getvDevPassRate()); + rStatOrgMPO.setVDevPassRate(rMpPassRateMPO.getVDevPassRate()); diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/RMpPassRateDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/RMpPassRateDServiceImpl.java index 564630de2..4dcfc9c6c 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/RMpPassRateDServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/RMpPassRateDServiceImpl.java @@ -1,19 +1,29 @@ package com.njcn.prepare.harmonic.service.mysql.Impl.line; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.date.LocalDateTimeUtil; +import com.alibaba.nacos.client.naming.utils.CollectionUtils; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.device.biz.commApi.CommLineClient; import com.njcn.device.biz.commApi.CommTerminalGeneralClient; +import com.njcn.device.biz.pojo.dto.LineDTO; import com.njcn.device.biz.pojo.dto.LineDevGetDTO; import com.njcn.device.pq.api.LineFeignClient; import com.njcn.device.pq.pojo.vo.LineDetailDataVO; +import com.njcn.harmonic.pojo.po.RMpEventDetailDPO; +import com.njcn.harmonic.pojo.po.RMpEventDetailMPO; import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD; import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD; +import com.njcn.prepare.bo.CalculatedParam; import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPassRateDMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper; import com.njcn.prepare.harmonic.pojo.mysql.RMpMonitorEvaluateDPO; +import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO; import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateDPO; import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateMPO; import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateQPO; @@ -21,13 +31,15 @@ import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateYPO; import com.njcn.prepare.harmonic.pojo.param.LineParam; import com.njcn.prepare.harmonic.service.mysql.line.*; import com.njcn.prepare.harmonic.utils.PublicUtil; +import com.njcn.system.enums.DicDataEnum; import lombok.RequiredArgsConstructor; +import org.apache.commons.collections4.ListUtils; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; /** * Description: @@ -40,7 +52,7 @@ import java.util.Objects; @Service @RequiredArgsConstructor public class RMpPassRateDServiceImpl extends MppServiceImpl implements RMpPassRateDService { - + private final CommLineClient commLineClient; private final CommTerminalGeneralClient commTerminalGeneralClient; private final RMpMonitorEvaluateDService rMpMonitorEvaluateDService; private final RMpPartHarmonicDetailDMapper rMpPartHarmonicDetailDMapper; @@ -52,6 +64,197 @@ public class RMpPassRateDServiceImpl extends MppServiceImpl> pendingIds = ListUtils.partition(calculatedParam.getIdList(), 1000); + LocalDateTime begin = LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + LocalDateTime end = LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + + List rMpPassRateDPOList = new ArrayList<> ( ); + QueryWrapper rMpMonitorEvaluateDPOQueryWrapper = new QueryWrapper<>( ); + + QueryWrapper queryWrapper = new QueryWrapper<>( ); + QueryWrapper surplusHarmonicDetailDQueryWrapper = new QueryWrapper<>( ); + + for (List pendingId : pendingIds) { + + List lineDTOList = commLineClient.getLineDetailBatch(pendingId).getData(); + for (LineDTO lineDTO : lineDTOList) { + Integer statisticalInterval = lineDTO.getTimeInterval (); + + rMpMonitorEvaluateDPOQueryWrapper.clear (); + rMpMonitorEvaluateDPOQueryWrapper.select ("effective_minute_count"). + eq ("measurement_point_id", lineDTO.getLineId()). + eq ("data_date", calculatedParam.getDataDate ( )); + RMpMonitorEvaluateDPO one = rMpMonitorEvaluateDService.getOne (rMpMonitorEvaluateDPOQueryWrapper); + if (Objects.isNull(one)) { + return; + } + queryWrapper.clear ( ); + queryWrapper.select ("freq_times", "v_dev_times"). + eq ("measurement_point_id", lineDTO.getLineId()). + eq ("data_date", calculatedParam.getDataDate ( )); + RMpPartHarmonicDetailD rMpPartHarmonicDetailD = rMpPartHarmonicDetailDMapper.selectOne (queryWrapper); + if (Objects.isNull(rMpPartHarmonicDetailD)) { + return; + } + surplusHarmonicDetailDQueryWrapper.clear ( ); + surplusHarmonicDetailDQueryWrapper.select ("flicker_times"). + eq ("measurement_point_id", lineDTO.getLineId()). + eq ("data_date", calculatedParam.getDataDate ( )); + RMpSurplusHarmonicDetailD rMpSurplusHarmonicDetailD = rMpSurplusHarmonicDetailDMapper.selectOne (surplusHarmonicDetailDQueryWrapper); + if (Objects.isNull(rMpSurplusHarmonicDetailD)) { + return; + } + RMpPassRateDPO rMpPassRateDPO = new RMpPassRateDPO ( ); + rMpPassRateDPO.setMeasurementPointId (lineDTO.getLineId()); + rMpPassRateDPO.setDataDate (localDate); + rMpPassRateDPO.setEffectiveTime (statisticalInterval *one.getEffectiveMinuteCount ()); + rMpPassRateDPO.setFreqTime (statisticalInterval * rMpPartHarmonicDetailD.getFreqTimes ( )); + rMpPassRateDPO.setVDevTime (statisticalInterval * rMpPartHarmonicDetailD.getVDevTimes ( )); + rMpPassRateDPO.setFlickerTime (2*60* rMpSurplusHarmonicDetailD.getFlickerTimes ( )); + rMpPassRateDPOList.add (rMpPassRateDPO); + + } + } + + this.saveOrUpdateBatchByMultiId(rMpPassRateDPOList, 500); + } + + @Override + public void handleMonth(CalculatedParam calculatedParam) { + List rMpPassRateMPOList = new ArrayList<> ( ); + + List lineIds = calculatedParam.getIdList(); + + //以尺寸1000分片 + List> pendingIds = ListUtils.partition(lineIds, 1000); + DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN); + + QueryWrapper queryWrapper = new QueryWrapper<> (); + + for (List pendingId : pendingIds) { + queryWrapper.clear(); + queryWrapper.in ("measurement_point_id", pendingId). + between("data_date",begin,end); + List rMpPassRateDPOList = this.getBaseMapper ( ).selectList (queryWrapper); + + if (CollectionUtils.isEmpty(rMpPassRateDPOList)) { + return; + } + Map> collect1 = rMpPassRateDPOList.stream().collect(Collectors.groupingBy(RMpPassRateDPO::getMeasurementPointId)); + collect1.forEach((k,v)->{ + RMpPassRateMPO rMpPassRateMPO = new RMpPassRateMPO(); + rMpPassRateMPO.setMeasurementPointId (k); + rMpPassRateMPO.setDataDate (localDate); + int sumEffectiveTime = v.stream ( ).mapToInt (RMpPassRateDPO::getEffectiveTime).sum ( ); + int sumFreqTime = v.stream ( ).mapToInt (RMpPassRateDPO::getFreqTime).sum ( ); + int sumDevTime = v.stream ( ).mapToInt (RMpPassRateDPO::getVDevTime).sum ( ); + int sumFlickerTime = v.stream ( ).mapToInt (RMpPassRateDPO::getFlickerTime).sum ( ); + + rMpPassRateMPO.setFreqPassRate (calculatePassRate(sumEffectiveTime,sumFreqTime)); + rMpPassRateMPO.setVDevPassRate (calculatePassRate(sumEffectiveTime,sumDevTime)); + rMpPassRateMPO.setFlickerPassRate (calculatePassRate(sumEffectiveTime,sumFlickerTime)); + rMpPassRateMPOList.add (rMpPassRateMPO); + }); + } + + rMpPassRateMService.saveOrUpdateBatchByMultiId (rMpPassRateMPOList, 500); + } + + @Override + public void handleQtr(CalculatedParam calculatedParam) { + + List rMpPassRateQPOList = new ArrayList<> ( ); + List lineIds = calculatedParam.getIdList(); + + //以尺寸1000分片 + List> pendingIds = ListUtils.partition(lineIds, 1000); + DateTime begin = DateUtil.beginOfQuarter(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + DateTime end = DateUtil.endOfQuarter(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN); + + QueryWrapper queryWrapper = new QueryWrapper<> (); + for (List pendingId : pendingIds) { + queryWrapper.clear(); + queryWrapper.in ("measurement_point_id", pendingId). + between("data_date",begin,end); + List rMpPassRateDPOList = this.getBaseMapper ( ).selectList (queryWrapper); + + if (CollectionUtils.isEmpty(rMpPassRateDPOList)) { + return; + } + Map> collect1 = rMpPassRateDPOList.stream().collect(Collectors.groupingBy(RMpPassRateDPO::getMeasurementPointId)); + collect1.forEach((k,v)->{ + RMpPassRateQPO rMpPassRateQPO = new RMpPassRateQPO(); + rMpPassRateQPO.setMeasurementPointId (k); + rMpPassRateQPO.setDataDate (localDate ); + int sumEffectiveTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getEffectiveTime).sum ( ); + int sumFreqTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getFreqTime).sum ( ); + int sumDevTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getVDevTime).sum ( ); + int sumFlickerTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getFlickerTime).sum ( ); + + rMpPassRateQPO.setFreqPassRate (calculatePassRate(sumEffectiveTime,sumFreqTime)); + rMpPassRateQPO.setVDevPassRate (calculatePassRate(sumEffectiveTime,sumDevTime)); + rMpPassRateQPO.setFlickerPassRate (calculatePassRate(sumEffectiveTime,sumFlickerTime)); + rMpPassRateQPOList.add (rMpPassRateQPO); + }); + + }; + rMpPassRateQService.saveOrUpdateBatchByMultiId (rMpPassRateQPOList, 500); + } + + @Override + public void handleYear(CalculatedParam calculatedParam) { + List rMpPassRateYPOList = new ArrayList<> ( ); + List lineIds = calculatedParam.getIdList(); + + //以尺寸1000分片 + List> pendingIds = ListUtils.partition(lineIds, 1000); + DateTime begin = DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + DateTime end = DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN); + QueryWrapper queryWrapper = new QueryWrapper<> (); + for (List pendingId : pendingIds) { + queryWrapper.clear(); + queryWrapper.in ("measurement_point_id", pendingId). + between("data_date",begin,end); + List rMpPassRateDPOList = this.getBaseMapper ( ).selectList (queryWrapper); + + if (CollectionUtils.isEmpty(rMpPassRateDPOList)) { + return; + } + Map> collect1 = rMpPassRateDPOList.stream().collect(Collectors.groupingBy(RMpPassRateDPO::getMeasurementPointId)); + collect1.forEach((k,v)->{ + RMpPassRateYPO rMpPassRateYPO = new RMpPassRateYPO(); + rMpPassRateYPO.setMeasurementPointId (k); + rMpPassRateYPO.setDataDate (localDate); + int sumEffectiveTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getEffectiveTime).sum ( ); + int sumFreqTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getFreqTime).sum ( ); + int sumDevTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getVDevTime).sum ( ); + int sumFlickerTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getFlickerTime).sum ( ); + + rMpPassRateYPO.setFreqPassRate (calculatePassRate(sumEffectiveTime,sumFreqTime)); + rMpPassRateYPO.setVDevPassRate (calculatePassRate(sumEffectiveTime,sumDevTime)); + rMpPassRateYPO.setFlickerPassRate (calculatePassRate(sumEffectiveTime,sumFlickerTime)); + rMpPassRateYPOList.add (rMpPassRateYPO); + }); + + }; + rMpPassRateYService.saveOrUpdateBatchByMultiId (rMpPassRateYPOList, 500); + + } + + + /**---------------------------------------------------------------------------------------------------------------------------------**/ + + + @Deprecated public void passRateHandlerD(LineParam lineParam) { List lineIds = lineParam.getLineIds ( ); String dataDate = lineParam.getDataDate (); @@ -91,10 +294,10 @@ public class RMpPassRateDServiceImpl extends MppServiceImpl lineIds = lineParam.getLineIds ( ); String dataDate = lineParam.getBeginTime (); @@ -136,20 +339,20 @@ public class RMpPassRateDServiceImpl extends MppServiceImpl rMpPassRateDPOList = this.getBaseMapper ( ).selectList (queryWrapper); RMpPassRateYPO rMpPassRateYPO = new RMpPassRateYPO(); rMpPassRateYPO.setMeasurementPointId (temp); - rMpPassRateYPO.setDataDate (date); + rMpPassRateYPO.setDataDate (LocalDate.parse(dataDate)); int sumEffectiveTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getEffectiveTime).sum ( ); int sumFreqTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getFreqTime).sum ( ); - int sumDevTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getvDevTime).sum ( ); + int sumDevTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getVDevTime).sum ( ); int sumFlickerTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getFlickerTime).sum ( ); rMpPassRateYPO.setFreqPassRate (calculatePassRate(sumEffectiveTime,sumFreqTime)); - rMpPassRateYPO.setvDevPassRate (calculatePassRate(sumEffectiveTime,sumDevTime)); + rMpPassRateYPO.setVDevPassRate (calculatePassRate(sumEffectiveTime,sumDevTime)); rMpPassRateYPO.setFlickerPassRate (calculatePassRate(sumEffectiveTime,sumFlickerTime)); rMpPassRateYPOList.add (rMpPassRateYPO); }); rMpPassRateYService.saveOrUpdateBatchByMultiId (rMpPassRateYPOList, 500); } - + @Deprecated private void passRateHandlerQ(LineParam lineParam) { List lineIds = lineParam.getLineIds ( ); @@ -164,20 +367,20 @@ public class RMpPassRateDServiceImpl extends MppServiceImpl rMpPassRateDPOList = this.getBaseMapper ( ).selectList (queryWrapper); RMpPassRateQPO rMpPassRateQPO = new RMpPassRateQPO(); rMpPassRateQPO.setMeasurementPointId (temp); - rMpPassRateQPO.setDataDate (date); + rMpPassRateQPO.setDataDate (LocalDate.parse(dataDate) ); int sumEffectiveTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getEffectiveTime).sum ( ); int sumFreqTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getFreqTime).sum ( ); - int sumDevTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getvDevTime).sum ( ); + int sumDevTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getVDevTime).sum ( ); int sumFlickerTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getFlickerTime).sum ( ); rMpPassRateQPO.setFreqPassRate (calculatePassRate(sumEffectiveTime,sumFreqTime)); - rMpPassRateQPO.setvDevPassRate (calculatePassRate(sumEffectiveTime,sumDevTime)); + rMpPassRateQPO.setVDevPassRate (calculatePassRate(sumEffectiveTime,sumDevTime)); rMpPassRateQPO.setFlickerPassRate (calculatePassRate(sumEffectiveTime,sumFlickerTime)); rMpPassRateQPOList.add (rMpPassRateQPO); }); rMpPassRateQService.saveOrUpdateBatchByMultiId (rMpPassRateQPOList, 500); } - + @Deprecated private void passRateHandlerM(LineParam lineParam) { List lineIds = lineParam.getLineIds ( ); @@ -192,14 +395,14 @@ public class RMpPassRateDServiceImpl extends MppServiceImpl rMpPassRateDPOList = this.getBaseMapper ( ).selectList (queryWrapper); RMpPassRateMPO rMpPassRateMPO = new RMpPassRateMPO(); rMpPassRateMPO.setMeasurementPointId (temp); - rMpPassRateMPO.setDataDate (date); + rMpPassRateMPO.setDataDate (LocalDate.parse(dataDate)); int sumEffectiveTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getEffectiveTime).sum ( ); int sumFreqTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getFreqTime).sum ( ); - int sumDevTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getvDevTime).sum ( ); + int sumDevTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getVDevTime).sum ( ); int sumFlickerTime = rMpPassRateDPOList.stream ( ).mapToInt (RMpPassRateDPO::getFlickerTime).sum ( ); rMpPassRateMPO.setFreqPassRate (calculatePassRate(sumEffectiveTime,sumFreqTime)); - rMpPassRateMPO.setvDevPassRate (calculatePassRate(sumEffectiveTime,sumDevTime)); + rMpPassRateMPO.setVDevPassRate (calculatePassRate(sumEffectiveTime,sumDevTime)); rMpPassRateMPO.setFlickerPassRate (calculatePassRate(sumEffectiveTime,sumFlickerTime)); rMpPassRateMPOList.add (rMpPassRateMPO); }); diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/RmpPassRateServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/RmpPassRateServiceImpl.java deleted file mode 100644 index 8a970d910..000000000 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/RmpPassRateServiceImpl.java +++ /dev/null @@ -1,250 +0,0 @@ -package com.njcn.prepare.harmonic.service.mysql.Impl.line; - -import cn.hutool.core.date.DateUtil; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.njcn.device.pms.api.MonitorClient; -import com.njcn.device.pms.pojo.dto.PmsMonitorDTO; -import com.njcn.device.pms.pojo.param.PmsMonitorParam; -import com.njcn.harmonic.pojo.po.RMpIntegrityDPO; -import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD; -import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD; -import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper; -import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper; -import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateDPO; -import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateMPO; -import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateQPO; -import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateYPO; -import com.njcn.prepare.harmonic.pojo.param.LineParam; -import com.njcn.prepare.harmonic.service.mysql.area.RMpIntegrityDPOService; -import com.njcn.prepare.harmonic.service.mysql.line.*; -import com.njcn.prepare.harmonic.utils.PublicUtil; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; - -import java.text.DecimalFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Description: - * 接口文档访问地址:http://serverIP:port/swagger-ui.html - * Date: 2023/2/28 10:27【需求编号】 - * - * @author clam - * @version V1.0.0 - */ -@Service -@RequiredArgsConstructor -@Slf4j -public class RmpPassRateServiceImpl implements RmpPassRateService { - - private final MonitorClient monitorClient; - private final RMpIntegrityDPOService rMpIntegrityDPOService; - private final RMpPartHarmonicDetailDMapper rMpPartHarmonicDetailDMapper; - private final RMpSurplusHarmonicDetailDMapper rMpSurplusHarmonicDetailDMapper; - private final RMpPassRateDService rmpPassRateDService; - private final RMpPassRateMService rmpPassRateMService; - private final RMpPassRateQService rmpPassRateQService; - private final RMpPassRateYService rmpPassRateYService; - - - DecimalFormat df = new DecimalFormat("0.00"); - - - /*接口重mysql中取数据不分oracle/Influxdb*/ - @Override - public void rmpPassRateDHandler(LineParam lineParam) { - Integer type = lineParam.getType ( ); - switch (type) { - case 1: - this.hanlderYear (lineParam); - break; - case 2: - this.hanlderQtr (lineParam); - break; - case 3: - this.hanlderMonth (lineParam); - break; - case 5: - this.hanlderDay (lineParam); - break; - default: - break; - } - } - - private void hanlderYear(LineParam lineParam) { - String dataDate = lineParam.getDataDate(); - Date date = DateUtil.parse(lineParam.getDataDate()); - - List lineIds = lineParam.getLineIds(); - List rMpPassRateYPOList = new ArrayList<> (); - lineIds.forEach (temp ->{ - QueryWrapper queryWrapper = new QueryWrapper<> (); - queryWrapper.eq ("measurement_point_id", temp). - eq("YEAR( data_date )",dataDate.substring (0, 4)); - List list = rmpPassRateMService.list (queryWrapper); - /*求平均值*/ - Double flickerPassRate = list.stream ( ).map (rMpPassRateMPO -> rMpPassRateMPO.getFlickerPassRate ( )). - collect (Collectors.averagingDouble (x -> x)); - Double freqPassRate = list.stream ( ).map (rMpPassRateMPO -> rMpPassRateMPO.getFreqPassRate ( )). - collect (Collectors.averagingDouble (x -> x)); - Double vDevPassRate =list.stream ( ).map (rMpPassRateMPO -> rMpPassRateMPO.getvDevPassRate ( )). - collect (Collectors.averagingDouble (x -> x)); - RMpPassRateYPO rMpPassRateYPO = new RMpPassRateYPO(); - rMpPassRateYPO.setMeasurementPointId (temp); - rMpPassRateYPO.setDataDate (date); - rMpPassRateYPO.setFlickerPassRate ( - flickerPassRate ); - rMpPassRateYPO.setFreqPassRate ( - freqPassRate ); - rMpPassRateYPO.setvDevPassRate ( - vDevPassRate ); - rMpPassRateYPOList.add (rMpPassRateYPO); - }); - if(!CollectionUtils.isEmpty (rMpPassRateYPOList)){ - rmpPassRateYService.saveOrUpdateBatchByMultiId (rMpPassRateYPOList,500); - } - } - - private void hanlderQtr(LineParam lineParam) { - String dataDate = lineParam.getDataDate(); - Date date = DateUtil.parse(lineParam.getDataDate()); - - List lineIds = lineParam.getLineIds(); - List rMpPassRateQPOList = new ArrayList<> (); - lineIds.forEach (temp ->{ - QueryWrapper queryWrapper = new QueryWrapper<> (); - queryWrapper.eq ("measurement_point_id", temp). - eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); - List list = rmpPassRateMService.list (queryWrapper); - /*求平均值*/ - Double flickerPassRate = list.stream ( ).map (rMpPassRateMPO -> rMpPassRateMPO.getFlickerPassRate ( )). - collect (Collectors.averagingDouble (x -> x)); - Double freqPassRate = list.stream ( ).map (rMpPassRateMPO -> rMpPassRateMPO.getFreqPassRate ( )). - collect (Collectors.averagingDouble (x -> x)); - Double vDevPassRate =list.stream ( ).map (rMpPassRateMPO -> rMpPassRateMPO.getvDevPassRate ( )). - collect (Collectors.averagingDouble (x -> x)); - RMpPassRateQPO rMpPassRateQPO = new RMpPassRateQPO(); - rMpPassRateQPO.setMeasurementPointId (temp); - rMpPassRateQPO.setDataDate (date); - rMpPassRateQPO.setFlickerPassRate ( - flickerPassRate ); - rMpPassRateQPO.setFreqPassRate ( - freqPassRate ); - rMpPassRateQPO.setvDevPassRate ( - vDevPassRate ); - rMpPassRateQPOList.add (rMpPassRateQPO); - }); - if(!CollectionUtils.isEmpty (rMpPassRateQPOList)){ - rmpPassRateQService.saveOrUpdateBatchByMultiId (rMpPassRateQPOList,500); - } - } - - /** - * @Description: 月表为日表累计 - * @Param: [lineParam] - * @return: void - * @Author: clam - * @Date: 2023/2/28 - */ - private void hanlderMonth(LineParam lineParam) { - String dataDate = lineParam.getDataDate(); - Date date = DateUtil.parse(lineParam.getDataDate()); - - List lineIds = lineParam.getLineIds(); - List rMpPassRateMPOList = new ArrayList<> (); - lineIds.forEach (temp ->{ - QueryWrapper queryWrapper = new QueryWrapper<> (); - queryWrapper.eq ("measurement_point_id", temp). - eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring (0, 7)); - List list = rmpPassRateDService.list (queryWrapper); - Integer effectiveTime = Integer.valueOf ( - list.stream ( ).mapToLong (RMpPassRateDPO::getEffectiveTime).sum ( ) + "" - ); - Integer flickerTime = Integer.valueOf ( - list.stream ( ).mapToLong (RMpPassRateDPO::getFlickerTime).sum ( ) + "" - ); - Integer freqTime = Integer.valueOf ( - list.stream ( ).mapToLong (RMpPassRateDPO::getFreqTime).sum ( ) + "" - ); - Integer vDevTime = Integer.valueOf ( - list.stream ( ).mapToLong (RMpPassRateDPO::getvDevTime).sum ( ) + "" - ); - RMpPassRateMPO rMpPassRateMPO = new RMpPassRateMPO(); - rMpPassRateMPO.setMeasurementPointId (temp); - rMpPassRateMPO.setDataDate (date); - rMpPassRateMPO.setFlickerPassRate ( - Double.valueOf (df.format ((float) flickerTime / effectiveTime)) - ); - rMpPassRateMPO.setFreqPassRate ( - Double.valueOf (df.format ((float) freqTime / effectiveTime)) - ); - rMpPassRateMPO.setvDevPassRate ( - Double.valueOf (df.format ((float) vDevTime / effectiveTime)) - ); - rMpPassRateMPOList.add (rMpPassRateMPO); - }); - if(!CollectionUtils.isEmpty (rMpPassRateMPOList)){ - rmpPassRateMService.saveOrUpdateBatchByMultiId (rMpPassRateMPOList,500); - } - } - - /** - * @Description: 1. 日有效监测时长(min):表1的统计间隔*表2的有效接入分钟数量。 - * 2. 频率偏差超标时长(min):表1的统计间隔*表3的频率偏差超标次数。 - * 3. 电压偏差超标时长(min):表1的统计间隔*表3的电压偏差超标次数。 - * 4. 闪变超标时长(min):2*60*闪变发生次数 - * @Param: [lineParam] - * @return: void - * @Author: clam - * @Date: 2023/2/28 - */ - private void hanlderDay(LineParam lineParam) { - - Date date = DateUtil.parse(lineParam.getDataDate()); - List lineIds = lineParam.getLineIds(); - Integer type = lineParam.getType(); - Integer lineType = lineParam.getLineType(); - PmsMonitorParam pmsMonitorParam = new PmsMonitorParam(); - pmsMonitorParam.setMonitorIds (lineIds); - List rMpPassRateDPOList = new ArrayList<> (); - List data = monitorClient.getMonitorInfoListByCond (pmsMonitorParam).getData ( ); - data.forEach (temp ->{ - RMpPassRateDPO rMpPassRateDPO = new RMpPassRateDPO(); - Integer statisticalInterval = temp.getStatisticalInterval ( ); - String id = temp.getId ( ); - QueryWrapper rMpIntegrityDPOQueryWrapper = new QueryWrapper(); - - rMpIntegrityDPOQueryWrapper.eq ("measurement_point_id", id). - eq ("data_date", date); - - RMpIntegrityDPO rMpIntegrityDPO = rMpIntegrityDPOService.getOne (rMpIntegrityDPOQueryWrapper); - - QueryWrapper rMpPartHarmonicDetailDQueryWrapper = new QueryWrapper(); - rMpPartHarmonicDetailDQueryWrapper.eq ("measurement_point_id", id). - eq ("data_date", date); - RMpPartHarmonicDetailD rMpPartHarmonicDetailD = rMpPartHarmonicDetailDMapper.selectOne (rMpPartHarmonicDetailDQueryWrapper); - - QueryWrapper rMpSurplusHarmonicDetailDQueryWrapper = new QueryWrapper(); - rMpSurplusHarmonicDetailDQueryWrapper.eq ("measurement_point_id", id). - eq ("data_date", date); - RMpSurplusHarmonicDetailD rMpSurplusHarmonicDetailD = rMpSurplusHarmonicDetailDMapper.selectOne (rMpSurplusHarmonicDetailDQueryWrapper); - rMpPassRateDPO.setMeasurementPointId (id); - rMpPassRateDPO.setDataDate (date); - rMpPassRateDPO.setEffectiveTime (rMpIntegrityDPO.getEffectiveMinuteCount ()*statisticalInterval); - rMpPassRateDPO.setFlickerTime (2*60*rMpSurplusHarmonicDetailD.getFlickerTimes ()); - rMpPassRateDPO.setFreqTime (rMpPartHarmonicDetailD.getFreqTimes ()*statisticalInterval); - rMpPassRateDPO.setvDevTime (rMpPartHarmonicDetailD.getVDevTimes ()*statisticalInterval); - rMpPassRateDPOList.add (rMpPassRateDPO); - }); - if(!CollectionUtils.isEmpty (rMpPassRateDPOList)){ - rmpPassRateDService.saveOrUpdateBatchByMultiId (rMpPassRateDPOList,500); - } - - } -} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/RMpPassRateDService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/RMpPassRateDService.java index fef66c1c1..d1481ec70 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/RMpPassRateDService.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/RMpPassRateDService.java @@ -1,6 +1,7 @@ package com.njcn.prepare.harmonic.service.mysql.line; import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.prepare.bo.CalculatedParam; import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateDPO; import com.njcn.prepare.harmonic.pojo.param.LineParam; @@ -19,4 +20,12 @@ public interface RMpPassRateDService extends IMppService { void passRateHandler(LineParam lineParam); + + void handleDay(CalculatedParam calculatedParam); + + void handleMonth(CalculatedParam calculatedParam); + + void handleQtr(CalculatedParam calculatedParam); + + void handleYear(CalculatedParam calculatedParam); } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/RmpPassRateService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/RmpPassRateService.java deleted file mode 100644 index 81c27c7bc..000000000 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/RmpPassRateService.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.njcn.prepare.harmonic.service.mysql.line; - -import com.njcn.prepare.harmonic.pojo.param.LineParam; - -/** - * Description: - * 接口文档访问地址:http://serverIP:port/swagger-ui.html - * Date: 2023/2/28 10:03【需求编号】 - * - * @author clam - * @version V1.0.0 - */ -public interface RmpPassRateService { - void rmpPassRateDHandler(LineParam lineParam); -} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/ROperatingIndexService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/ROperatingIndexService.java index 444359b23..7c3558a0f 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/ROperatingIndexService.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/ROperatingIndexService.java @@ -1,6 +1,7 @@ package com.njcn.prepare.harmonic.service.mysql.newalgorithm; import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; +import com.njcn.prepare.bo.CalculatedParam; import java.util.List; @@ -13,4 +14,10 @@ import java.util.List; */ public interface ROperatingIndexService { void handler(List data, String dataDate, Integer type); + + void handleMonth(CalculatedParam calculatedParam); + + void handleQtr(CalculatedParam calculatedParam); + + void handleYear(CalculatedParam calculatedParam); } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/ROperatingIndexServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/ROperatingIndexServiceImpl.java index 46b813c4a..49eadb75f 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/ROperatingIndexServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/ROperatingIndexServiceImpl.java @@ -1,6 +1,9 @@ package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.date.LocalDateTimeUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; import com.njcn.device.biz.pojo.dto.LineDevGetDTO; @@ -9,6 +12,7 @@ import com.njcn.device.pms.pojo.po.RDnOperatingPO; import com.njcn.harmonic.pojo.po.ROperatingIndexMPO; import com.njcn.harmonic.pojo.po.ROperatingIndexQPO; import com.njcn.harmonic.pojo.po.ROperatingIndexYPO; +import com.njcn.prepare.bo.CalculatedParam; import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO; import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorMPO; import com.njcn.prepare.harmonic.pojo.param.OrgParam; @@ -31,6 +35,8 @@ import org.springframework.util.CollectionUtils; import javax.management.Query; import java.text.DecimalFormat; +import java.time.LocalDate; +import java.time.ZoneId; import java.util.*; import java.util.stream.Collectors; @@ -77,6 +83,435 @@ public class ROperatingIndexServiceImpl implements ROperatingIndexService { } } + @Override + public void handleMonth(CalculatedParam calculatedParam) { + List rdnOperatingIndexMPOList = new ArrayList<>(); + List rOperatingIndexMPOList = new ArrayList<>(); + QueryWrapper queryWrapperD = new QueryWrapper<>(); + QueryWrapper queryWrapperM = new QueryWrapper<>(); + DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN); /*获取监测点类型类型*/ + /*获取监测点类型类型*/ + + List lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + + + for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) { + if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) { + List collect = deptGetChildrenMoreDTO.getLineBaseList().stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + queryWrapperD.clear(); + queryWrapperM.clear(); + queryWrapperD.in("measurement_point_id", collect). + between("data_date",begin,end); + + queryWrapperM.in("measurement_point_id", collect). + between("data_date",begin,end); + + List rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD); + List roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM); + ROperatingIndexMPO rOperatingIndexMPO = new ROperatingIndexMPO(); + rOperatingIndexMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rOperatingIndexMPO.setDataDate(localDate); + List collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1). + map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + List monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList()); + + List collect2 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getDataIntegrityRate().doubleValue() > 0.95 && temp.getIsUnusual() == 1). + map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + Map> collect3 = rOperatingMonitorDPOList.stream().collect(Collectors.groupingBy(ROperatingMonitorDPO::getDevId)); + + Map> collect4 = monitorList.stream().collect(Collectors.groupingBy(ROperatingMonitorDPO::getDevId)); + + rOperatingIndexMPO.setEffectiveAccessMeasurementCount(collect2.size()); + rOperatingIndexMPO.setMeasurementRunPoints(collect.size()); + rOperatingIndexMPO.setOnlineMeasurementCount(collect4.size()); + rOperatingIndexMPO.setTransitMeasurementPoints(collect1.size()); + rOperatingIndexMPO.setOnlineMeasurementPoints(collect3.size()); +// rOperatingIndexMPO.setShouldCount(); + + List collect5 = roperatingMonitorMPOList.stream().filter(temp -> temp.getIsUnusual() == 0).map(ROperatingMonitorMPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + + double v = roperatingMonitorMPOList.stream().mapToDouble(temp -> { + return temp.getIndexIntegrityRate().doubleValue(); + }).average().orElse(0.0); + double v1 = roperatingMonitorMPOList.stream().mapToDouble(temp -> { + return temp.getDataRightRate().doubleValue(); + }).average().orElse(0.0); + double v2 = roperatingMonitorMPOList.stream().mapToDouble(temp -> { + return temp.getDataIntegrityRate().doubleValue(); + }).average().orElse(0.0); + rOperatingIndexMPO.setIndexIntegrityRate(v); + rOperatingIndexMPO.setDataIntegrityRate(v2); + rOperatingIndexMPO.setIsUnusual(collect5.size()); + rOperatingIndexMPO.setDataRightRate(v1); + rOperatingIndexMPOList.add(rOperatingIndexMPO); + + } + if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) { + if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) { + Map> collect3 = deptGetChildrenMoreDTO.getPwMonitorIds().stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); + + collect3.forEach((k,v)->{ + List collect = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + queryWrapperD.clear(); + queryWrapperM.clear(); + queryWrapperD.in("measurement_point_id", collect). + between("data_date",begin,end); + + queryWrapperM.in("measurement_point_id", collect). + between("data_date",begin,end); + + List rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD); + List roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM); + RDnOperatingIndexMPO rDnOperatingIndexMPO = new RDnOperatingIndexMPO(); + rDnOperatingIndexMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rDnOperatingIndexMPO.setDataDate(localDate); + List collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1). + map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + List monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList()); + + List collect2 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getDataIntegrityRate().doubleValue() > 0.95 && temp.getIsUnusual() == 1). + map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + + rDnOperatingIndexMPO.setEffectiveAccessMeasurementCount(collect2.size()); + rDnOperatingIndexMPO.setMeasurementRunPoints(collect.size()); + rDnOperatingIndexMPO.setTransitMeasurementPoints(collect1.size()); + if (collect.size()==0){ + rDnOperatingIndexMPO.setEffectiveAccessRate(0.00); + + } + else { + double rate = Double.parseDouble(df.format((collect2.size()) / Double.valueOf(collect.size()))); + rDnOperatingIndexMPO.setEffectiveAccessRate(rate); + + } + + List collect5 = roperatingMonitorMPOList.stream().filter(temp -> temp.getIsUnusual() == 0).map(ROperatingMonitorMPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + + double integrity = roperatingMonitorMPOList.stream().mapToDouble(temp -> { + return temp.getIndexIntegrityRate().doubleValue(); + }).average().orElse(0.0); + double v1 = roperatingMonitorMPOList.stream().mapToDouble(temp -> { + return temp.getDataRightRate().doubleValue(); + }).average().orElse(0.0); + double v2 = roperatingMonitorMPOList.stream().mapToDouble(temp -> { + return temp.getDataIntegrityRate().doubleValue(); + }).average().orElse(0.0); + rDnOperatingIndexMPO.setMeasurementPointType(getmeasurementType(k, lineSortMap)); + rDnOperatingIndexMPO.setIndexIntegrityRate(integrity); + rDnOperatingIndexMPO.setDataIntegrityRate(v2); + rDnOperatingIndexMPO.setIsUnusual(collect5.size()); + rDnOperatingIndexMPO.setDataRightRate(v1); + rdnOperatingIndexMPOList.add(rDnOperatingIndexMPO); + }); + + } + + } + } + + if (!CollectionUtils.isEmpty(rdnOperatingIndexMPOList)){ + rDnOperatingIndexMPOService.saveOrUpdateBatchByMultiId(rdnOperatingIndexMPOList); + } + if (!CollectionUtils.isEmpty(rOperatingIndexMPOList)){ + rOperatingIndexMPOService.saveOrUpdateBatchByMultiId(rOperatingIndexMPOList); + + } + } + + @Override + public void handleQtr(CalculatedParam calculatedParam) { + List rdnOperatingIndexQPOList = new ArrayList<>(); + List rOperatingIndexQPOList = new ArrayList<>(); + QueryWrapper queryWrapperD = new QueryWrapper<>(); + QueryWrapper queryWrapperM = new QueryWrapper<>(); + DateTime begin = DateUtil.beginOfQuarter(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + DateTime end = DateUtil.endOfQuarter(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN); /*获取监测点类型类型*/ + + /*获取监测点类型类型*/ + + List lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + + for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) { + if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) { + List collect = deptGetChildrenMoreDTO.getLineBaseList().stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + queryWrapperD.clear(); + queryWrapperM.clear(); + queryWrapperD.in("measurement_point_id", collect). + between("data_date",begin,end); + queryWrapperM.in("measurement_point_id", collect). + between("data_date",begin,end); + List rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD); + List roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM); + ROperatingIndexQPO rOperatingIndexQPO = new ROperatingIndexQPO(); + rOperatingIndexQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rOperatingIndexQPO.setDataDate(localDate); + List collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1). + map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + List monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList()); + + List collect2 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getDataIntegrityRate().doubleValue() > 0.95 && temp.getIsUnusual() == 1). + map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + Map> collect3 = rOperatingMonitorDPOList.stream().collect(Collectors.groupingBy(ROperatingMonitorDPO::getDevId)); + + Map> collect4 = monitorList.stream().collect(Collectors.groupingBy(ROperatingMonitorDPO::getDevId)); + + rOperatingIndexQPO.setEffectiveAccessMeasurementCount(collect2.size()); + rOperatingIndexQPO.setMeasurementRunPoints(collect.size()); + rOperatingIndexQPO.setOnlineMeasurementCount(collect4.size()); + rOperatingIndexQPO.setTransitMeasurementPoints(collect1.size()); + rOperatingIndexQPO.setOnlineMeasurementPoints(collect3.size()); +// rOperatingIndexMPO.setShouldCount(); + + List collect5 = roperatingMonitorMPOList.stream().filter(temp -> temp.getIsUnusual() == 0).map(ROperatingMonitorMPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + + double v = roperatingMonitorMPOList.stream().mapToDouble(temp -> { + return temp.getIndexIntegrityRate().doubleValue(); + }).average().orElse(0.0); + double v1 = roperatingMonitorMPOList.stream().mapToDouble(temp -> { + return temp.getDataRightRate().doubleValue(); + }).average().orElse(0.0); + double v2 = roperatingMonitorMPOList.stream().mapToDouble(temp -> { + return temp.getDataIntegrityRate().doubleValue(); + }).average().orElse(0.0); + rOperatingIndexQPO.setIndexIntegrityRate(v); + rOperatingIndexQPO.setDataIntegrityRate(v2); + rOperatingIndexQPO.setIsUnusual(collect5.size()); + rOperatingIndexQPO.setDataRightRate(v1); + rOperatingIndexQPOList.add(rOperatingIndexQPO); + + } + if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) { + if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) { + Map> collect3 = deptGetChildrenMoreDTO.getPwMonitorIds().stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); + collect3.forEach((k,m)->{ + List collect = m.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + queryWrapperD.clear(); + queryWrapperM.clear(); + queryWrapperD.in("measurement_point_id", collect). + between("data_date",begin,end); + + queryWrapperM.in("measurement_point_id", collect). + between("data_date",begin,end); + + List rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD); + List roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM); + RDnOperatingQPO rDnOperatingQPO = new RDnOperatingQPO(); + rDnOperatingQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rDnOperatingQPO.setDataDate(localDate); + List collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1). + map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + List monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList()); + + List collect2 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getDataIntegrityRate().doubleValue() > 0.95 && temp.getIsUnusual() == 1). + map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + + rDnOperatingQPO.setEffectiveAccessMeasurementCount(collect2.size()); + rDnOperatingQPO.setMeasurementRunPoints(collect.size()); + rDnOperatingQPO.setTransitMeasurementPoints(collect1.size()); + if (collect.size()==0){ + rDnOperatingQPO.setEffectiveAccessRate(0.00); + + } + else { + double v = Double.parseDouble(df.format((collect2.size()) / Double.valueOf(collect.size()))); + rDnOperatingQPO.setEffectiveAccessRate(v); + + } +// rOperatingIndexMPO.setShouldCount(); + + List collect5 = roperatingMonitorMPOList.stream().filter(temp -> temp.getIsUnusual() == 0).map(ROperatingMonitorMPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + + double v = roperatingMonitorMPOList.stream().mapToDouble(temp -> { + return temp.getIndexIntegrityRate().doubleValue(); + }).average().orElse(0.0); + double v1 = roperatingMonitorMPOList.stream().mapToDouble(temp -> { + return temp.getDataRightRate().doubleValue(); + }).average().orElse(0.0); + double v2 = roperatingMonitorMPOList.stream().mapToDouble(temp -> { + return temp.getDataIntegrityRate().doubleValue(); + }).average().orElse(0.0); + rDnOperatingQPO.setMeasurementPointType(getmeasurementType(k, lineSortMap)); + rDnOperatingQPO.setIndexIntegrityRate(v); + rDnOperatingQPO.setDataIntegrityRate(v2); + rDnOperatingQPO.setIsUnusual(collect5.size()); + rDnOperatingQPO.setDataRightRate(v1); + rdnOperatingIndexQPOList.add(rDnOperatingQPO); + }); + + } + + } + } + + if (!CollectionUtils.isEmpty(rdnOperatingIndexQPOList)){ + rDnOperatingQPOService.saveOrUpdateBatchByMultiId(rdnOperatingIndexQPOList); + } + if (!CollectionUtils.isEmpty(rOperatingIndexQPOList)){ + rOperatingIndexQPOService.saveOrUpdateBatchByMultiId(rOperatingIndexQPOList); + + } + } + + @Override + public void handleYear(CalculatedParam calculatedParam) { + List rdnOperatingIndexYPOList = new ArrayList<>(); + List rOperatingIndexYPOList = new ArrayList<>(); + QueryWrapper queryWrapperD = new QueryWrapper<>(); + QueryWrapper queryWrapperM = new QueryWrapper<>(); + DateTime begin = DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + DateTime end = DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN); /*获取监测点类型类型*/ + + + /*获取监测点类型类型*/ + + List lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + + for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) { + if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) { + List collect = deptGetChildrenMoreDTO.getLineBaseList().stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + queryWrapperD.clear(); + queryWrapperM.clear(); + queryWrapperD.in("measurement_point_id", collect). + between("data_date",begin,end); + queryWrapperM.in("measurement_point_id", collect). + between("data_date",begin,end); + List rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD); + List roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM); + ROperatingIndexYPO rOperatingIndexYPO = new ROperatingIndexYPO(); + rOperatingIndexYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rOperatingIndexYPO.setDataDate(localDate); + List collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1). + map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + List monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList()); + + List collect2 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getDataIntegrityRate().doubleValue() > 0.95 && temp.getIsUnusual() == 1). + map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + Map> collect3 = rOperatingMonitorDPOList.stream().collect(Collectors.groupingBy(ROperatingMonitorDPO::getDevId)); + + Map> collect4 = monitorList.stream().collect(Collectors.groupingBy(ROperatingMonitorDPO::getDevId)); + + rOperatingIndexYPO.setEffectiveAccessMeasurementCount(collect2.size()); + rOperatingIndexYPO.setMeasurementRunPoints(collect.size()); + rOperatingIndexYPO.setOnlineMeasurementCount(collect4.size()); + rOperatingIndexYPO.setTransitMeasurementPoints(collect1.size()); + rOperatingIndexYPO.setOnlineMeasurementPoints(collect3.size()); +// rOperatingIndexMPO.setShouldCount(); + + List collect5 = roperatingMonitorMPOList.stream().filter(temp -> temp.getIsUnusual() == 0).map(ROperatingMonitorMPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + + double v = roperatingMonitorMPOList.stream().mapToDouble(temp -> { + return temp.getIndexIntegrityRate().doubleValue(); + }).average().orElse(0.0); + double v1 = roperatingMonitorMPOList.stream().mapToDouble(temp -> { + return temp.getDataRightRate().doubleValue(); + }).average().orElse(0.0); + double v2 = roperatingMonitorMPOList.stream().mapToDouble(temp -> { + return temp.getDataIntegrityRate().doubleValue(); + }).average().orElse(0.0); + rOperatingIndexYPO.setIndexIntegrityRate(v); + rOperatingIndexYPO.setDataIntegrityRate(v2); + rOperatingIndexYPO.setIsUnusual(collect5.size()); + rOperatingIndexYPO.setDataRightRate(v1); + rOperatingIndexYPOList.add(rOperatingIndexYPO); + + } + if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) { + if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) { + Map> collect3 = deptGetChildrenMoreDTO.getPwMonitorIds().stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); + collect3.forEach((k,m)->{ + List collect = m.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + queryWrapperD.clear(); + queryWrapperM.clear(); + queryWrapperD.in("measurement_point_id", collect). + between("data_date",begin,end); + + queryWrapperM.in("measurement_point_id", collect). + between("data_date",begin,end); + + List rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD); + List roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM); + RDnOperatingYPO rDnOperatingYPO = new RDnOperatingYPO(); + rDnOperatingYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rDnOperatingYPO.setDataDate(localDate); + List collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1). + map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + List monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList()); + + List collect2 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getDataIntegrityRate().doubleValue() > 0.95 && temp.getIsUnusual() == 1). + map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + + rDnOperatingYPO.setEffectiveAccessMeasurementCount(collect2.size()); + rDnOperatingYPO.setMeasurementRunPoints(collect.size()); + rDnOperatingYPO.setTransitMeasurementPoints(collect1.size()); + if (collect.size()==0){ + rDnOperatingYPO.setEffectiveAccessRate(0.00); + + } + else { + double v = Double.parseDouble(df.format((collect2.size()) / Double.valueOf(collect.size()))); + rDnOperatingYPO.setEffectiveAccessRate(v); + + } +// rOperatingIndexMPO.setShouldCount(); + + List collect5 = roperatingMonitorMPOList.stream().filter(temp -> temp.getIsUnusual() == 0).map(ROperatingMonitorMPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + + double v = roperatingMonitorMPOList.stream().mapToDouble(temp -> { + return temp.getIndexIntegrityRate().doubleValue(); + }).average().orElse(0.0); + double v1 = roperatingMonitorMPOList.stream().mapToDouble(temp -> { + return temp.getDataRightRate().doubleValue(); + }).average().orElse(0.0); + double v2 = roperatingMonitorMPOList.stream().mapToDouble(temp -> { + return temp.getDataIntegrityRate().doubleValue(); + }).average().orElse(0.0); + rDnOperatingYPO.setMeasurementPointType(getmeasurementType(k, lineSortMap)); + rDnOperatingYPO.setIndexIntegrityRate(v); + rDnOperatingYPO.setDataIntegrityRate(v2); + rDnOperatingYPO.setIsUnusual(collect5.size()); + rDnOperatingYPO.setDataRightRate(v1); + rdnOperatingIndexYPOList.add(rDnOperatingYPO); + }); + + } + + } + } + + if (!CollectionUtils.isEmpty(rdnOperatingIndexYPOList)){ + rDnOperatingYPOService.saveOrUpdateBatchByMultiId(rdnOperatingIndexYPOList); + } + if (!CollectionUtils.isEmpty(rOperatingIndexYPOList)){ + rOperatingIndexYPOService.saveOrUpdateBatchByMultiId(rOperatingIndexYPOList); + + } + } + @Deprecated private void hanlderYear(List data, String dataDate, Integer type) { List rdnOperatingIndexYPOList = new ArrayList<>(); @@ -102,7 +537,7 @@ public class ROperatingIndexServiceImpl implements ROperatingIndexService { List roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM); ROperatingIndexYPO rOperatingIndexYPO = new ROperatingIndexYPO(); rOperatingIndexYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); - rOperatingIndexYPO.setDataDate(date); + rOperatingIndexYPO.setDataDate(date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate()); List collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1). map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); @@ -158,7 +593,7 @@ public class ROperatingIndexServiceImpl implements ROperatingIndexService { List roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM); RDnOperatingYPO rDnOperatingYPO = new RDnOperatingYPO(); rDnOperatingYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); - rDnOperatingYPO.setDataDate(date); + rDnOperatingYPO.setDataDate(date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate()); List collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1). map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); @@ -216,7 +651,7 @@ public class ROperatingIndexServiceImpl implements ROperatingIndexService { } } - + @Deprecated private void hanlderQtr(List data, String dataDate, Integer type) { List rdnOperatingIndexQPOList = new ArrayList<>(); List rOperatingIndexQPOList = new ArrayList<>(); @@ -241,7 +676,7 @@ public class ROperatingIndexServiceImpl implements ROperatingIndexService { List roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM); ROperatingIndexQPO rOperatingIndexQPO = new ROperatingIndexQPO(); rOperatingIndexQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); - rOperatingIndexQPO.setDataDate(date); + rOperatingIndexQPO.setDataDate(date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate()); List collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1). map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); @@ -297,7 +732,7 @@ public class ROperatingIndexServiceImpl implements ROperatingIndexService { List roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM); RDnOperatingQPO rDnOperatingQPO = new RDnOperatingQPO(); rDnOperatingQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); - rDnOperatingQPO.setDataDate(date); + rDnOperatingQPO.setDataDate(date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate()); List collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1). map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); @@ -355,7 +790,7 @@ public class ROperatingIndexServiceImpl implements ROperatingIndexService { } } - + @Deprecated private void hanlderM(List data, String dataDate, Integer type) { List rdnOperatingIndexMPOList = new ArrayList<>(); List rOperatingIndexMPOList = new ArrayList<>(); @@ -382,7 +817,7 @@ public class ROperatingIndexServiceImpl implements ROperatingIndexService { List roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM); ROperatingIndexMPO rOperatingIndexMPO = new ROperatingIndexMPO(); rOperatingIndexMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); - rOperatingIndexMPO.setDataDate(date); + rOperatingIndexMPO.setDataDate(date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate()); List collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1). map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); @@ -439,7 +874,7 @@ public class ROperatingIndexServiceImpl implements ROperatingIndexService { List roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM); RDnOperatingIndexMPO rDnOperatingIndexMPO = new RDnOperatingIndexMPO(); rDnOperatingIndexMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); - rDnOperatingIndexMPO.setDataDate(date); + rDnOperatingIndexMPO.setDataDate(date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate()); List collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1). map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());