处理 设备在线 发消息
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user