Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
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
0
Merge Requests
0
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
项目统一框架
amos-boot-biz
Commits
d89ec3c2
Commit
d89ec3c2
authored
Jun 24, 2022
by
zhangsen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交代码
parent
a0260da6
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
585 additions
and
58 deletions
+585
-58
FireStationInfoDto.java
...join/amos/boot/module/ccs/api/dto/FireStationInfoDto.java
+8
-0
FireStationInfoMapper.java
...mos/boot/module/ccs/api/mapper/FireStationInfoMapper.java
+52
-0
MqttReceiveService.java
.../amos/boot/module/ccs/api/service/MqttReceiveService.java
+10
-2
AlarmCountVO.java
...com/yeejoin/amos/boot/module/ccs/api/vo/AlarmCountVO.java
+7
-3
AlarmEventLogVO.java
.../yeejoin/amos/boot/module/ccs/api/vo/AlarmEventLogVO.java
+48
-0
DateAlarmCountVO.java
...yeejoin/amos/boot/module/ccs/api/vo/DateAlarmCountVO.java
+12
-0
QuestionVO.java
...a/com/yeejoin/amos/boot/module/ccs/api/vo/QuestionVO.java
+12
-0
RawDataVO.java
...va/com/yeejoin/amos/boot/module/ccs/api/vo/RawDataVO.java
+55
-0
ReceiveDataVO.java
...om/yeejoin/amos/boot/module/ccs/api/vo/ReceiveDataVO.java
+14
-0
FireStationInfoMapper.xml
...s-api/src/main/resources/mapper/FireStationInfoMapper.xml
+104
-0
CcsMqttReceiveConfig.java
...amos/boot/module/ccs/biz/config/CcsMqttReceiveConfig.java
+12
-10
FireStationInfoController.java
.../module/ccs/biz/controller/FireStationInfoController.java
+55
-0
FireStationInfoServiceImpl.java
...dule/ccs/biz/service/impl/FireStationInfoServiceImpl.java
+91
-2
MqttReceiveServiceImpl.java
...t/module/ccs/biz/service/impl/MqttReceiveServiceImpl.java
+102
-40
application-dev.properties
...-system-ccs/src/main/resources/application-dev.properties
+3
-1
No files found.
amos-boot-module/amos-boot-module-api/amos-boot-module-ccs-api/src/main/java/com/yeejoin/amos/boot/module/ccs/api/dto/FireStationInfoDto.java
View file @
d89ec3c2
...
@@ -96,4 +96,12 @@ public class FireStationInfoDto extends BaseDto {
...
@@ -96,4 +96,12 @@ public class FireStationInfoDto extends BaseDto {
@ApiModelProperty
(
value
=
"关联站id"
)
@ApiModelProperty
(
value
=
"关联站id"
)
private
String
stationContactId
;
private
String
stationContactId
;
@ApiModelProperty
(
"现存告警数量"
)
private
Integer
alarmNum
=
0
;
@ApiModelProperty
(
"已处理数量"
)
private
Integer
confirmTrueNum
=
0
;
@ApiModelProperty
(
"未处理数量"
)
private
Integer
confirmFalseNum
=
0
;
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-ccs-api/src/main/java/com/yeejoin/amos/boot/module/ccs/api/mapper/FireStationInfoMapper.java
View file @
d89ec3c2
...
@@ -3,6 +3,8 @@ package com.yeejoin.amos.boot.module.ccs.api.mapper;
...
@@ -3,6 +3,8 @@ package com.yeejoin.amos.boot.module.ccs.api.mapper;
import
com.yeejoin.amos.boot.module.ccs.api.dto.FireStationInfoDto
;
import
com.yeejoin.amos.boot.module.ccs.api.dto.FireStationInfoDto
;
import
com.yeejoin.amos.boot.module.ccs.api.entity.FireStationInfo
;
import
com.yeejoin.amos.boot.module.ccs.api.entity.FireStationInfo
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yeejoin.amos.boot.module.ccs.api.vo.AlarmCountVO
;
import
com.yeejoin.amos.boot.module.ccs.api.vo.DateAlarmCountVO
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
import
java.util.List
;
...
@@ -32,4 +34,54 @@ public interface FireStationInfoMapper extends BaseMapper<FireStationInfo> {
...
@@ -32,4 +34,54 @@ public interface FireStationInfoMapper extends BaseMapper<FireStationInfo> {
List
<
Map
<
String
,
Object
>>
queryStationEquipInfo
(
@Param
(
"stationCode"
)
String
stationCode
,
@Param
(
"stationName"
)
String
stationName
);
List
<
Map
<
String
,
Object
>>
queryStationEquipInfo
(
@Param
(
"stationCode"
)
String
stationCode
,
@Param
(
"stationName"
)
String
stationName
);
List
<
Map
<
String
,
Object
>>
lastYearAlarmCount
();
List
<
Map
<
String
,
Object
>>
lastYearAlarmCount
();
/**
* 换流站告警信息
*
* @param stationCode
* @return List<FireStationInfoDto>
*/
List
<
FireStationInfoDto
>
queryStationAlarmListByCode
(
@Param
(
"stationCode"
)
String
stationCode
);
/**
* 查询各个环流站的警情数量
*
* @return
*/
List
<
AlarmCountVO
>
queryAlarmCountByCode
();
/**
* 查询各个环流站的警情数量(包含历史和即时警情)
*
* @return
*/
List
<
AlarmCountVO
>
queryAllAlarmCountByCode
(
@Param
(
"beginDateTime"
)
String
beginDateTime
,
@Param
(
"endDateTime"
)
String
endDateTime
);
/**
* 根据code和时间查警情数量
*
* @return
*/
Integer
queryAlarmCountByDateAndCode
(
@Param
(
"stationCode"
)
String
stationCode
,
@Param
(
"date"
)
String
date
);
/**
* 查询指定时间段的告警趋势
*
* @param stationCode
* @param beginDate
* @param endDate
* @return
*/
List
<
DateAlarmCountVO
>
getAlarmTrendByDatePeriod
(
@Param
(
"stationCode"
)
String
stationCode
,
@Param
(
"beginDate"
)
String
beginDate
,
@Param
(
"endDate"
)
String
endDate
);
/**
* 查询指定时间段的告警趋势
*
* @param stationCode
* @param beginDateTime
* @param endDateTime
* @return
*/
List
<
DateAlarmCountVO
>
getAlarmNumByDateTimePeriodByStationCode
(
@Param
(
"stationCode"
)
String
stationCode
,
@Param
(
"beginDateTime"
)
String
beginDateTime
,
@Param
(
"endDateTime"
)
String
endDateTime
);
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-ccs-api/src/main/java/com/yeejoin/amos/boot/module/ccs/api/service/MqttReceiveService.java
View file @
d89ec3c2
...
@@ -5,9 +5,17 @@ package com.yeejoin.amos.boot.module.ccs.api.service;
...
@@ -5,9 +5,17 @@ package com.yeejoin.amos.boot.module.ccs.api.service;
public
interface
MqttReceiveService
{
public
interface
MqttReceiveService
{
/**
/**
*
增量数据处理
*
处理警情消息
* @param topic 主题
* @param topic 主题
* @param message 消息内容
* @param message 消息内容
*/
*/
void
handlerMqttIncrementMessage
(
String
topic
,
String
message
);
void
handlerMqttAlarmMessage
(
String
topic
,
String
message
);
/**
* 处理问题下发消息
* @param topic 主题
* @param message 消息内容
*/
void
handlerMqttQuestionMessage
(
String
topic
,
String
message
);
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-ccs-api/src/main/java/com/yeejoin/amos/boot/module/ccs/api/vo/
MqttData
VO.java
→
amos-boot-module/amos-boot-module-api/amos-boot-module-ccs-api/src/main/java/com/yeejoin/amos/boot/module/ccs/api/vo/
AlarmCount
VO.java
View file @
d89ec3c2
...
@@ -11,9 +11,13 @@ import lombok.Data;
...
@@ -11,9 +11,13 @@ import lombok.Data;
* @date 2021/1/7 17:44
* @date 2021/1/7 17:44
*/
*/
@Data
@Data
public
class
MqttData
VO
{
public
class
AlarmCount
VO
{
private
String
key
;
private
String
stationCode
;
private
Object
value
;
private
Integer
alarmNum
;
private
Integer
confirmTrueNum
;
private
Integer
confirmFalseNum
;
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-ccs-api/src/main/java/com/yeejoin/amos/boot/module/ccs/api/vo/AlarmEventLogVO.java
0 → 100644
View file @
d89ec3c2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ccs
.
api
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
AlarmEventLogVO
implements
Serializable
{
private
String
id
;
private
String
valid
;
private
String
record
;
private
String
date
;
private
String
creator
;
private
String
creatorName
;
private
String
status
;
private
String
bizOrgName
;
private
String
bizOrgCode
;
private
String
orgCode
;
private
String
severityLevel
;
private
String
objcectType
;
private
String
objcectId
;
private
String
objcectCode
;
private
String
objcectName
;
private
String
objcectIndexName
;
private
String
objcectIndexKey
;
private
String
alarmTime
;
private
String
signalId
;
private
String
controlModelId
;
private
String
modelIndexId
;
private
String
deviationIndexId
;
private
String
questionNum
;
private
String
questionReportedTime
;
private
String
subject
;
private
String
content
;
private
String
questionReason
;
private
String
questionEffect
;
private
String
rectificationProposal
;
private
String
severityLevelLABEL
;
private
String
protectedObjectCode
;
private
String
protectedObjectName
;
private
String
buildingName
;
private
String
buildingCode
;
private
String
systemCode
;
private
String
systemName
;
private
String
objcectIndexValue
;
private
String
objcectIndexType
;
private
String
recoveryStatus
;
}
amos-boot-module/amos-boot-module-api/amos-boot-module-ccs-api/src/main/java/com/yeejoin/amos/boot/module/ccs/api/vo/DateAlarmCountVO.java
0 → 100644
View file @
d89ec3c2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ccs
.
api
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
DateAlarmCountVO
implements
Serializable
{
public
String
alarmNums
;
public
String
date
;
}
amos-boot-module/amos-boot-module-api/amos-boot-module-ccs-api/src/main/java/com/yeejoin/amos/boot/module/ccs/api/vo/QuestionVO.java
0 → 100644
View file @
d89ec3c2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ccs
.
api
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.List
;
@Data
public
class
QuestionVO
implements
Serializable
{
private
List
<
AlarmEventLogVO
>
alarmEventLog
;
}
amos-boot-module/amos-boot-module-api/amos-boot-module-ccs-api/src/main/java/com/yeejoin/amos/boot/module/ccs/api/vo/RawDataVO.java
0 → 100644
View file @
d89ec3c2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ccs
.
api
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
RawDataVO
implements
Serializable
{
private
String
id
;
private
String
valid
;
private
String
record
;
private
String
date
;
private
String
creator
;
private
String
creatorName
;
private
String
status
;
private
String
equipmentSpecificId
;
private
String
equipmentSpecificName
;
private
String
equipmentId
;
private
String
equipmentName
;
private
String
systemId
;
private
String
equipmentDetailCode
;
private
String
equipmentDetailId
;
private
String
typeName
;
private
String
equipmentIndexKey
;
private
String
equipmentIndexName
;
private
String
equipmentIndexId
;
private
String
indexValue
;
private
String
systemName
;
private
String
valueEnum
;
private
String
emergencyLevelColor
;
private
String
isAlarm
;
private
String
emergencyLevel
;
private
String
emergencyLevelDescribe
;
private
String
isTrend
;
private
String
typeCode
;
private
String
groupName
;
private
String
sortNum
;
private
String
unit
;
private
String
buildPosition
;
private
String
isIot
;
private
String
bizOrgName
;
private
String
bizOrgCode
;
private
String
orgCode
;
private
String
equipmentSpecificCode
;
private
String
categoryCode
;
private
String
categoryName
;
private
String
systemCode
;
private
String
detailPosition
;
private
String
buildId
;
private
String
buildCode
;
private
String
buildName
;
private
String
companyCode
;
private
String
equipmentSpecificIotCode
;
}
amos-boot-module/amos-boot-module-api/amos-boot-module-ccs-api/src/main/java/com/yeejoin/amos/boot/module/ccs/api/vo/ReceiveDataVO.java
0 → 100644
View file @
d89ec3c2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ccs
.
api
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
ReceiveDataVO
implements
Serializable
{
private
String
active
;
private
AlarmEventLogVO
alarmEventLog
;
private
RawDataVO
rawData
;
}
amos-boot-module/amos-boot-module-api/amos-boot-module-ccs-api/src/main/resources/mapper/FireStationInfoMapper.xml
View file @
d89ec3c2
...
@@ -56,4 +56,108 @@
...
@@ -56,4 +56,108 @@
FROM
FROM
`asf_fire_station_info` s
`asf_fire_station_info` s
</select>
</select>
<select
id=
"queryStationAlarmListByCode"
resultType=
"com.yeejoin.amos.boot.module.ccs.api.dto.FireStationInfoDto"
>
SELECT
i.*
FROM
`asf_fire_station_info` i
where i.status = false
<if
test=
"stationCode != null and stationCode != ''"
>
and i.code = #{stationCode,jdbcType=VARCHAR}
</if>
</select>
<select
id=
"queryAlarmCountByCode"
resultType=
"com.yeejoin.amos.boot.module.ccs.api.vo.AlarmCountVO"
>
SELECT
station_code,
sum( is_alarm ) as alarmNum,
sum( confirm_state ) as confirmTrueNum,
count(*) - sum( confirm_state ) as confirmfalseNum
FROM
asf_fire_equipment_signal_log
GROUP BY
station_code
</select>
<select
id=
"queryAllAlarmCountByCode"
resultType=
"com.yeejoin.amos.boot.module.ccs.api.vo.AlarmCountVO"
>
SELECT
station_code,
count(*) as alarmNum
FROM
asf_fire_equipment_signal_log
<where>
<if
test=
"beginDateTime != null and beginDateTime != '' and endDateTime != null and endDateTime != ''"
>
and confirm_date between #{beginDateTime} and #{endDateTime}
</if>
</where>
GROUP BY
station_code
</select>
<select
id=
"queryAlarmCountByDateAndCode"
resultType=
"java.lang.Integer"
>
select count(*) from asf_fire_equipment_signal_log
<where>
1 = 1
<if
test=
"stationCode != null and stationCode != ''"
>
and station_code = #{stationCode,jdbcType=VARCHAR}
</if>
<if
test=
"date != null and date != ''"
>
and confirm_date like concat(#{date,jdbcType=VARCHAR},'%')
</if>
</where>
</select>
<select
id=
"getAlarmTrendByDatePeriod"
resultType=
"com.yeejoin.amos.boot.module.ccs.api.vo.DateAlarmCountVO"
>
select
(SELECT
IFNULL(count(s.id),0)
FROM `asf_fire_equipment_signal_log` s
<where>
<if
test=
"stationCode != null and stationCode != ''"
>
and s.station_code = #{stationCode}
</if>
and s.signal_report_date = t.date
</where>
) as alarmNums,
date
from
(SELECT
DATE_FORMAT(DATE( DATE_ADD( #{beginDate}, INTERVAL @s DAY )),'%Y-%m-%d') AS date,
@s := @s + 1 AS `index`
FROM
mysql.help_topic,
( SELECT @s := 0 ) temp
WHERE
@s
<![CDATA[<=]]>
DATEDIFF(#{endDate},#{beginDate})) t
GROUP BY t.date
</select>
<select
id=
"getAlarmNumByDateTimePeriodByStationCode"
resultType=
"com.yeejoin.amos.boot.module.ccs.api.vo.DateAlarmCountVO"
>
select
(SELECT
IFNULL(count(s.id),0)
FROM `asf_fire_equipment_signal_log` s
<where>
<if
test=
"stationCode != null and stationCode != ''"
>
and s.station_code = #{stationCode}
</if>
and s.confirm_date like concat(date ,'%')
</where>
) as alarmNums,
date
from
(SELECT
DATE_FORMAT( DATE_ADD( #{beginDateTime}, INTERVAL @s HOUR ),'%Y-%m-%d %H') AS date,
@s := @s + 1 AS `index`
FROM
mysql.help_topic,
( SELECT @s := 0 ) temp
WHERE
@s
<![CDATA[<=]]>
hour(TIMEDIFF(#{endDateTime},#{beginDateTime}))) t
GROUP BY t.date
</select>
</mapper>
</mapper>
amos-boot-module/amos-boot-module-biz/amos-boot-module-ccs-biz/src/main/java/com/yeejoin/amos/boot/module/ccs/biz/config/CcsMqttReceiveConfig.java
View file @
d89ec3c2
...
@@ -47,8 +47,12 @@ public class CcsMqttReceiveConfig {
...
@@ -47,8 +47,12 @@ public class CcsMqttReceiveConfig {
@Value
(
"${emqx.client-id}"
)
@Value
(
"${emqx.client-id}"
)
private
String
clientId
;
private
String
clientId
;
@Value
(
"${mqtt.topic}"
)
@Value
(
"${mqtt.topic.alarm}"
)
private
String
defaultTopic
;
private
String
alarmTopic
;
@Value
(
"${mqtt.topic.question}"
)
private
String
questionTopic
;
// @Value("${spring.mqtt.completionTimeout}")
// @Value("${spring.mqtt.completionTimeout}")
// private int completionTimeout;
// private int completionTimeout;
...
@@ -88,7 +92,7 @@ public class CcsMqttReceiveConfig {
...
@@ -88,7 +92,7 @@ public class CcsMqttReceiveConfig {
//配置client,监听的topic
//配置client,监听的topic
@Bean
@Bean
public
MessageProducer
inbound
()
{
public
MessageProducer
inbound
()
{
adapter
=
new
MqttPahoMessageDrivenChannelAdapter
(
clientId
,
mqttPahoClientFactory
(),
default
Topic
);
adapter
=
new
MqttPahoMessageDrivenChannelAdapter
(
clientId
,
mqttPahoClientFactory
(),
alarmTopic
,
question
Topic
);
// adapter.setCompletionTimeout(completionTimeout);
// adapter.setCompletionTimeout(completionTimeout);
adapter
.
setConverter
(
new
DefaultPahoMessageConverter
());
adapter
.
setConverter
(
new
DefaultPahoMessageConverter
());
adapter
.
setQos
(
0
);
adapter
.
setQos
(
0
);
...
@@ -103,13 +107,11 @@ public class CcsMqttReceiveConfig {
...
@@ -103,13 +107,11 @@ public class CcsMqttReceiveConfig {
return
message
->
{
return
message
->
{
String
topic
=
message
.
getHeaders
().
get
(
"mqtt_receivedTopic"
).
toString
();
String
topic
=
message
.
getHeaders
().
get
(
"mqtt_receivedTopic"
).
toString
();
String
msg
=
message
.
getPayload
().
toString
();
String
msg
=
message
.
getPayload
().
toString
();
// int endIndex = topic.lastIndexOf("/");
if
(
alarmTopic
.
equals
(
topic
))
{
// if (endIndex > 0 && StringUtil.isNotEmpty(String.valueOf(message))) {
mqttReceiveService
.
handlerMqttAlarmMessage
(
topic
,
msg
);
// String dataType = topic.substring(endIndex + 1);
}
else
if
(
questionTopic
.
equals
(
topic
))
{
// if (dataType.equals("property") && StringUtil.isNotEmpty(msg)) {
mqttReceiveService
.
handlerMqttQuestionMessage
(
topic
,
msg
);
mqttReceiveService
.
handlerMqttIncrementMessage
(
topic
,
msg
);
}
// }
// }
};
};
}
}
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-ccs-biz/src/main/java/com/yeejoin/amos/boot/module/ccs/biz/controller/FireStationInfoController.java
View file @
d89ec3c2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ccs
.
biz
.
controller
;
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ccs
.
biz
.
controller
;
import
cn.hutool.core.date.DatePattern
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.module.ccs.api.dto.FireStationInfoDto
;
import
com.yeejoin.amos.boot.module.ccs.api.dto.FireStationInfoDto
;
import
com.yeejoin.amos.boot.module.ccs.api.enums.StationOrderByTypeEnum
;
import
com.yeejoin.amos.boot.module.ccs.api.enums.StationOrderByTypeEnum
;
...
@@ -15,6 +16,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseHelper;
...
@@ -15,6 +16,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.Optional
;
/**
/**
...
@@ -50,4 +52,57 @@ public class FireStationInfoController extends BaseController {
...
@@ -50,4 +52,57 @@ public class FireStationInfoController extends BaseController {
public
ResponseModel
getOne
(
@PathVariable
String
stationCode
)
{
public
ResponseModel
getOne
(
@PathVariable
String
stationCode
)
{
return
ResponseHelper
.
buildResponse
(
fireStationInfoServiceImpl
.
getOneByCode
(
stationCode
));
return
ResponseHelper
.
buildResponse
(
fireStationInfoServiceImpl
.
getOneByCode
(
stationCode
));
}
}
/**
* 日常动态左侧警情统计top10
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"日常动态左侧警情统计top10"
,
notes
=
"日常动态左侧警情统计top10"
)
@GetMapping
(
value
=
"/getStationSafetyListByCode"
)
public
ResponseModel
<
List
<
FireStationInfoDto
>>
stationSafetyList
(
@ApiParam
(
value
=
"换流站编码"
)
@RequestParam
(
required
=
false
)
String
stationCode
,
@ApiParam
(
value
=
"数量"
)
@RequestParam
(
required
=
true
)
Integer
top
)
{
return
ResponseHelper
.
buildResponse
(
fireStationInfoServiceImpl
.
queryStationAlarmListByCode
(
stationCode
,
top
));
}
/**
* 日常动态左侧警情统计top10
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"中间上部分告警数量统计"
,
notes
=
"中间上部分告警数量统计"
)
@GetMapping
(
value
=
"/getAlarmNumByDate"
)
public
ResponseModel
<
Map
<
String
,
Integer
>>
getAlarmNumByDate
(
@ApiParam
(
value
=
"换流站编码"
)
@RequestParam
(
required
=
false
)
String
stationCode
)
{
return
ResponseHelper
.
buildResponse
(
fireStationInfoServiceImpl
.
getAlarmNumByDate
(
stationCode
));
}
/**
* 日常动态左侧警情统计top10
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"换流站24小时警情数量"
,
notes
=
"换流站24小时警情数量"
)
@GetMapping
(
value
=
"/getAlarmNumByDateTimePeriod"
)
public
ResponseModel
<
Map
<
String
,
List
<
String
>>>
getAlarmNumByDateTimePeriod
(
@ApiParam
(
value
=
"换流站编码"
)
@RequestParam
(
required
=
false
)
String
stationCode
,
@ApiParam
(
value
=
"开始时间,格式:"
+
DatePattern
.
NORM_DATETIME_PATTERN
,
required
=
true
)
@RequestParam
(
required
=
true
)
String
beginDateTime
,
@ApiParam
(
value
=
"结束时间,格式:"
+
DatePattern
.
NORM_DATETIME_PATTERN
,
required
=
true
)
@RequestParam
(
required
=
true
)
String
endDateTime
)
{
return
ResponseHelper
.
buildResponse
(
fireStationInfoServiceImpl
.
getAlarmNumByDateTimePeriod
(
stationCode
,
beginDateTime
,
endDateTime
));
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"查询指定时间段的告警趋势"
,
notes
=
"查询指定时间段的告警趋势"
)
@GetMapping
(
value
=
"/getAlarmTrendByDatePeriod"
)
public
ResponseModel
getAlarmTrendByDatePeriod
(
@ApiParam
(
value
=
"开始日期,格式:"
+
DatePattern
.
NORM_DATE_PATTERN
,
required
=
true
)
@RequestParam
(
value
=
"beginDate"
)
String
beginDate
,
@ApiParam
(
value
=
"结束日期,格式:"
+
DatePattern
.
NORM_DATE_PATTERN
,
required
=
true
)
@RequestParam
(
value
=
"endDate"
)
String
endDate
,
@ApiParam
(
value
=
"换流站编号"
)
@RequestParam
(
required
=
false
)
String
stationCode
)
{
return
ResponseHelper
.
buildResponse
(
fireStationInfoServiceImpl
.
getAlarmTrendByDatePeriod
(
stationCode
,
beginDate
,
endDate
));
}
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-ccs-biz/src/main/java/com/yeejoin/amos/boot/module/ccs/biz/service/impl/FireStationInfoServiceImpl.java
View file @
d89ec3c2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ccs
.
biz
.
service
.
impl
;
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ccs
.
biz
.
service
.
impl
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.date.DateTime
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.yeejoin.amos.boot.module.ccs.api.dto.FireStationInfoDto
;
import
com.yeejoin.amos.boot.module.ccs.api.dto.FireStationInfoDto
;
import
com.yeejoin.amos.boot.module.ccs.api.entity.FireStationInfo
;
import
com.yeejoin.amos.boot.module.ccs.api.entity.FireStationInfo
;
import
com.yeejoin.amos.boot.module.ccs.api.enums.StationOrderByTypeEnum
;
import
com.yeejoin.amos.boot.module.ccs.api.enums.StationOrderByTypeEnum
;
import
com.yeejoin.amos.boot.module.ccs.api.mapper.FireStationInfoMapper
;
import
com.yeejoin.amos.boot.module.ccs.api.mapper.FireStationInfoMapper
;
import
com.yeejoin.amos.boot.module.ccs.api.service.IFireStationInfoService
;
import
com.yeejoin.amos.boot.module.ccs.api.service.IFireStationInfoService
;
import
com.yeejoin.amos.boot.module.ccs.api.vo.AlarmCountVO
;
import
com.yeejoin.amos.boot.module.ccs.api.vo.DateAlarmCountVO
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
import
java.util.
List
;
import
java.util.
*
;
import
java.util.
Optional
;
import
java.util.
stream.Collectors
;
/**
/**
* 站端信息表服务实现类
* 站端信息表服务实现类
...
@@ -43,4 +51,84 @@ public class FireStationInfoServiceImpl extends BaseService<FireStationInfoDto,
...
@@ -43,4 +51,84 @@ public class FireStationInfoServiceImpl extends BaseService<FireStationInfoDto,
}
}
return
dtos
.
iterator
().
next
();
return
dtos
.
iterator
().
next
();
}
}
public
List
<
FireStationInfoDto
>
queryStationAlarmListByCode
(
String
stationCode
,
Integer
top
)
{
List
<
FireStationInfoDto
>
fireStationInfoList
=
this
.
baseMapper
.
queryStationAlarmListByCode
(
stationCode
);
List
<
AlarmCountVO
>
alarmCountVOS
=
this
.
baseMapper
.
queryAlarmCountByCode
();
Map
<
String
,
AlarmCountVO
>
collect
=
alarmCountVOS
.
stream
().
collect
(
Collectors
.
toMap
(
AlarmCountVO:
:
getStationCode
,
t
->
t
));
fireStationInfoList
.
forEach
(
item
->
{
if
(
collect
.
containsKey
(
item
.
getCode
()))
{
item
.
setAlarmNum
(
collect
.
get
(
item
.
getCode
()).
getAlarmNum
());
item
.
setConfirmTrueNum
(
collect
.
get
(
item
.
getCode
()).
getConfirmTrueNum
());
item
.
setConfirmFalseNum
(
collect
.
get
(
item
.
getCode
()).
getConfirmFalseNum
());
}
});
List
<
FireStationInfoDto
>
finalVoList
=
fireStationInfoList
.
stream
().
skip
(
0
).
limit
(
top
).
sorted
(
Comparator
.
comparing
(
FireStationInfoDto:
:
getAlarmNum
).
reversed
()).
collect
(
Collectors
.
toList
());
return
finalVoList
;
}
public
Map
<
String
,
Integer
>
getAlarmNumByDate
(
String
stationCode
)
{
Date
date
=
DateUtil
.
date
();
String
year
=
DateUtil
.
format
(
date
,
"YYYY"
);
String
currentMonth
=
DateUtil
.
format
(
date
,
DatePattern
.
NORM_MONTH_PATTERN
);
String
yesterday
=
DateUtil
.
format
(
DateUtil
.
offsetDay
(
date
,
-
1
),
DatePattern
.
NORM_DATE_PATTERN
);
Integer
todayNum
=
this
.
baseMapper
.
queryAlarmCountByDateAndCode
(
stationCode
,
DateUtil
.
now
());
Integer
currentYearNum
=
this
.
baseMapper
.
queryAlarmCountByDateAndCode
(
stationCode
,
year
);
Integer
currentMonthNum
=
this
.
baseMapper
.
queryAlarmCountByDateAndCode
(
stationCode
,
currentMonth
);
Integer
yesterdayNum
=
this
.
baseMapper
.
queryAlarmCountByDateAndCode
(
stationCode
,
yesterday
);
HashMap
<
String
,
Integer
>
resultMap
=
new
HashMap
<>();
resultMap
.
put
(
"todayNum"
,
todayNum
);
resultMap
.
put
(
"currentYearNum"
,
currentYearNum
);
resultMap
.
put
(
"currentMonthNum"
,
currentMonthNum
);
resultMap
.
put
(
"yesterdayNum"
,
yesterdayNum
);
return
resultMap
;
}
public
Map
<
String
,
List
<
String
>>
getAlarmNumByDateTimePeriod
(
String
stationCode
,
String
beginDateTime
,
String
endDateTime
)
{
HashMap
<
String
,
List
<
String
>>
resultMap
=
new
HashMap
<>();
if
(
StrUtil
.
isEmpty
(
beginDateTime
)
||
StrUtil
.
isEmpty
(
endDateTime
))
{
throw
new
BadRequest
(
"开始时间和结束时间不能为空"
);
}
if
(
StrUtil
.
isEmpty
(
stationCode
))
{
List
<
String
>
stationNameList
=
new
ArrayList
<>();
List
<
String
>
alarmNumList
=
new
ArrayList
<>();
List
<
FireStationInfoDto
>
fireStationInfoList
=
this
.
baseMapper
.
queryStationAlarmListByCode
(
stationCode
);
List
<
AlarmCountVO
>
alarmCountVOS
=
this
.
baseMapper
.
queryAllAlarmCountByCode
(
beginDateTime
,
endDateTime
);
Map
<
String
,
AlarmCountVO
>
collect
=
alarmCountVOS
.
stream
().
collect
(
Collectors
.
toMap
(
AlarmCountVO:
:
getStationCode
,
t
->
t
));
fireStationInfoList
.
forEach
(
item
->
{
if
(
collect
.
containsKey
(
item
.
getCode
()))
{
item
.
setAlarmNum
(
collect
.
get
(
item
.
getCode
()).
getAlarmNum
());
}
stationNameList
.
add
(
item
.
getName
());
alarmNumList
.
add
(
String
.
valueOf
(
item
.
getAlarmNum
()));
});
resultMap
.
put
(
"stationNames"
,
stationNameList
);
resultMap
.
put
(
"alarmNums"
,
alarmNumList
);
}
else
{
List
<
String
>
dateList
=
new
ArrayList
<>();
List
<
String
>
alarmNumList
=
new
ArrayList
<>();
List
<
DateAlarmCountVO
>
alarmNumByDateTimePeriodByStationCode
=
this
.
baseMapper
.
getAlarmNumByDateTimePeriodByStationCode
(
stationCode
,
beginDateTime
,
endDateTime
);
alarmNumByDateTimePeriodByStationCode
.
forEach
(
item
->
{
dateList
.
add
(
item
.
getDate
());
alarmNumList
.
add
(
item
.
getAlarmNums
());
});
resultMap
.
put
(
"date"
,
dateList
);
resultMap
.
put
(
"alarmNum"
,
alarmNumList
);
}
return
resultMap
;
}
public
Map
<
String
,
List
<
String
>>
getAlarmTrendByDatePeriod
(
String
stationCode
,
String
beginDate
,
String
endDate
)
{
HashMap
<
String
,
List
<
String
>>
resultMap
=
new
HashMap
<>();
List
<
String
>
dateList
=
new
ArrayList
<>();
List
<
String
>
alarmNumList
=
new
ArrayList
<>();
List
<
DateAlarmCountVO
>
alarmTrendByDatePeriod
=
this
.
baseMapper
.
getAlarmTrendByDatePeriod
(
stationCode
,
beginDate
,
endDate
);
alarmTrendByDatePeriod
.
forEach
(
item
->
{
dateList
.
add
(
item
.
getDate
());
alarmNumList
.
add
(
item
.
getAlarmNums
());
});
resultMap
.
put
(
"date"
,
dateList
);
resultMap
.
put
(
"alarmNum"
,
alarmNumList
);
return
resultMap
;
}
}
}
\ No newline at end of file
amos-boot-module/amos-boot-module-biz/amos-boot-module-ccs-biz/src/main/java/com/yeejoin/amos/boot/module/ccs/biz/service/impl/MqttReceiveServiceImpl.java
View file @
d89ec3c2
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ccs
.
biz
.
service
.
impl
;
package
com
.
yeejoin
.
amos
.
boot
.
module
.
ccs
.
biz
.
service
.
impl
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.json.JSONUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.
alibaba.fastjson.JSONArray
;
import
com.
baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.
github.xiaoymin.knife4j.core.util.StrUtil
;
import
com.
yeejoin.amos.boot.module.ccs.api.dto.FireStationInfoDto
;
import
com.yeejoin.amos.boot.module.ccs.api.entity.FireEquipmentSignalLog
;
import
com.yeejoin.amos.boot.module.ccs.api.entity.FireEquipmentSignalLog
;
import
com.yeejoin.amos.boot.module.ccs.api.service.IFireStationInfoService
;
import
com.yeejoin.amos.boot.module.ccs.api.service.MqttReceiveService
;
import
com.yeejoin.amos.boot.module.ccs.api.service.MqttReceiveService
;
import
com.yeejoin.amos.boot.module.ccs.api.vo.AlarmEventLogVO
;
import
com.yeejoin.amos.boot.module.ccs.api.vo.QuestionVO
;
import
com.yeejoin.amos.boot.module.ccs.api.vo.RawDataVO
;
import
com.yeejoin.amos.boot.module.ccs.api.vo.ReceiveDataVO
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
@Slf4j
@Slf4j
@Service
@Service
public
class
MqttReceiveServiceImpl
implements
MqttReceiveService
{
public
class
MqttReceiveServiceImpl
implements
MqttReceiveService
{
private
static
Boolean
bool
=
Boolean
.
FALSE
;
private
static
Boolean
bool
=
Boolean
.
FALSE
;
@Autowired
@Autowired
private
FireEquipmentSignalLogServiceImpl
fireEquipmentSignalLogServiceImpl
;
private
FireEquipmentSignalLogServiceImpl
fireEquipmentSignalLogServiceImpl
;
@Autowired
//TODO 逻辑待补充
private
IFireStationInfoService
fireStationInfoService
;
@Override
public
void
handlerMqttIncrementMessage
(
String
topic
,
String
message
)
{
List
<
Map
<
String
,
String
>>
list
=
new
ArrayList
<>();
//TODO 逻辑待补充
try
{
@Override
list
=
(
List
<
Map
<
String
,
String
>>)
JSONArray
.
parseObject
(
message
,
List
.
class
);
public
void
handlerMqttAlarmMessage
(
String
topic
,
String
message
)
{
// 将JSON字符串转换成实体类型
Date
now
=
DateUtil
.
date
();
// List<FireEquipmentSignalLog> log = JSONUtil.toBean(message, FireEquipmentSignalLog.class);
ReceiveDataVO
receiveData
=
new
ReceiveDataVO
();
}
catch
(
Exception
e
)
{
try
{
log
.
error
(
"解析失败"
);
// 将JSON字符串转换成实体类型
throw
new
BadRequest
(
"解析失败"
);
receiveData
=
JSONUtil
.
toBean
(
message
,
ReceiveDataVO
.
class
);
}
}
catch
(
Exception
e
)
{
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
log
.
error
(
"接受消息解析失败,{}"
,
e
.
getMessage
());
List
<
FireEquipmentSignalLog
>
doList
=
new
ArrayList
<>();
throw
new
BadRequest
(
"接受消息解析失败"
);
for
(
Map
<
String
,
String
>
stringStringMap
:
list
)
{
}
FireEquipmentSignalLog
fireEquipmentSignalLog
=
new
FireEquipmentSignalLog
();
if
(
ObjectUtil
.
isNotEmpty
(
receiveData
)
&&
StrUtil
.
isNotEmpty
(
receiveData
.
getActive
())
&&
if
(
stringStringMap
.
containsKey
(
"objcect_type"
)
&&
StrUtil
.
isNotBlank
(
stringStringMap
.
get
(
"objcect_type"
)))
{
"insert"
.
equals
(
receiveData
.
getActive
())
&&
ObjectUtil
.
isNotEmpty
(
receiveData
.
getAlarmEventLog
()))
{
if
(!
stringStringMap
.
get
(
"objcect_type"
).
equals
(
"EQUIP"
))
{
AlarmEventLogVO
alarmEventLog
=
receiveData
.
getAlarmEventLog
();
continue
;
}
if
(
StrUtil
.
isNotEmpty
(
alarmEventLog
.
getObjcectType
())
&&
"equip"
.
equals
(
alarmEventLog
.
getObjcectType
())
&&
}
StrUtil
.
isNotEmpty
(
alarmEventLog
.
getObjcectIndexType
())
&&
"fireAlarm"
.
equals
(
alarmEventLog
.
getObjcectIndexType
()))
{
//当为告警时新增数据
FireEquipmentSignalLog
fireEquipmentSignalLog
=
new
FireEquipmentSignalLog
();
doList
.
add
(
fireEquipmentSignalLog
);
fireEquipmentSignalLog
.
setStationName
(
alarmEventLog
.
getBizOrgName
());
//当为消除告警时修改原有数据 (根据设备编码、)
fireEquipmentSignalLog
.
setStationCode
(
alarmEventLog
.
getOrgCode
());
}
fireEquipmentSignalLog
.
setFireEquipmentMrid
(
alarmEventLog
.
getObjcectCode
());
if
(
CollectionUtils
.
isNotEmpty
(
doList
))
{
fireEquipmentSignalLog
.
setFireEquipmentName
(
alarmEventLog
.
getObjcectName
());
fireEquipmentSignalLogServiceImpl
.
saveBatchLog
(
doList
);
fireEquipmentSignalLog
.
setFireEquipmentIndexName
(
alarmEventLog
.
getObjcectIndexName
());
}
fireEquipmentSignalLog
.
setFireEquipmentIndexKey
(
alarmEventLog
.
getObjcectIndexKey
());
}
fireEquipmentSignalLog
.
setFireBuildingMrid
(
alarmEventLog
.
getBuildingCode
());
log
.
info
(
String
.
format
(
"收到mqtt消息:%s"
,
message
));
fireEquipmentSignalLog
.
setSignalType
(
alarmEventLog
.
getObjcectIndexType
());
}
fireEquipmentSignalLog
.
setSignalTypeName
(
"火灾告警"
);
fireEquipmentSignalLog
.
setAlarmReason
(
alarmEventLog
.
getQuestionReason
());
fireEquipmentSignalLog
.
setConfirmState
(
"0"
);
fireEquipmentSignalLog
.
setConfirmDate
(
DateUtil
.
parse
(
alarmEventLog
.
getAlarmTime
()));
fireEquipmentSignalLog
.
setSystemMrids
(
alarmEventLog
.
getSystemCode
());
fireEquipmentSignalLog
.
setSystemNames
(
alarmEventLog
.
getSystemName
());
fireEquipmentSignalLog
.
setProtectedObjectMrid
(
alarmEventLog
.
getProtectedObjectCode
());
fireEquipmentSignalLog
.
setProtectedObjectName
(
alarmEventLog
.
getProtectedObjectName
());
fireEquipmentSignalLog
.
setIsAlarm
(
"1"
.
equals
(
alarmEventLog
.
getRecoveryStatus
()));
fireEquipmentSignalLog
.
setCreateDate
(
now
);
fireEquipmentSignalLog
.
setSignalReportDate
(
DateUtil
.
today
());
fireEquipmentSignalLog
.
setLocation
(
alarmEventLog
.
getBuildingName
());
fireEquipmentSignalLog
.
setSynDate
(
now
);
FireStationInfoDto
oneByCode
=
fireStationInfoService
.
getOneByCode
(
fireEquipmentSignalLog
.
getStationCode
());
fireEquipmentSignalLog
.
setLng
(
oneByCode
.
getLng
());
fireEquipmentSignalLog
.
setLat
(
oneByCode
.
getLat
());
fireEquipmentSignalLogServiceImpl
.
save
(
fireEquipmentSignalLog
);
}
}
else
if
(
ObjectUtil
.
isNotEmpty
(
receiveData
)
&&
StrUtil
.
isNotEmpty
(
receiveData
.
getActive
())
&&
"update"
.
equals
(
receiveData
.
getActive
())
&&
ObjectUtil
.
isNotEmpty
(
receiveData
.
getRawData
())
&&
StrUtil
.
isNotEmpty
(
receiveData
.
getRawData
().
getEquipmentSpecificIotCode
()))
{
RawDataVO
rawData
=
receiveData
.
getRawData
();
FireEquipmentSignalLog
fireEquipmentSignalLog
=
new
FireEquipmentSignalLog
();
fireEquipmentSignalLog
.
setIsAlarm
(
false
);
UpdateWrapper
<
FireEquipmentSignalLog
>
updateWrapper
=
new
UpdateWrapper
<>();
updateWrapper
.
lambda
().
eq
(
FireEquipmentSignalLog:
:
getFireEquipmentMrid
,
rawData
.
getEquipmentSpecificCode
())
.
eq
(
FireEquipmentSignalLog:
:
getFireEquipmentIndexKey
,
rawData
.
getEquipmentIndexKey
());
fireEquipmentSignalLogServiceImpl
.
update
(
fireEquipmentSignalLog
,
updateWrapper
);
}
log
.
info
(
String
.
format
(
"收到mqtt(警情)消息并处理完成:%s"
,
message
));
}
@Override
public
void
handlerMqttQuestionMessage
(
String
topic
,
String
message
)
{
Date
now
=
DateUtil
.
date
();
QuestionVO
questionVO
=
new
QuestionVO
();
try
{
// 将JSON字符串转换成实体类型
questionVO
=
JSONUtil
.
toBean
(
message
,
QuestionVO
.
class
);
}
catch
(
Exception
e
)
{
log
.
error
(
"接受消息解析失败,{}"
,
e
.
getMessage
());
throw
new
BadRequest
(
"接受消息解析失败"
);
}
if
(
ObjectUtil
.
isNotEmpty
(
questionVO
)
&&
CollUtil
.
isNotEmpty
(
questionVO
.
getAlarmEventLog
()))
{
questionVO
.
getAlarmEventLog
().
forEach
(
item
->
{
FireEquipmentSignalLog
fireEquipmentSignalLog
=
new
FireEquipmentSignalLog
();
fireEquipmentSignalLog
.
setConfirmState
(
item
.
getStatus
());
UpdateWrapper
<
FireEquipmentSignalLog
>
updateWrapper
=
new
UpdateWrapper
<>();
updateWrapper
.
lambda
().
eq
(
FireEquipmentSignalLog:
:
getSignalId
,
item
.
getSignalId
());
fireEquipmentSignalLogServiceImpl
.
update
(
fireEquipmentSignalLog
,
updateWrapper
);
});
}
log
.
info
(
String
.
format
(
"收到mqtt(问题下发消息推送)消息并处理完成:%s"
,
message
));
}
}
}
amos-boot-system-ccs/src/main/resources/application-dev.properties
View file @
d89ec3c2
...
@@ -20,5 +20,6 @@ emqx.password=public
...
@@ -20,5 +20,6 @@ emqx.password=public
#mqtt.scene.host=mqtt://172.16.10.201:18083/mqtt
#mqtt.scene.host=mqtt://172.16.10.201:18083/mqtt
#mqtt.client.product.id=mqtt
#mqtt.client.product.id=mqtt
mqtt.topic
=
topic_mqtt
mqtt.topic.alarm
=
idx/eventlog
mqtt.topic.question
=
idx/eventlog/question
#
spring.mqtt.completionTimeout
=
3000
#
spring.mqtt.completionTimeout
=
3000
\ No newline at end of file
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