mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-19 01:48:47 +08:00
添加设备信息实时传输接口 修改设备更新接口
This commit is contained in:
parent
231ece98e5
commit
6b1e076f25
@ -17,6 +17,8 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.websocket.dto.WebSocketMessageDto;
|
||||
import org.dromara.common.websocket.utils.WebSocketUtils;
|
||||
import org.dromara.system.domain.vo.SysDictDataVo;
|
||||
import org.dromara.system.domain.vo.SysUserVo;
|
||||
import org.dromara.system.service.ISysDictTypeService;
|
||||
@ -37,6 +39,8 @@ import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -53,7 +57,7 @@ public class EqDeviceController extends BaseController {
|
||||
|
||||
private final HttpServletRequest request;
|
||||
|
||||
|
||||
private final ScheduledExecutorService scheduledExecutorService;
|
||||
|
||||
private final IEqAreaService eqAreaService;
|
||||
|
||||
@ -294,5 +298,39 @@ public class EqDeviceController extends BaseController {
|
||||
eqEquipmentService.updateByBo(eqEquipmentBo);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 实时发送设备状态信息
|
||||
* 在设备状态变化的时候会实时推送设备信息到前端
|
||||
* @param eqEquipmentLogBo
|
||||
*/
|
||||
@SaIgnore
|
||||
@PostMapping("/sendDeviceMsg")
|
||||
public void sendDeviceMsg(@RequestBody EqEquipmentLogBo eqEquipmentLogBo){
|
||||
String equipmentName = eqEquipmentLogBo.getEquipmentName();
|
||||
//设备id查询
|
||||
DeviceByDeviceName deviceByNameDto = iotService.apiTenantDevicesByName(equipmentName);//无信息会抛异常 无需判断
|
||||
if (deviceByNameDto==null) throw new RuntimeException("设备不存在");
|
||||
String equipmentCode = deviceByNameDto.getId().getId();
|
||||
//设备查询
|
||||
EqEquipmentBo eqEquipmentBo = new EqEquipmentBo();
|
||||
eqEquipmentBo.setEquipmentCode(equipmentCode);
|
||||
List<EqEquipmentVo> eqEquipmentVos = eqEquipmentService.queryList(eqEquipmentBo);
|
||||
if (CollectionUtils.isEmpty(eqEquipmentVos)) return;
|
||||
EqEquipmentVo eqEquipmentVo = eqEquipmentVos.get(0);
|
||||
EqAppHomeBo bo = new EqAppHomeBo();
|
||||
bo.setEquipmentId(eqEquipmentVo.getEquipmentId());
|
||||
bo.setEquipmentCode(eqEquipmentVo.getEquipmentCode());
|
||||
EqEquipmentDetailVo deviceMsg = eqEquipmentService.getDeviceMsg(bo);
|
||||
|
||||
Long userId = eqEquipmentVo.getUserId();
|
||||
scheduledExecutorService.schedule(() -> {
|
||||
WebSocketMessageDto dto = new WebSocketMessageDto();
|
||||
dto.setMessage(JSONObject.toJSONString(deviceMsg));
|
||||
dto.setSessionKeys(List.of(userId));
|
||||
WebSocketUtils.publishMessage(dto);
|
||||
}, 3, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -65,11 +65,13 @@ public class DeviceDto implements Serializable {
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class Configuration {
|
||||
private String type = "DEFAULT";
|
||||
}
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class TransportConfiguration {
|
||||
private String type = "MQTT";
|
||||
}
|
||||
}
|
||||
|
||||
@ -90,5 +92,8 @@ public class DeviceDto implements Serializable {
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class AdditionalInfo {
|
||||
private boolean gateway = false;
|
||||
private boolean overwriteActivityTime = false;
|
||||
private String description = "";
|
||||
}
|
||||
}
|
||||
|
||||
@ -403,6 +403,8 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService {
|
||||
DeviceCredentials deviceCredentials = iotService.httpCredentials(equipmentCode);
|
||||
String assesToken = deviceCredentials.getCredentialsId();
|
||||
//4拿到凭证修改设备 使用获取设备信息的类信息作为参数
|
||||
if (deviceDto.getFirmwareId()==null) deviceDto.setFirmwareId(new DeviceDto.FirmwareId());
|
||||
deviceDto.getFirmwareId().setEntityType("OTA_PACKAGE");
|
||||
deviceDto.getFirmwareId().setId(deviceOtaPackages.getId().getId());//设置升级包id
|
||||
|
||||
return iotService.httpPostUpdateOta(assesToken,deviceDto);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user