mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-18 17:38:48 +08:00
添加设备列表socket推送
This commit is contained in:
parent
6b1e076f25
commit
7420a2040e
@ -312,24 +312,52 @@ public class EqDeviceController extends BaseController {
|
||||
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);
|
||||
|
||||
Long userId = eqEquipmentVo.getUserId();
|
||||
//设备详情查询
|
||||
EqAppHomeBo bo = new EqAppHomeBo();
|
||||
bo.setEquipmentId(eqEquipmentVo.getEquipmentId());
|
||||
bo.setEquipmentCode(eqEquipmentVo.getEquipmentCode());
|
||||
EqEquipmentDetailVo deviceMsg = eqEquipmentService.getDeviceMsg(bo);
|
||||
|
||||
Long userId = eqEquipmentVo.getUserId();
|
||||
//设备列表
|
||||
EqEquipmentBo eqEquipmentBo2 = new EqEquipmentBo();
|
||||
eqEquipmentBo2.setUserId(userId);
|
||||
List<EqEquipmentVo> list2 = eqEquipmentService.queryList(eqEquipmentBo2);
|
||||
eqEquipmentService.initEqEquipmentVo(list2);
|
||||
|
||||
|
||||
//查看设备被分享者
|
||||
EqShareBo shareBo = new EqShareBo();
|
||||
shareBo.setShareUserId(userId);
|
||||
List<EqShareVo> eqShareVos = shareService.queryList(shareBo);
|
||||
List<Long> userIds = new ArrayList<>();
|
||||
userIds.add(userId);
|
||||
if (CollUtil.isNotEmpty(eqShareVos)){
|
||||
for (EqShareVo eqShareVo : eqShareVos) {
|
||||
userIds.add(eqShareVo.getSharedUserId());
|
||||
}
|
||||
}
|
||||
//数据结构
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("detail", deviceMsg);
|
||||
result.put("list", list2);
|
||||
|
||||
//推送消息
|
||||
scheduledExecutorService.schedule(() -> {
|
||||
WebSocketMessageDto dto = new WebSocketMessageDto();
|
||||
dto.setMessage(JSONObject.toJSONString(deviceMsg));
|
||||
dto.setSessionKeys(List.of(userId));
|
||||
dto.setMessage(JSONObject.toJSONString(result));
|
||||
// dto.setSessionKeys(List.of(userId));
|
||||
dto.setSessionKeys(userIds);
|
||||
WebSocketUtils.publishMessage(dto);
|
||||
}, 3, TimeUnit.SECONDS);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -34,6 +34,9 @@ public interface IEqEquipmentService {
|
||||
*/
|
||||
TableDataInfo<EqEquipmentVo> queryPageList(EqEquipmentBo bo, PageQuery pageQuery,boolean shared,List<Long> equipmentIdIds);
|
||||
|
||||
|
||||
void initEqEquipmentVo(List<EqEquipmentVo> records);
|
||||
|
||||
/**
|
||||
* 查询符合条件的设备信息列表
|
||||
*
|
||||
|
||||
@ -75,7 +75,12 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService {
|
||||
List<EqEquipmentVo> records = result.getRecords();
|
||||
if (CollUtil.isEmpty(records)) return TableDataInfo.build(result);
|
||||
//获取遥测数据
|
||||
initEqEquipmentVo(records);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initEqEquipmentVo(List<EqEquipmentVo> records) {
|
||||
for (EqEquipmentVo record : records) {
|
||||
String equipmentCode = record.getEquipmentCode();
|
||||
if (record.getLineStatus() == 1){//在线更新数据
|
||||
@ -107,7 +112,6 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService {
|
||||
// 离线不需要调用接口 也不更新状态 在线离线状态要在事件触发的时候更新 否则性能很差
|
||||
}
|
||||
}
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user