diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalPhotoController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalPhotoController.java index 70fd284..5e0b4d5 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalPhotoController.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TerminalPhotoController.java @@ -56,7 +56,7 @@ public class TerminalPhotoController extends BaseController { @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) @RequestMapping("/takePic") @Log(title = "主动拍照", type = "查询") - public ResponseReult takePic(@Validated TerminalPhotoVo vo) { + public ResponseReult takePic(@Validated TerminalPhotoVo vo) throws Exception { ServiceBody serviceBody = terminalPhotoService.takePic(vo); if (serviceBody.getCode() == ServiceStatus.SUCCESS) { return ResponseReult.success(serviceBody.getData()); diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/MessageSend.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/MessageSend.java index ccb623a..da9fa40 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/MessageSend.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/mqtt/MessageSend.java @@ -10,4 +10,9 @@ public class MessageSend { String cmd; Paras paras; String msgType; + + public MessageSend() { + msgType = "cloudReq"; + paras = new Paras(); + } } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalPhotoVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalPhotoVo.java index dd73780..1d322dc 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalPhotoVo.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalPhotoVo.java @@ -27,5 +27,6 @@ public class TerminalPhotoVo { @ApiModelProperty(value = "图片类型") private Integer captureType; + Integer mqtt; } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/MqttServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/MqttServiceImpl.java new file mode 100644 index 0000000..8805710 --- /dev/null +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/MqttServiceImpl.java @@ -0,0 +1,34 @@ +package com.shxy.xymanager_service.impl; + +import com.shxy.xymanager_common.model.mqtt.MessageSend; +import com.shxy.xymanager_common.model.mqtt.Paras; +import com.shxy.xymanager_service.mqtt.MqttPublisherService; +import com.shxy.xymanager_service.service.MqttService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + + +@Service +@Slf4j +@Transactional(rollbackFor = Exception.class) +public class MqttServiceImpl implements MqttService { + + @Resource + MqttPublisherService mqttPublisherService; + + @Override + public void takePic(String cmdid, Integer channel, Integer preset, Integer type, Integer requestId) throws Exception { + MessageSend msg = new MessageSend(); + msg.setServiceId("PlatformControlDeviceCommandLssueService"); + msg.setDeviceId(cmdid); + msg.setCmd("manualCapturePicture"); + Paras paras = msg.getParas(); + paras.setChannelNumber(channel); + paras.setPresetPosition(preset); + paras.setPassword(""); + mqttPublisherService.publish(msg); + } +} diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java index 22f79c9..ef980e4 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java @@ -84,6 +84,8 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { NewCacheService newCacheService; @Resource TerminalExtService terminalExtService; + @Resource + MqttService mqttService; @Autowired RequestResultsDao requestResultsDao; @@ -676,7 +678,7 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { } @Override - public ServiceBody takePic(TerminalPhotoVo vo) { + public ServiceBody takePic(TerminalPhotoVo vo) throws Exception { TakePIcModel model = new TakePIcModel(); int requestId = 0; DateTime now = DateTime.now(); @@ -692,8 +694,12 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { } if (StrUtil.isNotEmpty(cmdid)) { requestId = Constants.REQUEST_ID.addAndGet(1); - String cmd = CmaUtil.takePic(cmdid, channel, preset, captureType, requestId); - ProcessExecUtils.exec(cmd); + if (vo.getMqtt() != null && vo.getMqtt().intValue() == 1) { + mqttService.takePic(cmdid, channel, preset, captureType, requestId); + } else { + String cmd = CmaUtil.takePic(cmdid, channel, preset, captureType, requestId); + ProcessExecUtils.exec(cmd); + } model.setRequestId(requestId); model.setTaketime(MyDateUtils.date(now)); } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/MqttService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/MqttService.java new file mode 100644 index 0000000..ca42a22 --- /dev/null +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/MqttService.java @@ -0,0 +1,8 @@ +package com.shxy.xymanager_service.service; + + +public interface MqttService { + + void takePic(String cmdid, Integer channel, Integer preset, Integer type, Integer requestId) throws Exception; + +} diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalPhotoService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalPhotoService.java index d407d0a..f3e43f9 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalPhotoService.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/TerminalPhotoService.java @@ -46,7 +46,7 @@ public interface TerminalPhotoService { * * @return */ - ServiceBody takePic(TerminalPhotoVo vo); + ServiceBody takePic(TerminalPhotoVo vo) throws Exception; /** * 获取主动拍照状态