diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/CommonData.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/CommonData.java index e1e547b..f7619a1 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/CommonData.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/CommonData.java @@ -7,6 +7,7 @@ import lombok.Data; @Data public class CommonData { DeviceUploadImageDataEvent deviceUploadImageDataEvent; + DeviceRequestUploadImageDataEvent deviceRequestUploadImageDataEvent; HeartbeatMessageUpload heartbeatMessageUpload; PowerOnContactMessage powerOnContactMessage; String equipmentIdentity; @@ -48,4 +49,5 @@ public class CommonData { Float signal; Float batteryVoltage; Float remainingBatteryPower; + PlatformSettingParameterLssueService platformSettingParameterLssueService; } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/DeviceRequestUploadImageDataEvent.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/DeviceRequestUploadImageDataEvent.java new file mode 100644 index 0000000..519a5a4 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/DeviceRequestUploadImageDataEvent.java @@ -0,0 +1,13 @@ +package com.shxy.xymanager_common.model.mqtt; + +import lombok.Data; + +@Data +public class DeviceRequestUploadImageDataEvent { + Integer type; + Integer UploadMode; + String time; + Integer channelNumber; + Integer presetPosition; + Integer packageNumber; +} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/MessageUpload.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/MessageUpload.java index cb7ee8a..c227c19 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/MessageUpload.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/MessageUpload.java @@ -1,9 +1,11 @@ package com.shxy.xymanager_common.model.mqtt; +import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Data; import java.util.List; +@JsonInclude(JsonInclude.Include.NON_NULL) @Data public class MessageUpload { List devices; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/PlatformSettingParameterLssueService.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/PlatformSettingParameterLssueService.java new file mode 100644 index 0000000..01a0879 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/PlatformSettingParameterLssueService.java @@ -0,0 +1,8 @@ +package com.shxy.xymanager_common.model.mqtt; + +import lombok.Data; + +@Data +public class PlatformSettingParameterLssueService { + SetAcceptCameraPhoto setAcceptCameraPhoto; +} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/SetAcceptCameraPhoto.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/SetAcceptCameraPhoto.java new file mode 100644 index 0000000..cb5ff6c --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/SetAcceptCameraPhoto.java @@ -0,0 +1,10 @@ +package com.shxy.xymanager_common.model.mqtt; + +import lombok.Data; + +@Data +public class SetAcceptCameraPhoto { + Integer channel; + Integer preset_no; + String httpUrl; +} diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/DataMessageListener.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/DataMessageListener.java index 36f63e0..ebd0bcc 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/DataMessageListener.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/DataMessageListener.java @@ -3,6 +3,7 @@ package com.shxy.xymanager_service.mqtt; import com.shxy.xymanager_common.exception.ApiException; import com.shxy.xymanager_common.model.mqtt.*; import com.shxy.xymanager_common.util.JSONUtil; +import com.shxy.xymanager_service.mqtt.handler.*; import lombok.extern.slf4j.Slf4j; import org.eclipse.paho.client.mqttv3.IMqttMessageListener; import org.eclipse.paho.client.mqttv3.MqttMessage; @@ -27,6 +28,8 @@ public class DataMessageListener implements IMqttMessageListener { GPSHandler gpsHandler; @Resource StatusHandler statusHandler; + @Resource + MqttPublisherService mqttPublisherService; @Override public void messageArrived(String topic, MqttMessage message) throws Exception { @@ -71,6 +74,10 @@ public class DataMessageListener implements IMqttMessageListener { if (data.getDeviceUploadImageDataEvent() != null) { photoHandler.handleUpload(data.getDeviceUploadImageDataEvent(), deviceId); } + if (data.getDeviceRequestUploadImageDataEvent() != null) { + MessageUpload upload = photoHandler.allowUpload(data.getDeviceRequestUploadImageDataEvent(), deviceId); + mqttPublisherService.publish(upload); + } break; case "WeatherMonitoring": weatherHandler.handleUpload(data, deviceId); diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/MqttPublisherService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/MqttPublisherService.java index e29e4b2..c950721 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/MqttPublisherService.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/MqttPublisherService.java @@ -1,6 +1,7 @@ package com.shxy.xymanager_service.mqtt; import com.shxy.xymanager_common.model.mqtt.MessageSend; +import com.shxy.xymanager_common.model.mqtt.MessageUpload; import com.shxy.xymanager_common.util.JSONUtil; import lombok.extern.slf4j.Slf4j; import org.eclipse.paho.client.mqttv3.MqttClient; @@ -38,5 +39,15 @@ public class MqttPublisherService { log.info("mqtt发送消息:" + json); mqttClient.publish(cmdtopic, message); } + + @Async + public void publish(MessageUpload msg) throws Exception { + String json = JSONUtil.object2Json(msg); + MqttMessage message = new MqttMessage(json.getBytes()); + message.setQos(1); + message.setRetained(true); + log.info("mqtt发送消息:" + json); + mqttClient.publish(cmdtopic, message); + } } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/GPSHandler.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/handler/GPSHandler.java similarity index 96% rename from xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/GPSHandler.java rename to xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/handler/GPSHandler.java index b848ac0..f7b917b 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/GPSHandler.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/handler/GPSHandler.java @@ -1,4 +1,4 @@ -package com.shxy.xymanager_service.mqtt; +package com.shxy.xymanager_service.mqtt.handler; import com.shxy.xymanager_common.entity.TerminalPositions; import com.shxy.xymanager_common.entity.Terminals; diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/HeartbeatHandler.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/handler/HeartbeatHandler.java similarity index 96% rename from xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/HeartbeatHandler.java rename to xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/handler/HeartbeatHandler.java index ea7d760..62ce69c 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/HeartbeatHandler.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/handler/HeartbeatHandler.java @@ -1,4 +1,4 @@ -package com.shxy.xymanager_service.mqtt; +package com.shxy.xymanager_service.mqtt.handler; import com.shxy.xymanager_common.entity.TerminalStatus; import com.shxy.xymanager_common.entity.Terminals; diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/PhotoHandler.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/handler/PhotoHandler.java similarity index 75% rename from xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/PhotoHandler.java rename to xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/handler/PhotoHandler.java index 8b65ba5..f9860a9 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/PhotoHandler.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/handler/PhotoHandler.java @@ -1,9 +1,9 @@ -package com.shxy.xymanager_service.mqtt; +package com.shxy.xymanager_service.mqtt.handler; import com.shxy.xymanager_common.entity.TerminalPhoto; import com.shxy.xymanager_common.entity.Terminals; import com.shxy.xymanager_common.exception.ApiException; -import com.shxy.xymanager_common.model.mqtt.DeviceUploadImageDataEvent; +import com.shxy.xymanager_common.model.mqtt.*; import com.shxy.xymanager_common.util.DateUtil; import com.shxy.xymanager_dao.dao.TerminalPhotoDao; import com.shxy.xymanager_service.service.TerminalExtService; @@ -23,7 +23,9 @@ import java.io.IOException; import java.math.BigInteger; import java.nio.file.Files; import java.nio.file.Paths; +import java.util.ArrayList; import java.util.Date; +import java.util.List; @Service @Slf4j @@ -92,4 +94,28 @@ public class PhotoHandler { terminalPhotoDao.insert(record); } + + public MessageUpload allowUpload(DeviceRequestUploadImageDataEvent image, String deviceId) { + SetAcceptCameraPhoto item = new SetAcceptCameraPhoto(); + item.setChannel(image.getChannelNumber()); + item.setPreset_no(image.getPresetPosition()); + + PlatformSettingParameterLssueService issue = new PlatformSettingParameterLssueService(); + issue.setSetAcceptCameraPhoto(item); + CommonData data = new CommonData(); + data.setPlatformSettingParameterLssueService(issue); + OneService service = new OneService(); + service.setData(data); + service.setServiceId("PlatformSettingParameterLssueService"); + List listS = new ArrayList<>(); + listS.add(service); + Device device = new Device(); + device.setServices(listS); + device.setDeviceId(deviceId); + List listD = new ArrayList<>(); + listD.add(device); + MessageUpload upload = new MessageUpload(); + upload.setDevices(listD); + return upload; + } } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/PullHandler.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/handler/PullHandler.java similarity index 98% rename from xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/PullHandler.java rename to xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/handler/PullHandler.java index 90bd8f5..39c7dae 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/PullHandler.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/handler/PullHandler.java @@ -1,4 +1,4 @@ -package com.shxy.xymanager_service.mqtt; +package com.shxy.xymanager_service.mqtt.handler; import com.shxy.xymanager_common.entity.LeadPulls; import com.shxy.xymanager_common.entity.LeadPullsExample; diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/StatusHandler.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/handler/StatusHandler.java similarity index 96% rename from xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/StatusHandler.java rename to xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/handler/StatusHandler.java index c50c159..189a97f 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/StatusHandler.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/handler/StatusHandler.java @@ -1,4 +1,4 @@ -package com.shxy.xymanager_service.mqtt; +package com.shxy.xymanager_service.mqtt.handler; import com.shxy.xymanager_common.entity.TerminalStatus; import com.shxy.xymanager_common.entity.Terminals; diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/WeatherHandler.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/handler/WeatherHandler.java similarity index 98% rename from xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/WeatherHandler.java rename to xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/handler/WeatherHandler.java index 9c45d31..c902497 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/WeatherHandler.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/mqtt/handler/WeatherHandler.java @@ -1,4 +1,4 @@ -package com.shxy.xymanager_service.mqtt; +package com.shxy.xymanager_service.mqtt.handler; import com.shxy.xymanager_common.entity.Terminals; import com.shxy.xymanager_common.entity.Weathers;