mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-19 01:48:47 +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);//无信息会抛异常 无需判断
|
DeviceByDeviceName deviceByNameDto = iotService.apiTenantDevicesByName(equipmentName);//无信息会抛异常 无需判断
|
||||||
if (deviceByNameDto==null) throw new RuntimeException("设备不存在");
|
if (deviceByNameDto==null) throw new RuntimeException("设备不存在");
|
||||||
String equipmentCode = deviceByNameDto.getId().getId();
|
String equipmentCode = deviceByNameDto.getId().getId();
|
||||||
//设备查询
|
//查询设备信息
|
||||||
EqEquipmentBo eqEquipmentBo = new EqEquipmentBo();
|
EqEquipmentBo eqEquipmentBo = new EqEquipmentBo();
|
||||||
eqEquipmentBo.setEquipmentCode(equipmentCode);
|
eqEquipmentBo.setEquipmentCode(equipmentCode);
|
||||||
List<EqEquipmentVo> eqEquipmentVos = eqEquipmentService.queryList(eqEquipmentBo);
|
List<EqEquipmentVo> eqEquipmentVos = eqEquipmentService.queryList(eqEquipmentBo);
|
||||||
if (CollectionUtils.isEmpty(eqEquipmentVos)) return;
|
if (CollectionUtils.isEmpty(eqEquipmentVos)) return;
|
||||||
EqEquipmentVo eqEquipmentVo = eqEquipmentVos.get(0);
|
EqEquipmentVo eqEquipmentVo = eqEquipmentVos.get(0);
|
||||||
|
|
||||||
|
Long userId = eqEquipmentVo.getUserId();
|
||||||
|
//设备详情查询
|
||||||
EqAppHomeBo bo = new EqAppHomeBo();
|
EqAppHomeBo bo = new EqAppHomeBo();
|
||||||
bo.setEquipmentId(eqEquipmentVo.getEquipmentId());
|
bo.setEquipmentId(eqEquipmentVo.getEquipmentId());
|
||||||
bo.setEquipmentCode(eqEquipmentVo.getEquipmentCode());
|
bo.setEquipmentCode(eqEquipmentVo.getEquipmentCode());
|
||||||
EqEquipmentDetailVo deviceMsg = eqEquipmentService.getDeviceMsg(bo);
|
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(() -> {
|
scheduledExecutorService.schedule(() -> {
|
||||||
WebSocketMessageDto dto = new WebSocketMessageDto();
|
WebSocketMessageDto dto = new WebSocketMessageDto();
|
||||||
dto.setMessage(JSONObject.toJSONString(deviceMsg));
|
dto.setMessage(JSONObject.toJSONString(result));
|
||||||
dto.setSessionKeys(List.of(userId));
|
// dto.setSessionKeys(List.of(userId));
|
||||||
|
dto.setSessionKeys(userIds);
|
||||||
WebSocketUtils.publishMessage(dto);
|
WebSocketUtils.publishMessage(dto);
|
||||||
}, 3, TimeUnit.SECONDS);
|
}, 3, TimeUnit.SECONDS);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,6 +34,9 @@ public interface IEqEquipmentService {
|
|||||||
*/
|
*/
|
||||||
TableDataInfo<EqEquipmentVo> queryPageList(EqEquipmentBo bo, PageQuery pageQuery,boolean shared,List<Long> equipmentIdIds);
|
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();
|
List<EqEquipmentVo> records = result.getRecords();
|
||||||
if (CollUtil.isEmpty(records)) return TableDataInfo.build(result);
|
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) {
|
for (EqEquipmentVo record : records) {
|
||||||
String equipmentCode = record.getEquipmentCode();
|
String equipmentCode = record.getEquipmentCode();
|
||||||
if (record.getLineStatus() == 1){//在线更新数据
|
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