算法提交

This commit is contained in:
huangzj
2023-11-10 16:06:21 +08:00
parent 6e36430690
commit be6ba61b8c
19 changed files with 815 additions and 749 deletions

View File

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

View File

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

View File

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

View File

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

View File

@@ -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;
/**
* 监测点类型

View File

@@ -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;
/**
* 监测点类型

View File

@@ -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;
/**
* 监测点类型

View File

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

View File

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

View File

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

View File

@@ -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<Boolean> rmpPassRateDHandler(@RequestBody @Validated LineParam lineParam) {
log.info(LocalDateTime.now()+"rmpPassRateDHandler开始执行");
String methodDescribe = getMethodDescribe("rmpPassRateDHandler");
Boolean result = true;
List<String> 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);
}
}
}

View File

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

View File

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

View File

@@ -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<RMpPassRateDMapper, RMpPassRateDPO> 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<RMpPassRateDMapper,
@Override
public void handleDay(CalculatedParam calculatedParam) {
LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
List<List<String>> 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<RMpPassRateDPO> rMpPassRateDPOList = new ArrayList<> ( );
QueryWrapper<RMpMonitorEvaluateDPO> rMpMonitorEvaluateDPOQueryWrapper = new QueryWrapper<>( );
QueryWrapper<RMpPartHarmonicDetailD> queryWrapper = new QueryWrapper<>( );
QueryWrapper<RMpSurplusHarmonicDetailD> surplusHarmonicDetailDQueryWrapper = new QueryWrapper<>( );
for (List<String> pendingId : pendingIds) {
List<LineDTO> 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<RMpPassRateMPO> rMpPassRateMPOList = new ArrayList<> ( );
List<String> lineIds = calculatedParam.getIdList();
//以尺寸1000分片
List<List<String>> 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<RMpPassRateDPO> queryWrapper = new QueryWrapper<> ();
for (List<String> pendingId : pendingIds) {
queryWrapper.clear();
queryWrapper.in ("measurement_point_id", pendingId).
between("data_date",begin,end);
List<RMpPassRateDPO> rMpPassRateDPOList = this.getBaseMapper ( ).selectList (queryWrapper);
if (CollectionUtils.isEmpty(rMpPassRateDPOList)) {
return;
}
Map<String, List<RMpPassRateDPO>> 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<RMpPassRateQPO> rMpPassRateQPOList = new ArrayList<> ( );
List<String> lineIds = calculatedParam.getIdList();
//以尺寸1000分片
List<List<String>> 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<RMpPassRateDPO> queryWrapper = new QueryWrapper<> ();
for (List<String> pendingId : pendingIds) {
queryWrapper.clear();
queryWrapper.in ("measurement_point_id", pendingId).
between("data_date",begin,end);
List<RMpPassRateDPO> rMpPassRateDPOList = this.getBaseMapper ( ).selectList (queryWrapper);
if (CollectionUtils.isEmpty(rMpPassRateDPOList)) {
return;
}
Map<String, List<RMpPassRateDPO>> 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<RMpPassRateYPO> rMpPassRateYPOList = new ArrayList<> ( );
List<String> lineIds = calculatedParam.getIdList();
//以尺寸1000分片
List<List<String>> 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<RMpPassRateDPO> queryWrapper = new QueryWrapper<> ();
for (List<String> pendingId : pendingIds) {
queryWrapper.clear();
queryWrapper.in ("measurement_point_id", pendingId).
between("data_date",begin,end);
List<RMpPassRateDPO> rMpPassRateDPOList = this.getBaseMapper ( ).selectList (queryWrapper);
if (CollectionUtils.isEmpty(rMpPassRateDPOList)) {
return;
}
Map<String, List<RMpPassRateDPO>> 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<String> lineIds = lineParam.getLineIds ( );
String dataDate = lineParam.getDataDate ();
@@ -91,10 +294,10 @@ public class RMpPassRateDServiceImpl extends MppServiceImpl<RMpPassRateDMapper,
}
RMpPassRateDPO rMpPassRateDPO = new RMpPassRateDPO ( );
rMpPassRateDPO.setMeasurementPointId (temp);
rMpPassRateDPO.setDataDate (date);
rMpPassRateDPO.setDataDate (LocalDate.parse(dataDate));
rMpPassRateDPO.setEffectiveTime (statisticalInterval *one.getEffectiveMinuteCount ());
rMpPassRateDPO.setFreqTime (statisticalInterval * rMpPartHarmonicDetailD.getFreqTimes ( ));
rMpPassRateDPO.setvDevTime (statisticalInterval * rMpPartHarmonicDetailD.getVDevTimes ( ));
rMpPassRateDPO.setVDevTime (statisticalInterval * rMpPartHarmonicDetailD.getVDevTimes ( ));
rMpPassRateDPO.setFlickerTime (statisticalInterval * rMpSurplusHarmonicDetailD.getFlickerTimes ( ));
rMpPassRateDPOList.add (rMpPassRateDPO);
@@ -122,7 +325,7 @@ public class RMpPassRateDServiceImpl extends MppServiceImpl<RMpPassRateDMapper,
break;
}
}
@Deprecated
private void passRateHandlerY(LineParam lineParam) {
List<String> lineIds = lineParam.getLineIds ( );
String dataDate = lineParam.getBeginTime ();
@@ -136,20 +339,20 @@ public class RMpPassRateDServiceImpl extends MppServiceImpl<RMpPassRateDMapper,
List<RMpPassRateDPO> 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<String> lineIds = lineParam.getLineIds ( );
@@ -164,20 +367,20 @@ public class RMpPassRateDServiceImpl extends MppServiceImpl<RMpPassRateDMapper,
List<RMpPassRateDPO> 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<String> lineIds = lineParam.getLineIds ( );
@@ -192,14 +395,14 @@ public class RMpPassRateDServiceImpl extends MppServiceImpl<RMpPassRateDMapper,
List<RMpPassRateDPO> 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);
});

View File

@@ -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<String> lineIds = lineParam.getLineIds();
List<RMpPassRateYPO> rMpPassRateYPOList = new ArrayList<> ();
lineIds.forEach (temp ->{
QueryWrapper<RMpPassRateMPO> queryWrapper = new QueryWrapper<> ();
queryWrapper.eq ("measurement_point_id", temp).
eq("YEAR( data_date )",dataDate.substring (0, 4));
List<RMpPassRateMPO> 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<String> lineIds = lineParam.getLineIds();
List<RMpPassRateQPO> rMpPassRateQPOList = new ArrayList<> ();
lineIds.forEach (temp ->{
QueryWrapper<RMpPassRateMPO> queryWrapper = new QueryWrapper<> ();
queryWrapper.eq ("measurement_point_id", temp).
eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate));
List<RMpPassRateMPO> 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<String> lineIds = lineParam.getLineIds();
List<RMpPassRateMPO> rMpPassRateMPOList = new ArrayList<> ();
lineIds.forEach (temp ->{
QueryWrapper<RMpPassRateDPO> queryWrapper = new QueryWrapper<> ();
queryWrapper.eq ("measurement_point_id", temp).
eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring (0, 7));
List<RMpPassRateDPO> 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<String> lineIds = lineParam.getLineIds();
Integer type = lineParam.getType();
Integer lineType = lineParam.getLineType();
PmsMonitorParam pmsMonitorParam = new PmsMonitorParam();
pmsMonitorParam.setMonitorIds (lineIds);
List<RMpPassRateDPO> rMpPassRateDPOList = new ArrayList<> ();
List<PmsMonitorDTO> data = monitorClient.getMonitorInfoListByCond (pmsMonitorParam).getData ( );
data.forEach (temp ->{
RMpPassRateDPO rMpPassRateDPO = new RMpPassRateDPO();
Integer statisticalInterval = temp.getStatisticalInterval ( );
String id = temp.getId ( );
QueryWrapper<RMpIntegrityDPO> rMpIntegrityDPOQueryWrapper = new QueryWrapper();
rMpIntegrityDPOQueryWrapper.eq ("measurement_point_id", id).
eq ("data_date", date);
RMpIntegrityDPO rMpIntegrityDPO = rMpIntegrityDPOService.getOne (rMpIntegrityDPOQueryWrapper);
QueryWrapper<RMpPartHarmonicDetailD> rMpPartHarmonicDetailDQueryWrapper = new QueryWrapper();
rMpPartHarmonicDetailDQueryWrapper.eq ("measurement_point_id", id).
eq ("data_date", date);
RMpPartHarmonicDetailD rMpPartHarmonicDetailD = rMpPartHarmonicDetailDMapper.selectOne (rMpPartHarmonicDetailDQueryWrapper);
QueryWrapper<RMpSurplusHarmonicDetailD> 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);
}
}
}

View File

@@ -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<RMpPassRateDPO> {
void passRateHandler(LineParam lineParam);
void handleDay(CalculatedParam calculatedParam);
void handleMonth(CalculatedParam calculatedParam);
void handleQtr(CalculatedParam calculatedParam);
void handleYear(CalculatedParam calculatedParam);
}

View File

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

View File

@@ -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<DeptGetChildrenMoreDTO> data, String dataDate, Integer type);
void handleMonth(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
void handleQtr(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
void handleYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
}

View File

@@ -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<DeptGetChildrenMoreDTO> calculatedParam) {
List<RDnOperatingIndexMPO> rdnOperatingIndexMPOList = new ArrayList<>();
List<ROperatingIndexMPO> rOperatingIndexMPOList = new ArrayList<>();
QueryWrapper<ROperatingMonitorDPO> queryWrapperD = new QueryWrapper<>();
QueryWrapper<ROperatingMonitorMPO> 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<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
List<String> 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<ROperatingMonitorDPO> rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD);
List<ROperatingMonitorMPO> roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM);
ROperatingIndexMPO rOperatingIndexMPO = new ROperatingIndexMPO();
rOperatingIndexMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
rOperatingIndexMPO.setDataDate(localDate);
List<String> collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
List<ROperatingMonitorDPO> monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList());
List<String> collect2 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getDataIntegrityRate().doubleValue() > 0.95 && temp.getIsUnusual() == 1).
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
Map<String, List<ROperatingMonitorDPO>> collect3 = rOperatingMonitorDPOList.stream().collect(Collectors.groupingBy(ROperatingMonitorDPO::getDevId));
Map<String, List<ROperatingMonitorDPO>> 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<String> 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<Integer, List<LineDevGetDTO>> collect3 = deptGetChildrenMoreDTO.getPwMonitorIds().stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
collect3.forEach((k,v)->{
List<String> 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<ROperatingMonitorDPO> rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD);
List<ROperatingMonitorMPO> roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM);
RDnOperatingIndexMPO rDnOperatingIndexMPO = new RDnOperatingIndexMPO();
rDnOperatingIndexMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
rDnOperatingIndexMPO.setDataDate(localDate);
List<String> collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
List<ROperatingMonitorDPO> monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList());
List<String> 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<String> 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<DeptGetChildrenMoreDTO> calculatedParam) {
List<RDnOperatingQPO> rdnOperatingIndexQPOList = new ArrayList<>();
List<ROperatingIndexQPO> rOperatingIndexQPOList = new ArrayList<>();
QueryWrapper<ROperatingMonitorDPO> queryWrapperD = new QueryWrapper<>();
QueryWrapper<ROperatingMonitorMPO> 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<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
List<String> 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<ROperatingMonitorDPO> rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD);
List<ROperatingMonitorMPO> roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM);
ROperatingIndexQPO rOperatingIndexQPO = new ROperatingIndexQPO();
rOperatingIndexQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
rOperatingIndexQPO.setDataDate(localDate);
List<String> collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
List<ROperatingMonitorDPO> monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList());
List<String> collect2 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getDataIntegrityRate().doubleValue() > 0.95 && temp.getIsUnusual() == 1).
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
Map<String, List<ROperatingMonitorDPO>> collect3 = rOperatingMonitorDPOList.stream().collect(Collectors.groupingBy(ROperatingMonitorDPO::getDevId));
Map<String, List<ROperatingMonitorDPO>> 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<String> 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<Integer, List<LineDevGetDTO>> collect3 = deptGetChildrenMoreDTO.getPwMonitorIds().stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
collect3.forEach((k,m)->{
List<String> 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<ROperatingMonitorDPO> rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD);
List<ROperatingMonitorMPO> roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM);
RDnOperatingQPO rDnOperatingQPO = new RDnOperatingQPO();
rDnOperatingQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
rDnOperatingQPO.setDataDate(localDate);
List<String> collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
List<ROperatingMonitorDPO> monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList());
List<String> 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<String> 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<DeptGetChildrenMoreDTO> calculatedParam) {
List<RDnOperatingYPO> rdnOperatingIndexYPOList = new ArrayList<>();
List<ROperatingIndexYPO> rOperatingIndexYPOList = new ArrayList<>();
QueryWrapper<ROperatingMonitorDPO> queryWrapperD = new QueryWrapper<>();
QueryWrapper<ROperatingMonitorMPO> 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<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
List<String> 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<ROperatingMonitorDPO> rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD);
List<ROperatingMonitorMPO> roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM);
ROperatingIndexYPO rOperatingIndexYPO = new ROperatingIndexYPO();
rOperatingIndexYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
rOperatingIndexYPO.setDataDate(localDate);
List<String> collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
List<ROperatingMonitorDPO> monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList());
List<String> collect2 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getDataIntegrityRate().doubleValue() > 0.95 && temp.getIsUnusual() == 1).
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
Map<String, List<ROperatingMonitorDPO>> collect3 = rOperatingMonitorDPOList.stream().collect(Collectors.groupingBy(ROperatingMonitorDPO::getDevId));
Map<String, List<ROperatingMonitorDPO>> 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<String> 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<Integer, List<LineDevGetDTO>> collect3 = deptGetChildrenMoreDTO.getPwMonitorIds().stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
collect3.forEach((k,m)->{
List<String> 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<ROperatingMonitorDPO> rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD);
List<ROperatingMonitorMPO> roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM);
RDnOperatingYPO rDnOperatingYPO = new RDnOperatingYPO();
rDnOperatingYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
rDnOperatingYPO.setDataDate(localDate);
List<String> collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
List<ROperatingMonitorDPO> monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList());
List<String> 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<String> 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<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
List<RDnOperatingYPO> rdnOperatingIndexYPOList = new ArrayList<>();
@@ -102,7 +537,7 @@ public class ROperatingIndexServiceImpl implements ROperatingIndexService {
List<ROperatingMonitorMPO> roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM);
ROperatingIndexYPO rOperatingIndexYPO = new ROperatingIndexYPO();
rOperatingIndexYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
rOperatingIndexYPO.setDataDate(date);
rOperatingIndexYPO.setDataDate(date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
List<String> 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<ROperatingMonitorMPO> roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM);
RDnOperatingYPO rDnOperatingYPO = new RDnOperatingYPO();
rDnOperatingYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
rDnOperatingYPO.setDataDate(date);
rDnOperatingYPO.setDataDate(date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
List<String> 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<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
List<RDnOperatingQPO> rdnOperatingIndexQPOList = new ArrayList<>();
List<ROperatingIndexQPO> rOperatingIndexQPOList = new ArrayList<>();
@@ -241,7 +676,7 @@ public class ROperatingIndexServiceImpl implements ROperatingIndexService {
List<ROperatingMonitorMPO> roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM);
ROperatingIndexQPO rOperatingIndexQPO = new ROperatingIndexQPO();
rOperatingIndexQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
rOperatingIndexQPO.setDataDate(date);
rOperatingIndexQPO.setDataDate(date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
List<String> 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<ROperatingMonitorMPO> roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM);
RDnOperatingQPO rDnOperatingQPO = new RDnOperatingQPO();
rDnOperatingQPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
rDnOperatingQPO.setDataDate(date);
rDnOperatingQPO.setDataDate(date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
List<String> 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<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
List<RDnOperatingIndexMPO> rdnOperatingIndexMPOList = new ArrayList<>();
List<ROperatingIndexMPO> rOperatingIndexMPOList = new ArrayList<>();
@@ -382,7 +817,7 @@ public class ROperatingIndexServiceImpl implements ROperatingIndexService {
List<ROperatingMonitorMPO> roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM);
ROperatingIndexMPO rOperatingIndexMPO = new ROperatingIndexMPO();
rOperatingIndexMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
rOperatingIndexMPO.setDataDate(date);
rOperatingIndexMPO.setDataDate(date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
List<String> 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<ROperatingMonitorMPO> roperatingMonitorMPOList = rOperatingMonitorMService.list(queryWrapperM);
RDnOperatingIndexMPO rDnOperatingIndexMPO = new RDnOperatingIndexMPO();
rDnOperatingIndexMPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
rDnOperatingIndexMPO.setDataDate(date);
rDnOperatingIndexMPO.setDataDate(date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
List<String> collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());