|
@@ -1,5 +1,8 @@
|
|
|
package com.zy.bms.service;
|
|
|
|
|
|
+import com.zy.bms.common.Constant;
|
|
|
+import com.zy.bms.common.dto.MqttMsgDto;
|
|
|
+import com.zy.bms.config.mqtt.MqttGateway;
|
|
|
import com.zy.bms.model.SetBase;
|
|
|
import com.zy.bms.model.SetNews;
|
|
|
import com.zy.bms.utils.BeanUtil;
|
|
@@ -8,6 +11,7 @@ import org.springframework.stereotype.Component;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.util.Set;
|
|
|
|
|
|
/**
|
|
|
* 设备设置 Service
|
|
@@ -21,14 +25,16 @@ public class SetService {
|
|
|
@Resource
|
|
|
private SetBaseService setBaseService;
|
|
|
@Resource
|
|
|
- private SetToDeviceService setToDeviceService;
|
|
|
- @Resource
|
|
|
private SetNewsService setNewsService;
|
|
|
+ @Resource
|
|
|
+ private MqttGateway mqttGateway;
|
|
|
+ @Resource
|
|
|
+ private MqttLogService mqttLogService;
|
|
|
|
|
|
/**
|
|
|
* 设置音量
|
|
|
*/
|
|
|
- public void setVolume(VolumeSetIO io) {
|
|
|
+ public void setVolume(SetIO io) {
|
|
|
//发送模板消息给设备
|
|
|
setToDeviceService.setVolume(io);
|
|
|
//保存数据库
|
|
@@ -38,7 +44,7 @@ public class SetService {
|
|
|
/**
|
|
|
* 设置定位频率
|
|
|
*/
|
|
|
- public void setGpsRate(GpsRateSetIO io) {
|
|
|
+ public void setGpsRate(SetIO io) {
|
|
|
//发送模板消息给设备
|
|
|
setToDeviceService.setGpsRate(io);
|
|
|
//保存数据库
|
|
@@ -48,7 +54,7 @@ public class SetService {
|
|
|
/**
|
|
|
* 自动接听
|
|
|
*/
|
|
|
- public void setAutoAnswer(AnswerSetIO io) {
|
|
|
+ public void setAutoAnswer(SetIO io) {
|
|
|
//发送模板消息给设备
|
|
|
setToDeviceService.setAutoAnswer(io);
|
|
|
//保存数据库
|
|
@@ -58,7 +64,7 @@ public class SetService {
|
|
|
/**
|
|
|
* 设置语音播报
|
|
|
*/
|
|
|
- public void setNews(NewsSetIO io) {
|
|
|
+ public void setNews(SetIO io) {
|
|
|
//发送模板消息给设备
|
|
|
setToDeviceService.sendNews(io);
|
|
|
//保存数据库
|
|
@@ -70,7 +76,7 @@ public class SetService {
|
|
|
/**
|
|
|
* 设置SOS紧急呼叫
|
|
|
*/
|
|
|
- public void setSOS(SosSetIO io) {
|
|
|
+ public void setSOS(SetIO io) {
|
|
|
//发送模板消息给设备
|
|
|
setToDeviceService.setSOS(io);
|
|
|
//保存数据库
|
|
@@ -80,7 +86,7 @@ public class SetService {
|
|
|
/**
|
|
|
* 设置持续定位
|
|
|
*/
|
|
|
- public void setContinue(ContinueSetIO io) {
|
|
|
+ public void setContinue(SetIO io) {
|
|
|
//发送模板消息给设备
|
|
|
setToDeviceService.setContinue(io);
|
|
|
//保存数据库
|
|
@@ -90,9 +96,55 @@ public class SetService {
|
|
|
/**
|
|
|
* 保存基本设置数据
|
|
|
*/
|
|
|
- private void saveBaseSet(Object io) {
|
|
|
+ private void saveBaseSet(SetIO io) {
|
|
|
//保存数据库
|
|
|
SetBase entity = BeanUtil.cast(io, SetBase.class);
|
|
|
setBaseService.updateByDeviceId(entity);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 组装需要发送的模板消息
|
|
|
+ *
|
|
|
+ * @param code 协议中 M 值
|
|
|
+ * @param io 设置信息
|
|
|
+ * @return 模板消息对象
|
|
|
+ */
|
|
|
+ private MqttMsgDto getMqttMsgDtoByCode(String code, SetIO io) {
|
|
|
+ MqttMsgDto result = new MqttMsgDto(code, io.getDeviceId());
|
|
|
+ switch (code) {
|
|
|
+ //自动接听
|
|
|
+ case Constant.M_CODE_AUTO_ANSWER: {
|
|
|
+ result.set("autoanswer", io.getAutoAnswer());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ //音量
|
|
|
+ case Constant.M_CODE_VOLUME: {
|
|
|
+ result.set("msgvol", io.getMsgVol()).set("phonevol", io.getPhoneVol()).set("msgtype", 1);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ //定位频率
|
|
|
+ case Constant.M_CODE_GPS_RATE: {
|
|
|
+ result.set("GPS_rate", io.getGpsRate());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ //语音播报
|
|
|
+ case Constant.M_CODE_NEWS: {
|
|
|
+ result.set("newstype", io.getNewsType()).set("newstime", io.getNewsTime()).set("news", io.getNews());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ //SOS紧急呼叫
|
|
|
+ case Constant.M_CODE_SOS: {
|
|
|
+ result.set("key0_name", io.getKey0Name()).set("key0_phone", io.getKey0Phone())
|
|
|
+ .set("key1_name", io.getKey1Name()).set("key1_phone", io.getKey1Phone())
|
|
|
+ .set("key2_name", io.getKey2Name()).set("key2_phone", io.getKey2Phone());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ //持续定位
|
|
|
+ case Constant.M_CODE_CONTINUE_GPS: {
|
|
|
+ result.set("highfreq", io.getHighFreq());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
}
|