From 34902ae2528edb1b5687ec92616c76403383982b Mon Sep 17 00:00:00 2001 From: gx_ma <1773945958@qq.com> Date: Fri, 12 Jul 2024 17:09:07 +0800 Subject: [PATCH] =?UTF-8?q?1.=E7=9B=91=E6=8E=A7=E8=AE=BE=E5=A4=87=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=9B=B4=E6=96=B0=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fastbee/data/service/impl/DeviceJob.java | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 springboot/fastbee-open-api/src/main/java/com/fastbee/data/service/impl/DeviceJob.java diff --git a/springboot/fastbee-open-api/src/main/java/com/fastbee/data/service/impl/DeviceJob.java b/springboot/fastbee-open-api/src/main/java/com/fastbee/data/service/impl/DeviceJob.java new file mode 100644 index 00000000..afc59668 --- /dev/null +++ b/springboot/fastbee-open-api/src/main/java/com/fastbee/data/service/impl/DeviceJob.java @@ -0,0 +1,51 @@ +package com.fastbee.data.service.impl; + +import com.fastbee.iot.domain.Device; +import com.fastbee.iot.service.IDeviceService; +import com.fastbee.sip.domain.SipDevice; +import com.fastbee.sip.domain.SipDeviceChannel; +import com.fastbee.sip.enums.DeviceChannelStatus; +import com.fastbee.sip.mapper.SipDeviceChannelMapper; +import com.fastbee.sip.mapper.SipDeviceMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Objects; + +@Component +@Slf4j +public class DeviceJob { + + @Resource + private IDeviceService deviceService; + + @Autowired + private SipDeviceMapper sipDeviceMapper; + + @Autowired + private SipDeviceChannelMapper sipDeviceChannelMapper; + + public void updateSipDeviceOnlineStatus(Integer timeout) { + List devs = sipDeviceMapper.selectOfflineSipDevice(timeout); + devs.forEach(item -> { + if (!Objects.equals(item.getDeviceSipId(), "")) { + //更新iot设备状态 + Device dev = deviceService.selectDeviceBySerialNumber(item.getDeviceSipId()); + if (dev != null && dev.getStatus() == 3) { + log.warn("定时任务:=>设备:{} 已经下线,设备超过{}秒没上线!", item.getDeviceSipId(), timeout); + dev.setStatus(4); + deviceService.updateDeviceStatusAndLocation(dev, ""); + } + //更新通道状态 + List channels = sipDeviceChannelMapper.selectSipDeviceChannelByDeviceSipId(item.getDeviceSipId()); + channels.forEach(citem -> { + citem.setStatus(DeviceChannelStatus.offline.getValue()); + sipDeviceChannelMapper.updateSipDeviceChannel(citem); + }); + } + }); + } +}