From dc475755d9f6b46d56777317ab1fad48280075a1 Mon Sep 17 00:00:00 2001 From: zzc <1278921369@qq.com> Date: Wed, 26 Feb 2025 23:29:56 +0800 Subject: [PATCH] =?UTF-8?q?websocket=E7=BA=BF=E7=A8=8B=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=8F=8A=E5=8F=91=E9=80=81=E6=8E=A7=E4=BC=98=E5=8C=96=E5=8F=8A?= =?UTF-8?q?ota=E7=89=88=E6=9C=AC=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/app/EqDeviceController.java | 3 +++ .../web/service/impl/EqEquipmentServiceImpl.java | 3 ++- .../dromara/web/utils/WebSocketBusinessHandler.java | 11 +++++++---- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java index b8be953cd..4b79552c4 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/app/EqDeviceController.java @@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONObject; import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; +import lombok.extern.log4j.Log4j2; import org.dromara.common.core.constant.Constants; import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.model.LoginUser; @@ -55,6 +56,7 @@ import java.util.stream.Collectors; * @date 2024-07-14 */ @Validated +@Log4j2 @RequiredArgsConstructor @RestController @RequestMapping("/app/device") @@ -131,6 +133,7 @@ public class EqDeviceController extends BaseController { */ @GetMapping("/operate") public R operate(EqDeviceCmdBo bo){ + log.info("设备控制参数 userId:{}, equipmentCode:{}, operateType:{}",bo.getUserId(),bo.getEquipmentCode(),bo.getOperateType()); if (bo.getEquipmentCode() == null) throw new ServiceException("设备编码不能为空"); if (bo.getOperateType() == 0) throw new ServiceException("操作类型不能为0"); if (bo.getUserId() == null) throw new ServiceException("用户ID不能为空"); diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java index ad0427269..bdf9baf37 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/impl/EqEquipmentServiceImpl.java @@ -476,7 +476,8 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService { eqVersionBo.setCurrentVersion(currentVersion); eqVersionBo.setLatestVersion(null); }else{ - eqVersionBo.setNeedUpdate(true); + if (StringUtils.isBlank(currentVersion)) throw new RuntimeException("设备无当前OTA版本"); + eqVersionBo.setNeedUpdate(currentVersion.equals(lastOtaPackage.getVersion())); eqVersionBo.setCurrentVersion(currentVersion); eqVersionBo.setLatestVersion(lastOtaPackage.getVersion()); } diff --git a/ruoyi-admin/src/main/java/org/dromara/web/utils/WebSocketBusinessHandler.java b/ruoyi-admin/src/main/java/org/dromara/web/utils/WebSocketBusinessHandler.java index fa8164fb0..1e8dbbfd9 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/utils/WebSocketBusinessHandler.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/utils/WebSocketBusinessHandler.java @@ -203,6 +203,8 @@ public class WebSocketBusinessHandler implements WebSocketApi { pageQuery.setPageSize(100); try { list = homeController.listForWebSocket(bo, pageQuery,loginUser); + canSendFlag = true; + /* zc 去除去重 if (type == 1){ canSendFlag = true; }else{ @@ -211,9 +213,10 @@ public class WebSocketBusinessHandler implements WebSocketApi { List currentVoList = new ArrayList<>(); if (rows !=null && !rows.isEmpty()){ currentVoList = BeanUtil.copyToList(rows, EqEquipmentListVo.class); + if (RedisUtils.hasKey(key)){ - List cacheList = RedisUtils.getCacheList(key); - for (EqEquipmentVo cacheVo : cacheList) { + List cacheList = RedisUtils.getCacheList(key); + for (EqEquipmentListVo cacheVo : cacheList) { for (EqEquipmentListVo currentVo : currentVoList) { if (cacheVo.getEquipmentId().equals(currentVo.getEquipmentId())){ if ( @@ -232,7 +235,7 @@ public class WebSocketBusinessHandler implements WebSocketApi { } } } - + if (canSendFlag) RedisUtils.setCacheList(key,currentVoList); }else{ RedisUtils.setCacheList(key,currentVoList); canSendFlag = true; @@ -240,7 +243,7 @@ public class WebSocketBusinessHandler implements WebSocketApi { }else{ canSendFlag = true; } - } + }*/ } catch (Exception e) { isTure = false; sendMsg = "获取设备列表失败"+e.getMessage();