@@ -6,6 +6,7 @@ import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.date.TimeInterval ;
import cn.hutool.core.date.TimeInterval ;
import cn.hutool.core.util.StrUtil ;
import cn.hutool.core.util.StrUtil ;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import com.njcn.common.pojo.constant.BizParamConstant ;
import com.njcn.common.pojo.constant.BizParamConstant ;
import com.njcn.common.pojo.constant.ServerInfo ;
import com.njcn.common.pojo.constant.ServerInfo ;
import com.njcn.common.pojo.response.HttpResult ;
import com.njcn.common.pojo.response.HttpResult ;
@@ -18,11 +19,14 @@ import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.pojo.po.Overlimit ;
import com.njcn.device.pq.pojo.po.Overlimit ;
import com.njcn.harmonic.pojo.dto.PublicDTO ;
import com.njcn.harmonic.pojo.dto.PublicDTO ;
import com.njcn.harmonic.pojo.po.RMpPollutionDPO ;
import com.njcn.harmonic.pojo.po.RMpPollutionDPO ;
import com.njcn.harmonic.pojo.po.RStatDataVD ;
import com.njcn.harmonic.pojo.po.day.* ;
import com.njcn.influxdb.utils.InfluxDbUtils ;
import com.njcn.influxdb.utils.InfluxDbUtils ;
import com.njcn.prepare.harmonic.mapper.mysql.line.* ;
import com.njcn.prepare.harmonic.mapper.mysql.line.* ;
import com.njcn.prepare.harmonic.pojo.dto.PollutionDTO ;
import com.njcn.prepare.harmonic.pojo.dto.PollutionDTO ;
import com.njcn.prepare.harmonic.pojo.influxdb.po.* ;
import com.njcn.prepare.harmonic.pojo.influxdb.po.* ;
import com.njcn.prepare.harmonic.pojo.param.LineParam ;
import com.njcn.prepare.harmonic.pojo.param.LineParam ;
import com.njcn.prepare.harmonic.service.mysql.day.* ;
import com.njcn.prepare.harmonic.service.mysql.line.PollutionService ;
import com.njcn.prepare.harmonic.service.mysql.line.PollutionService ;
import com.njcn.system.api.DicDataFeignClient ;
import com.njcn.system.api.DicDataFeignClient ;
import com.njcn.system.enums.DicDataTypeEnum ;
import com.njcn.system.enums.DicDataTypeEnum ;
@@ -87,6 +91,11 @@ public class PollutionServiceImpl implements PollutionService {
private final DeptFeignClient deptFeignClient ;
private final DeptFeignClient deptFeignClient ;
private final IRStatDataVDService dataVDService ;
private final IRStatDataHarmRateVDService harmRateVDService ;
private final IRStatDataIDService dataIDService ;
private final IRStatDataInharmVDService inharmVDService ;
private final IRStatDataPltDService pltDService ;
@Override
@Override
@Async ( " asyncExecutor " )
@Async ( " asyncExecutor " )
public void processPollutionData ( LineParam lineParam ) {
public void processPollutionData ( LineParam lineParam ) {
@@ -333,14 +342,22 @@ public class PollutionServiceImpl implements PollutionService {
}
}
private Map < String , Optional < PublicDTO > > getThreePhaseData ( List < Overlimit > overLimitList , String dataDate ) {
private Map < String , Optional < PublicDTO > > getThreePhaseData ( List < Overlimit > overLimitList , String dataDate ) {
String sql = " SELECT * FROM day_v where value_type = 'CP95' and (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') " + processDate ( dataDate , Integer . valueOf ( BizParamConstant . STAT_BIZ_DAY ) ) + " group by line_id order by time desc limit 3 tz('Asia/Shanghai') " ;
Map < String, String > stringStringMap = processMysql Date ( dataDate , Integer . valueOf ( BizParamConstant . STAT_BIZ_DAY ) ) ;
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper ( ) ;
List < RStatDataVDPO > threePhaseList = dataVDService . list ( new LambdaQueryWrapper < RStatDataVDPO > ( )
. eq ( RStatDataVDPO : : getValueType , " CP95 " )
. in ( RStatDataVDPO : : getPhaseType , Arrays . asList ( " A " , " B " , " C " ) )
. ge ( RStatDataVDPO : : getTime , stringStringMap . get ( " startTime " ) )
. le ( RStatDataVDPO : : getTime , stringStringMap . get ( " endTime " ) )
) ;
List < Double > data ;
List < Double > data ;
PublicDTO publicDTO ;
PublicDTO publicDTO ;
List < PublicDTO > lineData = new ArrayList < > ( ) ;
List < PublicDTO > lineData = new ArrayList < > ( ) ;
QueryResult threePhaseSqlResult = influxDbUtils . query ( sql ) ;
// String sql = "SELECT * FROM day_v where value_type = 'CP95' and (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') " + processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 3 tz('Asia/Shanghai')" ;
List < DayVPO > threePhaseList = resultMapper . toPOJO ( threePhaseSqlResult , DayVPO . class ) ;
// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper() ;
for ( DayVPO item1 : threePhaseList ) {
// QueryResult threePhaseSqlResult = influxDbUtils.query(sql);
// List<DayVPO> threePhaseList = resultMapper.toPOJO(threePhaseSqlResult, DayVPO.class);
for ( RStatDataVDPO item1 : threePhaseList ) {
for ( Overlimit item2 : overLimitList ) {
for ( Overlimit item2 : overLimitList ) {
if ( Objects . equals ( item1 . getLineId ( ) , item2 . getId ( ) ) ) {
if ( Objects . equals ( item1 . getLineId ( ) , item2 . getId ( ) ) ) {
double vUnbalance = item1 . getVUnbalance ( ) / item2 . getUaberrance ( ) ;
double vUnbalance = item1 . getVUnbalance ( ) / item2 . getUaberrance ( ) ;
@@ -358,14 +375,22 @@ public class PollutionServiceImpl implements PollutionService {
}
}
private Map < String , Optional < PublicDTO > > getDistortionRateData ( List < Overlimit > overLimitList , String dataDate ) {
private Map < String , Optional < PublicDTO > > getDistortionRateData ( List < Overlimit > overLimitList , String dataDate ) {
String sql = " SELECT * FROM day_harmrate_v where value_type = 'CP95' and (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') " + processDate ( dataDate , Integer . valueOf ( BizParamConstant . STAT_BIZ_DAY ) ) + " group by line_id order by time desc limit 3 tz('Asia/Shanghai') " ;
Map < String, String > stringStringMap = processMysql Date ( dataDate , Integer . valueOf ( BizParamConstant . STAT_BIZ_DAY ) ) ;
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper ( ) ;
List < RStatDataHarmrateVDPO > distortionRateList = harmRateVDService . list ( new LambdaQueryWrapper < RStatDataHarmrateVDPO > ( )
. eq ( RStatDataHarmrateVDPO : : getValueType , " CP95 " )
. in ( RStatDataHarmrateVDPO : : getPhaseType , Arrays . asList ( " A " , " B " , " C " ) )
. ge ( RStatDataHarmrateVDPO : : getTime , stringStringMap . get ( " startTime " ) )
. le ( RStatDataHarmrateVDPO : : getTime , stringStringMap . get ( " endTime " ) )
) ;
List < Double > data ;
List < Double > data ;
PublicDTO publicDTO ;
PublicDTO publicDTO ;
List < PublicDTO > lineData = new ArrayList < > ( ) ;
List < PublicDTO > lineData = new ArrayList < > ( ) ;
QueryResult distortionRateSqlResult = influxDbUtils . query ( sql ) ;
// String sql = "SELECT * FROM day_harmrate_v where value_type = 'CP95' and (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +"group by line_id order by time desc limit 3 tz('Asia/Shanghai')" ;
List < DayHarmrateVPO > distortionRateList = resultMapper . toPOJO ( distortionRateSqlResult , DayHarmrateVPO . class ) ;
// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper() ;
for ( DayHarmrateVPO dayHarmrateV : distortionRateList ) {
//
// QueryResult distortionRateSqlResult = influxDbUtils.query(sql);
// List<DayHarmrateVPO> distortionRateList = resultMapper.toPOJO(distortionRateSqlResult, DayHarmrateVPO.class);
for ( RStatDataHarmrateVDPO dayHarmrateV : distortionRateList ) {
for ( Overlimit overlimit : overLimitList ) {
for ( Overlimit overlimit : overLimitList ) {
if ( Objects . equals ( dayHarmrateV . getLineId ( ) , overlimit . getId ( ) ) ) {
if ( Objects . equals ( dayHarmrateV . getLineId ( ) , overlimit . getId ( ) ) ) {
double v2 = dayHarmrateV . getV2 ( ) / overlimit . getUharm2 ( ) ;
double v2 = dayHarmrateV . getV2 ( ) / overlimit . getUharm2 ( ) ;
@@ -409,14 +434,22 @@ public class PollutionServiceImpl implements PollutionService {
* 谐波电流: 各次谐波电流( 2~25次) , 取各监测点最新的A、B、C三相数据。
* 谐波电流: 各次谐波电流( 2~25次) , 取各监测点最新的A、B、C三相数据。
*/
*/
private List < PublicDTO > getHarmonicCurrent ( List < Overlimit > overLimitList , String dataDate ) {
private List < PublicDTO > getHarmonicCurrent ( List < Overlimit > overLimitList , String dataDate ) {
String sql = " SELECT * FROM day_i where value_type = 'CP95' and (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') " + processDate ( dataDate , Integer . valueOf ( BizParamConstant . STAT_BIZ_DAY ) ) + " group by line_id order by time desc limit 3 tz('Asia/Shanghai') " ;
Map < String, String > stringStringMap = processMysql Date ( dataDate , Integer . valueOf ( BizParamConstant . STAT_BIZ_DAY ) ) ;
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper ( ) ;
List < RStatDataIDPO > list = dataIDService . list ( new LambdaQueryWrapper < RStatDataIDPO > ( )
. eq ( RStatDataIDPO : : getValueType , " CP95 " )
. in ( RStatDataIDPO : : getPhaseType , Arrays . asList ( " A " , " B " , " C " ) )
. ge ( RStatDataIDPO : : getTime , stringStringMap . get ( " startTime " ) )
. le ( RStatDataIDPO : : getTime , stringStringMap . get ( " endTime " ) )
) ;
List < Double > data ;
List < Double > data ;
PublicDTO publicDTO ;
PublicDTO publicDTO ;
List < PublicDTO > lineData = new ArrayList < > ( ) ;
List < PublicDTO > lineData = new ArrayList < > ( ) ;
QueryResult sqlResult = influxDbUtils . query ( sql ) ;
// String sql = "SELECT * FROM day_i where value_type = 'CP95' and (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C')"+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 3 tz('Asia/Shanghai')" ;
List < DayIPO > list = resultMapper . toPOJO ( sqlResult , DayIPO . class ) ;
// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper() ;
for ( DayIPO dayI : list ) {
//
// QueryResult sqlResult = influxDbUtils.query(sql);
// List<DayIPO> list = resultMapper.toPOJO(sqlResult, DayIPO.class);
for ( RStatDataIDPO dayI : list ) {
for ( Overlimit overlimit : overLimitList ) {
for ( Overlimit overlimit : overLimitList ) {
if ( Objects . equals ( dayI . getLineId ( ) , overlimit . getId ( ) ) ) {
if ( Objects . equals ( dayI . getLineId ( ) , overlimit . getId ( ) ) ) {
double v2 = dayI . getI2 ( ) / overlimit . getIharm2 ( ) ;
double v2 = dayI . getI2 ( ) / overlimit . getIharm2 ( ) ;
@@ -461,14 +494,23 @@ public class PollutionServiceImpl implements PollutionService {
* 频率偏差: 各监测点最新的T相数据, 取频率上下偏差的绝对值中的最大值。
* 频率偏差: 各监测点最新的T相数据, 取频率上下偏差的绝对值中的最大值。
*/
*/
private List < PublicDTO > getFrequencyDeviation ( List < Overlimit > overLimitList , String dataDate ) {
private List < PublicDTO > getFrequencyDeviation ( List < Overlimit > overLimitList , String dataDate ) {
String sql = " SELECT line_id,abs(freq_dev) AS freq_dev FROM day_v where phasic_type = 'T' and (value_type = 'MIN' or value_type = 'MAX') " + processDate ( dataDate , Integer . valueOf ( BizParamConstant . STAT_BIZ_DAY ) ) + " group by line_id order by time desc limit 2 tz('Asia/Shanghai') " ;
Map < String, String > stringStringMap = processMysql Date ( dataDate , Integer . valueOf ( BizParamConstant . STAT_BIZ_DAY ) ) ;
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper ( ) ;
List < RStatDataVDPO > threePhaseList = dataVDService . list ( new QueryWrapper < RStatDataVDPO > ( )
. select ( " line_id " , " abs(freq_dev) " )
. in ( " value_type " , Arrays . asList ( " MIN " , " MAX " ) )
. in ( " phasic_type " , Arrays . asList ( " T " ) )
. ge ( " time " , stringStringMap . get ( " startTime " ) )
. le ( " time " , stringStringMap . get ( " endTime " ) )
) ;
List < Double > data ;
List < Double > data ;
PublicDTO publicDTO ;
PublicDTO publicDTO ;
List < PublicDTO > lineData = new ArrayList < > ( ) ;
List < PublicDTO > lineData = new ArrayList < > ( ) ;
QueryResult sqlResult = influxDbUtils . query ( sql ) ;
// String sql = "SELECT line_id,abs(freq_dev) AS freq_dev FROM day_v where phasic_type = 'T' and (value_type = 'MIN' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +"group by line_id order by time desc limit 2 tz('Asia/Shanghai')" ;
List < DayVPO > list = resultMapper . toPOJO ( sqlResult , DayVPO . class ) ;
// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper() ;
for ( DayVPO dayV : list ) {
//
// QueryResult sqlResult = influxDbUtils.query(sql);
// List<DayVPO> list = resultMapper.toPOJO(sqlResult, DayVPO.class);
for ( RStatDataVDPO dayV : threePhaseList ) {
for ( Overlimit overlimit : overLimitList ) {
for ( Overlimit overlimit : overLimitList ) {
if ( Objects . equals ( dayV . getLineId ( ) , overlimit . getId ( ) ) ) {
if ( Objects . equals ( dayV . getLineId ( ) , overlimit . getId ( ) ) ) {
double freqDev = dayV . getFreqDev ( ) / overlimit . getFreqDev ( ) ;
double freqDev = dayV . getFreqDev ( ) / overlimit . getFreqDev ( ) ;
@@ -490,14 +532,23 @@ public class PollutionServiceImpl implements PollutionService {
* 电压偏差: 各监测点最新的A、B、C三相数据, 取电压上下偏差的绝对值中的最大值。
* 电压偏差: 各监测点最新的A、B、C三相数据, 取电压上下偏差的绝对值中的最大值。
*/
*/
private List < PublicDTO > getVoltageDeviation ( List < Overlimit > overLimitList , String dataDate ) {
private List < PublicDTO > getVoltageDeviation ( List < Overlimit > overLimitList , String dataDate ) {
String sql = " SELECT line_id,vu_dev,vl_dev,value_type FROM day_v where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and (value_type = 'MIN' or value_type = 'MAX') " + processDate ( dataDate , Integer . valueOf ( BizParamConstant . STAT_BIZ_DAY ) ) + " group by line_id order by time desc limit 6 tz('Asia/Shanghai') " ;
Map < String, String > stringStringMap = processMysql Date ( dataDate , Integer . valueOf ( BizParamConstant . STAT_BIZ_DAY ) ) ;
QueryResult sqlResult = influxDbUtils . query ( sql ) ;
List < RStatDataVDPO > list = dataVDService . list ( new QueryWrapper < RStatDataVDPO > ( )
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper ( ) ;
. select ( " line_id " , " vu_dev " , " vl_dev " , " value_type " )
. in ( " value_type " , Arrays . asList ( " MIN " , " MAX " ) )
. in ( " phasic_type " , Arrays . asList ( " A " , " B " , " C " ) )
. ge ( " time " , stringStringMap . get ( " startTime " ) )
. le ( " time " , stringStringMap . get ( " endTime " ) )
) ;
List < Double > data ;
List < Double > data ;
PublicDTO publicDTO ;
PublicDTO publicDTO ;
List < PublicDTO > lineData = new ArrayList < > ( ) ;
List < PublicDTO > lineData = new ArrayList < > ( ) ;
List < DayVPO > list = resultMapper . toPOJO ( sqlResult , DayVPO . class ) ;
// String sql = "SELECT line_id,vu_dev,vl_dev,value_type FROM day_v where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and (value_type = 'MIN' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 6 tz('Asia/Shanghai')" ;
for ( DayVPO dayV : list ) {
// QueryResult sqlResult = influxDbUtils.query(sql);
// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
//
// List<DayVPO> list = resultMapper.toPOJO(sqlResult, DayVPO.class);
for ( RStatDataVDPO dayV : list ) {
for ( Overlimit overlimit : overLimitList ) {
for ( Overlimit overlimit : overLimitList ) {
if ( Objects . equals ( dayV . getLineId ( ) , overlimit . getId ( ) ) ) {
if ( Objects . equals ( dayV . getLineId ( ) , overlimit . getId ( ) ) ) {
double vlDev = Math . abs ( dayV . getVlDev ( ) / overlimit . getUvoltageDev ( ) ) ;
double vlDev = Math . abs ( dayV . getVlDev ( ) / overlimit . getUvoltageDev ( ) ) ;
@@ -520,14 +571,23 @@ public class PollutionServiceImpl implements PollutionService {
* 三相电压不平衡度: 各监测点最新的T相数据。
* 三相电压不平衡度: 各监测点最新的T相数据。
*/
*/
private List < PublicDTO > getThreePhaseVoltageUnbalance ( List < Overlimit > overLimitList , String dataDate ) {
private List < PublicDTO > getThreePhaseVoltageUnbalance ( List < Overlimit > overLimitList , String dataDate ) {
String sql = " SELECT line_id,v_unbalance,value_type FROM day_v where phasic_type = 'T' and (value_type = 'CP95' or value_type = 'MAX') " + processDate ( dataDate , Integer . valueOf ( BizParamConstant . STAT_BIZ_DAY ) ) + " group by line_id order by time desc limit 2 tz('Asia/Shanghai') " ;
Map < String, String > stringStringMap = processMysql Date ( dataDate , Integer . valueOf ( BizParamConstant . STAT_BIZ_DAY ) ) ;
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper ( ) ;
List < RStatDataVDPO > list = dataVDService . list ( new QueryWrapper < RStatDataVDPO > ( )
. select ( " line_id " , " v_unbalance " , " value_type " )
. in ( " value_type " , Arrays . asList ( " CP95 " , " MAX " ) )
. in ( " phasic_type " , Arrays . asList ( " T " ) )
. ge ( " time " , stringStringMap . get ( " startTime " ) )
. le ( " time " , stringStringMap . get ( " endTime " ) )
) ;
List < Double > data ;
List < Double > data ;
PublicDTO publicDTO ;
PublicDTO publicDTO ;
List < PublicDTO > lineData = new ArrayList < > ( ) ;
List < PublicDTO > lineData = new ArrayList < > ( ) ;
QueryResult sqlResult = influxDbUtils . query ( sql ) ;
// String sql = "SELECT line_id,v_unbalance,value_type FROM day_v where phasic_type = 'T' and (value_type = 'CP95' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 2 tz('Asia/Shanghai')" ;
List < DayVPO > list = resultMapper . toPOJO ( sqlResult , DayVPO . class ) ;
// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper() ;
for ( DayVPO dayV : list ) {
//
// QueryResult sqlResult = influxDbUtils.query(sql);
// List<DayVPO> list = resultMapper.toPOJO(sqlResult, DayVPO.class);
for ( RStatDataVDPO dayV : list ) {
for ( Overlimit overlimit : overLimitList ) {
for ( Overlimit overlimit : overLimitList ) {
if ( Objects . equals ( dayV . getLineId ( ) , overlimit . getId ( ) ) ) {
if ( Objects . equals ( dayV . getLineId ( ) , overlimit . getId ( ) ) ) {
double vUnbalance = Math . abs ( dayV . getVUnbalance ( ) / overlimit . getUbalance ( ) ) ;
double vUnbalance = Math . abs ( dayV . getVUnbalance ( ) / overlimit . getUbalance ( ) ) ;
@@ -549,14 +609,23 @@ public class PollutionServiceImpl implements PollutionService {
* 负序电流: 各监测点最新的T相数据。
* 负序电流: 各监测点最新的T相数据。
*/
*/
private List < PublicDTO > getNegativeSequenceCurrent ( List < Overlimit > overLimitList , String dataDate ) {
private List < PublicDTO > getNegativeSequenceCurrent ( List < Overlimit > overLimitList , String dataDate ) {
String sql = " SELECT line_id,i_neg,value_type FROM day_i where phasic_type = 'T' and (value_type = 'CP95' or value_type = 'MAX') " + processDate ( dataDate , Integer . valueOf ( BizParamConstant . STAT_BIZ_DAY ) ) + " group by line_id order by time desc limit 2 tz('Asia/Shanghai') " ;
Map < String, String > stringStringMap = processMysql Date ( dataDate , Integer . valueOf ( BizParamConstant . STAT_BIZ_DAY ) ) ;
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper ( ) ;
List < RStatDataIDPO > list = dataIDService . list ( new QueryWrapper < RStatDataIDPO > ( )
. select ( " line_id " , " i_neg " , " value_type " )
. in ( " value_type " , Arrays . asList ( " CP95 " , " MAX " ) )
. in ( " phasic_type " , Arrays . asList ( " T " ) )
. ge ( " time " , stringStringMap . get ( " startTime " ) )
. le ( " time " , stringStringMap . get ( " endTime " ) )
) ;
List < Double > data ;
List < Double > data ;
PublicDTO publicDTO ;
PublicDTO publicDTO ;
List < PublicDTO > lineData = new ArrayList < > ( ) ;
List < PublicDTO > lineData = new ArrayList < > ( ) ;
QueryResult sqlResult = influxDbUtils . query ( sql ) ;
// String sql = "SELECT line_id,i_neg,value_type FROM day_i where phasic_type = 'T' and (value_type = 'CP95' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 2 tz('Asia/Shanghai')" ;
List < DayIPO > list = resultMapper . toPOJO ( sqlResult , DayIPO . class ) ;
// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper() ;
for ( DayIPO dayI : list ) {
//
// QueryResult sqlResult = influxDbUtils.query(sql);
// List<DayIPO> list = resultMapper.toPOJO(sqlResult, DayIPO.class);
for ( RStatDataIDPO dayI : list ) {
for ( Overlimit overlimit : overLimitList ) {
for ( Overlimit overlimit : overLimitList ) {
if ( Objects . equals ( dayI . getLineId ( ) , overlimit . getId ( ) ) & & overlimit . getINeg ( ) ! = 0 ) {
if ( Objects . equals ( dayI . getLineId ( ) , overlimit . getId ( ) ) & & overlimit . getINeg ( ) ! = 0 ) {
BigDecimal dayiNeg = BigDecimal . valueOf ( dayI . getINeg ( ) ) ;
BigDecimal dayiNeg = BigDecimal . valueOf ( dayI . getINeg ( ) ) ;
@@ -581,14 +650,22 @@ public class PollutionServiceImpl implements PollutionService {
* 间谐波电压含有率: 各监测点最新的A、B、C三相数据。
* 间谐波电压含有率: 各监测点最新的A、B、C三相数据。
*/
*/
private List < PublicDTO > getInterharmonicVoltage ( List < Overlimit > overLimitList , String dataDate ) {
private List < PublicDTO > getInterharmonicVoltage ( List < Overlimit > overLimitList , String dataDate ) {
String sql = " SELECT * FROM day_inharm_v where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and value_type = 'CP95' " + processDate ( dataDate , Integer . valueOf ( BizParamConstant . STAT_BIZ_DAY ) ) + " group by line_id order by time desc limit 3 tz('Asia/Shanghai') " ;
Map < String, String > stringStringMap = processMysql Date ( dataDate , Integer . valueOf ( BizParamConstant . STAT_BIZ_DAY ) ) ;
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper ( ) ;
List < RStatDataInharmVDPO > list = inharmVDService . list ( new QueryWrapper < RStatDataInharmVDPO > ( )
. in ( " value_type " , Arrays . asList ( " CP95 " ) )
. in ( " phasic_type " , Arrays . asList ( " A " , " B " , " C " ) )
. ge ( " time " , stringStringMap . get ( " startTime " ) )
. le ( " time " , stringStringMap . get ( " endTime " ) )
) ;
List < Double > data ;
List < Double > data ;
PublicDTO publicDTO ;
PublicDTO publicDTO ;
List < PublicDTO > lineData = new ArrayList < > ( ) ;
List < PublicDTO > lineData = new ArrayList < > ( ) ;
QueryResult sqlResult = influxDbUtils . query ( sql ) ;
// String sql = "SELECT * FROM day_inharm_v where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and value_type = 'CP95' "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 3 tz('Asia/Shanghai')" ;
List < DayInharmVPO > list = resultMapper . toPOJO ( sqlResult , DayInharmVPO . class ) ;
// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper() ;
for ( DayInharmVPO dayInharmV : list ) {
//
// QueryResult sqlResult = influxDbUtils.query(sql);
// List<DayInharmVPO> list = resultMapper.toPOJO(sqlResult, DayInharmVPO.class);
for ( RStatDataInharmVDPO dayInharmV : list ) {
for ( Overlimit overlimit : overLimitList ) {
for ( Overlimit overlimit : overLimitList ) {
if ( Objects . equals ( dayInharmV . getLineId ( ) , overlimit . getId ( ) ) ) {
if ( Objects . equals ( dayInharmV . getLineId ( ) , overlimit . getId ( ) ) ) {
double v1 = Math . abs ( dayInharmV . getV1 ( ) / overlimit . getInuharm1 ( ) ) ;
double v1 = Math . abs ( dayInharmV . getV1 ( ) / overlimit . getInuharm1 ( ) ) ;
@@ -625,14 +702,23 @@ public class PollutionServiceImpl implements PollutionService {
* 长时电压闪变: 各监测点最新的A、B、C三相数据。
* 长时电压闪变: 各监测点最新的A、B、C三相数据。
*/
*/
private List < PublicDTO > getVoltageFlicker ( List < Overlimit > overLimitList , String dataDate ) {
private List < PublicDTO > getVoltageFlicker ( List < Overlimit > overLimitList , String dataDate ) {
String sql = " SELECT * FROM day_plt where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and value_type = 'CP95' " + processDate ( dataDate , Integer . valueOf ( BizParamConstant . STAT_BIZ_DAY ) ) + " group by line_id order by time desc limit 3 tz('Asia/Shanghai') " ;
Map < String, String > stringStringMap = processMysql Date ( dataDate , Integer . valueOf ( BizParamConstant . STAT_BIZ_DAY ) ) ;
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper ( ) ;
List < RStatDataPltDPO > list = pltDService . list ( new QueryWrapper < RStatDataPltDPO > ( )
. in ( " value_type " , Arrays . asList ( " CP95 " ) )
. in ( " phasic_type " , Arrays . asList ( " A " , " B " , " C " ) )
. ge ( " time " , stringStringMap . get ( " startTime " ) )
. le ( " time " , stringStringMap . get ( " endTime " ) )
) ;
List < Double > data ;
List < Double > data ;
PublicDTO publicDTO ;
PublicDTO publicDTO ;
List < PublicDTO > lineData = new ArrayList < > ( ) ;
List < PublicDTO > lineData = new ArrayList < > ( ) ;
QueryResult sqlResult = influxDbUtils . query ( sql ) ;
List < DayPltPO > list = resultMapper . toPOJO ( sqlResult , DayPltPO . class ) ;
// String sql = "SELECT * FROM day_plt where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and value_type = 'CP95' "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 3 tz('Asia/Shanghai')" ;
for ( DayPltPO dayPlt : list ) {
// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
//
// QueryResult sqlResult = influxDbUtils.query(sql);
// List<DayPltPO> list = resultMapper.toPOJO(sqlResult, DayPltPO.class);
for ( RStatDataPltDPO dayPlt : list ) {
for ( Overlimit overlimit : overLimitList ) {
for ( Overlimit overlimit : overLimitList ) {
if ( Objects . equals ( dayPlt . getLineId ( ) , overlimit . getId ( ) ) ) {
if ( Objects . equals ( dayPlt . getLineId ( ) , overlimit . getId ( ) ) ) {
double plt = Math . abs ( dayPlt . getPlt ( ) / overlimit . getFlicker ( ) ) ;
double plt = Math . abs ( dayPlt . getPlt ( ) / overlimit . getFlicker ( ) ) ;
@@ -710,6 +796,42 @@ public class PollutionServiceImpl implements PollutionService {
return outList ;
return outList ;
}
}
/**
* MYSQL 时间返回
* @param date
* @param type
* @return
*/
private Map < String , String > processMysqlDate ( String date , Integer type ) {
Map < String , String > mapDate = new HashMap < > ( ) ;
if ( StrUtil . isNotBlank ( date ) ) {
if ( Integer . valueOf ( BizParamConstant . STAT_BIZ_DAY ) . equals ( type ) ) {
mapDate . put ( " startTime " , date + " 00:00:00 " ) ;
mapDate . put ( " endTime " , date + " 23:59:59 " ) ;
} else if ( Integer . valueOf ( BizParamConstant . STAT_BIZ_MONTH ) . equals ( type ) ) {
Date dateOut = DateUtil . parse ( date ) ;
Date dateOutb = DateUtil . beginOfMonth ( dateOut ) ;
Date dateOute = DateUtil . endOfMonth ( dateOut ) ;
mapDate . put ( " startTime " , dateOutb + " 00:00:00 " ) ;
mapDate . put ( " endTime " , dateOute + " 23:59:59 " ) ;
} else if ( Integer . valueOf ( BizParamConstant . STAT_BIZ_QUARTER ) . equals ( type ) ) {
Date dateOut = DateUtil . parse ( date ) ;
Date dateOutb = DateUtil . beginOfQuarter ( dateOut ) ;
Date dateOute = DateUtil . endOfQuarter ( dateOut ) ;
mapDate . put ( " startTime " , dateOutb + " 00:00:00 " ) ;
mapDate . put ( " endTime " , dateOute + " 23:59:59 " ) ;
} else if ( Integer . valueOf ( BizParamConstant . STAT_BIZ_YEAR ) . equals ( type ) ) {
Date dateOut = DateUtil . parse ( date ) ;
Date dateOutb = DateUtil . beginOfYear ( dateOut ) ;
Date dateOute = DateUtil . endOfYear ( dateOut ) ;
mapDate . put ( " startTime " , dateOutb + " 00:00:00 " ) ;
mapDate . put ( " endTime " , dateOute + " 23:59:59 " ) ;
}
}
return mapDate ;
}
/**
/**
* influxDb时间条件处理
* influxDb时间条件处理
*/
*/