diff --git a/pom.xml b/pom.xml
index 2c23534..f3a0830 100644
--- a/pom.xml
+++ b/pom.xml
@@ -146,11 +146,33 @@
javase
3.3.3
-
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-integration
+
+
+
org.springframework.integration
spring-integration-mqtt
+ 5.5.5
+
+
+
org.springframework.boot
spring-boot-configuration-processor
diff --git a/src/main/java/com/hxjt/dataupload/DataUploadApplication.java b/src/main/java/com/hxjt/dataupload/DataUploadApplication.java
index da74b6d..b79fd3a 100644
--- a/src/main/java/com/hxjt/dataupload/DataUploadApplication.java
+++ b/src/main/java/com/hxjt/dataupload/DataUploadApplication.java
@@ -1,13 +1,17 @@
package com.hxjt.dataupload;
+import com.hxjt.dataupload.mqtt.MqttConfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
//@EnableScheduling
@EnableAsync
+@EnableConfigurationProperties(value = MqttConfig.class)
public class DataUploadApplication {
public static void main(String[] args) {
diff --git a/src/main/java/com/hxjt/dataupload/enums/AlarmType.java b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/enums/AlarmType.java
similarity index 89%
rename from src/main/java/com/hxjt/dataupload/enums/AlarmType.java
rename to src/main/java/com/hxjt/dataupload/jobhandler/mqtt/enums/AlarmType.java
index 6fc957d..9287a48 100644
--- a/src/main/java/com/hxjt/dataupload/enums/AlarmType.java
+++ b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/enums/AlarmType.java
@@ -1,4 +1,4 @@
-package com.hxjt.dataupload.enums;
+package com.hxjt.dataupload.jobhandler.mqtt.enums;
public enum AlarmType {
ALARM_1("1","禁区告警-区域"),
@@ -36,7 +36,7 @@ public enum AlarmType {
}
public static String getContentByCode(String code) {
- for (com.hxjt.dataupload.enums.AlarmType objEnum : com.hxjt.dataupload.enums.AlarmType.values()) {
+ for (AlarmType objEnum : AlarmType.values()) {
if(objEnum.getAlarmCode().equals(code)) {
return objEnum.getAlarmContent();
}
diff --git a/src/main/java/com/hxjt/dataupload/enums/UserType.java b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/enums/UserType.java
similarity index 84%
rename from src/main/java/com/hxjt/dataupload/enums/UserType.java
rename to src/main/java/com/hxjt/dataupload/jobhandler/mqtt/enums/UserType.java
index 570226c..649f61d 100644
--- a/src/main/java/com/hxjt/dataupload/enums/UserType.java
+++ b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/enums/UserType.java
@@ -1,4 +1,4 @@
-package com.hxjt.dataupload.enums;
+package com.hxjt.dataupload.jobhandler.mqtt.enums;
public enum UserType {
@@ -27,7 +27,7 @@ public enum UserType {
}
public static String getContentByCode(String code) {
- for (com.hxjt.dataupload.enums.UserType objEnum : com.hxjt.dataupload.enums.UserType.values()) {
+ for (UserType objEnum : UserType.values()) {
if(objEnum.getAlarmCode().equals(code)) {
return objEnum.getAlarmContent();
}
diff --git a/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/AlarmInfoHx.java b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/AlarmInfoHx.java
new file mode 100644
index 0000000..7f40986
--- /dev/null
+++ b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/AlarmInfoHx.java
@@ -0,0 +1,73 @@
+package com.hxjt.dataupload.jobhandler.mqtt.job.user.domain;
+
+import lombok.Data;
+
+@Data
+public class AlarmInfoHx {
+ /**
+ * 唯一标示
+ */
+ private String uniqueId;
+ /**
+ * 企业容器id
+ */
+ private String containerId ="ningyanghuagongchany";
+ /**
+ * 设备编号
+ */
+ private String deviceCode;
+ /**
+ * 告警类型
+ */
+ private String alarmType;
+ /**
+ * 告警内容
+ */
+ private String alarmContent;
+ /**
+ * 楼层ID
+ */
+ private String layerId;
+ /**
+ * 一级区域id
+ */
+ private String firAreaId = "HXGK0001";
+ /**
+ * 一级区域名称
+ */
+ private String firAreaName = "恒信高科";
+ /**
+ *
+ */
+ private String userOrgCode = "370910170";
+ /**
+ *
+ */
+ private String userOrgName = "山东恒信高科能源有限公司";
+ /**
+ * 二级区域id
+ */
+ private String secAreaId;
+ /**
+ * 二级区域名称
+ */
+ private String secAreaName;
+ /**
+ * 纬度
+ */
+ private Double x;
+ /**
+ * 经度
+ */
+ private Double y;
+ /**
+ * 定位时间:yyyy-MM-dd HH:mm:ss
+ */
+ private String dateTime;
+ /**
+ * 处理状态:0:待处理,1:已处理
+ */
+ private String dealStatus;
+
+
+}
diff --git a/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/AlarmInfoIot.java b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/AlarmInfoIot.java
new file mode 100644
index 0000000..57e6b2b
--- /dev/null
+++ b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/AlarmInfoIot.java
@@ -0,0 +1,15 @@
+package com.hxjt.dataupload.jobhandler.mqtt.job.user.domain;
+
+import lombok.Data;
+
+@Data
+public class AlarmInfoIot {
+ /**
+ * 数据类型
+ */
+ private String dataType ="alarm";
+ /**
+ * 人员信息
+ */
+ private AlarmInfoHx data;
+}
diff --git a/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/AreaUserInfoHx.java b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/AreaUserInfoHx.java
new file mode 100644
index 0000000..0d376fa
--- /dev/null
+++ b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/AreaUserInfoHx.java
@@ -0,0 +1,54 @@
+package com.hxjt.dataupload.jobhandler.mqtt.job.user.domain;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AreaUserInfoHx {
+ /**
+ * 唯一标示
+ */
+ private String uniqueId;
+ /**
+ * 企业容器id
+ */
+ private String containerId ="ningyanghuagongchany";
+ /**
+ * 单位唯一标志
+ */
+ private String orgCode;
+ /**
+ * 单位名称
+ */
+ private String orgName;
+ /**
+ * 区域唯一标志
+ */
+ private String areaId;
+ /**
+ * 区域名称
+ */
+ private String areaName;
+ /**
+ * 上级区域唯一标志
+ */
+ private String areaPid;
+ /**
+ * 上级区域名称
+ */
+ private String areaPname;
+ /**
+ * 区域内告警数量
+ */
+ private String alarmNum;
+ /**
+ * 区域内人员数量
+ */
+ private String personNum;
+ /**
+ * 区域内人员列表
+ */
+ private List personList;
+
+}
diff --git a/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/AreaUserInfoIot.java b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/AreaUserInfoIot.java
new file mode 100644
index 0000000..816a78b
--- /dev/null
+++ b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/AreaUserInfoIot.java
@@ -0,0 +1,15 @@
+package com.hxjt.dataupload.jobhandler.mqtt.job.user.domain;
+
+import lombok.Data;
+
+@Data
+public class AreaUserInfoIot {
+ /**
+ * 数据类型
+ */
+ private String dataType ="areaPersonAlarm";
+ /**
+ * 人员信息
+ */
+ private AreaUserInfoHx data;
+}
diff --git a/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/DeviceInfoHx.java b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/DeviceInfoHx.java
new file mode 100644
index 0000000..6988239
--- /dev/null
+++ b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/DeviceInfoHx.java
@@ -0,0 +1,73 @@
+package com.hxjt.dataupload.jobhandler.mqtt.job.user.domain;
+
+import lombok.Data;
+
+@Data
+public class DeviceInfoHx {
+ /**
+ * 企业容器id
+ */
+ private String containerId ="ningyanghuagongchany";
+ /**
+ * 设备编号
+ */
+ private String deviceCode;
+ /**
+ * 设备类型,0:蓝牙;1:GPS
+ */
+ private String deviceType = "0";
+ /**
+ * 企业编码
+ */
+ private String userOrgCode = "370910170";
+ /**
+ * 企业名称
+ */
+ private String userOrgName = "山东恒信高科能源有限公司";
+ /**
+ * 设备当前所在的一级区域 ID
+ */
+ private String firAreaId = "HXGK0001";
+ /**
+ * 设备当前所在的一级区域 name
+ */
+ private String firAreaName = "恒信高科";
+
+ /**
+ * 设备当前所在的二级区域 ID
+ */
+ private String secondAreaId;
+ /**
+ * 设备当前所在的二级区域 name
+ */
+ private String secondAreaName;
+ /**
+ * X
+ */
+ private Double x;
+ /**
+ * Y
+ */
+ private Double y;
+ /**
+ * 是否移动
+ */
+ private String move;
+ /**
+ * 定位时间
+ */
+ private String dateTime;
+ /**
+ * 电量状态
+ */
+ private String lowPowerStatus;
+ /**
+ * 电量
+ */
+ private String power;
+ /**
+ * 定位时间
+ */
+ private String uniqueId;
+
+}
diff --git a/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/DeviceInfoIot.java b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/DeviceInfoIot.java
new file mode 100644
index 0000000..ad02e31
--- /dev/null
+++ b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/DeviceInfoIot.java
@@ -0,0 +1,15 @@
+package com.hxjt.dataupload.jobhandler.mqtt.job.user.domain;
+
+import lombok.Data;
+
+@Data
+public class DeviceInfoIot {
+ /**
+ * 数据类型
+ */
+ private String dataType ="position";
+ /**
+ * 人员信息
+ */
+ private DeviceInfoHx data;
+}
diff --git a/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/UserBaseInfo.java b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/UserBaseInfo.java
new file mode 100644
index 0000000..507e7e1
--- /dev/null
+++ b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/UserBaseInfo.java
@@ -0,0 +1,40 @@
+package com.hxjt.dataupload.jobhandler.mqtt.job.user.domain;
+
+import lombok.Data;
+
+@Data
+public class UserBaseInfo {
+ /**
+ * 企业容器id
+ */
+ private String containerId ="ningyanghuagongchany";
+ /**
+ * 人员唯一标示
+ */
+ private String userCode;
+ /**
+ * 人员姓名
+ */
+ private String userName;
+ /**
+ * 联系电话
+ */
+ private String userPhone;
+ /**
+ * 人员类型
+ */
+ private String userType = "01";
+ /**
+ * 企业编码
+ */
+ private String userOrgCode = "370910170";
+ /**
+ * 企业名称
+ */
+ private String userOrgName = "山东恒信高科能源有限公司";
+ /**
+ * 绑定设备唯一编码
+ */
+ private String cardId;
+
+}
diff --git a/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/UserBaseInfoIot.java b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/UserBaseInfoIot.java
new file mode 100644
index 0000000..f9308a8
--- /dev/null
+++ b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/UserBaseInfoIot.java
@@ -0,0 +1,15 @@
+package com.hxjt.dataupload.jobhandler.mqtt.job.user.domain;
+
+import lombok.Data;
+
+@Data
+public class UserBaseInfoIot {
+ /**
+ * 数据类型
+ */
+ private String dataType ="baseInfo";
+ /**
+ * 人员信息
+ */
+ private UserBaseInfo data;
+}
diff --git a/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/AlarmInfo2MqttJob.java b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/jobhandler/AlarmInfo2MqttJob.java
similarity index 80%
rename from src/main/java/com/hxjt/dataupload/jobhandler/mqtt/AlarmInfo2MqttJob.java
rename to src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/jobhandler/AlarmInfo2MqttJob.java
index 129aff7..9bd8f37 100644
--- a/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/AlarmInfo2MqttJob.java
+++ b/src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/jobhandler/AlarmInfo2MqttJob.java
@@ -1,17 +1,14 @@
-package com.hxjt.dataupload.jobhandler.mqtt;
+package com.hxjt.dataupload.jobhandler.mqtt.job.user.jobhandler;
import cn.hutool.json.JSONUtil;
-import com.hxjt.dataupload.enums.AlarmType;
-import com.hxjt.dataupload.model.entity.rydw.AlarmInfoHx;
-import com.hxjt.dataupload.model.entity.rydw.AlarmInfoIot;
+import com.hxjt.dataupload.jobhandler.mqtt.enums.AlarmType;
+import com.hxjt.dataupload.jobhandler.mqtt.job.user.domain.AlarmInfoHx;
+import com.hxjt.dataupload.jobhandler.mqtt.job.user.domain.AlarmInfoIot;
import com.hxjt.dataupload.mqtt.MqttClient;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
-
-import groovy.util.logging.Log4j2;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
@@ -24,8 +21,15 @@ import java.util.List;
import java.util.Map;
import java.util.TimeZone;
+/*
+ * @description: 报警信息推送
+ * @author: ZhangRY
+ * @date: 2025/4/9 10:51
+ * @param: null
+ * @return: null
+ **/
@Component
-
+@Slf4j
public class AlarmInfo2MqttJob {
@Resource
@@ -36,7 +40,6 @@ public class AlarmInfo2MqttJob {
@Value("${user.token.containerId:}")
private String containerId;
-
@Resource
RestTemplate restTemplate;
@@ -46,10 +49,8 @@ public class AlarmInfo2MqttJob {
@Value("${alarm.real.code:}")
private String codeAlarm;
- public static final Logger log = LoggerFactory.getLogger(Log4j2.class);
-
@XxlJob("alarmInfo2MqttJobHandler")
- public void userBaseInfo2MqttJobHandler() throws Exception {
+ public void alarmInfo2MqttJobHandler() throws Exception {
try {
XxlJobHelper.log("Alarm info To Mqtt Job Handler Beginning.");
@@ -57,12 +58,13 @@ public class AlarmInfo2MqttJob {
Map body = forEntity.getBody();
List