物联设备释放解绑

This commit is contained in:
曹磊 2026-03-19 16:19:57 +08:00
parent 117846667a
commit ce4b956f4f
18 changed files with 370 additions and 0 deletions

View File

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

View File

@ -325,4 +325,13 @@
order by a.nu_id,a.device_type,a.sn order by a.nu_id,a.device_type,a.sn
</select> </select>
<update id="release">
update nu_iot_tplink_camera
set
nu_id = null,
nu_name = null,
dimension = null
where id = #{id}
</update>
</mapper> </mapper>

View File

@ -91,4 +91,7 @@ public interface ICameraInfoService extends IService<CameraInfo> {
String zdyTplinkVideo(String nuId, String startTime, String endTime); String zdyTplinkVideo(String nuId, String startTime, String endTime);
IPage<CameraInfo> previewList(Page<CameraInfo> page, CameraInfo cameraInfo); IPage<CameraInfo> previewList(Page<CameraInfo> page, CameraInfo cameraInfo);
//释放设备
void release(CameraInfo cameraInfo);
} }

View File

@ -3283,5 +3283,10 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
return "success"; return "success";
} }
//释放设备
@Override
public void release(CameraInfo cameraInfo){
baseMapper.release(cameraInfo);
}
} }

View File

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

View File

@ -108,5 +108,13 @@
where sn = #{sn} where sn = #{sn}
</update> </update>
<update id="release">
update nu_iot_ds_electricity_meter
set
nu_id = null,
nu_name = null,
dimension = null
where id = #{id}
</update>
</mapper> </mapper>

View File

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

View File

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

View File

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

View File

@ -115,5 +115,13 @@
and address = #{address} and address = #{address}
</update> </update>
<update id="release">
update nu_iot_tq_water_meter
set
nu_id = null,
nu_name = null,
dimension = null
where id = #{id}
</update>
</mapper> </mapper>

View File

@ -22,4 +22,5 @@ public interface IWaterMeterService extends IService<WaterMeter> {
String waterReadNotify(String response_content, String timestamp, String sign); String waterReadNotify(String response_content, String timestamp, String sign);
void baoxiu(WaterMeter waterMeter); void baoxiu(WaterMeter waterMeter);
void release(WaterMeter waterMeter);
} }

View File

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

View File

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

View File

@ -378,4 +378,13 @@
where sn = #{sn} where sn = #{sn}
</select> </select>
<update id="release">
update nu_iot_yiweilian_humid_device
set
nu_id = null,
nu_name = null,
dimension = null
where id = #{id}
</update>
</mapper> </mapper>

View File

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

View File

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

View File

@ -26,6 +26,34 @@ public class DynamicQueueNameProvider {
return getSyncDeviceQueueName(); return getSyncDeviceQueueName();
} }
public String getReleaseDeviceQueueName() {
JSONObject deptInfo = sysBaseAPI.getDeptInfo();
String orgCode = deptInfo.getString("code");
if (StringUtils.isNotBlank(orgCode)) {
return orgCode + ".iotsyncbiz.release";
} else {
return "";
}
}
public String getReleaseDeviceKeyName() {
return getReleaseDeviceQueueName();
}
public String getUnbindDeviceQueueName() {
JSONObject deptInfo = sysBaseAPI.getDeptInfo();
String orgCode = deptInfo.getString("code");
if (StringUtils.isNotBlank(orgCode)) {
return orgCode + ".iotsyncbiz.unbind";
} else {
return "";
}
}
public String getUnbindDeviceKeyName() {
return getUnbindDeviceQueueName();
}
public String getSyncDeviceValuesResultQueueName() { public String getSyncDeviceValuesResultQueueName() {
JSONObject deptInfo = sysBaseAPI.getDeptInfo(); JSONObject deptInfo = sysBaseAPI.getDeptInfo();
String orgCode = deptInfo.getString("code"); String orgCode = deptInfo.getString("code");

View File

@ -343,4 +343,283 @@ public class IotSyncBizMQListener {
statusListMQDto.setStatusList(statusList); statusListMQDto.setStatusList(statusList);
rabbitMQUtil.sendToExchange("hldy.iotsyncbiz", "iotsyncbiz.async.result", statusListMQDto); rabbitMQUtil.sendToExchange("hldy.iotsyncbiz", "iotsyncbiz.async.result", statusListMQDto);
} }
@RabbitListener(
bindings = @QueueBinding(
value = @Queue(name = "#{iotDeviceAsyncDQNP.getReleaseDeviceQueueName()}"),
exchange = @Exchange(name = "hldy.iotsyncbiz", type = ExchangeTypes.DIRECT),
key = "#{iotDeviceAsyncDQNP.getReleaseDeviceKeyName()}"
),
errorHandler = "iotDeviceMQErrorHandler"
)
public void handleRelease_unify(IotSyncBizMQDto dto) {
syncReleaseIot(dto);
}
private void syncReleaseIot(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){
cameraInfoService.release(entity);
}
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){
electricityMeterService.release(entity);
}
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){
waterMeterService.release(entity);
}
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){
humidDeviceService.release(entity);
}
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.release.result", statusListMQDto);
}
@RabbitListener(
bindings = @QueueBinding(
value = @Queue(name = "#{iotDeviceAsyncDQNP.getUnbindDeviceQueueName()}"),
exchange = @Exchange(name = "hldy.iotsyncbiz", type = ExchangeTypes.DIRECT),
key = "#{iotDeviceAsyncDQNP.getUnbindDeviceKeyName()}"
),
errorHandler = "iotDeviceMQErrorHandler"
)
public void handleUnbind_unify(IotSyncBizMQDto dto) {
syncUnbindIot(dto);
}
private void syncUnbindIot(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){
cameraInfoService.removeById(entity.getId());
}
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){
electricityMeterService.removeById(entity.getId());
}
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){
waterMeterService.removeById(entity.getId());
}
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){
humidDeviceService.removeById(entity.getId());
}
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.unbind.result", statusListMQDto);
}
} }