feat: 增加mqtt接收RequestUpload并处理发送SetAcceptCameraPhoto

dev
huangfeng 1 month ago
parent 6fb6dedcb2
commit bdacc72b22

@ -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;
}

@ -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;
}

@ -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<Device> devices;

@ -0,0 +1,8 @@
package com.shxy.xymanager_common.model.mqtt;
import lombok.Data;
@Data
public class PlatformSettingParameterLssueService {
SetAcceptCameraPhoto setAcceptCameraPhoto;
}

@ -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;
}

@ -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);

@ -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);
}
}

@ -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;

@ -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;

@ -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<OneService> listS = new ArrayList<>();
listS.add(service);
Device device = new Device();
device.setServices(listS);
device.setDeviceId(deviceId);
List<Device> listD = new ArrayList<>();
listD.add(device);
MessageUpload upload = new MessageUpload();
upload.setDevices(listD);
return upload;
}
}

@ -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;

@ -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;

@ -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;
Loading…
Cancel
Save