Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
AmosBankRoot
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
bank
AmosBankRoot
Commits
051e2d8e
Commit
051e2d8e
authored
Jun 04, 2020
by
tangwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
告警通知 告警记录,添加
parent
af7bf0e0
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
177 additions
and
8 deletions
+177
-8
DeviceEnum.java
...n/java/com/yeejoin/amos/bank/common/enums/DeviceEnum.java
+2
-1
SelfSupportListener.java
...ava/com/yeejoin/amos/bank/config/SelfSupportListener.java
+133
-6
EquipmentServuceImpl2.java
...yeejoin/amos/bank/service/impl/EquipmentServuceImpl2.java
+42
-1
No files found.
AmosBankCommon/src/main/java/com/yeejoin/amos/bank/common/enums/DeviceEnum.java
View file @
051e2d8e
...
@@ -10,7 +10,8 @@ public enum DeviceEnum {
...
@@ -10,7 +10,8 @@ public enum DeviceEnum {
NET_DEVICE
(
"net_device"
,
"网络设备"
),
NET_DEVICE
(
"net_device"
,
"网络设备"
),
SERVER
(
"server"
,
"服务器"
),
SERVER
(
"server"
,
"服务器"
),
PATROL
(
"patrol"
,
"自动巡检设备"
);
PATROL
(
"patrol"
,
"自动巡检设备"
),
IP_EQUIPMENT
(
"ip_equipment"
,
"IP设备"
);
DeviceEnum
(
String
type
,
String
desc
)
{
DeviceEnum
(
String
type
,
String
desc
)
{
this
.
type
=
type
;
this
.
type
=
type
;
...
...
AmosBankService/src/main/java/com/yeejoin/amos/bank/config/SelfSupportListener.java
View file @
051e2d8e
package
com
.
yeejoin
.
amos
.
bank
.
config
;
package
com
.
yeejoin
.
amos
.
bank
.
config
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Properties
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.apache.logging.log4j.Logger
;
import
org.eclipse.paho.client.mqttv3.MqttMessage
;
import
org.eclipse.paho.client.mqttv3.MqttMessage
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.core.io.support.PropertiesLoaderUtils
;
import
org.springframework.core.task.TaskExecutor
;
import
org.springframework.core.task.TaskExecutor
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.ObjectUtils
;
...
@@ -18,11 +24,19 @@ import com.alibaba.fastjson.JSONArray;
...
@@ -18,11 +24,19 @@ import com.alibaba.fastjson.JSONArray;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.yeejoin.amos.bank.TopographyNode
;
import
com.yeejoin.amos.bank.TopographyNode
;
import
com.yeejoin.amos.bank.common.enums.AlarmPointTypeEnum
;
import
com.yeejoin.amos.bank.common.enums.DeviceStatusEnum
;
import
com.yeejoin.amos.bank.common.enums.DeviceStatusEnum
;
import
com.yeejoin.amos.bank.dao.IDeviceRecord
;
import
com.yeejoin.amos.bank.dao.IDeviceRecord
;
import
com.yeejoin.amos.bank.dao.entity.Alarm
;
import
com.yeejoin.amos.bank.dao.entity.AlarmPoint
;
import
com.yeejoin.amos.bank.dao.repository.IAlarmRepository
;
import
com.yeejoin.amos.bank.dao.repository.ITopographyLineRepository
;
import
com.yeejoin.amos.bank.dao.repository.ITopographyLineRepository
;
import
com.yeejoin.amos.bank.entity.DeviceRecord
;
import
com.yeejoin.amos.bank.entity.DeviceRecord
;
import
com.yeejoin.amos.bank.remote.client.RiskModelRemoteClient
;
import
com.yeejoin.amos.bank.remote.client.RiskModelRemoteClient
;
import
com.yeejoin.amos.bank.service.IAlarmPointService
;
import
com.yeejoin.amos.bank.service.IAlarmService
;
import
com.yeejoin.amos.bank.utils.HttpUtil
;
import
com.yeejoin.amos.bank.webSocket.WebsocketParam
;
import
com.yeejoin.amos.spc.business.dao.mapper.EquipmentMapper
;
import
com.yeejoin.amos.spc.business.dao.mapper.EquipmentMapper
;
import
com.yeejoin.amos.spc.business.remote.RemoteWebSocketServer
;
import
com.yeejoin.amos.spc.business.remote.RemoteWebSocketServer
;
import
com.yeejoin.amos.spc.core.util.StringUtil
;
import
com.yeejoin.amos.spc.core.util.StringUtil
;
...
@@ -55,8 +69,13 @@ public class SelfSupportListener extends EmqxListener implements InitializingBea
...
@@ -55,8 +69,13 @@ public class SelfSupportListener extends EmqxListener implements InitializingBea
@Autowired
@Autowired
private
RemoteWebSocketServer
webSocketServer
;
private
RemoteWebSocketServer
webSocketServer
;
@Autowired
private
IAlarmPointService
alarmPointService
;
@Autowired
private
IAlarmService
alarmService
;
@Autowired
private
IAlarmRepository
iAlarmDao
;
/**
/**
* 监听主题
* 监听主题
*/
*/
...
@@ -83,6 +102,7 @@ public class SelfSupportListener extends EmqxListener implements InitializingBea
...
@@ -83,6 +102,7 @@ public class SelfSupportListener extends EmqxListener implements InitializingBea
private
void
blueprintMsgtransfer
(
MqttMessage
mqttMessage
)
{
private
void
blueprintMsgtransfer
(
MqttMessage
mqttMessage
)
{
try
{
try
{
String
jsonStr
=
new
String
(
mqttMessage
.
getPayload
());
String
jsonStr
=
new
String
(
mqttMessage
.
getPayload
());
System
.
out
.
println
(
"----supprtmqtt received--jsonStr:"
+
jsonStr
);
System
.
out
.
println
(
"----supprtmqtt received--jsonStr:"
+
jsonStr
);
// logger.error("----supprtmqtt received--jsonStr",jsonStr);
// logger.error("----supprtmqtt received--jsonStr",jsonStr);
...
@@ -94,15 +114,27 @@ public class SelfSupportListener extends EmqxListener implements InitializingBea
...
@@ -94,15 +114,27 @@ public class SelfSupportListener extends EmqxListener implements InitializingBea
JSONArray
eqpConfigMap
=
parseObject
.
getJSONArray
(
"eqpConfigMap"
);
JSONArray
eqpConfigMap
=
parseObject
.
getJSONArray
(
"eqpConfigMap"
);
//获取ip
//获取ip
String
ipAddress
=
getIpAddress
(
eqpConfigMap
);
String
ipAddress
=
getIpAddress
(
eqpConfigMap
);
//楼层
String
lou
=
getIpAddress1
(
eqpConfigMap
,
"所属楼层"
);
//3为坐标
String
sanwei
=
getIpAddress1
(
eqpConfigMap
,
"三维位置"
);
String
eqpName
=
parseObject
.
getString
(
"eqpName"
);
String
eqpName
=
parseObject
.
getString
(
"eqpName"
);
//orgcode
String
orgCode1
=
parseObject
.
getString
(
"orgCode"
);
if
(
ObjectUtils
.
isEmpty
(
jsonArray
))
{
if
(
ObjectUtils
.
isEmpty
(
jsonArray
))
{
return
;
return
;
}
}
//告警信息
jsonArray
.
forEach
(
e
->
{
String
metricKey
=
""
;
//默认状态为正常
int
statusByName
=
0
;
// jsonArray.forEach(e -> {
for
(
Object
e
:
jsonArray
){
JSONObject
object
=
(
JSONObject
)
e
;
JSONObject
object
=
(
JSONObject
)
e
;
String
string
=
object
.
getString
(
"metricJson"
);
String
string
=
object
.
getString
(
"metricJson"
);
metricKey
=
object
.
getString
(
"metricKey"
);
if
(!
StringUtil
.
isNotEmpty
(
string
))
{
if
(!
StringUtil
.
isNotEmpty
(
string
))
{
return
;
return
;
}
}
...
@@ -110,16 +142,17 @@ public class SelfSupportListener extends EmqxListener implements InitializingBea
...
@@ -110,16 +142,17 @@ public class SelfSupportListener extends EmqxListener implements InitializingBea
System
.
out
.
println
(
"----supprtmqtt chuli recording : "
+
string
);
System
.
out
.
println
(
"----supprtmqtt chuli recording : "
+
string
);
//{\"maxTime\":\"1\",\"packetLossRate\":\"0\",\"avgTime\":\"0\",\"minTime\":\"0\",\"发包数\":\"\",\"icmpPackSize\":\"32\",\"status\":\"通\"}
//{\"maxTime\":\"1\",\"packetLossRate\":\"0\",\"avgTime\":\"0\",\"minTime\":\"0\",\"发包数\":\"\",\"icmpPackSize\":\"32\",\"status\":\"通\"}
JSONObject
metricJson
=
JSONObject
.
parseObject
(
string
);
JSONObject
metricJson
=
JSONObject
.
parseObject
(
string
);
for
(
Map
.
Entry
entry
:
metricJson
.
entrySet
())
{
for
(
Map
.
Entry
entry
:
metricJson
.
entrySet
())
{
// 指标名
// 指标名
System
.
out
.
println
(
"----start chuli device state : "
+
entry
);
System
.
out
.
println
(
"----start chuli device state : "
+
entry
);
String
remark
=
entry
.
getKey
().
toString
();
String
remark
=
entry
.
getKey
().
toString
();
String
statusName
=
entry
.
getValue
().
toString
();
String
statusName
=
entry
.
getValue
().
toString
();
if
(
remark
.
equals
(
"status"
))
{
if
(
remark
.
equals
(
"status"
))
{
DeviceRecord
record
=
new
DeviceRecord
();
DeviceRecord
record
=
new
DeviceRecord
();
record
.
setDeviceId
(
eqpId
);
record
.
setDeviceId
(
eqpId
);
int
statusByName
=
DeviceStatusEnum
.
getStatusByName
(
statusName
);
statusByName
=
DeviceStatusEnum
.
getStatusByName
(
statusName
);
record
.
setDeviceStatus
(
statusByName
);
record
.
setDeviceStatus
(
statusByName
);
record
.
setMetricData
(
string
);
record
.
setMetricData
(
string
);
record
.
setName
(
eqpName
+
" "
+
ipAddress
);
record
.
setName
(
eqpName
+
" "
+
ipAddress
);
...
@@ -139,8 +172,81 @@ public class SelfSupportListener extends EmqxListener implements InitializingBea
...
@@ -139,8 +172,81 @@ public class SelfSupportListener extends EmqxListener implements InitializingBea
}
}
}
}
}
}
});
};
// });
//增加报警
List
<
AlarmPoint
>
alarmPoint
=
alarmPointService
.
selectPointTypeAndPointId
(
AlarmPointTypeEnum
.
设备
.
getCode
(),
eqpId
);
if
(
alarmPoint
!=
null
&&
alarmPoint
.
size
()>
0
){
//存在报警,判断当前状态是不是合格,合格则删除上次的报警
if
(
statusByName
==
0
){
//删除告警
alarmPointService
.
delete
(
alarmPoint
.
get
(
0
));
}
}
else
{
//不存在,判断当前状态是不是合格,不合格新增,合格不做任何操作
if
(
statusByName
!=
0
){
//增加告警
AlarmPoint
alarmPoint1
=
new
AlarmPoint
();
alarmPoint1
.
setPointId
(
eqpId
);
alarmPoint1
.
setPointType
(
AlarmPointTypeEnum
.
设备
.
getCode
());
alarmPoint1
.
setUpdateDate
(
new
Date
());
alarmPoint1
.
setIsAlarm
(
1
);
//不合格
alarmPoint1
.
setContent
(
metricKey
);
alarmPoint1
.
setCode
(
orgCode1
);
alarmPoint1
.
setPointName
(
eqpName
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"position"
,
sanwei
);
map
.
put
(
"storey"
,
lou
);
alarmPoint1
.
setPointAttrs
(
JSON
.
toJSONString
(
map
));
alarmPointService
.
save
(
alarmPoint1
);
//推送告警
List
<
AlarmPoint
>
list
=
alarmPointService
.
findAll
();
WebsocketParam
param
=
new
WebsocketParam
(
"alarmPoint"
,
JSON
.
toJSONString
(
list
));
Properties
props
=
PropertiesLoaderUtils
.
loadAllProperties
(
"application.properties"
);
String
url
=
(
String
)
props
.
get
(
"params.remoteWebsocketUrl"
)
+
"/generic/sendMessage"
;
HttpUtil
.
PostJson
(
url
,
JSON
.
toJSONString
(
param
));
}
}
//增建告警记录表
//告警记录
List
<
Alarm
>
curAlarmList
=
alarmService
.
findByQueryColumn
(
eqpId
+
metricKey
);
SimpleDateFormat
df
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
if
(
curAlarmList
!=
null
&&
curAlarmList
.
size
()
>
0
)
{
if
(
"异常"
.
equals
(
curAlarmList
.
get
(
0
).
getCurrentState
())){
Alarm
alarm
=
curAlarmList
.
get
(
0
);
alarm
.
setUpdateDate
(
df
.
format
(
new
Date
()));
alarm
.
setCurrentState
(
metricKey
);
iAlarmDao
.
save
(
alarm
);
}
}
else
{
Alarm
alarm
=
new
Alarm
();
alarm
.
setSourceId
(
eqpId
+
""
);
alarm
.
setAlarmLevel
(
"警告告警"
);
alarm
.
setAlarmReason
(
""
);
alarm
.
setAlarmSourceIp
(
eqpId
+
""
);
alarm
.
setAlarmSourceName
(
eqpName
);
alarm
.
setAlarmSourceType
(
metricKey
);
alarm
.
setClearDate
(
""
);
alarm
.
setClearPerson
(
metricKey
);
alarm
.
setContinueDate
(
""
);
if
(
statusByName
!=
0
){
alarm
.
setCurrentState
(
"异常"
);
}
else
{
alarm
.
setCurrentState
(
"正常"
);
}
alarm
.
setEnsureDate
(
""
);
alarm
.
setHappenDate
(
""
);
alarm
.
setEnsurePerson
(
""
);
alarm
.
setOrgCode
(
orgCode1
);
alarm
.
setUpdateDate
(
df
.
format
(
new
Date
()));
alarm
.
setQueryColumn
(
eqpId
+
metricKey
);
iAlarmDao
.
save
(
alarm
);
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
"消息流转报错."
);
logger
.
error
(
"消息流转报错."
);
logger
.
error
(
e
.
getMessage
(),
e
);
logger
.
error
(
e
.
getMessage
(),
e
);
...
@@ -148,6 +254,27 @@ public class SelfSupportListener extends EmqxListener implements InitializingBea
...
@@ -148,6 +254,27 @@ public class SelfSupportListener extends EmqxListener implements InitializingBea
}
}
}
}
public
String
getIpAddress1
(
JSONArray
eqpConfigMap
,
String
name
)
{
//配置信息
if
(
null
!=
eqpConfigMap
&&
eqpConfigMap
.
size
()
>
0
)
{
for
(
Object
object
:
eqpConfigMap
)
{
JSONObject
obj
=
(
JSONObject
)
object
;
String
str
=
obj
.
getString
(
"displayName"
);
if
(
str
.
contains
(
name
))
{
String
ip
=
obj
.
getString
(
"valueStr"
);
return
ip
;
}
}
}
return
null
;
}
public
String
getIpAddress
(
JSONArray
eqpConfigMap
)
{
public
String
getIpAddress
(
JSONArray
eqpConfigMap
)
{
//配置信息
//配置信息
if
(
null
!=
eqpConfigMap
&&
eqpConfigMap
.
size
()
>
0
)
{
if
(
null
!=
eqpConfigMap
&&
eqpConfigMap
.
size
()
>
0
)
{
...
...
AmosBankService/src/main/java/com/yeejoin/amos/bank/service/impl/EquipmentServuceImpl2.java
View file @
051e2d8e
...
@@ -90,7 +90,11 @@ public class EquipmentServuceImpl2 implements IEquipmentService {
...
@@ -90,7 +90,11 @@ public class EquipmentServuceImpl2 implements IEquipmentService {
String
netDeviceResStr
=
deviceService
.
listByOrgCodeAndModel
(
orgCode
,
DeviceEnum
.
NET_DEVICE
.
getType
());
String
netDeviceResStr
=
deviceService
.
listByOrgCodeAndModel
(
orgCode
,
DeviceEnum
.
NET_DEVICE
.
getType
());
String
serverResStr
=
deviceService
.
listByOrgCodeAndModel
(
orgCode
,
DeviceEnum
.
SERVER
.
getType
());
String
serverResStr
=
deviceService
.
listByOrgCodeAndModel
(
orgCode
,
DeviceEnum
.
SERVER
.
getType
());
String
patrolResStr
=
deviceService
.
listByOrgCodeAndModel
(
orgCode
,
DeviceEnum
.
PATROL
.
getType
());
String
patrolResStr
=
deviceService
.
listByOrgCodeAndModel
(
orgCode
,
DeviceEnum
.
PATROL
.
getType
());
String
ipequipmentStr
=
deviceService
.
listByOrgCodeAndModel
(
orgCode
,
DeviceEnum
.
IP_EQUIPMENT
.
getType
());
JSONObject
ipequipmentStrjson
=
JSONObject
.
parseObject
(
ipequipmentStr
);
//String netDeviceResStr = deviceService.deviceDoGet(DeviceUriEnum.根据型号查询设备点, params);
//String netDeviceResStr = deviceService.deviceDoGet(DeviceUriEnum.根据型号查询设备点, params);
JSONObject
netDeviceResJson
=
JSONObject
.
parseObject
(
netDeviceResStr
);
JSONObject
netDeviceResJson
=
JSONObject
.
parseObject
(
netDeviceResStr
);
...
@@ -201,6 +205,43 @@ public class EquipmentServuceImpl2 implements IEquipmentService {
...
@@ -201,6 +205,43 @@ public class EquipmentServuceImpl2 implements IEquipmentService {
convertNode3DVoResponse
(
list
,
patrolResJson
,
"03"
);
convertNode3DVoResponse
(
list
,
patrolResJson
,
"03"
);
}
}
//IP 设备
if
(
ipequipmentStrjson
!=
null
)
{
convertNode3DVoResponse
(
list
,
ipequipmentStrjson
,
"04"
);
}
// Node3DVoResponse node3dVoResponse = new Node3DVoResponse();
// node3dVoResponse.setId("1");
// node3dVoResponse.setKey("equipment-" +"1");
// node3dVoResponse.setLabel("测试");
// node3dVoResponse.setTitle("测试");
// node3dVoResponse.setLevel("04");
// node3dVoResponse.setLevelStr("impEqu_" + "04");
// node3dVoResponse.setObjType("04");
// node3dVoResponse.setObjKey("floor_3");
// node3dVoResponse.setSourceId("1");
// CoordDTO postion = new CoordDTO();
// postion.setX(344.9619516812333);
// postion.setY(93.90619659423828);
// postion.setZ(154.7298426229343);
// node3dVoResponse.setPositionDTO(postion.toString());
// node3dVoResponse.setPosition(postion);
// node3dVoResponse.setRate(0);
// node3dVoResponse.setRotation(new CoordDTO(0d, 0d, 0d));
// node3dVoResponse.setRotationDTO(new CoordDTO(0d, 0d, 0d).toString());
// node3dVoResponse.setScale(new CoordDTO(1d, 1d, 1d));
// node3dVoResponse.setScaleDTO(new CoordDTO(1d, 1d, 1d).toString());
// node3dVoResponse.setShowInfo(false);
// node3dVoResponse.setTwinkle(false);
// node3dVoResponse.setType("impEquipment");
// list.add(node3dVoResponse);
return
list
;
return
list
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment