From 2c9d4e93eedc38ffcc0c99c27979bb6e0174b64c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E7=A3=8A?= <45566618@qq.com> Date: Wed, 13 Aug 2025 11:25:13 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/nu/dto/IotCameraCapabilityMQDto.java | 50 +++ .../java/com/nu/dto/IotCameraInfoMQDto.java | 87 +++++ .../com/nu/dto/IotEleWaterCollectorMQDto.java | 31 ++ .../com/nu/dto/IotElectricityMeterMQDto.java | 41 +++ .../java/com/nu/dto/IotHumidDeviceMQDto.java | 75 ++++ .../java/com/nu/dto/IotNuBaseInfoMQDto.java | 26 ++ .../main/java/com/nu/dto/IotSyncBizMQDto.java | 17 + .../java/com/nu/dto/IotWaterMeterMQDto.java | 43 +++ .../main/java/com/nu/dto/StatusListMQDto.java | 10 + nursing-unit-iot/nu-iot-biz/pom.xml | 6 + .../camera/entity/CameraCapability.java | 51 +++ .../tplink/camera/entity/CameraInfo.java | 6 + .../camera/mapper/CameraCapabilityMapper.java | 17 + .../mapper/xml/CameraCapabilityMapper.xml | 5 + .../service/ICameraCapabilityService.java | 13 + .../impl/CameraCapabilityServiceImpl.java | 20 ++ .../electricity/entity/ElectricityMeter.java | 2 + .../mapper/xml/ElectricityMeterMapper.xml | 2 +- .../modules/tq/water/entity/WaterMeter.java | 2 + .../yiweilian/humid/entity/HumidDevice.java | 3 +- .../listener/DynamicQueueNameProvider.java | 2 +- .../config/listener/TqConfigMQListener.java | 4 +- .../config/listener/TumsConfigMQListener.java | 4 +- .../listener/YiweilianConfigMQListener.java | 4 +- .../IotDeviceMQExceptionHandler.java | 28 ++ .../listener/DynamicQueueNameProvider.java | 29 ++ .../device/listener/IotSyncBizMQListener.java | 328 ++++++++++++++++++ 27 files changed, 897 insertions(+), 9 deletions(-) create mode 100644 nursing-unit-common/src/main/java/com/nu/dto/IotCameraCapabilityMQDto.java create mode 100644 nursing-unit-common/src/main/java/com/nu/dto/IotCameraInfoMQDto.java create mode 100644 nursing-unit-common/src/main/java/com/nu/dto/IotEleWaterCollectorMQDto.java create mode 100644 nursing-unit-common/src/main/java/com/nu/dto/IotElectricityMeterMQDto.java create mode 100644 nursing-unit-common/src/main/java/com/nu/dto/IotHumidDeviceMQDto.java create mode 100644 nursing-unit-common/src/main/java/com/nu/dto/IotNuBaseInfoMQDto.java create mode 100644 nursing-unit-common/src/main/java/com/nu/dto/IotSyncBizMQDto.java create mode 100644 nursing-unit-common/src/main/java/com/nu/dto/IotWaterMeterMQDto.java create mode 100644 nursing-unit-common/src/main/java/com/nu/dto/StatusListMQDto.java create mode 100644 nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraCapability.java create mode 100644 nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/CameraCapabilityMapper.java create mode 100644 nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/xml/CameraCapabilityMapper.xml create mode 100644 nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/ICameraCapabilityService.java create mode 100644 nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraCapabilityServiceImpl.java create mode 100644 nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/device/exceptionhandler/IotDeviceMQExceptionHandler.java create mode 100644 nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/device/listener/DynamicQueueNameProvider.java create mode 100644 nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/device/listener/IotSyncBizMQListener.java diff --git a/nursing-unit-common/src/main/java/com/nu/dto/IotCameraCapabilityMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/IotCameraCapabilityMQDto.java new file mode 100644 index 0000000..838809d --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/dto/IotCameraCapabilityMQDto.java @@ -0,0 +1,50 @@ +package com.nu.dto; + +import lombok.Data; + +/** + * @Description: TPLINK摄像头能力集信息 + * @Author: caolei + * @Date: 2025-08-11 + * @Version: V1.0 + */ +@Data +public class IotCameraCapabilityMQDto{ + /**ID*/ + private Integer id; + /**设备序号*/ + private String deviceIndex; + /**力集属性*/ + private String motionDetection; + /**视频封面*/ + private String videoCover; + /**云台*/ + private String ptz; + private String motor; + /**变焦,0不可变焦 1可变焦*/ + private String smartCode; + /**强制在H.264编码过程中生成IDR帧的函数*/ + private String forceIdrFrame; + /**音频*/ + private String audio; + /**本地存储*/ + private String localStorage; + /**回放API本版*/ + private String playbackApiVersionTwo; + /**多变性*/ + private String multitrans; + /**客流*/ + private String passengerFlow; + /**获取预览缩略图*/ + private String getPreviewThumbnail; + /**JPG预览缩略图*/ + private String previewThumbnailJpeg; + /**走廊*/ + private String corridorMod; + /**背光共存*/ + private String backlightCoexistence; + /**是否同步 0 未同步 1已同步*/ + private String syncType; + /**日志ID*/ + private String logId; +} diff --git a/nursing-unit-common/src/main/java/com/nu/dto/IotCameraInfoMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/IotCameraInfoMQDto.java new file mode 100644 index 0000000..d7e6756 --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/dto/IotCameraInfoMQDto.java @@ -0,0 +1,87 @@ +package com.nu.dto; + +import lombok.Data; + +/** + * @Description: TPLINK摄像头信息 + * @Author: caolei + * @Date: 2025-08-11 + * @Version: V1.0 + */ +@Data +public class IotCameraInfoMQDto{ + /**ID*/ + private Integer id; + /**sn*/ + private String sn; + /**设备序号*/ + private String deviceIndex; + /**设备名称*/ + private String deviceName; + /**设备类型*/ + private String deviceType; + /**设备状态 0 离线 1 在线 2 重启中 3 升级中 4 配置中 5 同步中*/ + private String deviceStatus; + /**设备型号*/ + private String deviceModel; + /**IP地址*/ + private String ip; + /**MAC地址*/ + private String mac; + /**分组ID*/ + private String regionId; + /**分组名称*/ + private String regionName; + /**父设备ID*/ + private String parentId; + /**父设备名称*/ + private String parentDeviceName; + /**项目ID*/ + private String projectId; + /**项目名称*/ + private String projectName; + /**软件版本*/ + private String firmwareVer; + /**硬件版本*/ + private String hardwareVer; + /**用户权限类型 -1 无权限 0 可读 1 可控制 2 可配置 3 可控制/配置 4 所有*/ + private String managerAuthType; + /**告警消息权限 1 有权限 -1 无权限*/ + private String msgAuthType; + /**国标编码*/ + private String sipCode; + /**位置名称*/ + private String locationName; + /**系统类型 public 通用*/ + private String systemType; + /**协议类型*/ + private String protocol; + /**录像计划ID**/ + private String recordPlanId; + /**回放视频转FTP上传IP**/ + private String ftpIp; + /**回放视频转FTP上传端口**/ + private String ftpPort; + /**回放视频转FTP上传用户**/ + private String ftpUsername; + /**回放视频转FTP上传密码**/ + private String ftpPassword; + /**回放视频转FTP上传路径**/ + private String ftpUploadpath; + /**区域编码*/ + private String nuId; + /**区域编码*/ + private String nuName; + /**机构ID*/ + private String departId; + /**机构名称*/ + private String departName; + /**机构服务地址*/ + private String departServerUrl; + /**是否同步 0 未同步 1已同步*/ + private String syncType; + /**维修状态*/ + private String maintainStatus; + /**日志ID*/ + private String logId; +} diff --git a/nursing-unit-common/src/main/java/com/nu/dto/IotEleWaterCollectorMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/IotEleWaterCollectorMQDto.java new file mode 100644 index 0000000..47ca4fa --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/dto/IotEleWaterCollectorMQDto.java @@ -0,0 +1,31 @@ +package com.nu.dto; + +import lombok.Data; + +/** + * @Description: 电水表采集器 + * @Author: caolei + * @Date: 2025-08-12 + * @Version: V1.0 + */ +@Data +public class IotEleWaterCollectorMQDto{ + /**主键*/ + private Integer id; + /**采集器*/ + private String cid; + /**在线状态*/ + private String online; + /**信号值*/ + private String csq; + /**上次掉线时间*/ + private String disconnectTime; + /**上次上线时间*/ + private String connectTime; + /**描述*/ + private String remark; + /**是否同步 0 未同步 1已同步*/ + private String syncType; + /**日志ID*/ + private String logId; +} \ No newline at end of file diff --git a/nursing-unit-common/src/main/java/com/nu/dto/IotElectricityMeterMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/IotElectricityMeterMQDto.java new file mode 100644 index 0000000..55521ca --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/dto/IotElectricityMeterMQDto.java @@ -0,0 +1,41 @@ +package com.nu.dto; + +import lombok.Data; + +/** + * @Description: 水表 + * @Author: caolei + * @Date: 2025-08-12 + * @Version: V1.0 + */ +@Data +public class IotElectricityMeterMQDto{ + /**主键*/ + private Integer id; + /**采集器*/ + private String cid; + /**表号*/ + private String address; + /**电表值*/ + private String eleValue; + /**阀门状态*/ + private String relayState; + /**描述*/ + private String remark; + /**区域编码*/ + private String nuId; + /**区域名称*/ + private String nuName; + /**机构ID*/ + private String departId; + /**机构名称*/ + private String departName; + /**机构服务地址*/ + private String departServerUrl; + /**是否同步*/ + private String syncType; + /**维修状态*/ + private String maintainStatus; + /**日志ID*/ + private String logId; +} \ No newline at end of file diff --git a/nursing-unit-common/src/main/java/com/nu/dto/IotHumidDeviceMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/IotHumidDeviceMQDto.java new file mode 100644 index 0000000..90fc662 --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/dto/IotHumidDeviceMQDto.java @@ -0,0 +1,75 @@ +package com.nu.dto; + +import lombok.Data; + +/** + * @Description: 温湿度计 + * @Author: caolei + * @Date: 2025-08-12 + * @Version: V1.0 + */ +@Data +public class IotHumidDeviceMQDto{ + /**主键*/ + private Integer id; + /**设备SN号*/ + private String sn; + /**设备名称*/ + private String deviceName; + /**设备所在时区*/ + private String timeCode; + /**设备类型*/ + private String deviceTypes; + /**上报间隔*/ + private String reportingInterval; + /**记录间隔*/ + private String recordInterval; + /**历史数据上报时刻*/ + private String historyReportTime; + /**历史数据上报间隔*/ + private String historyInterval; + /**温度预警范围 上限值*/ + private String temperatureHigh; + /**温度预警范围 下限值*/ + private String temperatureLow; + /**温度缓冲值*/ + private String temperatureBuffer; + /**湿度预警范围 上限值*/ + private String humidityHigh; + /**湿度预警范围 下限值*/ + private String humidityLow; + /**湿度缓冲值*/ + private String humidityBuffer; + /**断电报警"*/ + private String izOutages; + /**低电报警*/ + private String izLowBattery; + /**上下线通知*/ + private String izOnline; + /**温度*/ + private String temperature; + /**湿度*/ + private String humidity; + /**在线状态*/ + private String status; + /**最新上报时间*/ + private String reportingTime; + /**电量*/ + private String electricity; + /**区域编码*/ + private String nuId; + /**区域名称*/ + private String nuName; + /**机构ID*/ + private String departId; + /**机构名称*/ + private String departName; + /**机构服务地址*/ + private String departServerUrl; + /**是否同步 0 未同步 1已同步*/ + private String syncType; + /**维修状态*/ + private String maintainStatus; + /**日志ID*/ + private String logId; +} \ No newline at end of file diff --git a/nursing-unit-common/src/main/java/com/nu/dto/IotNuBaseInfoMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/IotNuBaseInfoMQDto.java new file mode 100644 index 0000000..c8229bf --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/dto/IotNuBaseInfoMQDto.java @@ -0,0 +1,26 @@ +package com.nu.dto; + +import lombok.Data; + +@Data +public class IotNuBaseInfoMQDto { + /**ID*/ + private String id; + /**区域编码*/ + private String nuId; + /**区域名称*/ + private String nuName; + /**区域标签*/ + private String areaFlag; + /**是否删除*/ + private String delFlag; + /**所属机构*/ + private String orgCode; + /**所属机构*/ + private String orgName; + /**是否同步*/ + private String izSync; + /**日志ID*/ + private String logId; + +} diff --git a/nursing-unit-common/src/main/java/com/nu/dto/IotSyncBizMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/IotSyncBizMQDto.java new file mode 100644 index 0000000..2be07f8 --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/dto/IotSyncBizMQDto.java @@ -0,0 +1,17 @@ +package com.nu.dto; + +import lombok.Data; + +import java.util.List; + +@Data +public class IotSyncBizMQDto { + private IotNuBaseInfoMQDto nuBaseInfo; + private List cameraInfoList; + private List capabilityList; + private List electricityMeterList; + private List waterMeterList; + private List collectorList; + private List humidDeviceList; + +} diff --git a/nursing-unit-common/src/main/java/com/nu/dto/IotWaterMeterMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/IotWaterMeterMQDto.java new file mode 100644 index 0000000..566521e --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/dto/IotWaterMeterMQDto.java @@ -0,0 +1,43 @@ +package com.nu.dto; + +import lombok.Data; + +/** + * @Description: 电表 + * @Author: caolei + * @Date: 2025-08-12 + * @Version: V1.0 + */ +@Data +public class IotWaterMeterMQDto{ + /**主键*/ + private Integer id; + /**采集器*/ + private String cid; + /**表号*/ + private String address; + /**水表值*/ + private String waterValue; + /**阀门状态*/ + private String relayState; + /**水表电池状态*/ + private String batteryState; + /**描述*/ + private String remark; + /**区域编码*/ + private String nuId; + /**区域名称*/ + private String nuName; + /**机构ID*/ + private String departId; + /**机构名称*/ + private String departName; + /**机构服务地址*/ + private String departServerUrl; + /**是否同步*/ + private String syncType; + /**维修状态*/ + private String maintainStatus; + /**日志ID*/ + private String logId; +} \ No newline at end of file diff --git a/nursing-unit-common/src/main/java/com/nu/dto/StatusListMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/StatusListMQDto.java new file mode 100644 index 0000000..4826a6a --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/dto/StatusListMQDto.java @@ -0,0 +1,10 @@ +package com.nu.dto; + +import lombok.Data; + +import java.util.List; + +@Data +public class StatusListMQDto { + List statusList; +} diff --git a/nursing-unit-iot/nu-iot-biz/pom.xml b/nursing-unit-iot/nu-iot-biz/pom.xml index ba0cad0..7a9926e 100644 --- a/nursing-unit-iot/nu-iot-biz/pom.xml +++ b/nursing-unit-iot/nu-iot-biz/pom.xml @@ -52,6 +52,12 @@ 2.0.0 compile + + com.nursingunit.boot + nu-admin-biz + 2.0.0 + compile + diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraCapability.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraCapability.java new file mode 100644 index 0000000..4ee1df6 --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraCapability.java @@ -0,0 +1,51 @@ +package com.nu.modules.tplink.camera.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description: TPLINK摄像头能力集信息 + * @Author: caolei + * @Date: 2025-08-11 + * @Version: V1.0 + */ +@Data +@TableName("nu_iot_tplink_camera_capability") +public class CameraCapability implements Serializable { + private static final long serialVersionUID = 1L; + /**ID*/ + private Integer id; + /**设备序号*/ + private String deviceIndex; + /**力集属性*/ + private String motionDetection; + /**视频封面*/ + private String videoCover; + /**云台*/ + private String ptz; + private String motor; + /**变焦,0不可变焦 1可变焦*/ + private String smartCode; + /**强制在H.264编码过程中生成IDR帧的函数*/ + private String forceIdrFrame; + /**音频*/ + private String audio; + /**本地存储*/ + private String localStorage; + /**回放API本版*/ + private String playbackApiVersionTwo; + /**多变性*/ + private String multitrans; + /**客流*/ + private String passengerFlow; + /**获取预览缩略图*/ + private String getPreviewThumbnail; + /**JPG预览缩略图*/ + private String previewThumbnailJpeg; + /**走廊*/ + private String corridorMod; + /**背光共存*/ + private String backlightCoexistence; +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraInfo.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraInfo.java index a4da3f5..a5f5a37 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraInfo.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraInfo.java @@ -33,6 +33,10 @@ public class CameraInfo implements Serializable { @TableId(type = IdType.AUTO) @ApiModelProperty(value = "ID") private Integer id; + /**设备编码*/ + @Excel(name = "设备编码", width = 15) + @ApiModelProperty(value = "设备编码") + private String sn; /**设备序号*/ @Excel(name = "设备序号", width = 15) @ApiModelProperty(value = "设备序号") @@ -307,4 +311,6 @@ public class CameraInfo implements Serializable { private String ftpUsername; //回放视频转FTP上传用户 private String ftpPassword; //回放视频转FTP上传密码 private String ftpUploadpath; //回放视频转FTP上传路径 + /**维修状态*/ + private String maintainStatus; } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/CameraCapabilityMapper.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/CameraCapabilityMapper.java new file mode 100644 index 0000000..12a0c04 --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/CameraCapabilityMapper.java @@ -0,0 +1,17 @@ +package com.nu.modules.tplink.camera.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nu.modules.tplink.camera.entity.CameraCapability; +import com.nu.modules.tplink.camera.entity.CameraInfo; +import org.apache.ibatis.annotations.Mapper; + +/** + * @Description: 护理单元-物联管理-摄像头能力集信息 + * @Author: jeecg-boot + * @Date: 2025-08-12 + * @Version: V1.0 + */ + +@Mapper +public interface CameraCapabilityMapper extends BaseMapper { +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/xml/CameraCapabilityMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/xml/CameraCapabilityMapper.xml new file mode 100644 index 0000000..21b3e6c --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/xml/CameraCapabilityMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/ICameraCapabilityService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/ICameraCapabilityService.java new file mode 100644 index 0000000..c47acce --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/ICameraCapabilityService.java @@ -0,0 +1,13 @@ +package com.nu.modules.tplink.camera.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.nu.modules.tplink.camera.entity.CameraCapability; + +/** + * @Description: 护理单元-物联管理-摄像头能力集信息 + * @Author: jeecg-boot + * @Date: 2025-08-12 + * @Version: V1.0 + */ +public interface ICameraCapabilityService extends IService { +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraCapabilityServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraCapabilityServiceImpl.java new file mode 100644 index 0000000..310e941 --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/service/impl/CameraCapabilityServiceImpl.java @@ -0,0 +1,20 @@ +package com.nu.modules.tplink.camera.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nu.modules.tplink.camera.entity.CameraCapability; +import com.nu.modules.tplink.camera.mapper.CameraCapabilityMapper; +import com.nu.modules.tplink.camera.service.ICameraCapabilityService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @Description: 护理单元-物联管理-摄像头能力集信息 + * @Author: jeecg-boot + * @Date: 2025-08-12 + * @Version: V1.0 + */ +@Service +@Slf4j +public class CameraCapabilityServiceImpl extends ServiceImpl implements ICameraCapabilityService { + +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/entity/ElectricityMeter.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/entity/ElectricityMeter.java index 4576d60..f377237 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/entity/ElectricityMeter.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/entity/ElectricityMeter.java @@ -78,5 +78,7 @@ public class ElectricityMeter implements Serializable { private String syncType;//是否同步 0 未同步 1已同步 private String oldDepartId;//原机构id private String oldDepartName;//原机构名称 + /**维修状态*/ + private String maintainStatus; } \ No newline at end of file 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 f5fe454..628e1e4 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 @@ -90,7 +90,7 @@ - insert into nu_iot_tq_water_meter( + insert into nu_iot_tq_electricity_meter( cid, address, relay_state, diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/entity/WaterMeter.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/entity/WaterMeter.java index 3a74eb8..e093306 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/entity/WaterMeter.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/entity/WaterMeter.java @@ -76,4 +76,6 @@ public class WaterMeter implements Serializable { private String nuName;//护理单元 private String departId;//机构ID private String departName;//机构名称 + /**维修状态*/ + private String maintainStatus; } \ No newline at end of file diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/entity/HumidDevice.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/entity/HumidDevice.java index 8af0d59..58f221c 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/entity/HumidDevice.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/humid/entity/HumidDevice.java @@ -116,5 +116,6 @@ public class HumidDevice implements Serializable { private String syncType;//是否同步 0 未同步 1已同步 private String oldDepartId;//原机构id private String oldDepartName;//原机构名称 - + /**维修状态*/ + private String maintainStatus; } \ No newline at end of file diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/DynamicQueueNameProvider.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/DynamicQueueNameProvider.java index a1b07ab..0ce4ac8 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/DynamicQueueNameProvider.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/DynamicQueueNameProvider.java @@ -6,7 +6,7 @@ import org.jeecg.common.system.api.ISysBaseAPI; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -@Component("iotAsyncDQNP") +@Component("iotConfigAsyncDQNP") public class DynamicQueueNameProvider { @Autowired diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/TqConfigMQListener.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/TqConfigMQListener.java index 450b2d9..c2b1e31 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/TqConfigMQListener.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/TqConfigMQListener.java @@ -29,9 +29,9 @@ public class TqConfigMQListener { @RabbitListener( bindings = @QueueBinding( - value = @Queue(name = "#{iotAsyncDQNP.getSyncTqQueueName()}"), + value = @Queue(name = "#{iotConfigAsyncDQNP.getSyncTqQueueName()}"), exchange = @Exchange(name = "hldy.tqconfig", type = ExchangeTypes.DIRECT), - key = "#{iotAsyncDQNP.getSyncTqKeyName()}" + key = "#{iotConfigAsyncDQNP.getSyncTqKeyName()}" ), errorHandler = "iotConfigMQErrorHandler" ) diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/TumsConfigMQListener.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/TumsConfigMQListener.java index 33f96b6..1eadd62 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/TumsConfigMQListener.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/TumsConfigMQListener.java @@ -27,9 +27,9 @@ public class TumsConfigMQListener { @RabbitListener( bindings = @QueueBinding( - value = @Queue(name = "#{iotAsyncDQNP.getSyncTumsQueueName()}"), + value = @Queue(name = "#{iotConfigAsyncDQNP.getSyncTumsQueueName()}"), exchange = @Exchange(name = "hldy.tumsconfig", type = ExchangeTypes.DIRECT), - key = "#{iotAsyncDQNP.getSyncTumsKeyName()}" + key = "#{iotConfigAsyncDQNP.getSyncTumsKeyName()}" ), errorHandler = "iotConfigMQErrorHandler" ) diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/YiweilianConfigMQListener.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/YiweilianConfigMQListener.java index 265689a..b6eec86 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/YiweilianConfigMQListener.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/YiweilianConfigMQListener.java @@ -27,9 +27,9 @@ public class YiweilianConfigMQListener { @RabbitListener( bindings = @QueueBinding( - value = @Queue(name = "#{iotAsyncDQNP.getSyncYiweilianQueueName()}"), + value = @Queue(name = "#{iotConfigAsyncDQNP.getSyncYiweilianQueueName()}"), exchange = @Exchange(name = "hldy.yiweilianconfig", type = ExchangeTypes.DIRECT), - key = "#{iotAsyncDQNP.getSyncTYiweilianKeyName()}" + key = "#{iotConfigAsyncDQNP.getSyncTYiweilianKeyName()}" ), errorHandler = "iotConfigMQErrorHandler" ) diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/device/exceptionhandler/IotDeviceMQExceptionHandler.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/device/exceptionhandler/IotDeviceMQExceptionHandler.java new file mode 100644 index 0000000..77c387d --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/device/exceptionhandler/IotDeviceMQExceptionHandler.java @@ -0,0 +1,28 @@ +package com.nu.mq.device.exceptionhandler; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.AmqpRejectAndDontRequeueException; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.listener.api.RabbitListenerErrorHandler; +import org.springframework.amqp.rabbit.support.ListenerExecutionFailedException; +import org.springframework.stereotype.Component; + +@Slf4j +@Component("iotDeviceMQErrorHandler") +public class IotDeviceMQExceptionHandler implements RabbitListenerErrorHandler { + + @Override + public Object handleError(Message message, org.springframework.messaging.Message message1, ListenerExecutionFailedException e) { + log.error("MQ消息处理失败 | 消息体: {} | 异常原因: {}", new String(message.getBody()), e.getCause().getMessage()); + + // 根据异常类型选择处理策略 +// if (isRetryable(e)) { +// // 可重试异常:抛出异常触发重试 +// throw e; +// } else { + // 不可恢复异常:拒绝消息且不重新入队 + throw new AmqpRejectAndDontRequeueException("消息处理失败且禁止重试", e); +// } + } + +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/device/listener/DynamicQueueNameProvider.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/device/listener/DynamicQueueNameProvider.java new file mode 100644 index 0000000..174b1e9 --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/device/listener/DynamicQueueNameProvider.java @@ -0,0 +1,29 @@ +package com.nu.mq.device.listener; + +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang.StringUtils; +import org.jeecg.common.system.api.ISysBaseAPI; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component("iotDeviceAsyncDQNP") +public class DynamicQueueNameProvider { + + @Autowired + private ISysBaseAPI sysBaseAPI; + + public String getSyncDeviceQueueName() { + JSONObject deptInfo = sysBaseAPI.getDeptInfo(); + String orgCode = deptInfo.getString("code"); + if (StringUtils.isNotBlank(orgCode)) { + return orgCode + ".iotsyncbiz.async"; + } else { + return ""; + } + } + + public String getSyncDeviceKeyName() { + return getSyncDeviceQueueName(); + } + +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/device/listener/IotSyncBizMQListener.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/device/listener/IotSyncBizMQListener.java new file mode 100644 index 0000000..1461d3b --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/device/listener/IotSyncBizMQListener.java @@ -0,0 +1,328 @@ +package com.nu.mq.device.listener; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.nu.dto.*; +import com.nu.modules.nuBaseInfo.entity.NuBaseInfo; +import com.nu.modules.nuBaseInfo.service.INuBaseInfoService; +import com.nu.modules.nuBizAdvisoryInfo.entity.NuBizAdvisoryInfo; +import com.nu.modules.tplink.camera.entity.CameraCapability; +import com.nu.modules.tplink.camera.entity.CameraInfo; +import com.nu.modules.tplink.camera.service.ICameraCapabilityService; +import com.nu.modules.tplink.camera.service.ICameraInfoService; +import com.nu.modules.tq.common.entity.TqDeviceInfo; +import com.nu.modules.tq.common.service.ITqDeviceInfoService; +import com.nu.modules.tq.electricity.entity.ElectricityMeter; +import com.nu.modules.tq.electricity.service.IElectricityMeterService; +import com.nu.modules.tq.water.entity.WaterMeter; +import com.nu.modules.tq.water.service.IWaterMeterService; +import com.nu.modules.yiweilian.humid.entity.HumidDevice; +import com.nu.modules.yiweilian.humid.service.IHumidDeviceService; +import com.nu.utils.RabbitMQUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.core.ExchangeTypes; +import org.springframework.amqp.rabbit.annotation.Exchange; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.QueueBinding; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import java.util.ArrayList; +import java.util.List; + +@Slf4j +@Component +public class IotSyncBizMQListener { + @Autowired + private RabbitMQUtil rabbitMQUtil; + + @Autowired + private INuBaseInfoService nuBaseInfoService; + + @Autowired + private ICameraInfoService cameraInfoService; + + @Autowired + private ICameraCapabilityService cameraCapabilityService; + + @Autowired + private IElectricityMeterService electricityMeterService; + + @Autowired + private IWaterMeterService waterMeterService; + + @Autowired + private ITqDeviceInfoService collectorService; + + @Autowired + private IHumidDeviceService humidDeviceService; + + @RabbitListener( + bindings = @QueueBinding( + value = @Queue(name = "#{iotDeviceAsyncDQNP.getSyncDeviceQueueName()}"), + exchange = @Exchange(name = "hldy.iotsyncbiz", type = ExchangeTypes.DIRECT), + key = "#{iotDeviceAsyncDQNP.getSyncDeviceKeyName()}" + ), + errorHandler = "iotDeviceMQErrorHandler" + ) + public void handleMessage_unify(IotSyncBizMQDto dto) { + saveSyncBizInfo(dto); + } + + private void saveSyncBizInfo(IotSyncBizMQDto dto) { + List statusList = new ArrayList<>(); + IotNuBaseInfoMQDto iotNuBaseInfoMQDto = dto.getNuBaseInfo(); + try { + QueryWrapper nuBaseInfoQw = new QueryWrapper<>(); + nuBaseInfoQw.eq("nu_id",iotNuBaseInfoMQDto.getNuId()); + NuBaseInfo entity = nuBaseInfoService.getOne(nuBaseInfoQw); + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setAsyncId(iotNuBaseInfoMQDto.getId()); + statusMQDto.setMessage("成功"); + statusMQDto.setPrimaryKey(iotNuBaseInfoMQDto.getLogId()); + statusMQDto.setNote("区域"); + if(entity!=null){ + if(iotNuBaseInfoMQDto.getDelFlag().equals(entity.getDelFlag())){ + statusMQDto.setMessage("忽略"); + }else{ + entity.setDelFlag(iotNuBaseInfoMQDto.getDelFlag()); + nuBaseInfoService.updateById(entity); + } + }else{ + NuBaseInfo nuBaseInfo = new NuBaseInfo(); + BeanUtils.copyProperties(iotNuBaseInfoMQDto, nuBaseInfo); + nuBaseInfoService.save(nuBaseInfo); + } + statusList.add(statusMQDto); + } catch (Exception e) { + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setAsyncId(iotNuBaseInfoMQDto.getId()); + statusMQDto.setMessage("失败"); + statusMQDto.setPrimaryKey(iotNuBaseInfoMQDto.getLogId()); + statusMQDto.setNote("区域"); + statusList.add(statusMQDto); + e.printStackTrace(); + } + + List cameraList = dto.getCameraInfoList(); + if(cameraList!=null&&cameraList.size()>0){ + for(int i=0;i cameraQw = new QueryWrapper<>(); + cameraQw.eq("device_index",iotCameraInfoMQDto.getDeviceIndex()); + CameraInfo entity = cameraInfoService.getOne(cameraQw); + if(entity!=null){ + if(iotCameraInfoMQDto.getMaintainStatus().equals(entity.getMaintainStatus())){ + statusMQDto.setMessage("忽略"); + }else{ + entity.setMaintainStatus(iotCameraInfoMQDto.getMaintainStatus()); + cameraInfoService.updateById(entity); + } + }else{ + CameraInfo cameraInfo = new CameraInfo(); + BeanUtils.copyProperties(iotCameraInfoMQDto, cameraInfo); + cameraInfoService.save(cameraInfo); + } + statusList.add(statusMQDto); + } + catch (Exception e) { + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setAsyncId(iotCameraInfoMQDto.getId().toString()); + statusMQDto.setMessage("失败"); + statusMQDto.setPrimaryKey(iotCameraInfoMQDto.getLogId()); + statusMQDto.setNote("摄像头"); + statusList.add(statusMQDto); + e.printStackTrace(); + } + } + } + + List capabilityList = dto.getCapabilityList(); + if(capabilityList!=null&&capabilityList.size()>0){ + for(int i=0;i capabilityQw = new QueryWrapper<>(); + capabilityQw.eq("device_index",iotCameraCapabilityMQDto.getDeviceIndex()); + CameraCapability entity = cameraCapabilityService.getOne(capabilityQw); + cameraCapabilityService.removeById(entity); + CameraCapability cameraCapability = new CameraCapability(); + BeanUtils.copyProperties(iotCameraCapabilityMQDto, cameraCapability); + cameraCapabilityService.save(cameraCapability); + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setAsyncId(iotCameraCapabilityMQDto.getId().toString()); + statusMQDto.setMessage("成功"); + statusMQDto.setPrimaryKey(iotCameraCapabilityMQDto.getLogId()); + statusMQDto.setNote("摄像头能力集"); + statusList.add(statusMQDto); + } + catch (Exception e) { + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setAsyncId(iotCameraCapabilityMQDto.getId().toString()); + statusMQDto.setMessage("失败"); + statusMQDto.setPrimaryKey(iotCameraCapabilityMQDto.getLogId()); + statusMQDto.setNote("摄像头能力集"); + 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("cid",iotElectricityMeterMQDto.getCid()); + ElectricityMeter entity = electricityMeterService.getOne(electricityQw); + if(entity!=null){ + if(iotElectricityMeterMQDto.getMaintainStatus().equals(entity.getMaintainStatus())){ + statusMQDto.setMessage("忽略"); + }else{ + entity.setMaintainStatus(iotElectricityMeterMQDto.getMaintainStatus()); + electricityMeterService.updateById(entity); + } + }else{ + ElectricityMeter electricityMeter = new ElectricityMeter(); + BeanUtils.copyProperties(iotElectricityMeterMQDto, electricityMeter); + electricityMeterService.save(electricityMeter); + } + statusList.add(statusMQDto); + } + catch (Exception e) { + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setAsyncId(iotElectricityMeterMQDto.getId().toString()); + 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){ + if(iotWaterMeterMQDto.getMaintainStatus().equals(entity.getMaintainStatus())){ + statusMQDto.setMessage("忽略"); + }else{ + entity.setMaintainStatus(iotWaterMeterMQDto.getMaintainStatus()); + waterMeterService.updateById(entity); + } + }else{ + WaterMeter waterMeter = new WaterMeter(); + BeanUtils.copyProperties(iotWaterMeterMQDto, waterMeter); + waterMeterService.save(waterMeter); + } + statusList.add(statusMQDto); + } + catch (Exception e) { + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setAsyncId(iotWaterMeterMQDto.getId().toString()); + statusMQDto.setMessage("失败"); + statusMQDto.setPrimaryKey(iotWaterMeterMQDto.getLogId()); + statusMQDto.setNote("水表"); + statusList.add(statusMQDto); + e.printStackTrace(); + } + } + } + + List collectorList = dto.getCollectorList(); + if(collectorList!=null&&collectorList.size()>0){ + for(int i=0;i collectorQw = new QueryWrapper<>(); + collectorQw.eq("cid",iotEleWaterCollectorMQDto.getCid()); + TqDeviceInfo entity = collectorService.getOne(collectorQw); + collectorService.removeById(entity); + TqDeviceInfo tqDeviceInfo = new TqDeviceInfo(); + BeanUtils.copyProperties(iotEleWaterCollectorMQDto, tqDeviceInfo); + collectorService.save(tqDeviceInfo); + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setAsyncId(iotEleWaterCollectorMQDto.getId().toString()); + statusMQDto.setMessage("成功"); + statusMQDto.setPrimaryKey(iotEleWaterCollectorMQDto.getLogId()); + statusMQDto.setNote("电水表采集器"); + statusList.add(statusMQDto); + } + catch (Exception e) { + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setAsyncId(iotEleWaterCollectorMQDto.getId().toString()); + statusMQDto.setMessage("失败"); + statusMQDto.setPrimaryKey(iotEleWaterCollectorMQDto.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){ + if(iotHumidDeviceMQDto.getMaintainStatus().equals(entity.getMaintainStatus())){ + statusMQDto.setMessage("忽略"); + }else{ + entity.setMaintainStatus(iotHumidDeviceMQDto.getMaintainStatus()); + humidDeviceService.updateById(entity); + } + }else{ + HumidDevice humidDevice = new HumidDevice(); + BeanUtils.copyProperties(iotHumidDeviceMQDto, humidDevice); + humidDeviceService.save(humidDevice); + } + statusList.add(statusMQDto); + } + catch (Exception e) { + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setAsyncId(iotHumidDeviceMQDto.getId().toString()); + 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.async.result", statusListMQDto); + } +} From ef6e4748c80d4aef7eeeeedcb880eccbfeb9793a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E7=A3=8A?= <45566618@qq.com> Date: Thu, 14 Aug 2025 09:38:06 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E7=94=B5=E8=A1=A8=E6=B0=B4=E8=A1=A8=E5=85=A5=E5=BA=93bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/ElectricityMeterMapper.java | 1 - .../mapper/xml/ElectricityMeterMapper.xml | 17 ----------------- .../tq/water/mapper/WaterMeterMapper.java | 1 - .../tq/water/mapper/xml/WaterMeterMapper.xml | 19 ------------------- 4 files changed, 38 deletions(-) diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/mapper/ElectricityMeterMapper.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/mapper/ElectricityMeterMapper.java index 9164e53..93bf5fe 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/mapper/ElectricityMeterMapper.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/mapper/ElectricityMeterMapper.java @@ -11,7 +11,6 @@ public interface ElectricityMeterMapper extends BaseMapper { IPage findPage(Page page, @Param("params") ElectricityMeter electricityMeter); List findAllList(); ElectricityMeter getElectricityMeter(ElectricityMeter electricityMeter); - int insert(ElectricityMeter electricityMeter); int update(ElectricityMeter electricityMeter); int updateValue(ElectricityMeter electricityMeter); int updateRelayState(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 628e1e4..a457296 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 @@ -89,23 +89,6 @@ and address = #{address} - - insert into nu_iot_tq_electricity_meter( - cid, - address, - relay_state, - remark, - create_time - ) - values( - #{cid}, - #{address}, - #{relayState}, - #{remark}, - now() - ) - - update nu_iot_tq_electricity_meter set diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/WaterMeterMapper.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/WaterMeterMapper.java index ae33632..ec1606d 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/WaterMeterMapper.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/WaterMeterMapper.java @@ -12,7 +12,6 @@ public interface WaterMeterMapper extends BaseMapper { IPage findPage(Page page, @Param("params") WaterMeter waterMeter); List findAllList(); WaterMeter getWaterMeter(WaterMeter waterMeter); - int insert(WaterMeter waterMeter); int update(WaterMeter waterMeter); int updateValue(WaterMeter waterMeter); int updateRelayState(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 5b7f4c8..ebf7332 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 @@ -78,25 +78,6 @@ and address = #{address} - - insert into nu_iot_tq_water_meter( - cid, - address, - relay_state, - battery_state, - remark, - create_time - ) - values( - #{cid}, - #{address}, - #{relayState}, - #{batteryState}, - #{remark}, - now() - ) - - update nu_iot_tq_water_meter set From 4aadcd3435ca8fe5f123a38ad4b2a123e05234dc Mon Sep 17 00:00:00 2001 From: yangjun <1173114630@qq.com> Date: Thu, 14 Aug 2025 10:01:23 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nu/modules/nuBaseInfo/controller/NuBaseInfoController.java | 3 ++- .../nu/modules/tplink/camera/mapper/xml/CameraInfoMapper.xml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nuBaseInfo/controller/NuBaseInfoController.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nuBaseInfo/controller/NuBaseInfoController.java index 2243dd7..11802a3 100644 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nuBaseInfo/controller/NuBaseInfoController.java +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nuBaseInfo/controller/NuBaseInfoController.java @@ -68,10 +68,11 @@ public class NuBaseInfoController extends JeecgController> qyList(NuBaseInfo nuBaseInfo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + @RequestParam(name = "pageSize", defaultValue = "15") Integer pageSize, HttpServletRequest req) { Map customeRuleMap = new HashMap<>(); QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(nuBaseInfo, req.getParameterMap(), customeRuleMap); + queryWrapper.isNotNull("b.id"); Page page = new Page(pageNo, pageSize); IPage pageList = nuBaseInfoService.qyList(page, queryWrapper); return Result.OK(pageList); 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 82addc1..94e3209 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 @@ -28,7 +28,8 @@ record_plan_id as recordPlanId, a.nu_id as nuId, b.nu_name as nuName, - ifnull(c.multitrans,0) as multitrans + ifnull(c.multitrans,0) as multitrans, + a.sn from nu_iot_tplink_camera a left join nu_base_info b on a.nu_id = b.nu_id left join nu_iot_tplink_camera_capability c on a.device_index = c.device_index From 6ae4bd2093b85be5c75ece89d05c9941ef8119ef Mon Sep 17 00:00:00 2001 From: yangjun <1173114630@qq.com> Date: Thu, 14 Aug 2025 13:54:31 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BB=B4=E4=BF=AE?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CameraInfoController.java | 7 +++++++ .../camera/mapper/xml/CameraInfoMapper.xml | 2 +- .../camera/service/ICameraInfoService.java | 2 ++ .../service/impl/CameraInfoServiceImpl.java | 18 ++++++++++++++++++ .../controller/ElectricityMeterController.java | 7 +++++++ .../service/IElectricityMeterService.java | 2 ++ .../impl/ElectricityMeterServiceImpl.java | 13 +++++++++++++ .../water/controller/WaterMeterController.java | 18 ++++++++++++++---- .../tq/water/service/IWaterMeterService.java | 2 ++ .../service/impl/WaterMeterServiceImpl.java | 14 ++++++++++++++ .../controller/HumidDeviceController.java | 9 +++++++++ .../humid/service/IHumidDeviceService.java | 2 ++ .../service/impl/HumidDeviceServiceImpl.java | 13 +++++++++++++ 13 files changed, 104 insertions(+), 5 deletions(-) diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/controller/CameraInfoController.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/controller/CameraInfoController.java index f9b16b6..4a35ecb 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/controller/CameraInfoController.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/controller/CameraInfoController.java @@ -106,6 +106,13 @@ public class CameraInfoController extends JeecgController baoxiu(@RequestBody CameraInfo cameraInfo) { + service.baoxiu(cameraInfo); + return Result.OK("操作成功!"); + } /** * 修改摄像头信息 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 94e3209..3a3b200 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 @@ -29,7 +29,7 @@ a.nu_id as nuId, b.nu_name as nuName, ifnull(c.multitrans,0) as multitrans, - a.sn + a.sn,a.maintain_status from nu_iot_tplink_camera a left join nu_base_info b on a.nu_id = b.nu_id left join nu_iot_tplink_camera_capability c on a.device_index = c.device_index 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 78be65a..f911f30 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 @@ -61,4 +61,6 @@ public interface ICameraInfoService extends IService { Result stopUploadToServer(CameraInfo cameraInfo); Result getUploadToServerProcess(CameraInfo cameraInfo); Result motionCtrl(CameraInfo cameraInfo); + + void baoxiu(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 91a8ebd..3f8f11b 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 @@ -3,6 +3,7 @@ package com.nu.modules.tplink.camera.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fasterxml.jackson.databind.ObjectMapper; @@ -11,6 +12,7 @@ import com.nu.modules.camerainfo.entity.CameraInfoDto; import com.nu.modules.tplink.camera.model.CameraTreeModel; import com.nu.modules.tplink.common.entity.TumsConfig; import com.nu.modules.tplink.common.mapper.TumsConfigMapper; +import com.nu.modules.yiweilian.humid.service.impl.HumidDeviceServiceImpl; import org.apache.commons.compress.utils.Lists; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; @@ -24,6 +26,7 @@ import com.nu.modules.tplink.common.service.IErrorCodeService; import com.nu.modules.tplink.utils.TumsApi; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; @@ -49,6 +52,9 @@ public class CameraInfoServiceImpl extends ServiceImpl getCameraInfoList() { List list = baseMapper.findAllList(); diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/controller/ElectricityMeterController.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/controller/ElectricityMeterController.java index da5323e..add1cfc 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/controller/ElectricityMeterController.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/electricity/controller/ElectricityMeterController.java @@ -84,4 +84,11 @@ public class ElectricityMeterController extends JeecgController baoxiu(@RequestBody ElectricityMeter electricityMeter) { + service.baoxiu(electricityMeter); + return Result.OK("操作成功!"); + } } 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 87565bc..fa15689 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 @@ -21,4 +21,6 @@ public interface IElectricityMeterService extends IService { void editHldy(ElectricityMeter electricityMeter); + + void baoxiu(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 b49919e..10c8a0a 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 @@ -13,6 +13,7 @@ import com.nu.modules.tq.common.service.ITqApiLogService; import com.nu.modules.tq.utils.HttpTool; import com.nu.modules.tq.utils.SignTool; import com.nu.modules.tq.utils.TqApi; +import com.nu.modules.tq.water.entity.WaterMeter; import lombok.extern.slf4j.Slf4j; import com.nu.modules.tq.electricity.entity.ElectricityMeter; import com.nu.modules.tq.electricity.mapper.ElectricityMeterMapper; @@ -480,6 +481,18 @@ public class ElectricityMeterServiceImpl extends ServiceImpl baoxiu(@RequestBody WaterMeter waterMeter) { + service.baoxiu(waterMeter); + return Result.OK("操作成功!"); + } + } 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 0661cd3..d1b9912 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 @@ -18,4 +18,6 @@ public interface IWaterMeterService extends IService { String waterResetNotify(String response_content, String timestamp, String sign); String waterControlNotify(String response_content, String timestamp, String sign); String waterReadNotify(String response_content, String timestamp, String sign); + + void baoxiu(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 100f03e..18823d0 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nu.modules.tplink.camera.entity.CameraInfo; import com.nu.modules.tq.common.entity.TqApiLog; import com.nu.modules.tq.common.service.ITqApiLogService; import com.nu.modules.tq.utils.HttpTool; @@ -479,6 +480,19 @@ public class WaterMeterServiceImpl extends ServiceImpl baoxiu(@RequestBody HumidDevice humidDevice) { + service.baoxiu(humidDevice); + return Result.OK("操作成功!"); + } } 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 c2533f1..521728f 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 @@ -17,4 +17,6 @@ public interface IHumidDeviceService extends IService { IPage findLogPage(Page page, HumidDevice humidDevice); void editHldy(HumidDevice humidDevice); + + void baoxiu(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 1384a06..e6aa25e 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 @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nu.modules.tq.electricity.entity.ElectricityMeter; import com.nu.modules.yiweilian.humid.entity.HumidDevice; import com.nu.modules.yiweilian.humid.mapper.HumidDeviceMapper; import com.nu.modules.yiweilian.humid.service.IHumidDeviceService; @@ -443,6 +444,18 @@ public class HumidDeviceServiceImpl extends ServiceImpl