|
|
@@ -59,16 +59,19 @@ public class LocalFirmwareUpgradeHistoryService extends GenericReactiveCrudServi
|
|
|
.flatMap(tp3 -> {
|
|
|
DeviceOperator operator = tp3.getT1();
|
|
|
DeviceFirmwareEntity firmware = tp3.getT2();
|
|
|
- if (!firmware.getVersion().equals(message.getVersion())) {
|
|
|
- //如果存在平台推送且版本不一致,则推送升级固件消息,等待升级
|
|
|
- UpgradeFirmwareMessage firmwareMessage = new UpgradeFirmwareMessage();
|
|
|
- firmwareMessage.setDeviceId(message.getDeviceId());
|
|
|
- firmwareMessage.setUrl(firmware.getUrl());
|
|
|
- firmwareMessage.setVersion(firmware.getVersion());
|
|
|
- firmwareMessage.setSign(firmware.getSign());
|
|
|
- firmwareMessage.setSignMethod(firmware.getSignMethod());
|
|
|
- firmwareMessage.setTimestamp(System.currentTimeMillis());
|
|
|
- return operator.messageSender().sendAndForget(firmwareMessage);
|
|
|
+ if (firmwareTaskService.canUpgrade(tp3.getT3(),operator.getDeviceId())) {
|
|
|
+ //该设备可以升级
|
|
|
+ if (!firmware.getVersion().equals(message.getVersion())) {
|
|
|
+ //如果存在平台推送且版本不一致,则推送升级固件消息,等待升级
|
|
|
+ UpgradeFirmwareMessage firmwareMessage = new UpgradeFirmwareMessage();
|
|
|
+ firmwareMessage.setDeviceId(message.getDeviceId());
|
|
|
+ firmwareMessage.setUrl(firmware.getUrl());
|
|
|
+ firmwareMessage.setVersion(firmware.getVersion());
|
|
|
+ firmwareMessage.setSign(firmware.getSign());
|
|
|
+ firmwareMessage.setSignMethod(firmware.getSignMethod());
|
|
|
+ firmwareMessage.setTimestamp(System.currentTimeMillis());
|
|
|
+ return operator.messageSender().sendAndForget(firmwareMessage);
|
|
|
+ }
|
|
|
}
|
|
|
return Mono.empty();
|
|
|
})
|
|
|
@@ -167,15 +170,19 @@ public class LocalFirmwareUpgradeHistoryService extends GenericReactiveCrudServi
|
|
|
.flatMap(tp5->{
|
|
|
DeviceFirmwareEntity firmware = tp5.getT3();
|
|
|
DeviceMessageSender sender = tp5.getT2();
|
|
|
- RequestFirmwareMessageReply reply = new RequestFirmwareMessageReply();
|
|
|
- reply.setTimestamp(System.currentTimeMillis());
|
|
|
- reply.setDeviceId(messages.getDeviceId());
|
|
|
- reply.setSign(firmware.getSign());
|
|
|
- reply.setSignMethod(firmware.getSignMethod());
|
|
|
- reply.setSize(10L);
|
|
|
- reply.setUrl(firmware.getUrl());
|
|
|
- reply.setMessageId(messages.getMessageId());
|
|
|
- return sender.sendAndForget(reply);
|
|
|
+ DeviceFirmwareTaskEntity task = tp5.getT5();
|
|
|
+ if(firmwareTaskService.canUpgrade(task,messages.getDeviceId())){
|
|
|
+ RequestFirmwareMessageReply reply = new RequestFirmwareMessageReply();
|
|
|
+ reply.setTimestamp(System.currentTimeMillis());
|
|
|
+ reply.setDeviceId(messages.getDeviceId());
|
|
|
+ reply.setSign(firmware.getSign());
|
|
|
+ reply.setSignMethod(firmware.getSignMethod());
|
|
|
+ reply.setSize(10L);
|
|
|
+ reply.setUrl(firmware.getUrl());
|
|
|
+ reply.setMessageId(messages.getMessageId());
|
|
|
+ return sender.sendAndForget(reply);
|
|
|
+ }
|
|
|
+ return Mono.empty();
|
|
|
}).then();
|
|
|
}
|
|
|
}
|