diff --git a/nursing-unit-common/src/main/java/com/nu/dto/IotTqConfigMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/IotTqConfigMQDto.java new file mode 100644 index 0000000..cfa36f8 --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/dto/IotTqConfigMQDto.java @@ -0,0 +1,15 @@ +package com.nu.dto; + +import lombok.Data; + +@Data +public class IotTqConfigMQDto { + private Integer id; + private String requestUrl; //后台系统地址 + private String authCode; //授权码 + private String randomCode; //随机字符串,签名时需要 + private String notifyUrl; //通知地址 + private String orgCode; //机构编码 + private String updateDate; //更新时间 + private String logId; //日志ID +} diff --git a/nursing-unit-common/src/main/java/com/nu/dto/IotTumsConfigMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/IotTumsConfigMQDto.java new file mode 100644 index 0000000..e951fa5 --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/dto/IotTumsConfigMQDto.java @@ -0,0 +1,18 @@ +package com.nu.dto; + +import lombok.Data; + +@Data +public class IotTumsConfigMQDto { + private Integer id; + private String tumsUrl; //获取图门系统地址 + private String tumsUsername; // 获取图门系统用户 + private String tumsPassword; //获取图门系统密码 + private String ftpIp; //回放视频转FTP上传IP + private String ftpPort; //回放视频转FTP上传端口 + private String ftpUsername; //回放视频转FTP上传用户 + private String ftpPassword; //回放视频转FTP上传密码 + private String ftpUploadpath; //回放视频转FTP上传路径 + private String updateDate; //更新时间 + private String logId; //日志ID +} diff --git a/nursing-unit-common/src/main/java/com/nu/dto/IotYiweilianConfigMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/IotYiweilianConfigMQDto.java new file mode 100644 index 0000000..6ee6e02 --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/dto/IotYiweilianConfigMQDto.java @@ -0,0 +1,12 @@ +package com.nu.dto; + +import lombok.Data; + +@Data +public class IotYiweilianConfigMQDto { + private Integer id; + private String requestUrl; //云平台系统地址 + private String clientId; //识别用户的唯一标识 + private String updateDate; //更新时间 + private String logId; //日志ID +} diff --git a/nursing-unit-iot/nu-iot-biz/pom.xml b/nursing-unit-iot/nu-iot-biz/pom.xml index 69094f3..ee0fb0f 100644 --- a/nursing-unit-iot/nu-iot-biz/pom.xml +++ b/nursing-unit-iot/nu-iot-biz/pom.xml @@ -15,6 +15,12 @@ nu-iot-local-api ${nursingunit.version} + + + com.nursingunit.boot + nursing-unit-common + ${nursingunit.version} + org.hibernate hibernate-core diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/controller/TumsConfigController.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/controller/TumsConfigController.java index 3167f0b..bb8f672 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/controller/TumsConfigController.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/controller/TumsConfigController.java @@ -61,8 +61,7 @@ public class TumsConfigController extends JeecgController add(@RequestBody TumsConfig tumsConfig) { - tumsConfig.setUpdateTime(DateUtils.formatDateTime()); - service.save(tumsConfig); + service.add(tumsConfig); return Result.OK("添加成功!"); } @@ -74,8 +73,7 @@ public class TumsConfigController extends JeecgController edit(@RequestBody TumsConfig tumsConfig) { - tumsConfig.setUpdateTime(DateUtils.formatDateTime()); - service.updateById(tumsConfig); + service.edit(tumsConfig); return Result.OK("编辑成功!"); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/entity/TumsConfig.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/entity/TumsConfig.java index 7f81996..12be155 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/entity/TumsConfig.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/entity/TumsConfig.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -42,5 +43,29 @@ public class TumsConfig implements Serializable { private String ftpUsername; //回放视频转FTP上传用户 private String ftpPassword; //回放视频转FTP上传密码 private String ftpUploadpath; //回放视频转FTP上传路径 - private String updateTime; //更新时间 + @JsonIgnore + private String updateDate; //更新时间 + + @JsonIgnore + @TableField(exist = false) + private String orgCode; //机构编码 + @JsonIgnore + @TableField(exist = false) + private String orgName; //机构名称 + @JsonIgnore + @TableField(exist = false) + private String logId; + @JsonIgnore + @TableField(exist = false) + private String content; + @JsonIgnore + @TableField(exist = false) + private String syncType; + @JsonIgnore + @TableField(exist = false) + private String status; + @JsonIgnore + @TableField(exist = false) + private String serverType; + } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/mapper/TumsConfigMapper.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/mapper/TumsConfigMapper.java index d6fce08..87ad076 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/mapper/TumsConfigMapper.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/mapper/TumsConfigMapper.java @@ -7,6 +7,8 @@ import com.nu.modules.tplink.common.entity.TumsConfig; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * @Description: 护理单元-物联管理-错误码 * @Author: jeecg-boot @@ -17,4 +19,8 @@ import org.apache.ibatis.annotations.Param; @Mapper public interface TumsConfigMapper extends BaseMapper { TumsConfig getByCode(); + + List getOrgList(); + void addConfigLog(TumsConfig tumsConfig); + void updateConfigLog(TumsConfig tumsConfig); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/mapper/xml/TumsConfigMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/mapper/xml/TumsConfigMapper.xml index 239377f..1df7dd3 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/mapper/xml/TumsConfigMapper.xml +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/mapper/xml/TumsConfigMapper.xml @@ -13,10 +13,49 @@ ftp_username as ftpUsername, ftp_password as ftpPassword, ftp_uploadpath as ftpUploadpath, - update_time as updateTime + update_date as updateDate from nu_iot_tplink_tums_base order by id desc limit 1 + + + + insert into nu_iot_config_sync_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_config_sync_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/tplink/common/service/ITumsConfigService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/service/ITumsConfigService.java index 4ebd69c..7a8e045 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/service/ITumsConfigService.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/service/ITumsConfigService.java @@ -14,4 +14,8 @@ import org.jeecg.common.api.vo.Result; */ public interface ITumsConfigService extends IService { TumsConfig getByCode(); + + void add(TumsConfig tumsConfig); + void edit(TumsConfig tumsConfig); + void updateConfigLog(TumsConfig tumsConfig); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/service/impl/TumsConfigServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/service/impl/TumsConfigServiceImpl.java index 5478cf3..3285135 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/service/impl/TumsConfigServiceImpl.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/common/service/impl/TumsConfigServiceImpl.java @@ -1,25 +1,78 @@ package com.nu.modules.tplink.common.service.impl; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nu.dto.IotTumsConfigMQDto; import com.nu.modules.tplink.common.entity.TumsConfig; import com.nu.modules.tplink.common.mapper.TumsConfigMapper; import com.nu.modules.tplink.common.service.ITumsConfigService; -import org.jeecg.common.api.vo.Result; +import me.zhyd.oauth.utils.UuidUtils; +import org.jeecg.common.util.DateUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.nu.utils.RabbitMQUtil; +import java.util.List; /** * @Description: TP-LINK图门系统配置信息 * @Author: caolei - * @Date: 2025-08-06 + * @Date: 2025-08-07 * @Version: V1.0 */ @Service public class TumsConfigServiceImpl extends ServiceImpl implements ITumsConfigService { + @Autowired + private RabbitMQUtil rabbitMQUtil; + @Override public TumsConfig getByCode(){ return baseMapper.getByCode(); } + + @Override + public void add(TumsConfig tumsConfig){ + tumsConfig.setUpdateDate(DateUtils.formatDateTime()); + this.save(tumsConfig); + syncMq(tumsConfig,"新增"); + } + + @Override + public void edit(TumsConfig tumsConfig){ + tumsConfig.setUpdateDate(DateUtils.formatDateTime()); + this.updateById(tumsConfig); + syncMq(tumsConfig,"编辑"); + } + + @Override + public void updateConfigLog(TumsConfig tumsConfig){ + baseMapper.updateConfigLog(tumsConfig); + } + + private void syncMq(TumsConfig tumsConfig,String type){ + IotTumsConfigMQDto itc= new IotTumsConfigMQDto(); + BeanUtils.copyProperties(tumsConfig, itc); + List orgList = baseMapper.getOrgList(); + for(int i=0;i add(@RequestBody TqConfig tqConfig) { - tqConfig.setUpdateTime(DateUtils.formatDateTime()); - service.save(tqConfig); + service.add(tqConfig); return Result.OK("添加成功!"); } @@ -75,8 +74,7 @@ public class TqConfigController extends JeecgController edit(@RequestBody TqConfig tqConfig) { - tqConfig.setUpdateTime(DateUtils.formatDateTime()); - service.updateById(tqConfig); + service.edit(tqConfig); return Result.OK("编辑成功!"); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/entity/TqConfig.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/entity/TqConfig.java index 5130ef8..ee89eb8 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/entity/TqConfig.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/entity/TqConfig.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -36,5 +37,25 @@ public class TqConfig implements Serializable { private String notifyUrl; //通知地址 @Dict(dictTable ="sys_depart",dicText = "depart_name",dicCode = "org_code") private String orgCode; //机构编码 - private String updateTime; //通知地址 + @JsonIgnore + private String updateDate; //更新时间 + + @JsonIgnore + @TableField(exist = false) + private String orgName; //机构名称 + @JsonIgnore + @TableField(exist = false) + private String logId; + @JsonIgnore + @TableField(exist = false) + private String content; + @JsonIgnore + @TableField(exist = false) + private String syncType; + @JsonIgnore + @TableField(exist = false) + private String status; + @JsonIgnore + @TableField(exist = false) + private String serverType; } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/mapper/TqConfigMapper.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/mapper/TqConfigMapper.java index d6d0d59..5ad7172 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/mapper/TqConfigMapper.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/mapper/TqConfigMapper.java @@ -3,6 +3,8 @@ package com.nu.modules.tq.common.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.nu.modules.tq.common.entity.TqConfig; import org.apache.ibatis.annotations.Mapper; + +import java.util.List; import java.util.Map; /** @@ -15,4 +17,7 @@ import java.util.Map; @Mapper public interface TqConfigMapper extends BaseMapper { TqConfig getConfig(); + List getAllConfigList(); + void addConfigLog(TqConfig tqConfig); + void updateConfigLog(TqConfig tqConfig); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/mapper/TqDeviceInfoMapper.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/mapper/TqDeviceInfoMapper.java index 9f3ec1c..7987d79 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/mapper/TqDeviceInfoMapper.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/mapper/TqDeviceInfoMapper.java @@ -14,6 +14,8 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface TqDeviceInfoMapper extends BaseMapper { TqDeviceInfo getDeviceInfo(TqDeviceInfo tqDeviceInfo); + TqDeviceInfo getByCid(String cid); int insert(TqDeviceInfo tqDeviceInfo); int update(TqDeviceInfo tqDeviceInfo); + int deleteByCid(String cid); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/mapper/xml/TqConfigMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/mapper/xml/TqConfigMapper.xml index e3a3198..b707afb 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/mapper/xml/TqConfigMapper.xml +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/mapper/xml/TqConfigMapper.xml @@ -8,10 +8,58 @@ request_url as requestUrl, auth_code as authCode, random_code as randomCode, - notify_url as notifyUrl + notify_url as notifyUrl, + update_date as updateDate from nu_iot_tq_config - order by id desc + where org_code is null + order by id asc limit 1 + + + + insert into nu_iot_config_sync_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_config_sync_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/tq/common/mapper/xml/TqDeviceInfoMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/mapper/xml/TqDeviceInfoMapper.xml index 9056113..3f49ed7 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/mapper/xml/TqDeviceInfoMapper.xml +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/mapper/xml/TqDeviceInfoMapper.xml @@ -15,6 +15,19 @@ where cid = #{cid} + + insert into nu_iot_tq_collector( cid, @@ -57,4 +70,8 @@ where cid = #{cid} + + DELETE FROM nu_iot_tq_collector WHERE cid = #{cid} + + \ No newline at end of file diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/service/ITqConfigService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/service/ITqConfigService.java index 9b136ce..681fce1 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/service/ITqConfigService.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/service/ITqConfigService.java @@ -10,5 +10,7 @@ import com.nu.modules.tq.common.entity.TqConfig; * @Version: V1.0 */ public interface ITqConfigService extends IService { - TqConfig getConfig(); + void add(TqConfig tqConfig); + void edit(TqConfig tqConfig); + void updateConfigLog(TqConfig tqConfig); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/service/ITqDeviceInfoService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/service/ITqDeviceInfoService.java index 694bfe2..5b10474 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/service/ITqDeviceInfoService.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/service/ITqDeviceInfoService.java @@ -10,6 +10,7 @@ import com.nu.modules.tq.common.entity.TqDeviceInfo; * @Version: V1.0 */ public interface ITqDeviceInfoService extends IService { + TqDeviceInfo getByCid(String cid); 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/TqConfigServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/service/impl/TqConfigServiceImpl.java index 8d3e399..44e63c4 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/service/impl/TqConfigServiceImpl.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/common/service/impl/TqConfigServiceImpl.java @@ -1,23 +1,76 @@ package com.nu.modules.tq.common.service.impl; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nu.dto.IotTqConfigMQDto; import com.nu.modules.tq.common.entity.TqConfig; import com.nu.modules.tq.common.mapper.TqConfigMapper; import com.nu.modules.tq.common.service.ITqConfigService; +import com.nu.utils.RabbitMQUtil; +import me.zhyd.oauth.utils.UuidUtils; +import org.jeecg.common.util.DateUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** * @Description: 护理单元-物联管理-电水表配置信息 * @Author: caolei - * @Date: 2025-06-04 + * @Date: 2025-06-07 * @Version: V1.0 */ @Service public class TqConfigServiceImpl extends ServiceImpl implements ITqConfigService { + @Autowired + private RabbitMQUtil rabbitMQUtil; + @Override - public TqConfig getConfig(){ - return baseMapper.getConfig(); + public void add(TqConfig tqConfig){ + tqConfig.setUpdateDate(DateUtils.formatDateTime()); + this.save(tqConfig); + syncMq(tqConfig,"新增"); + } + + @Override + public void edit(TqConfig tqConfig){ + tqConfig.setUpdateDate(DateUtils.formatDateTime()); + this.updateById(tqConfig); + syncMq(tqConfig,"新增"); + } + + @Override + public void updateConfigLog(TqConfig tqConfig){ + baseMapper.updateConfigLog(tqConfig); + } + + private void syncMq(TqConfig tqConfig,String type){ + IotTqConfigMQDto itc = new IotTqConfigMQDto(); + BeanUtils.copyProperties(tqConfig, itc); + List orgList = baseMapper.getAllConfigList(); + for(int i=0;i queryWrapper = new QueryWrapper<>(); queryWrapper.eq("address",electricityMeter.getAddress()); @@ -921,13 +927,34 @@ public class ElectricityMeterServiceImpl extends ServiceImpl> list = (List>) waterList.get("list"); for (Map map : list) { WaterMeter waterInfo = new WaterMeter(); @@ -717,6 +720,7 @@ public class WaterMeterServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq("address",waterMeter.getAddress()); @@ -936,13 +940,34 @@ public class WaterMeterServiceImpl extends ServiceImpl add(@RequestBody YiweilianConfig yiweilianConfig) { - yiweilianConfig.setUpdateTime(DateUtils.formatDateTime()); - service.save(yiweilianConfig); + service.add(yiweilianConfig); return Result.OK("添加成功!"); } @@ -75,8 +74,7 @@ public class YiweilianConfigController extends JeecgController edit(@RequestBody YiweilianConfig yiweilianConfig) { - yiweilianConfig.setUpdateTime(DateUtils.formatDateTime()); - service.updateById(yiweilianConfig); + service.edit(yiweilianConfig); return Result.OK("编辑成功!"); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/common/entity/YiweilianConfig.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/common/entity/YiweilianConfig.java index 6284d36..e31d01a 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/common/entity/YiweilianConfig.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/common/entity/YiweilianConfig.java @@ -1,8 +1,10 @@ package com.nu.modules.yiweilian.common.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -30,5 +32,28 @@ public class YiweilianConfig implements Serializable { private Integer id; private String requestUrl; //云平台系统地址 private String clientId; //识别用户的唯一标识 - private String updateTime; //更新时间 + @JsonIgnore + private String updateDate; //更新时间 + + @JsonIgnore + @TableField(exist = false) + private String orgCode; //机构编码 + @JsonIgnore + @TableField(exist = false) + private String orgName; //机构名称 + @JsonIgnore + @TableField(exist = false) + private String logId; + @JsonIgnore + @TableField(exist = false) + private String content; + @JsonIgnore + @TableField(exist = false) + private String syncType; + @JsonIgnore + @TableField(exist = false) + private String status; + @JsonIgnore + @TableField(exist = false) + private String serverType; } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/common/mapper/YiweilianConfigMapper.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/common/mapper/YiweilianConfigMapper.java index a021203..ccc0635 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/common/mapper/YiweilianConfigMapper.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/common/mapper/YiweilianConfigMapper.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.nu.modules.yiweilian.common.entity.YiweilianConfig; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * @Description: 护理单元-物联管理-易维联-配置信息 * @Author: caolei @@ -14,4 +16,7 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface YiweilianConfigMapper extends BaseMapper { YiweilianConfig getConfig(); + List getOrgList(); + void addConfigLog(YiweilianConfig yiweilianConfig); + void updateConfigLog(YiweilianConfig yiweilianConfig); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/common/mapper/xml/YiweilianConfigMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/common/mapper/xml/YiweilianConfigMapper.xml index d6930f4..fa2a5ac 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/common/mapper/xml/YiweilianConfigMapper.xml +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/common/mapper/xml/YiweilianConfigMapper.xml @@ -6,10 +6,50 @@ select id, request_url as requestUrl, - client_id as clientId + client_id as clientId, + update_date as updateDate from nu_iot_yiweilian_config order by id desc limit 1 + + + + insert into nu_iot_config_sync_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_config_sync_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/yiweilian/common/service/IYiweilianConfigService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/common/service/IYiweilianConfigService.java index faac821..4ef902b 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/common/service/IYiweilianConfigService.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/common/service/IYiweilianConfigService.java @@ -11,4 +11,7 @@ import com.nu.modules.yiweilian.common.entity.YiweilianConfig; */ public interface IYiweilianConfigService extends IService { YiweilianConfig getConfig(); + void add(YiweilianConfig yiweilianConfig); + void edit(YiweilianConfig yiweilianConfig); + void updateConfigLog(YiweilianConfig yiweilianConfig); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/common/service/impl/YiweilianConfigServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/common/service/impl/YiweilianConfigServiceImpl.java index 226c1f9..d936c42 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/common/service/impl/YiweilianConfigServiceImpl.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/yiweilian/common/service/impl/YiweilianConfigServiceImpl.java @@ -1,11 +1,20 @@ package com.nu.modules.yiweilian.common.service.impl; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nu.dto.IotYiweilianConfigMQDto; import com.nu.modules.yiweilian.common.entity.YiweilianConfig; import com.nu.modules.yiweilian.common.mapper.YiweilianConfigMapper; import com.nu.modules.yiweilian.common.service.IYiweilianConfigService; +import com.nu.utils.RabbitMQUtil; +import me.zhyd.oauth.utils.UuidUtils; +import org.jeecg.common.util.DateUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** * @Description: 护理单元-物联管理-易维联-配置信息 * @Author: caolei @@ -15,9 +24,54 @@ import org.springframework.stereotype.Service; @Service public class YiweilianConfigServiceImpl extends ServiceImpl implements IYiweilianConfigService { + @Autowired + private RabbitMQUtil rabbitMQUtil; + @Override public YiweilianConfig getConfig(){ return baseMapper.getConfig(); } + @Override + public void add(YiweilianConfig yiweilianConfig){ + yiweilianConfig.setUpdateDate(DateUtils.formatDateTime()); + this.save(yiweilianConfig); + syncMq(yiweilianConfig,"新增"); + } + + @Override + public void edit(YiweilianConfig yiweilianConfig){ + yiweilianConfig.setUpdateDate(DateUtils.formatDateTime()); + this.updateById(yiweilianConfig); + syncMq(yiweilianConfig,"新增"); + } + + @Override + public void updateConfigLog(YiweilianConfig yiweilianConfig){ + baseMapper.updateConfigLog(yiweilianConfig); + } + + private void syncMq(YiweilianConfig yiweilianConfig,String type){ + IotYiweilianConfigMQDto iyc = new IotYiweilianConfigMQDto(); + BeanUtils.copyProperties(yiweilianConfig, iyc); + List orgList = baseMapper.getOrgList(); + for(int i=0;i 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/config/listener/IotConfigMQListener.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/IotConfigMQListener.java new file mode 100644 index 0000000..b885830 --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/IotConfigMQListener.java @@ -0,0 +1,76 @@ +package com.nu.mq.config.listener; + +import com.nu.dto.StatusMQDto; +import com.nu.modules.tplink.common.entity.TumsConfig; +import com.nu.modules.tplink.common.service.ITumsConfigService; +import com.nu.modules.tq.common.entity.TqConfig; +import com.nu.modules.tq.common.service.ITqConfigService; +import com.nu.modules.yiweilian.common.entity.YiweilianConfig; +import com.nu.modules.yiweilian.common.service.IYiweilianConfigService; +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 IotConfigMQListener { + + @Autowired + ITumsConfigService tumsConfigService; + + @Autowired + ITqConfigService tqConfigService; + + @Autowired + IYiweilianConfigService yiweilianConfigService; + + @RabbitListener( + bindings = @QueueBinding( + value = @Queue(name = "tumsconfig.async.result", durable = "true"), + exchange = @Exchange(name = "hldy.tumsconfig", type = ExchangeTypes.DIRECT), + key = "tumsconfig.async.result" + ), + errorHandler = "iotConfigMQErrorHandler" + ) + public void tumsHandleMessage(StatusMQDto dto) { + TumsConfig log = new TumsConfig(); + log.setLogId(dto.getPrimaryKey()); + log.setStatus(dto.getMessage()); + tumsConfigService.updateConfigLog(log); + } + + @RabbitListener( + bindings = @QueueBinding( + value = @Queue(name = "tqconfig.async.result", durable = "true"), + exchange = @Exchange(name = "hldy.tqconfig", type = ExchangeTypes.DIRECT), + key = "tqconfig.async.result" + ), + errorHandler = "iotConfigMQErrorHandler" + ) + public void tqHandleMessage(StatusMQDto dto) { + TqConfig log = new TqConfig(); + log.setLogId(dto.getPrimaryKey()); + log.setStatus(dto.getMessage()); + tqConfigService.updateConfigLog(log); + } + + @RabbitListener( + bindings = @QueueBinding( + value = @Queue(name = "yiweilianconfig.async.result", durable = "true"), + exchange = @Exchange(name = "hldy.yiweilianconfig", type = ExchangeTypes.DIRECT), + key = "yiweilianconfig.async.result" + ), + errorHandler = "iotConfigMQErrorHandler" + ) + public void yiweilianHandleMessage(StatusMQDto dto) { + YiweilianConfig log = new YiweilianConfig(); + log.setLogId(dto.getPrimaryKey()); + log.setStatus(dto.getMessage()); + yiweilianConfigService.updateConfigLog(log); + } +}