@@ -123,10 +123,10 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
String endTime = LocalDateTimeUtil . format ( queryParam . getEndTime ( ) , formatter ) + " 23:59:00 " ;
String endTime = LocalDateTimeUtil . format ( queryParam . getEndTime ( ) , formatter ) + " 23:59:00 " ;
//先重redis读取数据, 无数据, 查看是否存在文件, 不存在文件查数据库, 数据校验补通过上传文件
//先重redis读取数据, 无数据, 查看是否存在文件, 不存在文件查数据库, 数据校验补通过上传文件
// dataHarmPowerPList = (List< CarryCapcityData>) redisUtil. getObjectByKey( lineId + "#" + LocalDateTimeUtil. format( startDate, formatter) + "#" + LocalDateTimeUtil. format( endDate, formatter) + "#" + "P") ;
dataHarmPowerPList = ( List < CarryCapcityData> ) redisUtil. getObjectByKey( lineId + " # " + LocalDateTimeUtil. format( startDate, formatter) + " # " + LocalDateTimeUtil. format( endDate, formatter) + " # " + " P " ) ;
// dataHarmPowerP2List = (List< CarryCapcityData>) redisUtil. getObjectByKey( lineId + "#" + LocalDateTimeUtil. format( startDate2, formatter) + "#" + LocalDateTimeUtil. format( endDate2, formatter) + "#" + "P") ;
dataHarmPowerP2List = ( List < CarryCapcityData> ) redisUtil. getObjectByKey( lineId + " # " + LocalDateTimeUtil. format( startDate2, formatter) + " # " + LocalDateTimeUtil. format( endDate2, formatter) + " # " + " P " ) ;
// dataHarmPowerQ2List = (List< CarryCapcityData>) redisUtil. getObjectByKey( lineId + "#" + LocalDateTimeUtil. format( startDate2, formatter) + "#" + LocalDateTimeUtil. format( endDate2, formatter) + "#" + "Q") ;
dataHarmPowerQ2List = ( List < CarryCapcityData> ) redisUtil. getObjectByKey( lineId + " # " + LocalDateTimeUtil. format( startDate2, formatter) + " # " + LocalDateTimeUtil. format( endDate2, formatter) + " # " + " Q " ) ;
// dataHarmPowerU2List = (List< CarryCapcityData>) redisUtil. getObjectByKey( lineId + "#" + LocalDateTimeUtil. format( startDate2, formatter) + "#" + LocalDateTimeUtil. format( endDate2, formatter) + "#" + "U") ;
dataHarmPowerU2List = ( List < CarryCapcityData> ) redisUtil. getObjectByKey( lineId + " # " + LocalDateTimeUtil. format( startDate2, formatter) + " # " + LocalDateTimeUtil. format( endDate2, formatter) + " # " + " U " ) ;
if ( CollectionUtil . isEmpty ( dataHarmPowerPList ) ) {
if ( CollectionUtil . isEmpty ( dataHarmPowerPList ) ) {
CarryCapacityDataPO one = carryCapacityDataPOService . lambdaQuery ( ) . eq ( CarryCapacityDataPO : : getLineId , lineId )
CarryCapacityDataPO one = carryCapacityDataPOService . lambdaQuery ( ) . eq ( CarryCapacityDataPO : : getLineId , lineId )
@@ -134,6 +134,15 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
. eq ( CarryCapacityDataPO : : getEndTime , endTime ) . one ( ) ;
. eq ( CarryCapacityDataPO : : getEndTime , endTime ) . one ( ) ;
if ( Objects . nonNull ( one ) ) {
if ( Objects . nonNull ( one ) ) {
//todo 调用查询文件
//todo 调用查询文件
InputStream fileStream = fileStorageUtil . getFileStream ( one . getDateList ( ) ) ;
ExcelDataDTO excelDataDTO = ParsingFile ( one . getStartTime ( ) , one . getEndTime ( ) , fileStream ) ;
dataHarmPowerPList = excelDataDTO . getDataHarmPowerPList ( ) ;
dataHarmPowerQList = excelDataDTO . getDataHarmPowerQList ( ) ;
dataIList = excelDataDTO . getDataIList ( ) ;
dataHarmPowerP2List = excelDataDTO . getDataHarmPowerP2List ( ) ;
dataHarmPowerQ2List = excelDataDTO . getDataHarmPowerQ2List ( ) ;
dataHarmPowerU2List = excelDataDTO . getDataHarmPowerU2List ( ) ;
} else {
} else {
/* 近一周的数据包括电流,电压, 有功功率, 无功功率, 数据完整性校验就取有功功率一组数据校验, 因为, 要有都有要没有都没有, 数据查询按时间间隔和tag分组,
/* 近一周的数据包括电流,电压, 有功功率, 无功功率, 数据完整性校验就取有功功率一组数据校验, 因为, 要有都有要没有都没有, 数据查询按时间间隔和tag分组,
@@ -243,14 +252,15 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
}
}
//数据缺失填补
//数据缺失填补
linearInterpolation ( dataHarmPowerU2List ) ;
linearInterpolation ( dataHarmPowerU2List ) ;
// redisUtil. saveByKey( lineId+"#"+ LocalDateTimeUtil. format( startDate2, formatter)+"#"+ LocalDateTimeUtil. format( endDate2, formatter)+"#"+"P" ,
redisUtil. saveByKey( lineId+ " # " + LocalDateTimeUtil. format( startDate, formatter) + " # " + LocalDateTimeUtil. format( endDate, formatter) + " # " + " P " ,
// dataHarmPowerP2 List) ;
dataHarmPowerPList) ;
// redisUtil. saveByKey( lineId+"#"+ LocalDateTimeUtil. format( startDate2, formatter)+"#"+ LocalDateTimeUtil. format( endDate2, formatter)+"#"+"Q" ,
redisUtil. saveByKey( lineId+ " # " + LocalDateTimeUtil. format( startDate2, formatter) + " # " + LocalDateTimeUtil. format( endDate2, formatter) + " # " + " P " ,
// dataHarmPowerQ 2List) ;
dataHarmPowerP 2List) ;
// redisUtil. saveByKey( lineId+"#"+ LocalDateTimeUtil. format( startDate2, formatter)+"#"+ LocalDateTimeUtil. format( endDate2, formatter)+"#"+"U" ,
redisUtil. saveByKey( lineId+ " # " + LocalDateTimeUtil. format( startDate2, formatter) + " # " + LocalDateTimeUtil. format( endDate2, formatter) + " # " + " Q " ,
// dataHarmPowerU 2List) ;
dataHarmPowerQ 2List) ;
// redisUtil. saveByKey( lineId+"#"+ LocalDateTimeUtil. format( startDate, formatter)+"#"+ LocalDateTimeUtil. format( endDate, formatter)+"#"+"I" ,
redisUtil. saveByKey( lineId+ " # " + LocalDateTimeUtil. format( startDate2 , formatter ) + " # " + LocalDateTimeUtil. format( endDate2 , formatter ) + " # " + " U " ,
// dataIList) ;
dataHarmPowerU2List ) ;
}
}
@@ -307,24 +317,29 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
String startTime = LocalDateTimeUtil . format ( queryParam . getStartTime ( ) , formatter ) + " 00:00:00 " ;
String startTime = LocalDateTimeUtil . format ( queryParam . getStartTime ( ) , formatter ) + " 00:00:00 " ;
String endTime = LocalDateTimeUtil . format ( queryParam . getEndTime ( ) , formatter ) + " 23:59:00 " ;
String endTime = LocalDateTimeUtil . format ( queryParam . getEndTime ( ) , formatter ) + " 23:59:00 " ;
List < CarryCapcityData > dataHarmPowerQList = new ArrayList < > ( ) ;
dataHarmPowerQList = ( List < CarryCapcityData > ) redisUtil . getObjectByKey ( lineId + " # " + LocalDateTimeUtil . format ( startDate , formatter ) + " # " + LocalDateTimeUtil . format ( endDate , formatter ) + " # " + " Q " ) ;
if ( CollectionUtil . isEmpty ( dataHarmPowerQList ) ) {
//无功功率
//无功功率
String SqlQ1 = " select mean(q)*1000 as value from data_harmpower_q where value_type='CP95' and phasic_type!='T' and line_id=' " + lineId +
String SqlQ1 = " select mean(q)*1000 as value from data_harmpower_q where value_type='CP95' and phasic_type!='T' and line_id=' " + lineId +
" ' and time >= ' " + startTime + " 'and time <= ' " + endTime + " ' " + " group by time( " + timeInterval + " m) ,* fill(3.1415926) " + InfluxDBPublicParam . TIME_ZONE ;
" ' and time >= ' " + startTime + " 'and time <= ' " + endTime + " ' " + " group by time( " + timeInterval + " m) ,* fill(3.1415926) " + InfluxDBPublicParam . TIME_ZONE ;
List < CarryCapcityData > dataHarmPowerList = dataHarmPowerQMapper . getSqlResult ( SqlQ1 ) ;
dataHarmPowerQ List = dataHarmPowerQMapper . getSqlResult ( SqlQ1 ) ;
if ( CollectionUtil . isEmpty ( dataHarmPowerList ) ) {
if ( CollectionUtil . isEmpty ( dataHarmPowerQ List ) ) {
throw new BusinessException ( AdvanceResponseEnum . DATA_NOT_FOUND ) ;
throw new BusinessException ( AdvanceResponseEnum . DATA_NOT_FOUND ) ;
} else {
} else {
if ( ! checkData ( dataHarmPowerList , startDate , endDate , timeInterval ) ) {
if ( ! checkData ( dataHarmPowerQ List , startDate , endDate , timeInterval ) ) {
throw new BusinessException ( AdvanceResponseEnum . DATA_NOT_FOUND ) ;
throw new BusinessException ( AdvanceResponseEnum . DATA_NOT_FOUND ) ;
}
}
}
}
//数据缺失填补
//数据缺失填补
linearInterpolation ( dataHarmPowerList ) ;
linearInterpolation ( dataHarmPowerQ List ) ;
carryCapacityDataQVO . setData ( dataHarmPowerList ) ;
redisUtil . saveByKey ( lineId + " # " + LocalDateTimeUtil . format ( startDate , formatter ) + " # " + LocalDateTimeUtil . format ( endDate , formatter ) + " # " + " Q " ,
dataHarmPowerQList ) ;
}
carryCapacityDataQVO . setData ( dataHarmPowerQList ) ;
@@ -333,8 +348,9 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
Map < String , Double > results = new HashMap < > ( 4 ) ;
Map < String , Double > results = new HashMap < > ( 4 ) ;
//计算最小Cp95值用于评估
//计算最小Cp95值用于评估
List < CarryCapcityData > finalDataHarmPowerQList = dataHarmPowerQList ;
phaseType . stream ( ) . forEach ( phase - > {
phaseType . stream ( ) . forEach ( phase - > {
List < Double > listQ = d ataHarmPowerList. stream ( ) . filter ( temp - > Utils . isTimeInRange ( temp . getTime ( ) , LocalTime . of ( 9 , 0 ) , LocalTime . of ( 15 , 0 ) ) )
List < Double > listQ = finalD ataHarmPowerQ List. stream ( ) . filter ( temp - > Utils . isTimeInRange ( temp . getTime ( ) , LocalTime . of ( 9 , 0 ) , LocalTime . of ( 15 , 0 ) ) )
. filter ( temp - > temp . getValue ( ) ! = DEFAULTVALUE & & Objects . nonNull ( temp . getValue ( ) ) )
. filter ( temp - > temp . getValue ( ) ! = DEFAULTVALUE & & Objects . nonNull ( temp . getValue ( ) ) )
. filter ( temp - > Objects . equals ( temp . getPhaseType ( ) , phase ) )
. filter ( temp - > Objects . equals ( temp . getPhaseType ( ) , phase ) )
. map ( CarryCapcityData : : getValue )
. map ( CarryCapcityData : : getValue )
@@ -364,6 +380,10 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
String startTime = LocalDateTimeUtil . format ( startDate , formatter ) + " 00:00:00 " ;
String startTime = LocalDateTimeUtil . format ( startDate , formatter ) + " 00:00:00 " ;
String endTime = LocalDateTimeUtil . format ( endDate , formatter ) + " 23:59:00 " ;
String endTime = LocalDateTimeUtil . format ( endDate , formatter ) + " 23:59:00 " ;
List < DataI > dataI = new ArrayList < > ( ) ;
dataI = ( List < DataI > ) redisUtil . getObjectByKey ( lineId + " # " + LocalDateTimeUtil . format ( startDate , formatter ) + " # " + LocalDateTimeUtil . format ( endDate , formatter ) + " # " + " I " ) ;
if ( CollectionUtil . isEmpty ( dataI ) ) {
//电流
//电流
StringBuilder stringBuilder1 = new StringBuilder ( ) ;
StringBuilder stringBuilder1 = new StringBuilder ( ) ;
StringBuilder stringBuilder2 = new StringBuilder ( ) ;
StringBuilder stringBuilder2 = new StringBuilder ( ) ;
@@ -376,7 +396,7 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
}
}
stringBuilder2 . append ( " line_id=' " ) . append ( lineId ) . append ( " ' and " ) . append ( InfluxDBPublicParam . TIME + " >= ' " ) . append ( startTime ) . append ( " ' and " ) . append ( InfluxDBPublicParam . TIME ) . append ( " <= ' " ) . append ( endTime ) . append ( " ' group by time( " ) . append ( timeInterval ) . append ( " m),* fill(3.1415926) " ) . append ( InfluxDBPublicParam . TIME_ZONE ) ;
stringBuilder2 . append ( " line_id=' " ) . append ( lineId ) . append ( " ' and " ) . append ( InfluxDBPublicParam . TIME + " >= ' " ) . append ( startTime ) . append ( " ' and " ) . append ( InfluxDBPublicParam . TIME ) . append ( " <= ' " ) . append ( endTime ) . append ( " ' group by time( " ) . append ( timeInterval ) . append ( " m),* fill(3.1415926) " ) . append ( InfluxDBPublicParam . TIME_ZONE ) ;
String sqlI1 = " select " + stringBuilder1 + " from " + InfluxDBPublicParam . DATA_I + " where value_type='CP95' and phasic_type!='T' and " + stringBuilder2 ;
String sqlI1 = " select " + stringBuilder1 + " from " + InfluxDBPublicParam . DATA_I + " where value_type='CP95' and phasic_type!='T' and " + stringBuilder2 ;
List < DataI > dataI = dataIMapper . getSqlResult ( sqlI1 ) ;
dataI = dataIMapper . getSqlResult ( sqlI1 ) ;
if ( CollectionUtil . isEmpty ( dataI ) ) {
if ( CollectionUtil . isEmpty ( dataI ) ) {
throw new BusinessException ( AdvanceResponseEnum . DATA_NOT_FOUND ) ;
throw new BusinessException ( AdvanceResponseEnum . DATA_NOT_FOUND ) ;
} else {
} else {
@@ -393,6 +413,11 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
}
}
//数据缺失填补
//数据缺失填补
linearInterpolationI ( dataI ) ;
linearInterpolationI ( dataI ) ;
redisUtil . saveByKey ( lineId + " # " + LocalDateTimeUtil . format ( startDate , formatter ) + " # " + LocalDateTimeUtil . format ( endDate , formatter ) + " # " + " I " ,
dataI ) ;
}
List < CarryCapcityData > i_list = dataI . stream ( ) . map ( temp - > {
List < CarryCapcityData > i_list = dataI . stream ( ) . map ( temp - > {
CarryCapcityData carryCapcityData = new CarryCapcityData ( ) ;
CarryCapcityData carryCapcityData = new CarryCapcityData ( ) ;
BeanUtils . copyProperties ( temp , carryCapcityData ) ;
BeanUtils . copyProperties ( temp , carryCapcityData ) ;
@@ -404,11 +429,12 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
List < Double > I_βmax = new ArrayList < > ( ) ;
List < Double > I_βmax = new ArrayList < > ( ) ;
List < Integer > integerList = Stream . of ( 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 ) . collect ( Collectors . toList ( ) ) ;
List < Integer > integerList = Stream . of ( 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 ) . collect ( Collectors . toList ( ) ) ;
List < String > phaseType = Stream . of ( " A " , " B " , " C " ) . collect ( Collectors . toList ( ) ) ;
List < String > phaseType = Stream . of ( " A " , " B " , " C " ) . collect ( Collectors . toList ( ) ) ;
List < DataI > finalDataI = dataI ;
integerList . stream ( ) . forEach ( temp - > {
integerList . stream ( ) . forEach ( temp - > {
List < Double > iList = new ArrayList < > ( ) ;
List < Double > iList = new ArrayList < > ( ) ;
phaseType . stream ( ) . forEach ( phase - > {
phaseType . stream ( ) . forEach ( phase - > {
List < DataI > tempDataIList = d ataI. stream ( ) . filter ( temp1 - > Utils . isTimeInRange ( temp1 . getTime ( ) , LocalTime . of ( 9 , 0 ) , LocalTime . of ( 15 , 0 ) ) )
List < DataI > tempDataIList = finalD ataI. stream ( ) . filter ( temp1 - > Utils . isTimeInRange ( temp1 . getTime ( ) , LocalTime . of ( 9 , 0 ) , LocalTime . of ( 15 , 0 ) ) )
. filter ( temp1 - > temp1 . getPhaseType ( ) . equals ( phase ) )
. filter ( temp1 - > temp1 . getPhaseType ( ) . equals ( phase ) )
. collect ( Collectors . toList ( ) ) ;
. collect ( Collectors . toList ( ) ) ;
@@ -697,18 +723,18 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
linearInterpolationI ( dataIList ) ;
linearInterpolationI ( dataIList ) ;
// 存入redis
// 存入redis
// redisUtil. saveByKey( lineId+"#"+ LocalDateTimeUtil. format( startDate, formatter)+"#"+ LocalDateTimeUtil. format( endDate, formatter)+"#"+"P" ,
redisUtil. saveByKey( lineId+ " # " + LocalDateTimeUtil. format( startDate, formatter) + " # " + LocalDateTimeUtil. format( endDate, formatter) + " # " + " P " ,
// dataHarmPowerPList) ;
dataHarmPowerPList) ;
// redisUtil. saveByKey( lineId+"#"+ LocalDateTimeUtil. format( startDate2, formatter)+"#"+ LocalDateTimeUtil. format( endDate2, formatter)+"#"+"P" ,
redisUtil. saveByKey( lineId+ " # " + LocalDateTimeUtil. format( startDate2, formatter) + " # " + LocalDateTimeUtil. format( endDate2, formatter) + " # " + " P " ,
// dataHarmPowerP2List) ;
dataHarmPowerP2List) ;
// redisUtil. saveByKey( lineId+"#"+ LocalDateTimeUtil. format( startDate, formatter)+"#"+ LocalDateTimeUtil. format( endDate, formatter)+"#"+"Q" ,
redisUtil. saveByKey( lineId+ " # " + LocalDateTimeUtil. format( startDate, formatter) + " # " + LocalDateTimeUtil. format( endDate, formatter) + " # " + " Q " ,
// dataHarmPowerQList) ;
dataHarmPowerQList) ;
// redisUtil. saveByKey( lineId+"#"+ LocalDateTimeUtil. format( startDate2, formatter)+"#"+ LocalDateTimeUtil. format( endDate2, formatter)+"#"+"Q" ,
redisUtil. saveByKey( lineId+ " # " + LocalDateTimeUtil. format( startDate2, formatter) + " # " + LocalDateTimeUtil. format( endDate2, formatter) + " # " + " Q " ,
// dataHarmPowerQ2List) ;
dataHarmPowerQ2List) ;
// redisUtil. saveByKey( lineId+"#"+ LocalDateTimeUtil. format( startDate2, formatter)+"#"+ LocalDateTimeUtil. format( endDate2, formatter)+"#"+"U" ,
redisUtil. saveByKey( lineId+ " # " + LocalDateTimeUtil. format( startDate2, formatter) + " # " + LocalDateTimeUtil. format( endDate2, formatter) + " # " + " U " ,
// dataHarmPowerU2 List) ;
dataHarmPowerUList) ;
// redisUtil. saveByKey( lineId+"#"+ LocalDateTimeUtil. format( startDate, formatter)+"#"+ LocalDateTimeUtil. format( endDate, formatter)+"#"+"I" ,
redisUtil. saveByKey( lineId+ " # " + LocalDateTimeUtil. format( startDate, formatter) + " # " + LocalDateTimeUtil. format( endDate, formatter) + " # " + " I " ,
// dataIList) ;
dataIList) ;
//todo 将文件存入文件服务器获取url
//todo 将文件存入文件服务器获取url
String filePath = fileStorageUtil . uploadMultipart ( excelDataParam . getFile ( ) , OssPath . CARRY_CAPCITY_DATA ) ;
String filePath = fileStorageUtil . uploadMultipart ( excelDataParam . getFile ( ) , OssPath . CARRY_CAPCITY_DATA ) ;
String url = " temp " ;
String url = " temp " ;
@@ -848,7 +874,7 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
carryCapacityResultPO . setStatus ( 1 ) ;
carryCapacityResultPO . setStatus ( 1 ) ;
if ( rate < 0 . 001 ) {
if ( rate < 0 . 001 ) {
carryCapacityResultPO . setReslutLevel ( 1 ) ;
carryCapacityResultPO . setReslutLevel ( 6 ) ;
carryCapacityResultPOService . save ( carryCapacityResultPO ) ;
carryCapacityResultPOService . save ( carryCapacityResultPO ) ;
return vo ;
return vo ;
}
}
@@ -991,7 +1017,7 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
vo . setIResultList ( carryCapacityIResultList ) ;
vo . setIResultList ( carryCapacityIResultList ) ;
carryCapacityResultPO . setIResultList ( JSONUtil . toJsonStr ( carryCapacityIResultList ) ) ;
carryCapacityResultPO . setIResultList ( JSONUtil . toJsonStr ( carryCapacityIResultList ) ) ;
long count = carryCapacityIResultList . stream ( ) . filter ( temp - > temp . getI ( ) > temp . getI_limit ( ) ) . count ( ) ;
long count = carryCapacityIResultList . stream ( ) . filter ( temp - > temp . getI ( ) > temp . getI_limit ( ) ) . count ( ) ;
carryCapacityResultPO . setReslutLevel ( count = = 0 ? 1 : 6 ) ;
carryCapacityResultPO . setReslutLevel ( count = = 0 ? 6 : 5 ) ;
carryCapacityResultPOService . save ( carryCapacityResultPO ) ;
carryCapacityResultPOService . save ( carryCapacityResultPO ) ;
@@ -1019,7 +1045,7 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
}
}
public static ExcelDataDTO ParsingFile ( LocalDate startDate , LocalDate endDate , InputStream is ) throws Exception {
public static ExcelDataDTO ParsingFile ( LocalDate startDate , LocalDate endDate , InputStream is ) {
DateTimeFormatter formatter = DateTimeFormatter . ofPattern ( " yyyy-MM-dd " ) ;
DateTimeFormatter formatter = DateTimeFormatter . ofPattern ( " yyyy-MM-dd " ) ;
List < CarryCapcityData > dataHarmPowerPList = new ArrayList < > ( ) ;
List < CarryCapcityData > dataHarmPowerPList = new ArrayList < > ( ) ;
List < CarryCapcityData > dataHarmPowerQList = new ArrayList < > ( ) ;
List < CarryCapcityData > dataHarmPowerQList = new ArrayList < > ( ) ;