|
@@ -50,16 +50,16 @@ public class DeviceController { |
|
@@ -50,16 +50,16 @@ public class DeviceController { |
|
50
|
@RequestMapping(value = "write/{deviceInfoId}",method = RequestMethod.POST)
|
50
|
@RequestMapping(value = "write/{deviceInfoId}",method = RequestMethod.POST)
|
|
51
|
public Message write(@PathVariable String deviceInfoId, @RequestBody DeviceControlMessage deviceControlMessage)
|
51
|
public Message write(@PathVariable String deviceInfoId, @RequestBody DeviceControlMessage deviceControlMessage)
|
|
52
|
{
|
52
|
{
|
|
53
|
- log.info("控制指令{}",deviceControlMessage);
|
53
|
+ log.info("控制指令{}",GsonConstructor.get().toJson(deviceControlMessage));
|
|
54
|
|
54
|
|
|
55
|
Map<String,Object> data = deviceControlMessage.getDataObject();
|
55
|
Map<String,Object> data = deviceControlMessage.getDataObject();
|
|
56
|
if (null == data)
|
56
|
if (null == data)
|
|
57
|
{
|
57
|
{
|
|
58
|
return new Message(MessageCode.DEFAULT_FAIL_CODE,"没有参数");
|
58
|
return new Message(MessageCode.DEFAULT_FAIL_CODE,"没有参数");
|
|
59
|
}
|
59
|
}
|
|
60
|
- if ( !(data.containsKey("type") && data.get("type").toString().equals("kaiguan")))
|
60
|
+ if ( data.containsKey("type") && data.get("type").toString().equals("kaiguan"))
|
|
61
|
{
|
61
|
{
|
|
62
|
- return new Message(MessageCode.DEFAULT_FAIL_CODE,"只支持开关控制");
|
62
|
+ data.put("type","3");
|
|
63
|
}
|
63
|
}
|
|
64
|
DeviceInfo deviceInfo = deviceService.getDeviceInfo(deviceInfoId);
|
64
|
DeviceInfo deviceInfo = deviceService.getDeviceInfo(deviceInfoId);
|
|
65
|
Topic topic = new Topic("2",deviceInfo.getDevice_type(),deviceControlMessage.getDeviceId(),"PUT",null);
|
65
|
Topic topic = new Topic("2",deviceInfo.getDevice_type(),deviceControlMessage.getDeviceId(),"PUT",null);
|
|
@@ -71,35 +71,50 @@ public class DeviceController { |
|
@@ -71,35 +71,50 @@ public class DeviceController { |
|
71
|
}
|
71
|
}
|
|
72
|
Map<String,Object> map = new HashMap<>();
|
72
|
Map<String,Object> map = new HashMap<>();
|
|
73
|
//记录日志
|
73
|
//记录日志
|
|
74
|
- for (DeviceDataConfig deviceDataConfig:list)
|
74
|
+ for (DeviceDataConfig deviceDataConfig:list)
|
|
75
|
{
|
75
|
{
|
|
76
|
- if(deviceDataConfig.getSensor_numer().equals(deviceControlMessage.getAddressBits()) && deviceDataConfig.getPlc_data_type().sensorDataType.equals("3") )
|
76
|
+ if(deviceDataConfig.getSensor_numer().equals(deviceControlMessage.getAddressBits()) && deviceDataConfig.getPlc_data_type().sensorDataType.equals(data.get("type")) )
|
|
77
|
{
|
77
|
{
|
|
78
|
//记录日志
|
78
|
//记录日志
|
|
79
|
map.put(deviceDataConfig.getAttribute_name(), data.get("value").toString().equals(deviceDataConfig.getAlarmValue())?1:0);
|
79
|
map.put(deviceDataConfig.getAttribute_name(), data.get("value").toString().equals(deviceDataConfig.getAlarmValue())?1:0);
|
|
80
|
}
|
80
|
}
|
|
81
|
}
|
81
|
}
|
|
|
|
82
|
+ if(map.size()==0)
|
|
|
|
83
|
+ {
|
|
|
|
84
|
+ return new Message(MessageCode.DEFAULT_FAIL_CODE,"不支持此数据");
|
|
|
|
85
|
+ }
|
|
82
|
try {
|
86
|
try {
|
|
83
|
MqttMessage mqttMessage = new MqttMessage();
|
87
|
MqttMessage mqttMessage = new MqttMessage();
|
|
84
|
mqttMessage.setPayload(JSON.toJSONString(map).trim().getBytes());
|
88
|
mqttMessage.setPayload(JSON.toJSONString(map).trim().getBytes());
|
|
85
|
Message message = clienNoticeService.sendMessage(topic,mqttMessage);
|
89
|
Message message = clienNoticeService.sendMessage(topic,mqttMessage);
|
|
86
|
if(message.getCode()==1)
|
90
|
if(message.getCode()==1)
|
|
87
|
{
|
91
|
{
|
|
|
|
92
|
+
|
|
88
|
JsonObject rmap = new JsonObject();
|
93
|
JsonObject rmap = new JsonObject();
|
|
89
|
- rmap.addProperty("3",data.get("value").toString());
|
94
|
+ rmap.addProperty(data.get("type")+"",data.get("value").toString());
|
|
90
|
rmap.addProperty("9","01");
|
95
|
rmap.addProperty("9","01");
|
|
91
|
message.setData(rmap.toString());
|
96
|
message.setData(rmap.toString());
|
|
|
|
97
|
+
|
|
92
|
DeviceInfo deviceInfo1 = new DeviceInfo();
|
98
|
DeviceInfo deviceInfo1 = new DeviceInfo();
|
|
93
|
deviceInfo1.setId(deviceInfoId);
|
99
|
deviceInfo1.setId(deviceInfoId);
|
|
94
|
-
|
|
|
|
95
|
JsonObject object = new JsonObject();
|
100
|
JsonObject object = new JsonObject();
|
|
96
|
if(StringUtils.isNotEmpty(deviceInfo.getDataValue()))
|
101
|
if(StringUtils.isNotEmpty(deviceInfo.getDataValue()))
|
|
97
|
{
|
102
|
{
|
|
98
|
object = GsonConstructor.get().fromJson(deviceInfo.getDataValue(),JsonObject.class);
|
103
|
object = GsonConstructor.get().fromJson(deviceInfo.getDataValue(),JsonObject.class);
|
|
99
|
}
|
104
|
}
|
|
100
|
- object.addProperty("3",data.get("value").toString());
|
105
|
+
|
|
|
|
106
|
+ List<DeviceDataConfig> deviceDataConfigList = DeviceProductProtocol.deviceDataConfigList;
|
|
|
|
107
|
+ for (DeviceDataConfig deviceDataConfig:deviceDataConfigList)
|
|
|
|
108
|
+ {
|
|
|
|
109
|
+ if(deviceDataConfig.getSensor_numer().equals(deviceControlMessage.getAddressBits()) && deviceDataConfig.getPlc_data_type().sensorDataType.equals(data.get("type")) )
|
|
|
|
110
|
+ {
|
|
|
|
111
|
+ object.addProperty(data.get("type")+"",data.get("value").toString());
|
|
|
|
112
|
+ }
|
|
|
|
113
|
+ }
|
|
101
|
deviceInfo1.setDataValue(object.toString());
|
114
|
deviceInfo1.setDataValue(object.toString());
|
|
102
|
deviceService.upDeviceInfo(deviceInfo1);
|
115
|
deviceService.upDeviceInfo(deviceInfo1);
|
|
|
|
116
|
+
|
|
|
|
117
|
+
|
|
103
|
LogDeviceOperation logDeviceOperation = addLogDeviceOperation(topic.getClientid(),deviceControlMessage.getAddressBits(),null,"设备远程"+("01".equals(data.get("value").toString())?"开启":"关闭"),data.get("value").toString(),deviceInfo.getDataValue(),1);
|
118
|
LogDeviceOperation logDeviceOperation = addLogDeviceOperation(topic.getClientid(),deviceControlMessage.getAddressBits(),null,"设备远程"+("01".equals(data.get("value").toString())?"开启":"关闭"),data.get("value").toString(),deviceInfo.getDataValue(),1);
|
|
104
|
List<LogDeviceOperation> list1 = new ArrayList<>();
|
119
|
List<LogDeviceOperation> list1 = new ArrayList<>();
|
|
105
|
list1.add(logDeviceOperation);
|
120
|
list1.add(logDeviceOperation);
|
|
@@ -117,6 +132,12 @@ public class DeviceController { |
|
@@ -117,6 +132,12 @@ public class DeviceController { |
|
117
|
|
132
|
|
|
118
|
}
|
133
|
}
|
|
119
|
|
134
|
|
|
|
|
135
|
+ public static void main(String[] args) {
|
|
|
|
136
|
+ DeviceService deviceService = new DeviceService();
|
|
|
|
137
|
+ DeviceInfo deviceInfo = deviceService.getDeviceInfo("deviceInfoId");
|
|
|
|
138
|
+ System.out.println();
|
|
|
|
139
|
+ }
|
|
|
|
140
|
+
|
|
120
|
/**
|
141
|
/**
|
|
121
|
* 添加设备操作日志记录
|
142
|
* 添加设备操作日志记录
|
|
122
|
* @param deviceId 设备imei
|
143
|
* @param deviceId 设备imei
|