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.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.dromara.common.web.core.BaseController;
|
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.SysDictDataVo;
|
||||||
import org.dromara.system.domain.vo.SysUserVo;
|
import org.dromara.system.domain.vo.SysUserVo;
|
||||||
import org.dromara.system.service.ISysDictTypeService;
|
import org.dromara.system.service.ISysDictTypeService;
|
||||||
@ -37,6 +39,8 @@ import java.time.ZoneId;
|
|||||||
import java.time.ZonedDateTime;
|
import java.time.ZonedDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -53,7 +57,7 @@ public class EqDeviceController extends BaseController {
|
|||||||
|
|
||||||
private final HttpServletRequest request;
|
private final HttpServletRequest request;
|
||||||
|
|
||||||
|
private final ScheduledExecutorService scheduledExecutorService;
|
||||||
|
|
||||||
private final IEqAreaService eqAreaService;
|
private final IEqAreaService eqAreaService;
|
||||||
|
|
||||||
@ -294,5 +298,39 @@ public class EqDeviceController extends BaseController {
|
|||||||
eqEquipmentService.updateByBo(eqEquipmentBo);
|
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
|
@NoArgsConstructor
|
||||||
@Data
|
@Data
|
||||||
public static class Configuration {
|
public static class Configuration {
|
||||||
|
private String type = "DEFAULT";
|
||||||
}
|
}
|
||||||
|
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@Data
|
@Data
|
||||||
public static class TransportConfiguration {
|
public static class TransportConfiguration {
|
||||||
|
private String type = "MQTT";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,5 +92,8 @@ public class DeviceDto implements Serializable {
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@Data
|
@Data
|
||||||
public static class AdditionalInfo {
|
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);
|
DeviceCredentials deviceCredentials = iotService.httpCredentials(equipmentCode);
|
||||||
String assesToken = deviceCredentials.getCredentialsId();
|
String assesToken = deviceCredentials.getCredentialsId();
|
||||||
//4拿到凭证修改设备 使用获取设备信息的类信息作为参数
|
//4拿到凭证修改设备 使用获取设备信息的类信息作为参数
|
||||||
|
if (deviceDto.getFirmwareId()==null) deviceDto.setFirmwareId(new DeviceDto.FirmwareId());
|
||||||
|
deviceDto.getFirmwareId().setEntityType("OTA_PACKAGE");
|
||||||
deviceDto.getFirmwareId().setId(deviceOtaPackages.getId().getId());//设置升级包id
|
deviceDto.getFirmwareId().setId(deviceOtaPackages.getId().getId());//设置升级包id
|
||||||
|
|
||||||
return iotService.httpPostUpdateOta(assesToken,deviceDto);
|
return iotService.httpPostUpdateOta(assesToken,deviceDto);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user