From a2e7e8ff9cfaa69b001d483710bddbda50d55c91 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Mon, 01 Jun 2026 16:14:19 +0800
Subject: [PATCH] 优化

---
 ard-modules/ard-modules-gb28181/src/main/java/com/ard/gb28181/transmit/event/request/impl/message/response/cmd/DeviceInfoResponseMessageHandler.java |   44 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 44 insertions(+), 0 deletions(-)

diff --git a/ard-modules/ard-modules-gb28181/src/main/java/com/ard/gb28181/transmit/event/request/impl/message/response/cmd/DeviceInfoResponseMessageHandler.java b/ard-modules/ard-modules-gb28181/src/main/java/com/ard/gb28181/transmit/event/request/impl/message/response/cmd/DeviceInfoResponseMessageHandler.java
index 22f3c2b..45e04fe 100644
--- a/ard-modules/ard-modules-gb28181/src/main/java/com/ard/gb28181/transmit/event/request/impl/message/response/cmd/DeviceInfoResponseMessageHandler.java
+++ b/ard-modules/ard-modules-gb28181/src/main/java/com/ard/gb28181/transmit/event/request/impl/message/response/cmd/DeviceInfoResponseMessageHandler.java
@@ -1,7 +1,9 @@
 package com.ard.gb28181.transmit.event.request.impl.message.response.cmd;
 
 import com.ard.gb28181.api.domain.Device;
+import com.ard.gb28181.domain.GbDevice;
 import com.ard.gb28181.service.IDeviceService;
+import com.ard.gb28181.service.IGbDeviceService;
 import com.ard.gb28181.transmit.event.request.SIPRequestProcessorParent;
 import com.ard.gb28181.transmit.event.request.impl.message.IMessageHandler;
 import com.ard.gb28181.transmit.event.request.impl.message.response.ResponseMessageHandler;
@@ -36,6 +38,9 @@
 
     @Autowired
     private IDeviceService deviceService;
+
+    @Autowired
+    private IGbDeviceService gbDeviceService;
 
     @Override
     public void afterPropertiesSet() throws Exception {
@@ -72,6 +77,45 @@
                 device.setStreamMode("TCP-PASSIVE");
             }
             deviceService.updateDevice(device);
+            // 同步更新 ard_gb_device 表中的设备名称、IP、端口、厂商、型号、固件
+            try {
+                GbDevice gbDevice = gbDeviceService.selectGbDeviceByGbDeviceId(device.getDeviceId());
+                if (gbDevice != null) {
+                    boolean needUpdate = false;
+                    if (device.getName() != null && !device.getName().equals(gbDevice.getDeviceName())) {
+                        gbDevice.setDeviceName(device.getName());
+                        needUpdate = true;
+                    }
+                    if (device.getIp() != null && !device.getIp().equals(gbDevice.getIp())) {
+                        gbDevice.setIp(device.getIp());
+                        needUpdate = true;
+                    }
+                    if (gbDevice.getPort() == null || device.getPort() != gbDevice.getPort()) {
+                        gbDevice.setPort(device.getPort());
+                        needUpdate = true;
+                    }
+                    if (device.getManufacturer() != null && !device.getManufacturer().equals(gbDevice.getManufacturer())) {
+                        gbDevice.setManufacturer(device.getManufacturer());
+                        needUpdate = true;
+                    }
+                    if (device.getModel() != null && !device.getModel().equals(gbDevice.getModel())) {
+                        gbDevice.setModel(device.getModel());
+                        needUpdate = true;
+                    }
+                    if (device.getFirmware() != null && !device.getFirmware().equals(gbDevice.getFirmware())) {
+                        gbDevice.setFirmware(device.getFirmware());
+                        needUpdate = true;
+                    }
+                    if (needUpdate) {
+                        gbDeviceService.updateGbDevice(gbDevice);
+                        log.info("[DeviceInfo] 更新设备信息: {} -> name={}, ip={}, port={}, manufacturer={}, model={}, firmware={}",
+                                device.getDeviceId(), device.getName(), device.getIp(), device.getPort(),
+                                device.getManufacturer(), device.getModel(), device.getFirmware());
+                    }
+                }
+            } catch (Exception e) {
+                log.error("[DeviceInfo] 更新GbDevice信息失败: {}", device.getDeviceId(), e);
+            }
             responseMessageHandler.handMessageEvent(rootElement, device);
 
         } catch (DocumentException e) {

--
Gitblit v1.9.3