This commit is contained in:
孙小云 2026-01-28 16:39:35 +08:00
parent 8c50ade937
commit e0b074dde1
7 changed files with 58 additions and 6 deletions

View File

@ -35,6 +35,14 @@ public interface IDeviceDomain
*/
Device selectDeviceByIotDeviceId(String iotDeviceId);
/**
* 根据设备SN号查询设备
*
* @param deviceSn 设备SN号
* @return 设备
*/
Device selectDeviceByDeviceSn(String deviceSn);
/**
* 新增设备
*

View File

@ -47,6 +47,13 @@ public class DeviceDomainImpl implements IDeviceDomain
return DeviceConvert.from(entity);
}
@Override
public Device selectDeviceByDeviceSn(String deviceSn)
{
DeviceEntity entity = deviceMapper.selectDeviceByDeviceSn(deviceSn);
return DeviceConvert.from(entity);
}
@Override
public int insertDevice(Device device)
{

View File

@ -27,6 +27,14 @@ public interface DeviceMapper
*/
DeviceEntity selectDeviceByIotDeviceId(String iotDeviceId);
/**
* 根据设备SN号查询设备
*
* @param deviceSn 设备SN号
* @return 设备信息
*/
DeviceEntity selectDeviceByDeviceSn(String deviceSn);
/**
* 查询设备列表
*

View File

@ -1,5 +1,10 @@
package com.ruoyi.device.service.impl;
import com.ruoyi.device.domain.api.IAircraftDomain;
import com.ruoyi.device.domain.api.IDeviceDomain;
import com.ruoyi.device.domain.api.IDockAircraftDomain;
import com.ruoyi.device.domain.api.IDockDomain;
import com.ruoyi.device.domain.impl.DockDomainImpl;
import com.ruoyi.device.domain.impl.djimqtt.callback.IDockDataCallback;
import com.ruoyi.device.domain.impl.djimqtt.callback.IDroneDataCallback;
import com.ruoyi.device.domain.impl.djimqtt.config.DjiMqttClientConfig;
@ -8,11 +13,19 @@ import com.ruoyi.device.domain.impl.djimqtt.handler.DjiMqttMessageHandler;
import com.ruoyi.device.domain.impl.djimqtt.manager.DjiMqttClientManager;
import com.ruoyi.device.domain.impl.djimqtt.model.DockData;
import com.ruoyi.device.domain.impl.djimqtt.model.DroneData;
import com.ruoyi.device.domain.model.Aircraft;
import com.ruoyi.device.domain.model.Device;
import com.ruoyi.device.domain.model.Dock;
import com.ruoyi.device.domain.model.DockAircraft;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.List;
@Service
@Slf4j
@ -24,6 +37,18 @@ public class DjiService {
@Autowired
private DjiMqttProperties mqttProperties;
@Autowired
private IDockDomain dockDomain;
@Autowired
private IDeviceDomain deviceDomain;
@Autowired
private IAircraftDomain aircraftDomain;
@Autowired
private IDockAircraftDomain dockAircraftDomain;
@EventListener(ApplicationReadyEvent.class)
public void onApplicationReady() {
@ -52,6 +77,8 @@ public class DjiService {
handler.registerDroneDataCallback(new IDroneDataCallback() {
@Override
public void onDroneData(DroneData droneData) {
// 更新 Dock 表的 lastActiveTime
// updateDockLastActiveTime(droneData.getDeviceSn());
// log.info("droneData:{}", droneData);
}
});

View File

@ -32,12 +32,14 @@ CREATE TABLE IF NOT EXISTS device_dock (
dock_name VARCHAR(100) COMMENT '机场名称',
dock_location VARCHAR(200) COMMENT '机场位置',
device_id BIGINT COMMENT '设备表主键',
last_active_time DATETIME COMMENT '最后活跃时间',
create_by VARCHAR(64) COMMENT '创建者',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_by VARCHAR(64) COMMENT '更新者',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
remark VARCHAR(500) COMMENT '备注',
PRIMARY KEY (dock_id)
PRIMARY KEY (dock_id),
KEY idx_dock_last_active_time (last_active_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='机场表';
-- 创建无人机表

View File

@ -1,5 +0,0 @@
-- 添加 last_active_time 字段到 dock 表
ALTER TABLE dock ADD COLUMN last_active_time DATETIME COMMENT '最后活跃时间';
-- 为 last_active_time 字段创建索引以提高查询性能
CREATE INDEX idx_dock_last_active_time ON dock(last_active_time);

View File

@ -37,6 +37,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where iot_device_id = #{iotDeviceId}
</select>
<select id="selectDeviceByDeviceSn" parameterType="String" resultMap="DeviceResult">
<include refid="selectDeviceVo"/>
where device_sn = #{deviceSn}
</select>
<select id="selectDeviceList" parameterType="com.ruoyi.device.mapper.entity.DeviceEntity" resultMap="DeviceResult">
<include refid="selectDeviceVo"/>
<where>