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 index 55521ca9..d3410c4f 100644 --- a/nursing-unit-common/src/main/java/com/nu/dto/IotElectricityMeterMQDto.java +++ b/nursing-unit-common/src/main/java/com/nu/dto/IotElectricityMeterMQDto.java @@ -20,6 +20,8 @@ public class IotElectricityMeterMQDto{ private String eleValue; /**阀门状态*/ private String relayState; + /**上次查表时间*/ + private String readTime; /**描述*/ private String remark; /**区域编码*/ 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 index 566521e5..85a9e30f 100644 --- a/nursing-unit-common/src/main/java/com/nu/dto/IotWaterMeterMQDto.java +++ b/nursing-unit-common/src/main/java/com/nu/dto/IotWaterMeterMQDto.java @@ -22,6 +22,8 @@ public class IotWaterMeterMQDto{ private String relayState; /**水表电池状态*/ private String batteryState; + /**上次查表时间*/ + private String readTime; /**描述*/ private String remark; /**区域编码*/ diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/syncLog/entity/SyncBizLog.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/syncLog/entity/SyncBizLog.java new file mode 100644 index 00000000..b315977e --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/syncLog/entity/SyncBizLog.java @@ -0,0 +1,47 @@ +package com.nu.modules.syncLog.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Description: 配置同步日志 + * @Author: jeecg-boot + * @Date: 2025-08-08 + * @Version: V1.0 + */ +@Data +@TableName("nu_iot_sync_biz_log") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="nu_iot_sync_biz_log", description="设备同步日志") +public class SyncBizLog implements Serializable { + private static final long serialVersionUID = 1L; + /**id*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private String id; + private String logId; + private String orgCode; //机构编码 + private String orgName; //机构名称 + private String content; + private String syncType; + private String status; + private String serverType; + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date createTime; + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date updateTime; +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/syncLog/mapper/SyncBizLogMapper.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/syncLog/mapper/SyncBizLogMapper.java new file mode 100644 index 00000000..7f878965 --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/syncLog/mapper/SyncBizLogMapper.java @@ -0,0 +1,15 @@ +package com.nu.modules.syncLog.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nu.modules.syncLog.entity.SyncBizLog; + +/** + * @Description: 同步日志 + * @Author: jeecg-boot + * @Date: 2025-08-08 + * @Version: V1.0 + */ +public interface SyncBizLogMapper extends BaseMapper { + void addLog(SyncBizLog syncBizLog); + void updateLog(SyncBizLog syncBizLog); +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/syncLog/mapper/xml/SyncBizLogMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/syncLog/mapper/xml/SyncBizLogMapper.xml new file mode 100644 index 00000000..1561de64 --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/syncLog/mapper/xml/SyncBizLogMapper.xml @@ -0,0 +1,50 @@ + + + + + insert into nu_iot_sync_biz_log ( + log_id, + org_code, + org_name, + content, + sync_type, + status, + server_type, + create_time + ) + values ( + #{logId}, + #{orgCode}, + #{orgName}, + #{content}, + #{syncType}, + #{status}, + #{serverType}, + now() + ) + + + + UPDATE nu_iot_sync_biz_log + SET + status = #{status}, + update_time = now() + where log_id = #{logId} + + + + \ No newline at end of file diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/syncLog/service/ISyncBizLogService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/syncLog/service/ISyncBizLogService.java new file mode 100644 index 00000000..33da301e --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/syncLog/service/ISyncBizLogService.java @@ -0,0 +1,15 @@ +package com.nu.modules.syncLog.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.nu.modules.syncLog.entity.SyncBizLog; + +/** + * @Description: 同步日志 + * @Author: jeecg-boot + * @Date: 2025-08-08 + * @Version: V1.0 + */ +public interface ISyncBizLogService extends IService { + void addLog(SyncBizLog syncBizLog); + void updateLog(SyncBizLog syncBizLog); +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/syncLog/service/impl/SyncBizLogServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/syncLog/service/impl/SyncBizLogServiceImpl.java new file mode 100644 index 00000000..8eb9a403 --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/syncLog/service/impl/SyncBizLogServiceImpl.java @@ -0,0 +1,25 @@ +package com.nu.modules.syncLog.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nu.modules.syncLog.entity.SyncBizLog; +import com.nu.modules.syncLog.mapper.SyncBizLogMapper; +import com.nu.modules.syncLog.service.ISyncBizLogService; +import org.springframework.stereotype.Service; + +/** + * @Description: 同步日志 + * @Author: jeecg-boot + * @Date: 2025-08-08 + * @Version: V1.0 + */ +@Service +public class SyncBizLogServiceImpl extends ServiceImpl implements ISyncBizLogService { + @Override + public void addLog(SyncBizLog syncBizLog){ + baseMapper.addLog(syncBizLog); + } + @Override + public void updateLog(SyncBizLog syncBizLog){ + baseMapper.updateLog(syncBizLog); + } +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/CameraInfoMapper.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/CameraInfoMapper.java index 7c398e3d..f660b561 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/CameraInfoMapper.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/CameraInfoMapper.java @@ -26,5 +26,6 @@ public interface CameraInfoMapper extends BaseMapper { CameraInfo getCapabilityByDeviceId(CameraInfo cameraInfo); void insertCapability(CameraInfo cameraInfo); void updateCapabilityById(CameraInfo cameraInfo); + void updateDeviceStatusByDevId(CameraInfo cameraInfo); void updatePlanByDevId(CameraInfo cameraInfo); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/xml/CameraInfoMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/mapper/xml/CameraInfoMapper.xml index 3a3b200a..e65fb655 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 @@ -260,6 +260,12 @@ where id = #{id} + + UPDATE nu_iot_tplink_camera + SET device_status = #{deviceStatus} + where device_index = #{deviceIndex} + + UPDATE nu_iot_tplink_camera SET record_plan_id = #{recordPlanId} 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 3f8f11b5..60490e60 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 @@ -283,8 +283,13 @@ public class CameraInfoServiceImpl extends ServiceImpl0){ @@ -1962,8 +2200,16 @@ public class CameraInfoServiceImpl extends ServiceImpl ciList = Lists.newArrayList(); JSONArray list = jsonObject.getJSONArray("result"); for(int i=0;i ciList = Lists.newArrayList(); JSONArray list = jsonObject.getJSONArray("result"); for(int i=0;i ciList = Lists.newArrayList(); JSONArray list = jsonObject.getJSONArray("result"); for(int i=0;i10){ deletePlaybackChn(cameraInfo.getVideoDevId(),cameraInfo.getSessionId()); @@ -2161,8 +2423,16 @@ public class CameraInfoServiceImpl extends ServiceImpl获取回放通道时:"+errMsg+""; } } } }else{ - ErrorCode errVo = errorCodeService.getByCode(chnError); - String errMsg = errVo.getErrorMsg(); + String errMsg = ""; + try{ + ErrorCode errVo = errorCodeService.getByCode(chnError); + errMsg = errVo.getErrorMsg(); + }catch (Exception e){ + errMsg = chnError; + } errorMsgs = errorMsgs+ "
添加回放通道时:"+errMsg+"
"; } map.put("error",errorMsgs); @@ -2238,8 +2518,14 @@ public class CameraInfoServiceImpl extends ServiceImpl10){ map.put("error",errorCode); @@ -2340,8 +2631,16 @@ public class CameraInfoServiceImpl extends ServiceImpl获取nvmp设备双向通信URL:"+errMsg+""; + String errorMsg = ""; + try{ + ErrorCode errorVo = errorCodeService.getByCode(multitransError); + errorMsg = errorVo.getErrorMsg(); + }catch (Exception e){ + errorMsg = multitransError; + } + updateDeviceStatus(cameraInfo.getVideoDevId(),multitransError); + errorMsgs = errorMsgs+ "
获取nvmp设备双向通信URL:"+errorMsg+"
"; return Result.error(errorMsgs); } } @@ -2427,17 +2732,23 @@ public class CameraInfoServiceImpl extends ServiceImpl { IPage findPage(Page page, ElectricityMeter electricityMeter); List findAllList(); + void updateValue(ElectricityMeter electricityMeter); + void updateRelayState(ElectricityMeter electricityMeter); Result eleReset(ElectricityMeter electricityMeter); Result eleControl(ElectricityMeter electricityMeter); Result eleRead(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 e191372c..62575d60 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 @@ -3,23 +3,31 @@ package com.nu.modules.tq.electricity.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; +import com.alibaba.fastjson.JSON; import com.baomidou.dynamic.datasource.annotation.DS; 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.dto.IotElectricityMeterMQDto; +import com.nu.modules.syncLog.entity.SyncBizLog; +import com.nu.modules.syncLog.service.ISyncBizLogService; import com.nu.modules.tq.common.entity.TqApiLog; 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 com.nu.utils.RabbitMQUtil; import lombok.extern.slf4j.Slf4j; import com.nu.modules.tq.electricity.entity.ElectricityMeter; import com.nu.modules.tq.electricity.mapper.ElectricityMeterMapper; import com.nu.modules.tq.electricity.service.IElectricityMeterService; +import me.zhyd.oauth.utils.UuidUtils; import org.apache.commons.lang.StringUtils; import org.jeecg.common.api.vo.Result; +import org.jeecg.common.util.DateUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -31,11 +39,16 @@ import java.util.*; public class ElectricityMeterServiceImpl extends ServiceImpl implements IElectricityMeterService { @Autowired - TqApi tqApi; + private TqApi tqApi; @Autowired - ITqApiLogService logService; + private ITqApiLogService logService; + @Autowired + private ISyncBizLogService bizLogService; + + @Autowired + private RabbitMQUtil rabbitMQUtil; @Lazy @Autowired @@ -51,6 +64,16 @@ public class ElectricityMeterServiceImpl extends ServiceImpl { IPage findPage(Page page, WaterMeter waterMeter); List findAllList(); + void updateValue(WaterMeter waterMeter); + void updateRelayState(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 fccedb21..0c61b84c 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 @@ -3,11 +3,15 @@ package com.nu.modules.tq.water.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; +import com.alibaba.fastjson.JSON; import com.baomidou.dynamic.datasource.annotation.DS; 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.dto.IotWaterMeterMQDto; +import com.nu.modules.syncLog.entity.SyncBizLog; +import com.nu.modules.syncLog.service.ISyncBizLogService; import com.nu.modules.tplink.camera.entity.CameraInfo; import com.nu.modules.tq.common.entity.TqApiLog; import com.nu.modules.tq.common.service.ITqApiLogService; @@ -17,8 +21,12 @@ import com.nu.modules.tq.utils.TqApi; import com.nu.modules.tq.water.entity.WaterMeter; import com.nu.modules.tq.water.mapper.WaterMeterMapper; import com.nu.modules.tq.water.service.IWaterMeterService; +import com.nu.utils.RabbitMQUtil; import lombok.extern.slf4j.Slf4j; +import me.zhyd.oauth.utils.UuidUtils; import org.jeecg.common.api.vo.Result; +import org.jeecg.common.util.DateUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -30,12 +38,16 @@ import java.util.*; public class WaterMeterServiceImpl extends ServiceImpl implements IWaterMeterService { @Autowired - TqApi tqApi; + private TqApi tqApi; @Autowired - ITqApiLogService logService; + private ITqApiLogService logService; + @Autowired + private ISyncBizLogService bizLogService; + @Autowired + private RabbitMQUtil rabbitMQUtil; @Lazy @Autowired @@ -51,6 +63,16 @@ public class WaterMeterServiceImpl extends ServiceImpl { int updateValue(HumidDevice humidDevice); int insertLog(HumidDevice humidDevice); IPage findLogPage(Page page, @Param("params") HumidDevice humidDevice); + HumidDevice getHumidInfo(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 15f4a7b5..79e561be 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 @@ -339,4 +339,43 @@ order by id desc + + \ No newline at end of file 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 521728fd..8889cea7 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 @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.nu.modules.yiweilian.humid.entity.HumidDevice; +import org.apache.ibatis.annotations.Param; import org.jeecg.common.api.vo.Result; public interface IHumidDeviceService extends IService { @@ -12,6 +13,7 @@ public interface IHumidDeviceService extends IService { String updateDeviceParameters(HumidDevice humidDevice,String type); String updateDeviceRealTime(HumidDevice humidDevice); Result updateDevice(HumidDevice humidDevice); + void updateValue(HumidDevice humidDevice); Result deleteDevice(HumidDevice humidDevice); Result getDeviceParameters(HumidDevice humidDevice); IPage findLogPage(Page page, 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 e6aa25e8..8afb0346 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 @@ -3,20 +3,27 @@ package com.nu.modules.yiweilian.humid.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; +import com.alibaba.fastjson.JSON; import com.baomidou.dynamic.datasource.annotation.DS; 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.dto.IotHumidDeviceMQDto; +import com.nu.modules.syncLog.entity.SyncBizLog; +import com.nu.modules.syncLog.service.ISyncBizLogService; 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; import com.nu.modules.yiweilian.utils.YiweilianApi; +import com.nu.utils.RabbitMQUtil; import lombok.extern.slf4j.Slf4j; +import me.zhyd.oauth.utils.UuidUtils; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.vo.LoginUser; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -33,7 +40,11 @@ public class HumidDeviceServiceImpl extends ServiceImpl params = getParmas(page+1,limit,humidDevice); @@ -284,6 +297,31 @@ public class HumidDeviceServiceImpl extends ServiceImpl getUpdateParmas(HumidDevice humidDevice){ Map params = new HashMap<>(); params.put("sn", humidDevice.getSn()); @@ -327,6 +365,15 @@ public class HumidDeviceServiceImpl extends ServiceImpl emQw = new QueryWrapper<>(); + emQw.eq("cid",dto.getCid()); + emQw.eq("address",dto.getAddress()); + ElectricityMeter entity = electricityMeterService.getOne(emQw); + if(entity!=null){ + entity.setEleValue(dto.getEleValue()); + entity.setReadTime(dto.getReadTime()); + electricityMeterService.updateValue(entity); + } + } + catch (Exception e) { + statusMQDto.setAsyncId(dto.getId().toString()); + statusMQDto.setMessage("失败"); + statusMQDto.setPrimaryKey(dto.getLogId()); + statusMQDto.setNote("电表"); + e.printStackTrace(); + } + rabbitMQUtil.sendToExchange("hldy.iotDeviceValues", "ywIotDeviceValues.result.async", statusMQDto); + } + + @RabbitListener( + bindings = @QueueBinding( + value = @Queue(name = "#{iotTqAsyncDQNP.getSyncEleControlQueueName()}"), + exchange = @Exchange(name = "hldy.iotDeviceValues", type = ExchangeTypes.DIRECT), + key = "#{iotTqAsyncDQNP.getSyncEleControlKeyName()}" + ), + errorHandler = "iotDeviceMQErrorHandler" + ) + public void handleEleControl_unify(IotElectricityMeterMQDto dto) { + saveSyncEleControl(dto); + } + + private void saveSyncEleControl(IotElectricityMeterMQDto dto) { + StatusMQDto statusMQDto = new StatusMQDto(); + try { + statusMQDto.setAsyncId(dto.getId().toString()); + statusMQDto.setMessage("成功"); + statusMQDto.setPrimaryKey(dto.getLogId()); + statusMQDto.setNote("电表"); + QueryWrapper emQw = new QueryWrapper<>(); + emQw.eq("cid",dto.getCid()); + emQw.eq("address",dto.getAddress()); + ElectricityMeter entity = electricityMeterService.getOne(emQw); + if(entity!=null){ + entity.setRelayState(dto.getRelayState()); + electricityMeterService.updateRelayState(entity); + } + } + catch (Exception e) { + statusMQDto.setAsyncId(dto.getId().toString()); + statusMQDto.setMessage("失败"); + statusMQDto.setPrimaryKey(dto.getLogId()); + statusMQDto.setNote("电表"); + e.printStackTrace(); + } + rabbitMQUtil.sendToExchange("hldy.iotDeviceValues", "ywIotDeviceValues.result.async", statusMQDto); + } + + @RabbitListener( + bindings = @QueueBinding( + value = @Queue(name = "#{iotTqAsyncDQNP.getSyncWaterValueQueueName()}"), + exchange = @Exchange(name = "hldy.iotDeviceValues", type = ExchangeTypes.DIRECT), + key = "#{iotTqAsyncDQNP.getSyncWaterValueKeyName()}" + ), + errorHandler = "iotDeviceMQErrorHandler" + ) + public void handleWaterValue_unify(IotWaterMeterMQDto dto) { + saveSyncWaterValue(dto); + } + + private void saveSyncWaterValue(IotWaterMeterMQDto dto) { + StatusMQDto statusMQDto = new StatusMQDto(); + try { + statusMQDto.setAsyncId(dto.getId().toString()); + statusMQDto.setMessage("成功"); + statusMQDto.setPrimaryKey(dto.getLogId()); + statusMQDto.setNote("水表"); + QueryWrapper emQw = new QueryWrapper<>(); + emQw.eq("cid",dto.getCid()); + emQw.eq("address",dto.getAddress()); + WaterMeter entity = waterMeterService.getOne(emQw); + if(entity!=null){ + entity.setWaterValue(dto.getWaterValue()); + entity.setReadTime(dto.getReadTime()); + waterMeterService.updateValue(entity); + } + } + catch (Exception e) { + statusMQDto.setAsyncId(dto.getId().toString()); + statusMQDto.setMessage("失败"); + statusMQDto.setPrimaryKey(dto.getLogId()); + statusMQDto.setNote("水表"); + e.printStackTrace(); + } + rabbitMQUtil.sendToExchange("hldy.iotDeviceValues", "ywIotDeviceValues.result.async", statusMQDto); + } + + @RabbitListener( + bindings = @QueueBinding( + value = @Queue(name = "#{iotTqAsyncDQNP.getSyncWaterControlQueueName()}"), + exchange = @Exchange(name = "hldy.iotDeviceValues", type = ExchangeTypes.DIRECT), + key = "#{iotTqAsyncDQNP.getSyncWaterControlKeyName()}" + ), + errorHandler = "iotDeviceMQErrorHandler" + ) + public void handleWaterControl_unify(IotWaterMeterMQDto dto) { + saveSyncWaterControl(dto); + } + + private void saveSyncWaterControl(IotWaterMeterMQDto dto) { + StatusMQDto statusMQDto = new StatusMQDto(); + try { + statusMQDto.setAsyncId(dto.getId().toString()); + statusMQDto.setMessage("成功"); + statusMQDto.setPrimaryKey(dto.getLogId()); + statusMQDto.setNote("水表"); + QueryWrapper emQw = new QueryWrapper<>(); + emQw.eq("cid",dto.getCid()); + emQw.eq("address",dto.getAddress()); + WaterMeter entity = waterMeterService.getOne(emQw); + if(entity!=null){ + entity.setRelayState(dto.getRelayState()); + waterMeterService.updateRelayState(entity); + } + } + catch (Exception e) { + statusMQDto.setAsyncId(dto.getId().toString()); + statusMQDto.setMessage("失败"); + statusMQDto.setPrimaryKey(dto.getLogId()); + statusMQDto.setNote("水表"); + e.printStackTrace(); + } + rabbitMQUtil.sendToExchange("hldy.iotDeviceValues", "ywIotDeviceValues.result.async", statusMQDto); + } +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/yiweilian/listener/DynamicQueueNameProvider.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/yiweilian/listener/DynamicQueueNameProvider.java new file mode 100644 index 00000000..82c59037 --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/yiweilian/listener/DynamicQueueNameProvider.java @@ -0,0 +1,29 @@ +package com.nu.mq.yiweilian.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("iotYiweilianAsyncDQNP") +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 + ".ywIotHumid.status.async"; + } else { + return ""; + } + } + + public String getSyncDeviceKeyName() { + return getSyncDeviceQueueName(); + } + +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/yiweilian/listener/IotSyncHumidMQListener.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/yiweilian/listener/IotSyncHumidMQListener.java new file mode 100644 index 00000000..ae039e70 --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/yiweilian/listener/IotSyncHumidMQListener.java @@ -0,0 +1,67 @@ +package com.nu.mq.yiweilian.listener; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.nu.dto.*; +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.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + + +@Slf4j +@Component +public class IotSyncHumidMQListener { + @Autowired + private RabbitMQUtil rabbitMQUtil; + + @Autowired + private IHumidDeviceService humidDeviceService; + + @RabbitListener( + bindings = @QueueBinding( + value = @Queue(name = "#{iotYiweilianAsyncDQNP.getSyncDeviceQueueName()}"), + exchange = @Exchange(name = "hldy.iotDeviceValues", type = ExchangeTypes.DIRECT), + key = "#{iotYiweilianAsyncDQNP.getSyncDeviceKeyName()}" + ), + errorHandler = "iotDeviceMQErrorHandler" + ) + public void handleMessage_unify(IotHumidDeviceMQDto dto) { + saveSyncInfo(dto); + } + + private void saveSyncInfo(IotHumidDeviceMQDto iotHumidDeviceMQDto) { + StatusMQDto statusMQDto = new StatusMQDto(); + try { + statusMQDto.setAsyncId(iotHumidDeviceMQDto.getId().toString()); + statusMQDto.setMessage("成功"); + statusMQDto.setPrimaryKey(iotHumidDeviceMQDto.getLogId()); + statusMQDto.setNote("温湿度计"); + QueryWrapper humidQw = new QueryWrapper<>(); + humidQw.eq("sn",iotHumidDeviceMQDto.getSn()); + HumidDevice entity = humidDeviceService.getOne(humidQw); + if(entity!=null){ + entity.setStatus(iotHumidDeviceMQDto.getStatus()); + entity.setElectricity(iotHumidDeviceMQDto.getElectricity()); + entity.setTemperature(iotHumidDeviceMQDto.getTemperature()); + entity.setHumidity(iotHumidDeviceMQDto.getHumidity()); + entity.setReportingTime(iotHumidDeviceMQDto.getReportingTime()); + humidDeviceService.updateValue(entity); + } + } + catch (Exception e) { + statusMQDto.setAsyncId(iotHumidDeviceMQDto.getId().toString()); + statusMQDto.setMessage("失败"); + statusMQDto.setPrimaryKey(iotHumidDeviceMQDto.getLogId()); + statusMQDto.setNote("温湿度计"); + e.printStackTrace(); + } + rabbitMQUtil.sendToExchange("hldy.iotDeviceValues", "ywIotDeviceValues.result.async", statusMQDto); + } +}