处理 设备在线 发消息

This commit is contained in:
gong
2025-11-24 16:37:56 +08:00
parent e76a85b521
commit 7146128b4c
15 changed files with 156 additions and 38 deletions

View File

@@ -8,17 +8,22 @@ import com.czg.system.dto.SysDevicesDTO;
import com.czg.system.dto.SysDevicesPageDTO;
import com.czg.system.entity.SysDevices;
import com.czg.system.service.SysDevicesService;
import com.czg.utils.PageUtil;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
/**
* 设备管理 服务层实现。
*
* @author ww
* @since 2025-11-24
*/
@Slf4j
@Service
public class SysDevicesServiceImpl extends ServiceImpl<SysDevicesMapper, SysDevices> implements SysDevicesService {
@@ -50,7 +55,7 @@ public class SysDevicesServiceImpl extends ServiceImpl<SysDevicesMapper, SysDevi
devices.setDeviceSn(reqDTO.getDeviceSn());
devices.setDeviceType(reqDTO.getDeviceType());
devices.setConnType(reqDTO.getConnType());
devices.setUnlineStatus(reqDTO.getUnlineStatus());
devices.setOnlineStatus(reqDTO.getOnlineStatus());
updateById(devices);
return devices.getId();
@@ -68,7 +73,7 @@ public class SysDevicesServiceImpl extends ServiceImpl<SysDevicesMapper, SysDevi
}
@Override
public Page<SysDevicesDTO> queryDevice(SysDevicesPageDTO reqDTO) {
public Page<SysDevicesDTO> queryDevicePage(SysDevicesPageDTO reqDTO) {
QueryWrapper wrapper = new QueryWrapper();
if (StrUtil.isNotBlank(reqDTO.getDeviceSn())) {
wrapper.like(SysDevices::getDeviceSn, reqDTO.getDeviceSn());
@@ -79,7 +84,32 @@ public class SysDevicesServiceImpl extends ServiceImpl<SysDevicesMapper, SysDevi
if (StrUtil.isNotBlank(reqDTO.getConnType())) {
wrapper.eq(SysDevices::getConnType, reqDTO.getConnType());
}
if (reqDTO.getOnlineStatus() != null) {
wrapper.eq(SysDevices::getOnlineStatus, reqDTO.getOnlineStatus());
}
return page(Page.of(reqDTO.getPage(), reqDTO.getSize()), wrapper).map(devices -> BeanUtil.toBean(devices, SysDevicesDTO.class));
wrapper.orderBy(SysDevices::getOnlineStatus, false);
wrapper.orderBy(SysDevices::getId, false);
return page(PageUtil.buildPage(), wrapper).map(devices -> BeanUtil.toBean(devices, SysDevicesDTO.class));
}
@Override
public void updateDeviceOnlineStatus(String sn, Integer online) {
SysDevices devices = getOne(query().eq(SysDevices::getDeviceSn, sn));
if (devices == null) {
log.info("心跳设备不存在sn={}", sn);
return;
}
if (online == 0) {
devices.setOnlineStatus(0);
devices.setOfflineTime(LocalDateTime.now());
} else {
devices.setOnlineStatus(1);
devices.setLastUnlineTime(LocalDateTime.now());
devices.setOfflineTime(null);
}
updateById(devices);
}
}