From de7fe13f130e2ef6831101f21c9fc08f84cf57ed Mon Sep 17 00:00:00 2001
From: liwenxuan <1298531568@qq.com>
Date: Mon, 21 Apr 2025 16:56:30 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=AE=9A=E4=BD=8D=E4=B8=8A?=
=?UTF-8?q?=E4=BC=A0=E9=85=8D=E7=BD=AE=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81?=
=?UTF-8?q?=E7=BB=93=E6=9E=84,=E8=BF=98=E4=B8=8D=E8=83=BD=E7=9C=9F?=
=?UTF-8?q?=E6=AD=A3=E5=90=AF=E7=94=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 24 ++-
.../dataupload/DataUploadApplication.java | 4 +
.../mqtt}/enums/AlarmType.java | 4 +-
.../{ => jobhandler/mqtt}/enums/UserType.java | 4 +-
.../mqtt/job/user/domain/AlarmInfoHx.java | 73 ++++++++
.../mqtt/job/user/domain/AlarmInfoIot.java | 15 ++
.../mqtt/job/user/domain/AreaUserInfoHx.java | 54 ++++++
.../mqtt/job/user/domain/AreaUserInfoIot.java | 15 ++
.../mqtt/job/user/domain/DeviceInfoHx.java | 73 ++++++++
.../mqtt/job/user/domain/DeviceInfoIot.java | 15 ++
.../mqtt/job/user/domain/UserBaseInfo.java | 40 ++++
.../mqtt/job/user/domain/UserBaseInfoIot.java | 15 ++
.../user/jobhandler}/AlarmInfo2MqttJob.java | 40 ++--
.../jobhandler}/AreaPersonInfo2MqttJob.java | 18 +-
.../user/jobhandler}/DeviceInfo2MqttJob.java | 56 ++++--
.../jobhandler}/UserBaseInfo2MqttJob.java | 46 +++--
.../mqtt}/template/RestTemplateConfig.java | 2 +-
.../model/entity/rydw/AlarmInfoHx.java | 174 ------------------
.../model/entity/rydw/AlarmInfoIot.java | 29 ---
.../model/entity/rydw/AreaUserInfoHx.java | 139 --------------
.../model/entity/rydw/AreaUserInfoIot.java | 29 ---
.../model/entity/rydw/DeviceInfoHx.java | 125 -------------
.../model/entity/rydw/DeviceInfoIot.java | 29 ---
.../model/entity/rydw/UserBaseInfo.java | 101 ----------
.../model/entity/rydw/UserBaseInfoIot.java | 29 ---
.../hxjt/dataupload/mqtt/MqttCallback.java | 4 +-
.../com/hxjt/dataupload/mqtt/MqttClient.java | 41 +++--
.../com/hxjt/dataupload/mqtt/MqttConfig.java | 93 +---------
.../com/hxjt/dataupload/mqtt/RespObject.java | 36 ++--
src/main/resources/application-dev.yml | 12 ++
30 files changed, 487 insertions(+), 852 deletions(-)
rename src/main/java/com/hxjt/dataupload/{ => jobhandler/mqtt}/enums/AlarmType.java (89%)
rename src/main/java/com/hxjt/dataupload/{ => jobhandler/mqtt}/enums/UserType.java (84%)
create mode 100644 src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/AlarmInfoHx.java
create mode 100644 src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/AlarmInfoIot.java
create mode 100644 src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/AreaUserInfoHx.java
create mode 100644 src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/AreaUserInfoIot.java
create mode 100644 src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/DeviceInfoHx.java
create mode 100644 src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/DeviceInfoIot.java
create mode 100644 src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/UserBaseInfo.java
create mode 100644 src/main/java/com/hxjt/dataupload/jobhandler/mqtt/job/user/domain/UserBaseInfoIot.java
rename src/main/java/com/hxjt/dataupload/jobhandler/mqtt/{ => job/user/jobhandler}/AlarmInfo2MqttJob.java (80%)
rename src/main/java/com/hxjt/dataupload/jobhandler/mqtt/{ => job/user/jobhandler}/AreaPersonInfo2MqttJob.java (92%)
rename src/main/java/com/hxjt/dataupload/jobhandler/mqtt/{ => job/user/jobhandler}/DeviceInfo2MqttJob.java (51%)
rename src/main/java/com/hxjt/dataupload/jobhandler/mqtt/{ => job/user/jobhandler}/UserBaseInfo2MqttJob.java (80%)
rename src/main/java/com/hxjt/dataupload/{ => jobhandler/mqtt}/template/RestTemplateConfig.java (93%)
delete mode 100644 src/main/java/com/hxjt/dataupload/model/entity/rydw/AlarmInfoHx.java
delete mode 100644 src/main/java/com/hxjt/dataupload/model/entity/rydw/AlarmInfoIot.java
delete mode 100644 src/main/java/com/hxjt/dataupload/model/entity/rydw/AreaUserInfoHx.java
delete mode 100644 src/main/java/com/hxjt/dataupload/model/entity/rydw/AreaUserInfoIot.java
delete mode 100644 src/main/java/com/hxjt/dataupload/model/entity/rydw/DeviceInfoHx.java
delete mode 100644 src/main/java/com/hxjt/dataupload/model/entity/rydw/DeviceInfoIot.java
delete mode 100644 src/main/java/com/hxjt/dataupload/model/entity/rydw/UserBaseInfo.java
delete mode 100644 src/main/java/com/hxjt/dataupload/model/entity/rydw/UserBaseInfoIot.java
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