|
...
|
...
|
@@ -50,16 +50,16 @@ public class DeviceController { |
|
|
|
@RequestMapping(value = "write/{deviceInfoId}",method = RequestMethod.POST)
|
|
|
|
public Message write(@PathVariable String deviceInfoId, @RequestBody DeviceControlMessage deviceControlMessage)
|
|
|
|
{
|
|
|
|
log.info("控制指令{}",deviceControlMessage);
|
|
|
|
log.info("控制指令{}",GsonConstructor.get().toJson(deviceControlMessage));
|
|
|
|
|
|
|
|
Map<String,Object> data = deviceControlMessage.getDataObject();
|
|
|
|
if (null == data)
|
|
|
|
{
|
|
|
|
return new Message(MessageCode.DEFAULT_FAIL_CODE,"没有参数");
|
|
|
|
}
|
|
|
|
if ( !(data.containsKey("type") && data.get("type").toString().equals("kaiguan")))
|
|
|
|
if ( data.containsKey("type") && data.get("type").toString().equals("kaiguan"))
|
|
|
|
{
|
|
|
|
return new Message(MessageCode.DEFAULT_FAIL_CODE,"只支持开关控制");
|
|
|
|
data.put("type","3");
|
|
|
|
}
|
|
|
|
DeviceInfo deviceInfo = deviceService.getDeviceInfo(deviceInfoId);
|
|
|
|
Topic topic = new Topic("2",deviceInfo.getDevice_type(),deviceControlMessage.getDeviceId(),"PUT",null);
|
|
...
|
...
|
@@ -73,33 +73,48 @@ public class DeviceController { |
|
|
|
//记录日志
|
|
|
|
for (DeviceDataConfig deviceDataConfig:list)
|
|
|
|
{
|
|
|
|
if(deviceDataConfig.getSensor_numer().equals(deviceControlMessage.getAddressBits()) && deviceDataConfig.getPlc_data_type().sensorDataType.equals("3") )
|
|
|
|
if(deviceDataConfig.getSensor_numer().equals(deviceControlMessage.getAddressBits()) && deviceDataConfig.getPlc_data_type().sensorDataType.equals(data.get("type")) )
|
|
|
|
{
|
|
|
|
//记录日志
|
|
|
|
map.put(deviceDataConfig.getAttribute_name(), data.get("value").toString().equals(deviceDataConfig.getAlarmValue())?1:0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(map.size()==0)
|
|
|
|
{
|
|
|
|
return new Message(MessageCode.DEFAULT_FAIL_CODE,"不支持此数据");
|
|
|
|
}
|
|
|
|
try {
|
|
|
|
MqttMessage mqttMessage = new MqttMessage();
|
|
|
|
mqttMessage.setPayload(JSON.toJSONString(map).trim().getBytes());
|
|
|
|
Message message = clienNoticeService.sendMessage(topic,mqttMessage);
|
|
|
|
if(message.getCode()==1)
|
|
|
|
{
|
|
|
|
|
|
|
|
JsonObject rmap = new JsonObject();
|
|
|
|
rmap.addProperty("3",data.get("value").toString());
|
|
|
|
rmap.addProperty(data.get("type")+"",data.get("value").toString());
|
|
|
|
rmap.addProperty("9","01");
|
|
|
|
message.setData(rmap.toString());
|
|
|
|
|
|
|
|
DeviceInfo deviceInfo1 = new DeviceInfo();
|
|
|
|
deviceInfo1.setId(deviceInfoId);
|
|
|
|
|
|
|
|
JsonObject object = new JsonObject();
|
|
|
|
if(StringUtils.isNotEmpty(deviceInfo.getDataValue()))
|
|
|
|
{
|
|
|
|
object = GsonConstructor.get().fromJson(deviceInfo.getDataValue(),JsonObject.class);
|
|
|
|
}
|
|
|
|
object.addProperty("3",data.get("value").toString());
|
|
|
|
|
|
|
|
List<DeviceDataConfig> deviceDataConfigList = DeviceProductProtocol.deviceDataConfigList;
|
|
|
|
for (DeviceDataConfig deviceDataConfig:deviceDataConfigList)
|
|
|
|
{
|
|
|
|
if(deviceDataConfig.getSensor_numer().equals(deviceControlMessage.getAddressBits()) && deviceDataConfig.getPlc_data_type().sensorDataType.equals(data.get("type")) )
|
|
|
|
{
|
|
|
|
object.addProperty(data.get("type")+"",data.get("value").toString());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
deviceInfo1.setDataValue(object.toString());
|
|
|
|
deviceService.upDeviceInfo(deviceInfo1);
|
|
|
|
|
|
|
|
|
|
|
|
LogDeviceOperation logDeviceOperation = addLogDeviceOperation(topic.getClientid(),deviceControlMessage.getAddressBits(),null,"设备远程"+("01".equals(data.get("value").toString())?"开启":"关闭"),data.get("value").toString(),deviceInfo.getDataValue(),1);
|
|
|
|
List<LogDeviceOperation> list1 = new ArrayList<>();
|
|
|
|
list1.add(logDeviceOperation);
|
|
...
|
...
|
@@ -117,6 +132,12 @@ public class DeviceController { |
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
DeviceService deviceService = new DeviceService();
|
|
|
|
DeviceInfo deviceInfo = deviceService.getDeviceInfo("deviceInfoId");
|
|
|
|
System.out.println();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 添加设备操作日志记录
|
|
|
|
* @param deviceId 设备imei
|
...
|
...
|
|