物联设备换绑

This commit is contained in:
曹磊 2026-03-20 16:05:21 +08:00
parent 982f348cec
commit 95a97f674c
18 changed files with 266 additions and 18 deletions

View File

@ -31,4 +31,5 @@ public interface CameraInfoMapper extends BaseMapper<CameraInfo> {
IPage<CameraInfo> previewList(Page<CameraInfo> page, @Param("params") CameraInfo cameraInfo);
void release(CameraInfo cameraInfo);
void updateBind(CameraInfo cameraInfo);
}

View File

@ -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}
)
</insert>
<update id="updateCapabilityById">
@ -334,4 +334,12 @@
where id = #{id}
</update>
<update id="updateBind">
update nu_iot_tplink_camera
set
nu_id = #{nuId},
dimension = #{dimension}
where id = #{id}
</update>
</mapper>

View File

@ -94,4 +94,5 @@ public interface ICameraInfoService extends IService<CameraInfo> {
//释放设备
void release(CameraInfo cameraInfo);
void updateBind(CameraInfo cameraInfo);
}

View File

@ -3289,4 +3289,10 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
baseMapper.release(cameraInfo);
}
//释放设备
@Override
public void updateBind(CameraInfo cameraInfo){
baseMapper.updateBind(cameraInfo);
}
}

View File

@ -15,4 +15,5 @@ public interface ElectricityMeterMapper extends BaseMapper<ElectricityMeter> {
int updateValue(ElectricityMeter electricityMeter);
int updateRelayState(ElectricityMeter electricityMeter);
void release(ElectricityMeter electricityMeter);
void updateBind(ElectricityMeter electricityMeter);
}

View File

@ -117,4 +117,12 @@
where id = #{id}
</update>
<update id="updateBind">
update nu_iot_ds_electricity_meter
set
nu_id = #{nuId},
dimension = #{dimension}
where id = #{id}
</update>
</mapper>

View File

@ -23,4 +23,5 @@ public interface IElectricityMeterService extends IService<ElectricityMeter> {
void processReceivedMessage(String payload);
void release(ElectricityMeter electricityMeter);
void updateBind(ElectricityMeter electricityMeter);
}

View File

@ -473,5 +473,9 @@ public class ElectricityMeterServiceImpl extends ServiceImpl<ElectricityMeterMap
public void release(ElectricityMeter electricityMeter){
baseMapper.release(electricityMeter);
}
@Override
public void updateBind(ElectricityMeter electricityMeter){
baseMapper.updateBind(electricityMeter);
}
}

View File

@ -16,4 +16,5 @@ public interface WaterMeterMapper extends BaseMapper<WaterMeter> {
int updateValue(WaterMeter waterMeter);
int updateRelayState(WaterMeter waterMeter);
void release(WaterMeter waterMeter);
void updateBind(WaterMeter waterMeter);
}

View File

@ -124,4 +124,12 @@
where id = #{id}
</update>
<update id="updateBind">
update nu_iot_tq_water_meter
set
nu_id = #{nuId},
dimension = #{dimension}
where id = #{id}
</update>
</mapper>

View File

@ -23,4 +23,5 @@ public interface IWaterMeterService extends IService<WaterMeter> {
void baoxiu(WaterMeter waterMeter);
void release(WaterMeter waterMeter);
void updateBind(WaterMeter waterMeter);
}

View File

