1.pms bug修改

2.监测点稳态指标合格率算法开发
This commit is contained in:
huangzj
2023-03-06 10:32:03 +08:00
parent c20ef391d7
commit 779b95d6b5
43 changed files with 1735 additions and 229 deletions

View File

@@ -0,0 +1,65 @@
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
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

@@ -0,0 +1,15 @@
package com.njcn.prepare.harmonic.mapper.mysql.line;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateDPO;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RMpPassRateDMapper extends MppBaseMapper<RMpPassRateDPO> {
}

View File

@@ -0,0 +1,15 @@
package com.njcn.prepare.harmonic.mapper.mysql.line;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateMPO;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RMpPassRateMMapper extends MppBaseMapper<RMpPassRateMPO> {
}

View File

@@ -0,0 +1,15 @@
package com.njcn.prepare.harmonic.mapper.mysql.line;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateQPO;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:38【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RMpPassRateQMapper extends MppBaseMapper<RMpPassRateQPO> {
}

View File

@@ -0,0 +1,15 @@
package com.njcn.prepare.harmonic.mapper.mysql.line;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateYPO;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:36【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RMpPassRateYMapper extends MppBaseMapper<RMpPassRateYPO> {
}

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.prepare.harmonic.mapper.mysql.line.RMpPassRateDMapper">
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateDPO">
<!--@mbg.generated-->
<!--@Table r_mp_pass_rate_d-->
<id column="measurement_point_id" jdbcType="VARCHAR" property="measurementPointId" />
<id column="data_date" jdbcType="DATE" property="dataDate" />
<result column="effective_time" jdbcType="INTEGER" property="effectiveTime" />
<result column="freq_time" jdbcType="INTEGER" property="freqTime" />
<result column="v_dev_time" jdbcType="INTEGER" property="vDevTime" />
<result column="flicker_time" jdbcType="INTEGER" property="flickerTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
measurement_point_id, data_date, effective_time, freq_time, v_dev_time, flicker_time
</sql>
</mapper>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.prepare.harmonic.mapper.mysql.line.RMpPassRateMMapper">
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateMPO">
<!--@mbg.generated-->
<!--@Table r_mp_pass_rate_m-->
<id column="measurement_point_id" jdbcType="VARCHAR" property="measurementPointId" />
<id column="data_date" jdbcType="DATE" property="dataDate" />
<result column="freq_pass_rate" jdbcType="FLOAT" property="freqPassRate" />
<result column="v_dev_pass_rate" jdbcType="FLOAT" property="vDevPassRate" />
<result column="flicker_pass_rate" jdbcType="FLOAT" property="flickerPassRate" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
measurement_point_id, data_date, freq_pass_rate, v_dev_pass_rate, flicker_pass_rate
</sql>
</mapper>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.prepare.harmonic.mapper.mysql.line.RMpPassRateQMapper">
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateQPO">
<!--@mbg.generated-->
<!--@Table r_mp_pass_rate_q-->
<id column="measurement_point_id" jdbcType="VARCHAR" property="measurementPointId" />
<id column="data_date" jdbcType="DATE" property="dataDate" />
<result column="freq_pass_rate" jdbcType="FLOAT" property="freqPassRate" />
<result column="v_dev_pass_rate" jdbcType="FLOAT" property="vDevPassRate" />
<result column="flicker_pass_rate" jdbcType="FLOAT" property="flickerPassRate" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
measurement_point_id, data_date, freq_pass_rate, v_dev_pass_rate, flicker_pass_rate
</sql>
</mapper>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.prepare.harmonic.mapper.mysql.line.RMpPassRateYMapper">
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateYPO">
<!--@mbg.generated-->
<!--@Table r_mp_pass_rate_y-->
<id column="measurement_point_id" jdbcType="VARCHAR" property="measurementPointId" />
<id column="data_date" jdbcType="DATE" property="dataDate" />
<result column="freq_pass_rate" jdbcType="FLOAT" property="freqPassRate" />
<result column="v_dev_pass_rate" jdbcType="FLOAT" property="vDevPassRate" />
<result column="flicker_pass_rate" jdbcType="FLOAT" property="flickerPassRate" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
measurement_point_id, data_date, freq_pass_rate, v_dev_pass_rate, flicker_pass_rate
</sql>
</mapper>

View File

@@ -157,7 +157,7 @@ public class EffectiveMinuteCountServiceImpl implements EffectiveMinuteCountServ
Integer count = calculateEffectiveMinute (fiveItems, pmsAbnormalRules, voltage);
RMpIntegrityDPO rMpIntegrityDPO = new RMpIntegrityDPO ( );
rMpIntegrityDPO.setEffectiveMinuteCount (count * statisticalInterval);
rMpIntegrityDPO.setEffectiveMinuteCount (count );
rMpIntegrityDPO.setDataDate (tempDate);
rMpIntegrityDPOS.add (rMpIntegrityDPO);
});
@@ -251,7 +251,7 @@ public class EffectiveMinuteCountServiceImpl implements EffectiveMinuteCountServ
/*统计间隔*/
Integer statisticalInterval = temp.getStatisticalInterval ( );
RMpIntegrityDPO rMpIntegrityDPO = new RMpIntegrityDPO ( );
rMpIntegrityDPO.setEffectiveMinuteCount (count * statisticalInterval);
rMpIntegrityDPO.setEffectiveMinuteCount (count );
rMpIntegrityDPO.setDataDate (tempDate);
rMpIntegrityDPOS.add (rMpIntegrityDPO);
});

View File

