From 4523d38c0e894d7466ca245df6384f556d19e826 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E7=A3=8A?= <45566618@qq.com> Date: Wed, 15 Apr 2026 18:00:18 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E8=81=94=E8=AE=BE=E5=A4=87BUG?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/manager/entity/DeviceBindLog.java | 1 + .../manager/mapper/DeviceManagerMapper.java | 2 + .../mapper/xml/DeviceManagerMapper.xml | 49 +++++++++++ .../service/IDeviceManagerService.java | 2 + .../impl/DeviceManagerServiceImpl.java | 19 +++++ .../service/impl/CameraInfoServiceImpl.java | 8 +- .../common/service/ITqDeviceInfoService.java | 1 + .../service/impl/TqDeviceInfoServiceImpl.java | 65 ++++++++++++++ .../com/nu/modules/tq/enums/TqApiEnum.java | 4 +- .../java/com/nu/modules/tq/utils/TqApi.java | 26 ++++++ .../modules/tq/water/entity/WaterMeter.java | 2 + .../tq/water/mapper/WaterMeterMapper.java | 1 + .../tq/water/mapper/xml/WaterMeterMapper.xml | 4 + .../tq/water/service/IWaterMeterService.java | 1 + .../service/impl/WaterMeterServiceImpl.java | 84 ++++++++++++++++++- .../humid/mapper/HumidDeviceMapper.java | 1 + .../humid/mapper/xml/HumidDeviceMapper.xml | 4 + .../service/impl/HumidDeviceServiceImpl.java | 17 +++- .../device/listener/IotDeviceMQListener.java | 12 +-- 19 files changed, 287 insertions(+), 16 deletions(-) diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/entity/DeviceBindLog.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/entity/DeviceBindLog.java index 9b8bf38..bdfa752 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/entity/DeviceBindLog.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/entity/DeviceBindLog.java @@ -23,6 +23,7 @@ public class DeviceBindLog implements Serializable { private String nuId; private String nuName; private String dimension; + private String deviceName; @Dict(dicCode = "tplink_device_type") private String deviceType; private String deviceModel; diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/mapper/DeviceManagerMapper.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/mapper/DeviceManagerMapper.java index ba95826..4997ddb 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/mapper/DeviceManagerMapper.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/mapper/DeviceManagerMapper.java @@ -49,4 +49,6 @@ public interface DeviceManagerMapper extends BaseMapper { IPage findHumidPage(Page page, @Param("params") DeviceIntegration deviceIntegration); IPage findBingLogPage(Page page, @Param("params") DeviceBindLog deviceBindLog); void addBindPreview(DeviceBindLog deviceBindLog); + void addDeviceReleaseLog(String orgCode,String nuId); + void releaseNu(String orgCode,String nuId); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/mapper/xml/DeviceManagerMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/mapper/xml/DeviceManagerMapper.xml index 7f1a1ed..ccc64e2 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/mapper/xml/DeviceManagerMapper.xml +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/mapper/xml/DeviceManagerMapper.xml @@ -512,6 +512,7 @@ nu_id, nu_name, dimension, + device_name, device_type, device_model, sn, @@ -520,6 +521,15 @@ opt_type from nu_iot_device_bind_log where org_code = #{params.orgCode} + + AND dimension = #{params.dimension} + + + AND device_type = #{params.deviceType} + + + AND device_name LIKE concat('%',#{params.deviceName},'%') + order by org_code asc ,factory asc ,device_type asc ,device_model asc ,sn asc,opt_date desc @@ -529,6 +539,7 @@ nu_id, nu_name, dimension, + device_name, device_type, device_model, sn, @@ -541,6 +552,7 @@ #{nuId}, #{nuName}, #{dimension}, + #{deviceName}, #{deviceType}, #{deviceModel}, #{sn}, @@ -551,4 +563,41 @@ ) + + insert into nu_iot_device_bind_log( + org_code, + sn, + dimension, + device_name, + device_type, + device_model, + factory, + opt_date, + opt_type, + remarks + ) + select + #{orgCode}, + sn, + dimension, + device_name, + device_type, + device_model, + factory, + now(), + '释放', + '区域停用' + from nu_iot_device_preview a + where a.org_code = #{orgCode} + and a.nu_id = #{nuId} + and ifnull(a.device_status,'') != '损坏' + + + + update nu_iot_device_preview + set nu_id = null + where org_code = #{orgCode} + and nu_id = #{nuId} + + diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/service/IDeviceManagerService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/service/IDeviceManagerService.java index e69d277..655f061 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/service/IDeviceManagerService.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/service/IDeviceManagerService.java @@ -45,4 +45,6 @@ public interface IDeviceManagerService extends IService { Result pullHumid(DeviceIntegration deviceIntegration); IPage findBingLogPage(Page page, DeviceBindLog deviceBindLog); void addBindPreview(DeviceBindLog deviceBindLog); + void releaseNu(String orgCode,String nuId); + } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/service/impl/DeviceManagerServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/service/impl/DeviceManagerServiceImpl.java index ab1e99a..aad5b3a 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/service/impl/DeviceManagerServiceImpl.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/device/manager/service/impl/DeviceManagerServiceImpl.java @@ -307,6 +307,7 @@ public class DeviceManagerServiceImpl extends ServiceImpl res = waterMeterService.waterRead(waterMeter); + if(!res.isSuccess()){ + tqDeviceInfoService.deleteCollector(tqDeviceInfo); + waterMeterService.deleteWater(waterMeter); + return res; + } tqDeviceInfoService.getAllMeter(true); tqDeviceInfoService.getAllCollector(true); syncBizService.syncDevice(deviceIntegration.getOrgCode(),deviceIntegration.getSn()); deviceIntegration.setDeviceStatus("正常"); baseMapper.editPreviewStatusBySn(deviceIntegration); return Result.OK("拉取水表成功!"); +// return Result.OK("需等待一分钟之后刷新!"); } @Override @@ -381,6 +394,12 @@ public class DeviceManagerServiceImpl extends ServiceImpl { TqDeviceInfo getByCid(String cid); String addCollector(TqDeviceInfo tqDeviceInfo); + String deleteCollector(TqDeviceInfo tqDeviceInfo); void getAllMeter(boolean isJob); void getAllCollector(boolean isJob); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/service/impl/TqDeviceInfoServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/service/impl/TqDeviceInfoServiceImpl.java index e87e888..8798e79 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/service/impl/TqDeviceInfoServiceImpl.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/service/impl/TqDeviceInfoServiceImpl.java @@ -118,6 +118,71 @@ public class TqDeviceInfoServiceImpl extends ServiceImpl> req = new ArrayList<>(); + Map item = new HashMap<>(); + item.put("cid", tqDeviceInfo.getCid()); + req.add(item); + String responseStr = tqApi.deleteCollector(req); + JSONObject jsonObject = new JSONObject(responseStr); + String httpStatus = jsonObject.getStr("status"); + if(httpStatus.equals("SUCCESS")){ + String response_content = jsonObject.getStr("response_content"); + JSONArray jsonArray = new JSONArray(response_content); + for(int i=0;i> req){ + this.initTqConfig(); + String request_content = JSON.toJSONString(req); + log.info("deleteWaterMeters:request:{}",request_content); + String url = tqConfig.getRequestUrl()+TqApiEnum.DELETE_WATER_METER.getValue(); + String responseStr = requestAsync(url,request_content,""); + log.info("deleteWaterMeters:response:{}",responseStr); + return responseStr; + } + + /** + * 删除采集器 + */ + public String deleteCollector(List> req){ + this.initTqConfig(); + String request_content = JSON.toJSONString(req); + log.info("deleteCollector:request:{}",request_content); + String url = tqConfig.getRequestUrl()+TqApiEnum.DELETE_COLLECTOR.getValue(); + String responseStr = requestAsync(url,request_content,""); + log.info("deleteCollector:response:{}",responseStr); + return responseStr; + } + /** * 电表清零 */ 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 1fc8c96..bc5d887 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 @@ -119,5 +119,7 @@ public class WaterMeter implements Serializable { private String createTime;//时间 @TableField(exist = false) private List seedList;//子列表 + @TableField(exist = false) + private String oprId;//抄表传递参数 } \ No newline at end of file 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 8f67135..e01505d 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 @@ -18,6 +18,7 @@ public interface WaterMeterMapper extends BaseMapper { int insertWater(WaterMeter waterMeter); int updateWater(WaterMeter waterMeter); + int deleteWater(WaterMeter waterMeter); void updateDepartById(WaterMeter waterInfo); 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 5a07e08..12df96b 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 @@ -149,6 +149,10 @@ + + delete from nu_iot_tq_water_meter where cid = #{cid} and address = #{address} + + update nu_iot_tq_water_meter set 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 cf9a245..696f54c 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 @@ -15,6 +15,7 @@ public interface IWaterMeterService extends IService { void updateValue(WaterMeter waterMeter); void updateRelayState(WaterMeter waterMeter); String addWater(WaterMeter waterMeter); + String deleteWater(WaterMeter waterMeter); Result waterReset(WaterMeter waterMeter); Result waterControl(WaterMeter waterMeter); Result waterRead(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 035129d..91aaeeb 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 @@ -160,6 +160,78 @@ public class WaterMeterServiceImpl extends ServiceImpl> req = new ArrayList<>(); + Map item = new HashMap<>(); + item.put("cid", waterMeter.getCid()); + item.put("address", waterMeter.getAddress()); +// item.put("model", "NS-无线无预付费水表");//没有指定,默认为系统后台配置的默认水表类型 + req.add(item); + String responseStr = tqApi.deleteWaterMeters(req); + JSONObject jsonObject = new JSONObject(responseStr); + String httpStatus = jsonObject.getStr("status"); + if(httpStatus.equals("SUCCESS")){ + String response_content = jsonObject.getStr("response_content"); + JSONArray jsonArray = new JSONArray(response_content); + for(int i=0;i> req = new ArrayList<>(); Map item = new HashMap<>(); - item.put("opr_id", HttpTool.generateOperateId()); + item.put("opr_id", oprId); item.put("time_out", 0); item.put("must_online", true); item.put("retry_times", 1); @@ -384,10 +460,10 @@ public class WaterMeterServiceImpl extends ServiceImpl { int insertDevice(HumidDevice humidDevice); int updateDevice(HumidDevice humidDevice); int delFlagDevice(HumidDevice humidDevice); + int delDevice(HumidDevice humidDevice); int updateValue(HumidDevice humidDevice); int insertLog(HumidDevice humidDevice); IPage findLogPage(Page page, @Param("params") 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 e8ab29f..7c12c19 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 @@ -164,6 +164,10 @@ update nu_iot_yiweilian_humid_device set del_flag = #{delFlag} where sn = #{sn} + + delete from nu_iot_yiweilian_humid_device where sn = #{sn} + + update nu_iot_yiweilian_humid_device set 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 29111b0..06edce1 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 @@ -88,7 +88,7 @@ public class HumidDeviceServiceImpl extends ServiceImpl params = new HashMap<>(); + params.put("sn", sn); + yiweilianApi.deleteDevice(params); + return "设备不存在!"; + } + if(status.equals("0")){ + if (reportingDate.getTime() <= currentDate.getTime()) { + dh.setStatus("1"); + } } - dh.setSn(sn); dh.setElectricity(electricity); dh.setTemperature(temperature); dh.setHumidity(humidity); diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/device/listener/IotDeviceMQListener.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/device/listener/IotDeviceMQListener.java index 9737069..5a2a517 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/device/listener/IotDeviceMQListener.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/device/listener/IotDeviceMQListener.java @@ -5,6 +5,7 @@ import com.nu.dto.IotNuBaseInfoMQDto; import com.nu.dto.StatusListMQDto; import com.nu.dto.StatusMQDto; import com.nu.modules.device.manager.entity.DeviceBindLog; +import com.nu.modules.device.manager.entity.DeviceManager; import com.nu.modules.device.manager.entity.DevicePreview; import com.nu.modules.device.manager.service.IDeviceManagerService; import com.nu.modules.dingshuo.electricity.entity.DsElectricityMeter; @@ -158,11 +159,12 @@ public class IotDeviceMQListener { public void releaseNuDevices(IotNuBaseInfoMQDto dto) { String orgCode = dto.getOrgCode(); String nuId = dto.getNuId(); - IotDeviceInfo idi = new IotDeviceInfo(); - idi.setNuId(nuId); - idi.setOrgCode(orgCode); - idi.setRemarks("业务平台区域停用"); - iotDeviceInfoService.releaseNu(idi); +// IotDeviceInfo idi = new IotDeviceInfo(); +// idi.setNuId(nuId); +// idi.setOrgCode(orgCode); +// idi.setRemarks("业务平台区域停用"); +// iotDeviceInfoService.releaseNu(idi); + deviceManagerService.releaseNu(orgCode,nuId); } @RabbitListener(