@ -600,6 +600,11 @@ public class WaterMeterServiceImpl extends ServiceImpl<WaterMeterMapper, WaterMe
baseMapper.release(waterMeter);
}
@Override
public void updateBind(WaterMeter waterMeter) {
baseMapper.updateBind(waterMeter);
}
@DS("devops")
public void devopsBaoxiu(WaterMeter waterMeter) {
baseMapper.updateById(waterMeter);

View File

@ -17,4 +17,5 @@ public interface HumidDeviceMapper extends BaseMapper<HumidDevice> {
IPage<HumidDevice> findLogPage(Page<HumidDevice> page, @Param("params") HumidDevice humidDevice);
HumidDevice getHumidInfo(HumidDevice humidDevice);
void release(HumidDevice humidDevice);
void updateBind(HumidDevice humidDevice);
}

View File

@ -387,4 +387,12 @@
where id = #{id}
</update>
<update id="updateBind">
update nu_iot_yiweilian_humid_device
set
nu_id = #{nuId},
dimension = #{dimension}
where id = #{id}
</update>
</mapper>

View File

@ -22,4 +22,5 @@ public interface IHumidDeviceService extends IService<HumidDevice> {
void baoxiu(HumidDevice humidDevice);
void release(HumidDevice humidDevice);
void updateBind(HumidDevice humidDevice);
}

View File

@ -517,6 +517,11 @@ public class HumidDeviceServiceImpl extends ServiceImpl<HumidDeviceMapper, Humid
baseMapper.release(humidDevice);
}
@Override
public void updateBind(HumidDevice humidDevice) {
baseMapper.updateBind(humidDevice);
}
@DS("devops")
public void devopsBaoxiu(HumidDevice humidDevice) {
baseMapper.updateById(humidDevice);

View File

@ -54,6 +54,20 @@ public class DynamicQueueNameProvider {
return getUnbindDeviceQueueName();
}
public String getUpdateBindDeviceQueueName() {
JSONObject deptInfo = sysBaseAPI.getDeptInfo();
String orgCode = deptInfo.getString("code");
if (StringUtils.isNotBlank(orgCode)) {
return orgCode + ".iotsyncbiz.updatebind";
} else {
return "";
}
}
public String getUpdateBindDeviceKeyName() {
return getUpdateBindDeviceQueueName();
}
public String getSyncDeviceValuesResultQueueName() {
JSONObject deptInfo = sysBaseAPI.getDeptInfo();
String orgCode = deptInfo.getString("code");

View File

@ -513,6 +513,10 @@ public class IotSyncBizMQListener {
CameraInfo entity = cameraInfoService.getOne(cameraQw);
if(entity!=null){
cameraInfoService.removeById(entity.getId());
QueryWrapper<CameraCapability> 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<TqDeviceInfo> 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<StatusMQDto> statusList = new ArrayList<>();
List<IotCameraInfoMQDto> cameraList = dto.getCameraInfoList();
if(cameraList!=null&&cameraList.size()>0){
for(int i=0;i<cameraList.size();i++){
IotCameraInfoMQDto iotCameraInfoMQDto = cameraList.get(i);
try {
StatusMQDto statusMQDto = new StatusMQDto();
statusMQDto.setAsyncId(iotCameraInfoMQDto.getMac());
statusMQDto.setMessage("成功");
statusMQDto.setPrimaryKey(iotCameraInfoMQDto.getLogId());
statusMQDto.setNote("TPLINK");
QueryWrapper<CameraInfo> 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<IotElectricityMeterMQDto> electricityList = dto.getElectricityMeterList();
if(electricityList!=null&&electricityList.size()>0){
for(int i=0;i<electricityList.size();i++){
IotElectricityMeterMQDto iotElectricityMeterMQDto = electricityList.get(i);
try {
StatusMQDto statusMQDto = new StatusMQDto();
statusMQDto.setAsyncId(iotElectricityMeterMQDto.getSn());
statusMQDto.setMessage("成功");
statusMQDto.setPrimaryKey(iotElectricityMeterMQDto.getLogId());
statusMQDto.setNote("电表");
QueryWrapper<ElectricityMeter> 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<IotWaterMeterMQDto> waterMeterList = dto.getWaterMeterList();
if(waterMeterList!=null&&waterMeterList.size()>0){
for(int i=0;i<waterMeterList.size();i++){
IotWaterMeterMQDto iotWaterMeterMQDto = waterMeterList.get(i);
try {
StatusMQDto statusMQDto = new StatusMQDto();
statusMQDto.setAsyncId(iotWaterMeterMQDto.getCid());
statusMQDto.setMessage("成功");
statusMQDto.setPrimaryKey(iotWaterMeterMQDto.getLogId());
statusMQDto.setNote("水表");
QueryWrapper<WaterMeter> 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<IotHumidDeviceMQDto> humidDeviceList = dto.getHumidDeviceList();
if(humidDeviceList!=null&&humidDeviceList.size()>0){
for(int i=0;i<humidDeviceList.size();i++){
IotHumidDeviceMQDto iotHumidDeviceMQDto = humidDeviceList.get(i);
try {
StatusMQDto statusMQDto = new StatusMQDto();
statusMQDto.setAsyncId(iotHumidDeviceMQDto.getSn());
statusMQDto.setMessage("成功");
statusMQDto.setPrimaryKey(iotHumidDeviceMQDto.getLogId());
statusMQDto.setNote("温湿度计");
QueryWrapper<HumidDevice> 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);
}
}