@@ -1,6 +1,7 @@
package com.njcn.product.event.transientes.controller ;
import cn.hutool.core.collection.CollUtil ;
import cn.hutool.core.collection.CollectionUtil ;
import cn.hutool.core.date.DatePattern ;
import cn.hutool.core.date.DateUtil ;
import cn.hutool.core.date.LocalDateTimeUtil ;
@@ -116,35 +117,56 @@ public class EventGateController extends BaseController {
& & Float . parseFloat ( jsonObject . get ( " eventvalue " ) . toString ( ) ) < = msgEventConfigService . getEventValue ( )
& & ( Float . parseFloat ( jsonObject . get ( " persisttime " ) . toString ( ) ) * 1000 ) > = msgEventConfigService . getEventDuration ( ) ) {
//过滤重要暂降事件
//F47过滤
float eventvalue = Float . parseFloat ( jsonObject . get ( " eventvalue " ) . toString ( ) ) ;
float persisttime = Float . parseFloat ( jsonObject . get ( " persisttime " ) . toString ( ) ) * 1000 ;
if ( shouldSendSMS ( eventvalue , persisttime ) ) {
Integer lineId = Integer . valueOf ( jsonObject . get ( " lineid " ) . toString ( ) ) ;
List < PqUserLineAssPO > assList = pqUserLineAssMapper . selectList ( new LambdaQueryWrapper < PqUserLineAssPO > ( ) . eq ( PqUserLineAssPO : : getLineIndex , lineId ) ) ;
jsonObject . set ( " persisttime " , new BigDecimal ( jsonObject . get ( " persisttime " ) . toString ( ) ) . setScale ( 3 , RoundingMode . HALF_UP ) . toString ( ) ) ;
Integer lineId = Integer . valueOf ( jsonObject . get ( " lineid " ) . toString ( ) ) ;
List < PqUserLineAssPO > assList = pqUserLineAssMapper . selectList ( new LambdaQueryWrapper < PqUserLineAssPO > ( ) . eq ( PqUserLineAssPO : : getLine Index , lineId ) ) ;
String str ;
if ( CollUtil . isNotEmpty ( assList ) ) {
List < String > userIds = assList . stream ( ) . map ( PqUserLineAssPO : : getUser Index ) . distinct ( ) . collect ( Collectors . toList ( ) ) ;
List < PqUserLedgerPO > poList = pqUserLedgerMapper . selectList ( new LambdaQueryWrapper < PqUserLedgerPO > ( ) . select ( PqUserLedgerPO : : getId , PqUserLedgerPO : : getCustomerName , PqUserLedgerPO : : getIsShow ) . in ( PqUserLedgerPO : : getId , userIds ) ) ;
List < PqUserLedgerPO > isShowUser = poList . stream ( ) . filter ( temp - > temp . getIsShow ( ) = = 1 ) . collect ( Collectors . toList ( ) ) ;
List < PqUserLedgerPO > noShowUser = poList . stream ( ) . filter ( temp - > temp . getIsShow ( ) ! = 1 ) . collect ( Collectors . toList ( ) ) ;
String strUser = " " ;
if ( CollectionUtil . isEmpty ( isShowUser ) ) {
strUser = strUser + " 影响集成电路敏感用户:无; " ;
} else {
String sensitiveUser = isShowUser . stream ( ) . map ( PqUserLedgerPO : : getCustomerName ) . collect ( Collectors . joining ( " ; " ) ) ;
strUser = strUser + " 影响集成电路敏感用户: " + sensitiveUser + " ; " ;
}
if ( CollectionUtil . isEmpty ( noShowUser ) ) {
strUser = strUser + " 影响其他用户:无; " ;
} else {
String sensitiveUser = noShowUser . stream ( ) . map ( PqUserLedgerPO : : getCustomerName ) . collect ( Collectors . joining ( " ; " ) ) ;
strUser = strUser + " 影响其他用户: " + sensitiveUser + " ; " ;
}
str = strUser ;
} else {
str = " / " ;
}
List < PqsDepts > deptsList = ( List < PqsDepts > ) redisUtil . getObjectByKey ( REDIS_DEPT_INDEX + StrUtil . DASHED + " AllDept " ) ;
Map < String , PqsDepts > deptsMap = deptsList . stream ( ) . collect ( Collectors . toMap ( PqsDepts : : getDeptsIndex , dept - > dept ) ) ;
List < PqsDeptsline > deptslineList = pqsDeptslineService . lambdaQuery ( ) . eq ( PqsDeptsline : : getLineIndex , lineId ) . list ( ) ;
List < String > deptIds = deptslineList . stream ( ) . map ( PqsDeptsline : : getDeptsIndex ) . collect ( Collectors . toList ( ) ) ;
Set < String > set = getAllParentIdsWithChildrenBatch ( deptIds , deptsMap ) ;
jsonObject . putOpt ( " objName " , str ) ;
jsonObject . putOpt ( " dept " , String . join ( StrUtil . COMMA , set ) ) ;
webSocketServer . sendMessageToAll ( jsonObject . toString ( ) ) ;
//针对前置推送的暂降事件进行短信发送功能
smsTaskExecutor . execute ( ( ) - > {
sendMessage ( jsonObject , str ) ;
} ) ;
String str ;
if ( CollUtil . isNotEmpty ( assList ) ) {
List < String > userIds = assList . stream ( ) . map ( PqUserLineAssPO : : getUserIndex ) . distinct ( ) . collect ( Collectors . toList ( ) ) ;
List < PqUserLedgerPO > poList = pqUserLedgerMapper . selectList ( new LambdaQueryWrapper < PqUserLedgerPO > ( ) . select ( PqUserLedgerPO : : getId , PqUserLedgerPO : : getCustomerName ) . in ( PqUserLedgerPO : : getId , userIds ) ) ;
str = poList . stream ( ) . map ( PqUserLedgerPO : : getCustomerName ) . collect ( Collectors . joining ( " ; " ) ) ;
} else {
str = " / " ;
}
List < PqsDepts > deptsList = ( List < PqsDepts > ) redisUtil . getObjectByKey ( REDIS_DEPT_INDEX + StrUtil . DASHED + " AllDept " ) ;
Map < String , PqsDepts > deptsMap = deptsList . stream ( ) . collect ( Collectors . toMap ( PqsDepts : : getDeptsIndex , dept - > dept ) ) ;
List < PqsDeptsline > deptslineList = pqsDeptslineService . lambdaQuery ( ) . eq ( PqsDeptsline : : getLineIndex , lineId ) . list ( ) ;
List < String > deptIds = deptslineList . stream ( ) . map ( PqsDeptsline : : getDeptsIndex ) . collect ( Collectors . toList ( ) ) ;
Set < String > set = getAllParentIdsWithChildrenBatch ( deptIds , deptsMap ) ;
jsonObject . putOpt ( " objName " , str ) ;
jsonObject . putOpt ( " dept " , String . join ( StrUtil . COMMA , set ) ) ;
webSocketServer . sendMessageToAll ( jsonObject . toString ( ) ) ;
//针对前置推送的暂降事件进行短信发送功能
smsTaskExecutor . execute ( ( ) - > {
sendMessage ( jsonObject , str ) ;
} ) ;
}
} catch ( Exception e ) {
@@ -154,6 +176,27 @@ public class EventGateController extends BaseController {
return HttpResultUtil . assembleCommonResponseResult ( CommonResponseEnum . SUCCESS , null , methodDescribe ) ;
}
private boolean shouldSendSMS ( Float value , Float time ) {
// 条件1: 电压降至50%以下, 持续时间超过20ms
if ( value < 0 . 5 & & time > = 20 ) {
return true ;
}
// 条件2: 电压降至50%—70%, 持续时间超过200ms
if ( value > = 50 & & value < 70 & & time > = 200 ) {
return true ;
}
// 条件3: 电压降至70%—80%, 持续时间超过500ms
if ( value > = 70 & & value < 80 & & time > = 500 ) {
return true ;
}
return false ;
}
public Set < String > getAllParentIdsRecursive ( String deptId , Map < String , PqsDepts > deptMap , Set < String > result ) {
if ( deptId = = null | | result . contains ( deptId ) ) {
return result ;
@@ -372,8 +415,9 @@ public class EventGateController extends BaseController {
StringBuilder stringBuilder = new StringBuilder ( jsonObject . get ( " timeid " ) . toString ( ) ) ;
String busName = jsonObject . containsKey ( " busname " ) ? " _ " + jsonObject . get ( " busname " ) . toString ( ) : " " ;
BigDecimal bigDecimal = new BigDecimal ( jsonObject . get ( " eventvalue " ) . toString ( ) ) . multiply ( new BigDecimal ( 100 ) ) . setScale ( 2 , RoundingMode . HALF_UP ) ;
stringBuilder . append ( " . " ) . append ( jsonObject . get ( " ms " ) . toString ( ) ) . append ( " , " ) . append ( jsonObject . get ( " bdname " ) . toString ( ) ) . append ( busName ) . append ( " _ " ) . append ( jsonObject . get ( " pointname " ) . toString ( ) )
. append( " 发生电压暂降事件,事件残余电压 " ) . append ( bigDecimal ) . append ( " %,持续时间: " ) . append( jsonObject. get ( " persisttime " ) . toString ( ) ) . append ( " S;影响用户: " ) ;
stringBuilder . append ( " . " ) . append ( jsonObject . get ( " ms " ) . toString ( ) ) . append ( " , " ) . append ( jsonObject . get ( " bdname " ) . toString ( ) ) . append ( busName )
// . append("_"). append( jsonObject.get("pointname").toString())
. append ( " 发生电压暂降事件,事件残余电压 " ) . append ( bigDecimal ) . append ( " %,持续时间: " ) . append ( jsonObject . get ( " persisttime " ) . toString ( ) ) . append ( " S; " ) ;
stringBuilder . append ( objStr ) ;
String message ;