From 95a97f674cbd7520d090bae5d9322dea56864859 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E7=A3=8A?= <45566618@qq.com> Date: Fri, 20 Mar 2026 16:05:21 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E8=81=94=E8=AE=BE=E5=A4=87=E6=8D=A2?= =?UTF-8?q?=E7=BB=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../camera/mapper/CameraInfoMapper.java | 1 + .../camera/mapper/xml/CameraInfoMapper.xml | 44 +++-- .../camera/service/ICameraInfoService.java | 1 + .../service/impl/CameraInfoServiceImpl.java | 6 + .../mapper/ElectricityMeterMapper.java | 1 + .../mapper/xml/ElectricityMeterMapper.xml | 8 + .../service/IElectricityMeterService.java | 1 + .../impl/ElectricityMeterServiceImpl.java | 4 + .../tq/water/mapper/WaterMeterMapper.java | 1 + .../tq/water/mapper/xml/WaterMeterMapper.xml | 8 + .../tq/water/service/IWaterMeterService.java | 1 + .../service/impl/WaterMeterServiceImpl.java | 5 + .../humid/mapper/HumidDeviceMapper.java | 1 + .../humid/mapper/xml/HumidDeviceMapper.xml | 8 + .../humid/service/IHumidDeviceService.java | 1 + .../service/impl/HumidDeviceServiceImpl.java | 5 + .../listener/DynamicQueueNameProvider.java | 14 ++ .../device/listener/IotSyncBizMQListener.java | 174 ++++++++++++++++++ 18 files changed, 266 insertions(+), 18 deletions(-) diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/CameraInfoMapper.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/CameraInfoMapper.java index 754b055c..c1086be8 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/CameraInfoMapper.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/CameraInfoMapper.java @@ -31,4 +31,5 @@ public interface CameraInfoMapper extends BaseMapper { IPage previewList(Page page, @Param("params") CameraInfo cameraInfo); void release(CameraInfo cameraInfo); + void updateBind(CameraInfo cameraInfo); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/xml/CameraInfoMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/xml/CameraInfoMapper.xml index a397f03b..47f6f8a4 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/xml/CameraInfoMapper.xml +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/xml/CameraInfoMapper.xml @@ -223,24 +223,24 @@ backlight_coexistence ) values ( - #{id}, - #{deviceIndex}, - #{motionDetection}, - #{videoCover}, - #{ptz}, - #{motor}, - #{smartCode}, - #{forceIdrFrame}, - #{audio}, - #{localStorage}, - #{playbackApiVersionTwo}, - #{multitrans}, - #{passengerFlow}, - #{getPreviewThumbnail}, - #{previewThumbnailJpeg}, - #{corridorMod}, - #{backlightCoexistence} - ) + #{id}, + #{deviceIndex}, + #{motionDetection}, + #{videoCover}, + #{ptz}, + #{motor}, + #{smartCode}, + #{forceIdrFrame}, + #{audio}, + #{localStorage}, + #{playbackApiVersionTwo}, + #{multitrans}, + #{passengerFlow}, + #{getPreviewThumbnail}, + #{previewThumbnailJpeg}, + #{corridorMod}, + #{backlightCoexistence} + ) @@ -334,4 +334,12 @@ where id = #{id} + + update nu_iot_tplink_camera + set + nu_id = #{nuId}, + dimension = #{dimension} + where id = #{id} + + diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/ICameraInfoService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/ICameraInfoService.java index 5f4f78df..2b4e5001 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/ICameraInfoService.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/ICameraInfoService.java @@ -94,4 +94,5 @@ public interface ICameraInfoService extends IService { //释放设备 void release(CameraInfo cameraInfo); + void updateBind(CameraInfo cameraInfo); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraInfoServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraInfoServiceImpl.java index 510ada87..dc6c723b 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraInfoServiceImpl.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraInfoServiceImpl.java @@ -3289,4 +3289,10 @@ public class CameraInfoServiceImpl extends ServiceImpl { int updateValue(ElectricityMeter electricityMeter); int updateRelayState(ElectricityMeter electricityMeter); void release(ElectricityMeter electricityMeter); + void updateBind(ElectricityMeter electricityMeter); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/mapper/xml/ElectricityMeterMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/mapper/xml/ElectricityMeterMapper.xml index 543ae38c..59d08fde 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/mapper/xml/ElectricityMeterMapper.xml +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/mapper/xml/ElectricityMeterMapper.xml @@ -117,4 +117,12 @@ where id = #{id} + + update nu_iot_ds_electricity_meter + set + nu_id = #{nuId}, + dimension = #{dimension} + where id = #{id} + + \ No newline at end of file diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/IElectricityMeterService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/IElectricityMeterService.java index bd5fc67c..05bc110d 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/IElectricityMeterService.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/IElectricityMeterService.java @@ -23,4 +23,5 @@ public interface IElectricityMeterService extends IService { void processReceivedMessage(String payload); void release(ElectricityMeter electricityMeter); + void updateBind(ElectricityMeter electricityMeter); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/impl/ElectricityMeterServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/impl/ElectricityMeterServiceImpl.java index a156bf3b..9e09152d 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/impl/ElectricityMeterServiceImpl.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/service/impl/ElectricityMeterServiceImpl.java @@ -473,5 +473,9 @@ public class ElectricityMeterServiceImpl extends ServiceImpl { int updateValue(WaterMeter waterMeter); int updateRelayState(WaterMeter waterMeter); void release(WaterMeter waterMeter); + void updateBind(WaterMeter waterMeter); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/xml/WaterMeterMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/xml/WaterMeterMapper.xml index b31f2904..496127f8 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/xml/WaterMeterMapper.xml +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/xml/WaterMeterMapper.xml @@ -124,4 +124,12 @@ where id = #{id} + + update nu_iot_tq_water_meter + set + nu_id = #{nuId}, + dimension = #{dimension} + where id = #{id} + + \ No newline at end of file diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/IWaterMeterService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/IWaterMeterService.java index 6c698c1c..a2a6987c 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/IWaterMeterService.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/IWaterMeterService.java @@ -23,4 +23,5 @@ public interface IWaterMeterService extends IService { void baoxiu(WaterMeter waterMeter); void release(WaterMeter waterMeter); + void updateBind(WaterMeter waterMeter); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/impl/WaterMeterServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/impl/WaterMeterServiceImpl.java index 0e53c11e..6c909c69 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/impl/WaterMeterServiceImpl.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/impl/WaterMeterServiceImpl.java @@ -600,6 +600,11 @@ public class WaterMeterServiceImpl extends ServiceImpl { IPage findLogPage(Page page, @Param("params") HumidDevice humidDevice); HumidDevice getHumidInfo(HumidDevice humidDevice); void release(HumidDevice humidDevice); + void updateBind(HumidDevice humidDevice); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/mapper/xml/HumidDeviceMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/mapper/xml/HumidDeviceMapper.xml index 30577622..ebdda732 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/mapper/xml/HumidDeviceMapper.xml +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/mapper/xml/HumidDeviceMapper.xml @@ -387,4 +387,12 @@ where id = #{id} + + update nu_iot_yiweilian_humid_device + set + nu_id = #{nuId}, + dimension = #{dimension} + where id = #{id} + + diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/IHumidDeviceService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/IHumidDeviceService.java index f903482b..8ee9b58a 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/IHumidDeviceService.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/IHumidDeviceService.java @@ -22,4 +22,5 @@ public interface IHumidDeviceService extends IService { void baoxiu(HumidDevice humidDevice); void release(HumidDevice humidDevice); + void updateBind(HumidDevice humidDevice); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/impl/HumidDeviceServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/impl/HumidDeviceServiceImpl.java index 3705da01..635dfb28 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/impl/HumidDeviceServiceImpl.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/service/impl/HumidDeviceServiceImpl.java @@ -517,6 +517,11 @@ public class HumidDeviceServiceImpl extends ServiceImpl capabilityQw = new QueryWrapper<>(); + capabilityQw.eq("device_index",entity.getDeviceIndex()); + CameraCapability capability = cameraCapabilityService.getOne(capabilityQw); + cameraCapabilityService.removeById(capability.getId()); } statusList.add(statusMQDto); } @@ -573,6 +577,10 @@ public class IotSyncBizMQListener { WaterMeter entity = waterMeterService.getOne(waterQw); if(entity!=null){ waterMeterService.removeById(entity.getId()); + QueryWrapper collectorQw = new QueryWrapper<>(); + collectorQw.eq("cid",entity.getCid()); + TqDeviceInfo collector = collectorService.getOne(collectorQw); + collectorService.removeById(collector.getId()); } statusList.add(statusMQDto); } @@ -622,4 +630,170 @@ public class IotSyncBizMQListener { rabbitMQUtil.sendToExchange("hldy.iotsyncbiz", "iotsyncbiz.unbind.result", statusListMQDto); } + @RabbitListener( + bindings = @QueueBinding( + value = @Queue(name = "#{iotDeviceAsyncDQNP.getUpdateBindDeviceQueueName()}"), + exchange = @Exchange(name = "hldy.iotsyncbiz", type = ExchangeTypes.DIRECT), + key = "#{iotDeviceAsyncDQNP.getUpdateBindDeviceKeyName()}" + ), + errorHandler = "iotDeviceMQErrorHandler" + ) + public void handleUpdateBind_unify(IotSyncBizMQDto dto) { + syncUpdateBindIot(dto); + } + + private void syncUpdateBindIot(IotSyncBizMQDto dto) { + List statusList = new ArrayList<>(); + + List cameraList = dto.getCameraInfoList(); + if(cameraList!=null&&cameraList.size()>0){ + for(int i=0;i cameraQw = new QueryWrapper<>(); + cameraQw.eq("mac",iotCameraInfoMQDto.getMac()); + CameraInfo entity = cameraInfoService.getOne(cameraQw); + if(entity!=null){ + CameraInfo ci = new CameraInfo(); + ci.setId(entity.getId()); + ci.setDimension(iotCameraInfoMQDto.getDimension()); + ci.setNuId(null); + if(iotCameraInfoMQDto.getDimension().equals("区域维度")){ + ci.setNuId(iotCameraInfoMQDto.getNuId()); + } + cameraInfoService.updateBind(ci); + } + statusList.add(statusMQDto); + } + catch (Exception e) { + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setAsyncId(iotCameraInfoMQDto.getMac()); + statusMQDto.setMessage("失败"); + statusMQDto.setPrimaryKey(iotCameraInfoMQDto.getLogId()); + statusMQDto.setNote("TPLINK"); + statusList.add(statusMQDto); + e.printStackTrace(); + } + } + } + + List electricityList = dto.getElectricityMeterList(); + if(electricityList!=null&&electricityList.size()>0){ + for(int i=0;i electricityQw = new QueryWrapper<>(); + electricityQw.eq("sn",iotElectricityMeterMQDto.getSn()); + ElectricityMeter entity = electricityMeterService.getOne(electricityQw); + if(entity!=null){ + ElectricityMeter em = new ElectricityMeter(); + em.setId(entity.getId()); + em.setDimension(iotElectricityMeterMQDto.getDimension()); + em.setNuId(null); + if(iotElectricityMeterMQDto.getDimension().equals("区域维度")){ + em.setNuId(iotElectricityMeterMQDto.getNuId()); + } + electricityMeterService.updateBind(em); + } + statusList.add(statusMQDto); + } + catch (Exception e) { + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setAsyncId(iotElectricityMeterMQDto.getSn()); + statusMQDto.setMessage("失败"); + statusMQDto.setPrimaryKey(iotElectricityMeterMQDto.getLogId()); + statusMQDto.setNote("电表"); + statusList.add(statusMQDto); + e.printStackTrace(); + } + } + } + + List waterMeterList = dto.getWaterMeterList(); + if(waterMeterList!=null&&waterMeterList.size()>0){ + for(int i=0;i waterQw = new QueryWrapper<>(); + waterQw.eq("cid",iotWaterMeterMQDto.getCid()); + WaterMeter entity = waterMeterService.getOne(waterQw); + if(entity!=null){ + WaterMeter wm = new WaterMeter(); + wm.setId(entity.getId()); + wm.setDimension(iotWaterMeterMQDto.getDimension()); + wm.setNuId(null); + if(iotWaterMeterMQDto.getDimension().equals("区域维度")){ + wm.setNuId(iotWaterMeterMQDto.getNuId()); + } + waterMeterService.updateBind(wm); + } + statusList.add(statusMQDto); + } + catch (Exception e) { + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setAsyncId(iotWaterMeterMQDto.getCid()); + statusMQDto.setMessage("失败"); + statusMQDto.setPrimaryKey(iotWaterMeterMQDto.getLogId()); + statusMQDto.setNote("水表"); + statusList.add(statusMQDto); + e.printStackTrace(); + } + } + } + + List humidDeviceList = dto.getHumidDeviceList(); + if(humidDeviceList!=null&&humidDeviceList.size()>0){ + for(int i=0;i humidQw = new QueryWrapper<>(); + humidQw.eq("sn",iotHumidDeviceMQDto.getSn()); + HumidDevice entity = humidDeviceService.getOne(humidQw); + if(entity!=null){ + HumidDevice hd = new HumidDevice(); + hd.setId(entity.getId()); + hd.setDimension(iotHumidDeviceMQDto.getDimension()); + hd.setNuId(null); + if(iotHumidDeviceMQDto.getDimension().equals("区域维度")){ + hd.setNuId(iotHumidDeviceMQDto.getNuId()); + } + humidDeviceService.updateBind(hd); + } + statusList.add(statusMQDto); + } + catch (Exception e) { + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setAsyncId(iotHumidDeviceMQDto.getSn()); + statusMQDto.setMessage("失败"); + statusMQDto.setPrimaryKey(iotHumidDeviceMQDto.getLogId()); + statusMQDto.setNote("温湿度计"); + statusList.add(statusMQDto); + e.printStackTrace(); + } + } + } + StatusListMQDto statusListMQDto = new StatusListMQDto(); + statusListMQDto.setStatusList(statusList); + rabbitMQUtil.sendToExchange("hldy.iotsyncbiz", "iotsyncbiz.updatebind.result", statusListMQDto); + } }