From b82015b84f3c1646eb54f0a576cfaa360bbb650e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E7=A3=8A?= <45566618@qq.com> Date: Thu, 7 Aug 2025 18:21:31 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E9=85=8D=E7=BD=AE=E5=90=8C?= =?UTF-8?q?=E6=AD=A5MQ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/tplink/entity/AppCameraInfo.java | 6 + .../iot/tplink/entity/AppTumsConfig.java | 12 +- .../tplink/mapper/AppTumsConfigMapper.java | 5 +- .../tplink/mapper/xml/AppTumsConfigMapper.xml | 29 +--- .../tplink/service/IAppTumsConfigService.java | 2 +- .../impl/AppCameraInfoServiceImpl.java | 38 +++-- .../impl/AppTumsConfigServiceImpl.java | 4 +- .../modules/iot/tplink/utils/AppTumsApi.java | 3 +- .../java/com/nu/dto/IotTqConfigMQDto.java | 15 ++ .../java/com/nu/dto/IotTumsConfigMQDto.java | 18 +++ .../com/nu/dto/IotYiweilianConfigMQDto.java | 12 ++ nursing-unit-iot/nu-iot-biz/pom.xml | 13 +- .../tplink/camera/entity/CameraInfo.java | 6 + .../service/impl/CameraInfoServiceImpl.java | 38 +++-- .../common/controller/TpLinkController.java | 21 +-- .../tplink/common/entity/TumsConfig.java | 12 +- .../common/mapper/TumsConfigMapper.java | 5 +- .../common/mapper/xml/TumsConfigMapper.xml | 136 +--------------- .../common/service/ITumsConfigService.java | 4 +- .../service/impl/TumsConfigServiceImpl.java | 152 +----------------- .../com/nu/modules/tplink/utils/TumsApi.java | 2 +- .../nu/modules/tq/common/entity/TqConfig.java | 1 + .../tq/common/mapper/xml/TqConfigMapper.xml | 3 +- .../java/com/nu/modules/tq/utils/TqApi.java | 39 ++++- .../common/entity/YiweilianConfig.java | 1 + .../mapper/xml/YiweilianConfigMapper.xml | 3 +- .../IotConfigMQExceptionHandler.java | 28 ++++ .../listener/DynamicQueueNameProvider.java | 56 +++++++ .../config/listener/TqConfigMQListener.java | 64 ++++++++ .../config/listener/TumsConfigMQListener.java | 62 +++++++ .../listener/YiweilianConfigMQListener.java | 62 +++++++ 31 files changed, 462 insertions(+), 390 deletions(-) create mode 100644 nursing-unit-common/src/main/java/com/nu/dto/IotTqConfigMQDto.java create mode 100644 nursing-unit-common/src/main/java/com/nu/dto/IotTumsConfigMQDto.java create mode 100644 nursing-unit-common/src/main/java/com/nu/dto/IotYiweilianConfigMQDto.java create mode 100644 nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/exceptionhandler/IotConfigMQExceptionHandler.java create mode 100644 nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/DynamicQueueNameProvider.java create mode 100644 nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/TqConfigMQListener.java create mode 100644 nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/TumsConfigMQListener.java create mode 100644 nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/YiweilianConfigMQListener.java diff --git a/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/entity/AppCameraInfo.java b/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/entity/AppCameraInfo.java index 6ddd80e..81d303e 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/entity/AppCameraInfo.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/entity/AppCameraInfo.java @@ -287,4 +287,10 @@ public class AppCameraInfo implements Serializable { @ApiModelProperty(value = "球机移动速度") @TableField(exist = false) private String speed; + + private String ftpIp; //回放视频转FTP上传IP + private String ftpPort; //回放视频转FTP上传端口 + private String ftpUsername; //回放视频转FTP上传用户 + private String ftpPassword; //回放视频转FTP上传密码 + private String ftpUploadpath; //回放视频转FTP上传路径 } diff --git a/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/entity/AppTumsConfig.java b/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/entity/AppTumsConfig.java index d4f5d1f..3ce69eb 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/entity/AppTumsConfig.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/entity/AppTumsConfig.java @@ -30,17 +30,17 @@ public class AppTumsConfig implements Serializable { @ApiModelProperty(value = "ID") private Integer id; private String tumsUrl; //获取图门系统地址 - private String tumsProjectId; //图门系统登录项目ID - @TableField(exist = false) - private String tumsProjectName; //图门系统登录项目ID - private String tumsUserId; // 图门系统登录用户ID +// private String tumsProjectId; //图门系统登录项目ID +// @TableField(exist = false) +// private String tumsProjectName; //图门系统登录项目ID +// private String tumsUserId; // 图门系统登录用户ID private String tumsUsername; // 获取图门系统用户 private String tumsPassword; //获取图门系统密码 - private String tumsRoleId; //图门系统角色ID +// private String tumsRoleId; //图门系统角色ID private String ftpIp; //回放视频转FTP上传IP private String ftpPort; //回放视频转FTP上传端口 private String ftpUsername; //回放视频转FTP上传用户 private String ftpPassword; //回放视频转FTP上传密码 private String ftpUploadpath; //回放视频转FTP上传路径 - private String orgCode; //机构编码 + private String updateTime; //更新时间 } diff --git a/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/mapper/AppTumsConfigMapper.java b/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/mapper/AppTumsConfigMapper.java index 4b3c42c..a487021 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/mapper/AppTumsConfigMapper.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/mapper/AppTumsConfigMapper.java @@ -5,7 +5,7 @@ import com.nu.modules.iot.tplink.entity.AppTumsConfig; import org.apache.ibatis.annotations.Mapper; /** - * @Description: 护理单元-物联管理-错误码 + * @Description: 护理单元-物联管理-配置信息 * @Author: jeecg-boot * @Date: 2025-02-10 * @Version: V1.0 @@ -13,6 +13,5 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface AppTumsConfigMapper extends BaseMapper { - AppTumsConfig getByCode(String orgCode); - AppTumsConfig findProjectByCodeOrId(AppTumsConfig tumsConfig); + AppTumsConfig getByCode(); } diff --git a/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/mapper/xml/AppTumsConfigMapper.xml b/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/mapper/xml/AppTumsConfigMapper.xml index d25e6e9..0b0c1ec 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/mapper/xml/AppTumsConfigMapper.xml +++ b/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/mapper/xml/AppTumsConfigMapper.xml @@ -6,44 +6,17 @@ select id, tums_url as tumsUrl, - tums_project_id as tumsProjectId, - tums_userId as tumsUserId, tums_username as tumsUsername, tums_password as tumsPassword, - tums_roleId as tumsRoleId, ftp_ip as ftpIp, ftp_port as ftpPort, ftp_username as ftpUsername, ftp_password as ftpPassword, ftp_uploadpath as ftpUploadpath, - org_code as orgCode + update_time as updateTime from nu_iot_tplink_tums_base - - - AND org_code = #{orgCode} - - - AND ifnull(org_code,'') = '' - - order by id desc limit 1 - - \ No newline at end of file diff --git a/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/service/IAppTumsConfigService.java b/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/service/IAppTumsConfigService.java index 56aefca..6d0d8e6 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/service/IAppTumsConfigService.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/service/IAppTumsConfigService.java @@ -10,5 +10,5 @@ import com.nu.modules.iot.tplink.entity.AppTumsConfig; * @Version: V1.0 */ public interface IAppTumsConfigService extends IService { - AppTumsConfig getByCode(String orgCode); + AppTumsConfig getByCode(); } diff --git a/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/service/impl/AppCameraInfoServiceImpl.java b/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/service/impl/AppCameraInfoServiceImpl.java index ab931ae..7dde614 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/service/impl/AppCameraInfoServiceImpl.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/service/impl/AppCameraInfoServiceImpl.java @@ -1592,8 +1592,7 @@ public class AppCameraInfoServiceImpl extends ServiceImpl chnList = (List)chnMap.get("data"); if(chnList!=null&&chnList.size()>0){ - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - AppTumsConfig tumsConfig = tumsConfigMapper.getByCode(sysUser.getOrgCode()); + AppTumsConfig tumsConfig = tumsConfigMapper.getByCode(); for(int j=0;j playbackMap = getPlaybackUrl(chn,1); @@ -1773,8 +1772,7 @@ public class AppCameraInfoServiceImpl extends ServiceImpl multitransMap = getMultitransUrl(cameraInfo,1); String multitransError = multitransMap.get("error").toString(); if(multitransError.equals("0")){ - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - AppTumsConfig tumsConfig = tumsConfigMapper.getByCode(sysUser.getOrgCode()); + AppTumsConfig tumsConfig = tumsConfigMapper.getByCode(); AppCameraInfo entity = (AppCameraInfo)multitransMap.get("data"); entity.setQueryAddress(tumsConfig.getTumsUrl()); return Result.OK(entity); @@ -1793,8 +1791,26 @@ public class AppCameraInfoServiceImpl extends ServiceImpl implements IAppTumsConfigService { @Override - public AppTumsConfig getByCode(String orgCode){ - return baseMapper.getByCode(orgCode); + public AppTumsConfig getByCode(){ + return baseMapper.getByCode(); } } diff --git a/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/utils/AppTumsApi.java b/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/utils/AppTumsApi.java index 899b71d..4380cda 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/utils/AppTumsApi.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/iot/tplink/utils/AppTumsApi.java @@ -44,8 +44,7 @@ public class AppTumsApi { private void initTumsConfig(){ if(tumsConfig==null){ - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - tumsConfig = tumsConfigMapper.getByCode(sysUser.getOrgCode()); + tumsConfig = tumsConfigMapper.getByCode(); } } 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..56b590c 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 @@ -24,7 +30,6 @@ hibernate-re - org.jeecgframework weixin4j @@ -35,6 +40,12 @@ tums-auth 2.0.0 + + com.nursingunit.boot + nu-system-local-api + 2.0.0 + compile + diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraInfo.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraInfo.java index 7204b26..a4da3f5 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraInfo.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/camera/entity/CameraInfo.java @@ -301,4 +301,10 @@ public class CameraInfo implements Serializable { @ApiModelProperty(value = "球机移动速度") @TableField(exist = false) private String speed; + + private String ftpIp; //回放视频转FTP上传IP + private String ftpPort; //回放视频转FTP上传端口 + private String ftpUsername; //回放视频转FTP上传用户 + private String ftpPassword; //回放视频转FTP上传密码 + private String ftpUploadpath; //回放视频转FTP上传路径 } 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 308aed8..91a8ebd 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 @@ -2171,8 +2171,7 @@ public class CameraInfoServiceImpl extends ServiceImpl chnList = (List)chnMap.get("data"); if(chnList!=null&&chnList.size()>0){ - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - TumsConfig tumsConfig = tumsConfigMapper.getByCode(sysUser.getOrgCode()); + TumsConfig tumsConfig = tumsConfigMapper.getByCode(); for(int j=0;j playbackMap = getPlaybackUrl(chn,1); @@ -2352,8 +2351,7 @@ public class CameraInfoServiceImpl extends ServiceImpl multitransMap = getMultitransUrl(cameraInfo,1); String multitransError = multitransMap.get("error").toString(); if(multitransError.equals("0")){ - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - TumsConfig tumsConfig = tumsConfigMapper.getByCode(sysUser.getOrgCode()); + TumsConfig tumsConfig = tumsConfigMapper.getByCode(); CameraInfo entity = (CameraInfo)multitransMap.get("data"); entity.setQueryAddress(tumsConfig.getTumsUrl()); return Result.OK(entity); @@ -2372,8 +2370,26 @@ public class CameraInfoServiceImpl extends ServiceImpl> login() { - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - TumsConfig tumsConfig = tumsConfigService.getByCode(sysUser.getOrgCode()); + TumsConfig tumsConfig = tumsConfigService.getByCode(); Map map = new HashMap<>(); map.put("cookie",""); map.put("serverUrl",tumsConfig.getTumsUrl()); @@ -52,22 +51,4 @@ public class TpLinkController { return Result.OK(); } - /** - * 获取图门系统用户 - * @return - */ - @GetMapping(value = "/getUser") - public Result getUser(TumsConfig tumsConfig) { - return tumsConfigService.getUser(tumsConfig); - } - - /** - * 添加和编辑图门系统用户 - * @return - */ - @PostMapping(value = "/saveUser") - public Result saveUser(@RequestBody TumsConfig tumsConfig) { - return tumsConfigService.saveUser(tumsConfig); - } - } 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 929f3de..b9bd16a 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 @@ -30,17 +30,17 @@ public class TumsConfig implements Serializable { @ApiModelProperty(value = "ID") private Integer id; private String tumsUrl; //获取图门系统地址 - private String tumsProjectId; //图门系统登录项目ID - @TableField(exist = false) - private String tumsProjectName; //图门系统登录项目ID - private String tumsUserId; // 图门系统登录用户ID +// private String tumsProjectId; //图门系统登录项目ID +// @TableField(exist = false) +// private String tumsProjectName; //图门系统登录项目ID +// private String tumsUserId; // 图门系统登录用户ID private String tumsUsername; // 获取图门系统用户 private String tumsPassword; //获取图门系统密码 - private String tumsRoleId; //图门系统角色ID +// private String tumsRoleId; //图门系统角色ID private String ftpIp; //回放视频转FTP上传IP private String ftpPort; //回放视频转FTP上传端口 private String ftpUsername; //回放视频转FTP上传用户 private String ftpPassword; //回放视频转FTP上传密码 private String ftpUploadpath; //回放视频转FTP上传路径 - private String orgCode; //机构编码 + private String updateDate; //更新时间 } 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 3a8620d..46b78cb 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 @@ -15,8 +15,5 @@ import java.util.Map; @Mapper public interface TumsConfigMapper extends BaseMapper { - TumsConfig getByCode(String orgCode); - TumsConfig findProjectByCodeOrId(TumsConfig tumsConfig); - void addUser(Map map); - void updateUser(Map map); + TumsConfig getByCode(); } 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 a4c960e..7d6c73d 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 @@ -6,151 +6,17 @@ select id, tums_url as tumsUrl, - tums_project_id as tumsProjectId, - tums_userId as tumsUserId, tums_username as tumsUsername, tums_password as tumsPassword, - tums_roleId as tumsRoleId, ftp_ip as ftpIp, ftp_port as ftpPort, ftp_username as ftpUsername, ftp_password as ftpPassword, ftp_uploadpath as ftpUploadpath, - org_code as orgCode + update_date as updateDate from nu_iot_tplink_tums_base order by id desc limit 1 - - - - insert into nu_iot_tplink_tums_base( - - tums_url, - - - tums_project_id, - - - tums_userId, - - - tums_username, - - - tums_password, - - - tums_roleId, - - - ftp_ip, - - - ftp_port, - - - ftp_username, - - - ftp_password, - - - ftp_uploadpath, - - org_code - ) - values( - - #{tumsUrl}, - - - #{tumsProjectId}, - - - #{tumsUserId}, - - - #{tumsUsername}, - - - #{tumsPassword}, - - - #{tumsRoleId}, - - - #{ftpIp}, - - - #{ftpPort}, - - - #{ftpUsername}, - - - #{ftpPassword}, - - - #{ftpUploadpath}, - - #{orgCode} - ) - - - - update nu_iot_tplink_tums_base - set - - tums_url = #{tumsUrl}, - - - tums_project_id = #{tumsProjectId}, - - - tums_userId = #{tumsUserId}, - - - tums_username = #{tumsUsername}, - - - tums_password = #{tumsPassword}, - - - tums_roleId = #{tumsRoleId}, - - - ftp_ip = #{ftpIp}, - - - ftp_port = #{ftpPort}, - - - ftp_username = #{ftpUsername}, - - - ftp_password = #{ftpPassword}, - - - ftp_uploadpath = #{ftpUploadpath}, - - org_code = #{orgCode} - where org_code = #{orgCode} - - 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 e1db723..44494ef 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 @@ -11,7 +11,5 @@ import org.jeecg.common.api.vo.Result; * @Version: V1.0 */ public interface ITumsConfigService extends IService { - TumsConfig getByCode(String orgCode); - Result getUser(TumsConfig tumsConfig); - Result saveUser(TumsConfig tumsConfig); + TumsConfig getByCode(); } 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 f025379..506377f 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 @@ -22,157 +22,9 @@ import java.util.Map; @Service public class TumsConfigServiceImpl extends ServiceImpl implements ITumsConfigService { - @Autowired - private TumsApi tumsApi; - @Override - public TumsConfig getByCode(String orgCode){ - return baseMapper.getByCode(orgCode); + public TumsConfig getByCode(){ + return baseMapper.getByCode(); } - @Override - public Result getUser(TumsConfig tumsConfig){ - TumsConfig entity = baseMapper.getByCode(tumsConfig.getOrgCode()); - if(entity == null){ - entity = new TumsConfig(); - entity.setOrgCode(tumsConfig.getOrgCode()); - } - TumsConfig project = baseMapper.findProjectByCodeOrId(entity); - if(project!=null){ - entity.setTumsProjectId(project.getTumsProjectId()); - entity.setTumsProjectName(project.getTumsProjectName()); - } - return Result.OK(entity); - } - - @Override - public Result saveUser(TumsConfig tumsConfig){ - TumsConfig entity = baseMapper.getByCode(tumsConfig.getOrgCode()); - if(entity!=null){ - String errorMsg = ""; - Map map = new HashMap<>(); - if(!entity.getTumsPassword().equals(tumsConfig.getTumsPassword())){ - //调用修改密码接口 - StringBuffer sbp = new StringBuffer(); - sbp.append("{"); - sbp.append("\"userId\"").append(":").append("\"").append(tumsConfig.getTumsUserId()).append("\","); - sbp.append("\"oldPassword\"").append(":").append("\"").append(entity.getTumsPassword()).append("\","); - sbp.append("\"newPassword\"").append(":").append("\"").append(tumsConfig.getTumsPassword()).append("\""); - sbp.append("}"); - String jsonResponsep = tumsApi.changePassword(sbp.toString()); - JSONObject jsonObjectp = new JSONObject(jsonResponsep); - String errorCodep = jsonObjectp.getStr("error_code"); - if(errorCodep.equals("0")){ - map.put("tumsPassword",tumsConfig.getTumsPassword()); - }else{ - if(errorCodep.equals("-82400")){ - errorMsg = "修改密码:密码格式错误!"; - }else{ - errorMsg = "修改密码:"+jsonObjectp.getStr("msg"); - } - } - } - if(!entity.getTumsRoleId().equals(tumsConfig.getTumsRoleId())){ - //调用修改角色接口 - StringBuffer sb = new StringBuffer(); - sb.append("{"); - sb.append("\"userId\"").append(":").append("\"").append(tumsConfig.getTumsUserId()).append("\","); - sb.append("\"roleList\"").append(":[").append(tumsConfig.getTumsRoleId()).append("]"); - sb.append("}"); - String jsonResponse = tumsApi.editUser(sb.toString()); - JSONObject jsonObject = new JSONObject(jsonResponse); - String errorCode = jsonObject.getStr("error_code"); - if(errorCode.equals("0")){ - map.put("tumsRoleId",tumsConfig.getTumsRoleId()); - }else{ - if(!errorMsg.equals("")){ - errorMsg = errorMsg + "\n" + "修改角色:"+jsonObject.getStr("msg"); - }else{ - errorMsg = "修改角色:"+jsonObject.getStr("msg"); - } - } - } - if(tumsConfig.getTumsUrl()!=null&&!tumsConfig.getTumsUrl().equals("")){ - map.put("tumsUrl",tumsConfig.getTumsUrl()); - } - if(tumsConfig.getTumsProjectId()!=null&&!tumsConfig.getTumsProjectId().equals("")){ - map.put("tumsProjectId",tumsConfig.getTumsProjectId()); - } - if(tumsConfig.getFtpIp()!=null&&!tumsConfig.getFtpIp().equals("")){ - map.put("ftpIp",tumsConfig.getFtpIp()); - } - if(tumsConfig.getFtpPort()!=null&&!tumsConfig.getFtpPort().equals("")){ - map.put("ftpPort",tumsConfig.getFtpPort()); - } - if(tumsConfig.getFtpUsername()!=null&&!tumsConfig.getFtpUsername().equals("")){ - map.put("ftpUsername",tumsConfig.getFtpUsername()); - } - if(tumsConfig.getFtpPassword()!=null&&!tumsConfig.getFtpPassword().equals("")){ - map.put("ftpPassword",tumsConfig.getFtpPassword()); - } - if(tumsConfig.getFtpUploadpath()!=null&&!tumsConfig.getFtpUploadpath().equals("")){ - map.put("ftpUploadpath",tumsConfig.getFtpUploadpath()); - } - if(tumsConfig.getOrgCode()!=null&&!tumsConfig.getOrgCode().equals("")){ - map.put("orgCode",tumsConfig.getOrgCode()); - } - baseMapper.updateUser(map); - if(!errorMsg.equals("")){ - return Result.error(errorMsg); - }else{ - return Result.OK("编辑用户成功!"); - } - }else { - StringBuffer sb = new StringBuffer(); - sb.append("{"); - sb.append("\"projectId\"").append(":").append("\"").append(tumsConfig.getTumsProjectId()).append("\","); - sb.append("\"username\"").append(":").append("\"").append(tumsConfig.getTumsUsername()).append("\","); - sb.append("\"password\"").append(":").append("\"").append(tumsConfig.getTumsPassword()).append("\","); - sb.append("\"roleList\"").append(":[").append(tumsConfig.getTumsRoleId()).append("]"); - sb.append("}"); - String jsonResponse = tumsApi.addUser(sb.toString()); - JSONObject jsonObject = new JSONObject(jsonResponse); - String errorCode = jsonObject.getStr("error_code"); - if(errorCode.equals("0")){ - JSONObject result = (JSONObject)jsonObject.get("result"); - Map map = new HashMap<>(); - map.put("tumsUserId",result.getStr("userId")); - map.put("tumsUsername",result.getStr("username")); - map.put("tumsPassword",tumsConfig.getTumsPassword()); - map.put("tumsRoleId",tumsConfig.getTumsRoleId()); - if(tumsConfig.getTumsUrl()!=null&&!tumsConfig.getTumsUrl().equals("")){ - map.put("tumsUrl",tumsConfig.getTumsUrl()); - } - if(tumsConfig.getTumsProjectId()!=null&&!tumsConfig.getTumsProjectId().equals("")){ - map.put("tumsProjectId",tumsConfig.getTumsProjectId()); - } - if(tumsConfig.getFtpIp()!=null&&!tumsConfig.getFtpIp().equals("")){ - map.put("ftpIp",tumsConfig.getFtpIp()); - } - if(tumsConfig.getFtpPort()!=null&&!tumsConfig.getFtpPort().equals("")){ - map.put("ftpPort",tumsConfig.getFtpPort()); - } - if(tumsConfig.getFtpUsername()!=null&&!tumsConfig.getFtpUsername().equals("")){ - map.put("ftpUsername",tumsConfig.getFtpUsername()); - } - if(tumsConfig.getFtpPassword()!=null&&!tumsConfig.getFtpPassword().equals("")){ - map.put("ftpPassword",tumsConfig.getFtpPassword()); - } - if(tumsConfig.getFtpUploadpath()!=null&&!tumsConfig.getFtpUploadpath().equals("")){ - map.put("ftpUploadpath",tumsConfig.getFtpUploadpath()); - } - if(tumsConfig.getOrgCode()!=null&&!tumsConfig.getOrgCode().equals("")){ - map.put("orgCode",tumsConfig.getOrgCode()); - } - baseMapper.addUser(map); - return Result.OK("添加用户成功!"); - }else{ - if(errorCode.equals("-82400")){ - return Result.error("密码格式错误"); - }else{ - return Result.error(jsonObject.getStr("msg")); - } - } - } - } } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/utils/TumsApi.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/utils/TumsApi.java index 12a6944..8705e2f 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/utils/TumsApi.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tplink/utils/TumsApi.java @@ -44,7 +44,7 @@ public class TumsApi { private void initTumsConfig(){ if(tumsConfig==null){ - tumsConfig = tumsConfigMapper.getByCode(null); + tumsConfig = tumsConfigMapper.getByCode(); } } 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 e960b87..4af2532 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 @@ -33,4 +33,5 @@ public class TqConfig implements Serializable { private String authCode; //授权码 private String randomCode; //随机字符串,签名时需要 private String notifyUrl; //通知地址 + private String updateDate; //更新时间 } 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..fb1815b 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,7 +8,8 @@ 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 limit 1 diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/utils/TqApi.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/utils/TqApi.java index 48c8ff5..2a765b2 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/utils/TqApi.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/utils/TqApi.java @@ -8,10 +8,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @Component @Slf4j @@ -167,4 +164,38 @@ public class TqApi { return ""; } + + public static void main(String[] args) { + List> req = new ArrayList<>(); + Map item = new HashMap<>(); + item.put("opr_id", HttpTool.generateOperateId()); + item.put("time_out", 0); + item.put("must_online", true); + item.put("retry_times", 1); + item.put("cid", "250425201185"); + item.put("address", "250425201185"); + item.put("type", 3); + req.add(item); + String request_content = JSON.toJSONString(req); + String url = "https://100.znchaobiao.com/Api_v2/ele_read"; + String notifyUrl = "https://www.focusnu.com/nursingunit101/iot/tq/api/electricityMeter/eleReadNotify"; + + // 时间戳 + String timestamp = String.valueOf(new Date().getTime()/1000); + // 用于签名的内容 + Map data = new HashMap<>(); + data.put("timestamp", timestamp); + data.put("auth_code", "6d82b4941f64ce0db13463218b0eb1d3"); + data.put("request_content", request_content); + data.put("notify_url", notifyUrl); + // 获取签名 + String sign = SignTool.getSign("qU2OX8FTMzfDsNZWR47gmwANIJ",data); + data.put("sign", sign); + try { + HttpTool.httpClientPost(url, data); + } catch (Exception e) { + e.printStackTrace(); + } + } + } 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 901e757..38d900c 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 @@ -30,4 +30,5 @@ public class YiweilianConfig implements Serializable { private Integer id; private String requestUrl; //云平台系统地址 private String clientId; //识别用户的唯一标识 + private String updateDate; //更新时间 } 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..00ba186 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,7 +6,8 @@ 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 diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/exceptionhandler/IotConfigMQExceptionHandler.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/exceptionhandler/IotConfigMQExceptionHandler.java new file mode 100644 index 0000000..3d516f2 --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/exceptionhandler/IotConfigMQExceptionHandler.java @@ -0,0 +1,28 @@ +package com.nu.mq.config.exceptionhandler; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.AmqpRejectAndDontRequeueException; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.listener.api.RabbitListenerErrorHandler; +import org.springframework.amqp.rabbit.support.ListenerExecutionFailedException; +import org.springframework.stereotype.Component; + +@Slf4j +@Component("iotConfigMQErrorHandler") +public class IotConfigMQExceptionHandler implements RabbitListenerErrorHandler { + + @Override + public Object handleError(Message message, org.springframework.messaging.Message 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/DynamicQueueNameProvider.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/DynamicQueueNameProvider.java new file mode 100644 index 0000000..a1b07ab --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/DynamicQueueNameProvider.java @@ -0,0 +1,56 @@ +package com.nu.mq.config.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("iotAsyncDQNP") +public class DynamicQueueNameProvider { + + @Autowired + private ISysBaseAPI sysBaseAPI; + + public String getSyncTumsQueueName() { + JSONObject deptInfo = sysBaseAPI.getDeptInfo(); + String orgCode = deptInfo.getString("code"); + if (StringUtils.isNotBlank(orgCode)) { + return orgCode + ".tumsconfig.async"; + } else { + return ""; + } + } + + public String getSyncTumsKeyName() { + return getSyncTumsQueueName(); + } + + public String getSyncTqQueueName() { + JSONObject deptInfo = sysBaseAPI.getDeptInfo(); + String orgCode = deptInfo.getString("code"); + if (StringUtils.isNotBlank(orgCode)) { + return orgCode + ".tqconfig.async"; + } else { + return ""; + } + } + + public String getSyncTqKeyName() { + return getSyncTqQueueName(); + } + + public String getSyncYiweilianQueueName() { + JSONObject deptInfo = sysBaseAPI.getDeptInfo(); + String orgCode = deptInfo.getString("code"); + if (StringUtils.isNotBlank(orgCode)) { + return orgCode + ".yiweilianconfig.async"; + } else { + return ""; + } + } + + public String getSyncTYiweilianKeyName() { + return getSyncYiweilianQueueName(); + } +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/TqConfigMQListener.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/TqConfigMQListener.java new file mode 100644 index 0000000..450b2d9 --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/TqConfigMQListener.java @@ -0,0 +1,64 @@ +package com.nu.mq.config.listener; + +import com.nu.dto.IotTqConfigMQDto; +import com.nu.dto.IotTumsConfigMQDto; +import com.nu.dto.StatusMQDto; +import com.nu.modules.tplink.common.entity.TumsConfig; +import com.nu.modules.tq.common.entity.TqConfig; +import com.nu.modules.tq.common.service.ITqConfigService; +import com.nu.utils.RabbitMQUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +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.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class TqConfigMQListener { + @Autowired + private RabbitMQUtil rabbitMQUtil; + + @Autowired + ITqConfigService tqConfigService; + + @RabbitListener( + bindings = @QueueBinding( + value = @Queue(name = "#{iotAsyncDQNP.getSyncTqQueueName()}"), + exchange = @Exchange(name = "hldy.tqconfig", type = ExchangeTypes.DIRECT), + key = "#{iotAsyncDQNP.getSyncTqKeyName()}" + ), + errorHandler = "iotConfigMQErrorHandler" + ) + public void handleMessage_unify(IotTqConfigMQDto dto) { + saveSysConfig(dto); + } + + private void saveSysConfig(IotTqConfigMQDto dto) { + try { + tqConfigService.removeById(dto.getId()); + TqConfig tqConfig = new TqConfig(); + BeanUtils.copyProperties(dto, tqConfig); + tqConfigService.save(tqConfig); + } catch (Exception e) { + if (StringUtils.isNotBlank(dto.getLogId())) { + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setMessage("同步失败"); + statusMQDto.setPrimaryKey(dto.getLogId()); + rabbitMQUtil.sendToExchange("hldy.tqconfig", "tqconfig.async.result", statusMQDto); + } + throw new RuntimeException(e); + } + if (StringUtils.isNotBlank(dto.getLogId())) { + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setMessage("同步成功"); + statusMQDto.setPrimaryKey(dto.getLogId()); + rabbitMQUtil.sendToExchange("hldy.tqconfig", "tqconfig.async.result", statusMQDto); + } + } +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/TumsConfigMQListener.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/TumsConfigMQListener.java new file mode 100644 index 0000000..33f96b6 --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/TumsConfigMQListener.java @@ -0,0 +1,62 @@ +package com.nu.mq.config.listener; + +import com.nu.dto.IotTumsConfigMQDto; +import com.nu.dto.StatusMQDto; +import com.nu.modules.tplink.common.entity.TumsConfig; +import com.nu.modules.tplink.common.service.ITumsConfigService; +import com.nu.utils.RabbitMQUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +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.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class TumsConfigMQListener { + @Autowired + private RabbitMQUtil rabbitMQUtil; + + @Autowired + ITumsConfigService tumsConfigService; + + @RabbitListener( + bindings = @QueueBinding( + value = @Queue(name = "#{iotAsyncDQNP.getSyncTumsQueueName()}"), + exchange = @Exchange(name = "hldy.tumsconfig", type = ExchangeTypes.DIRECT), + key = "#{iotAsyncDQNP.getSyncTumsKeyName()}" + ), + errorHandler = "iotConfigMQErrorHandler" + ) + public void handleMessage_unify(IotTumsConfigMQDto dto) { + saveSysConfig(dto); + } + + private void saveSysConfig(IotTumsConfigMQDto dto) { + try { + tumsConfigService.removeById(dto.getId()); + TumsConfig tumsConfig = new TumsConfig(); + BeanUtils.copyProperties(dto, tumsConfig); + tumsConfigService.save(tumsConfig); + } catch (Exception e) { + if (StringUtils.isNotBlank(dto.getLogId())) { + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setMessage("同步失败"); + statusMQDto.setPrimaryKey(dto.getLogId()); + rabbitMQUtil.sendToExchange("hldy.tumsconfig", "tumsconfig.async.result", statusMQDto); + } + throw new RuntimeException(e); + } + if (StringUtils.isNotBlank(dto.getLogId())) { + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setMessage("同步成功"); + statusMQDto.setPrimaryKey(dto.getLogId()); + rabbitMQUtil.sendToExchange("hldy.tumsconfig", "tumsconfig.async.result", statusMQDto); + } + } +} diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/YiweilianConfigMQListener.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/YiweilianConfigMQListener.java new file mode 100644 index 0000000..265689a --- /dev/null +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/mq/config/listener/YiweilianConfigMQListener.java @@ -0,0 +1,62 @@ +package com.nu.mq.config.listener; + +import com.nu.dto.IotYiweilianConfigMQDto; +import com.nu.dto.StatusMQDto; +import com.nu.modules.yiweilian.common.entity.YiweilianConfig; +import com.nu.modules.yiweilian.common.service.IYiweilianConfigService; +import com.nu.utils.RabbitMQUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +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.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class YiweilianConfigMQListener { + @Autowired + private RabbitMQUtil rabbitMQUtil; + + @Autowired + IYiweilianConfigService yiweilianConfigService; + + @RabbitListener( + bindings = @QueueBinding( + value = @Queue(name = "#{iotAsyncDQNP.getSyncYiweilianQueueName()}"), + exchange = @Exchange(name = "hldy.yiweilianconfig", type = ExchangeTypes.DIRECT), + key = "#{iotAsyncDQNP.getSyncTYiweilianKeyName()}" + ), + errorHandler = "iotConfigMQErrorHandler" + ) + public void handleMessage_unify(IotYiweilianConfigMQDto dto) { + saveSysConfig(dto); + } + + private void saveSysConfig(IotYiweilianConfigMQDto dto) { + try { + yiweilianConfigService.removeById(dto.getId()); + YiweilianConfig yiweilianConfig = new YiweilianConfig(); + BeanUtils.copyProperties(dto, yiweilianConfig); + yiweilianConfigService.save(yiweilianConfig); + } catch (Exception e) { + if (StringUtils.isNotBlank(dto.getLogId())) { + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setMessage("同步失败"); + statusMQDto.setPrimaryKey(dto.getLogId()); + rabbitMQUtil.sendToExchange("hldy.yiweilianconfig", "yiweilianconfig.async.result", statusMQDto); + } + throw new RuntimeException(e); + } + if (StringUtils.isNotBlank(dto.getLogId())) { + StatusMQDto statusMQDto = new StatusMQDto(); + statusMQDto.setMessage("同步成功"); + statusMQDto.setPrimaryKey(dto.getLogId()); + rabbitMQUtil.sendToExchange("hldy.yiweilianconfig", "yiweilianconfig.async.result", statusMQDto); + } + } +}