@@ -0,0 +1,20 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPassRateDMapper;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateDPO;
import com.njcn.prepare.harmonic.service.mysql.line.RMpPassRateDService;
import org.springframework.stereotype.Service;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class RMpPassRateDServiceImpl extends MppServiceImpl<RMpPassRateDMapper, RMpPassRateDPO> implements RMpPassRateDService{
}

View File

@@ -0,0 +1,20 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPassRateMMapper;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateMPO;
import com.njcn.prepare.harmonic.service.mysql.line.RMpPassRateMService;
import org.springframework.stereotype.Service;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class RMpPassRateMServiceImpl extends MppServiceImpl<RMpPassRateMMapper, RMpPassRateMPO> implements RMpPassRateMService{
}

View File

@@ -0,0 +1,20 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPassRateQMapper;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateQPO;
import com.njcn.prepare.harmonic.service.mysql.line.RMpPassRateQService;
import org.springframework.stereotype.Service;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:38【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class RMpPassRateQServiceImpl extends MppServiceImpl<RMpPassRateQMapper, RMpPassRateQPO> implements RMpPassRateQService{
}

View File

@@ -0,0 +1,20 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPassRateYMapper;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateYPO;
import com.njcn.prepare.harmonic.service.mysql.line.RMpPassRateYService;
import org.springframework.stereotype.Service;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:36【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class RMpPassRateYServiceImpl extends MppServiceImpl<RMpPassRateYMapper, RMpPassRateYPO> implements RMpPassRateYService{
}

View File

@@ -0,0 +1,250 @@
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.harmonic.service.majornetwork.RMpPartHarmonicDetailDService;
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 RMpPartHarmonicDetailDService rMpPartHarmonicDetailDService;
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 = rMpPartHarmonicDetailDService.getOne (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

@@ -0,0 +1,17 @@
package com.njcn.prepare.harmonic.service.mysql.line;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateDPO;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RMpPassRateDService extends IMppService<RMpPassRateDPO> {
}

View File

@@ -0,0 +1,17 @@
package com.njcn.prepare.harmonic.service.mysql.line;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateMPO;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RMpPassRateMService extends IMppService<RMpPassRateMPO> {
}

View File

@@ -0,0 +1,17 @@
package com.njcn.prepare.harmonic.service.mysql.line;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateQPO;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:38【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RMpPassRateQService extends IMppService<RMpPassRateQPO> {
}

View File

@@ -0,0 +1,17 @@
package com.njcn.prepare.harmonic.service.mysql.line;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateYPO;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:36【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RMpPassRateYService extends IMppService<RMpPassRateYPO> {
}

View File

@@ -0,0 +1,15 @@
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

@@ -0,0 +1,162 @@
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 java.util.Date;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
@TableName(value = "r_mp_pass_rate_d")
public class RMpPassRateDPO {
/**
* 监测点ID
*/
@MppMultiId(value = "measurement_point_id")
private String measurementPointId;
/**
* 生成数据的时间,每日统计一次
*/
@MppMultiId(value = "data_date")
private Date dataDate;
/**
* 有效监测时长
*/
@TableField(value = "effective_time")
private Integer effectiveTime;
/**
* 频率偏差超标时长
*/
@TableField(value = "freq_time")
private Integer freqTime;
/**
* 电压偏差超标时长
*/
@TableField(value = "v_dev_time")
private Integer vDevTime;
/**
* 闪变超标时长
*/
@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

@@ -0,0 +1,138 @@
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 java.util.Date;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
@TableName(value = "r_mp_pass_rate_m")
public class RMpPassRateMPO {
/**
* 监测点ID
*/
@MppMultiId(value = "measurement_point_id")
private String measurementPointId;
/**
* 生成数据的时间,每月统计一次
*/
@MppMultiId(value = "data_date")
private Date dataDate;
/**
* 频率偏差合格率
*/
@TableField(value = "freq_pass_rate")
private Double freqPassRate;
/**
* 电压偏差合格率
*/
@TableField(value = "v_dev_pass_rate")
private Double vDevPassRate;
/**
* 闪变合格率
*/
@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

@@ -0,0 +1,138 @@
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 java.util.Date;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:38【需求编号】
*
* @author clam
* @version V1.0.0
*/
@TableName(value = "r_mp_pass_rate_q")
public class RMpPassRateQPO {
/**
* 监测点ID
*/
@MppMultiId(value = "measurement_point_id")
private String measurementPointId;
/**
* 生成数据的时间,每季统计一次
*/
@MppMultiId(value = "data_date")
private Date dataDate;
/**
* 频率偏差合格率
*/
@TableField(value = "freq_pass_rate")
private Double freqPassRate;
/**
* 电压偏差合格率
*/
@TableField(value = "v_dev_pass_rate")
private Double vDevPassRate;
/**
* 闪变合格率
*/
@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

@@ -0,0 +1,138 @@
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 java.util.Date;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:36【需求编号】
*
* @author clam
* @version V1.0.0
*/
@TableName(value = "r_mp_pass_rate_y")
public class RMpPassRateYPO {
/**
* 监测点ID
*/
@MppMultiId(value = "measurement_point_id")
private String measurementPointId;
/**
* 生成数据的时间,每年统计一次
*/
@MppMultiId(value = "data_date")
private Date dataDate;
/**
* 频率偏差合格率
*/
@TableField(value = "freq_pass_rate")
private Double freqPassRate;
/**
* 电压偏差合格率
*/
@TableField(value = "v_dev_pass_rate")
private Double vDevPassRate;
/**
* 闪变合格率
*/
@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;
}
}