From 4c1521bda0d3ff7b4da985df54c3a47cb420920d Mon Sep 17 00:00:00 2001 From: LEED Date: Sun, 13 Jul 2025 17:05:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E6=9B=B4=E6=96=B0=E6=97=B6=E5=85=B3=E8=81=94=E7=BB=84?= =?UTF-8?q?=E6=80=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/SysInfoController.java | 2 +- .../data/controller/DeviceController.java | 8 ++++++++ .../scada/controller/ScadaController.java | 19 ++++++++++++++++++- .../com/xinda/scada/mapper/ScadaMapper.java | 1 + .../xinda/scada/service/IScadaService.java | 2 ++ .../scada/service/impl/ScadaServiceImpl.java | 6 ++++++ .../src/main/resources/mapper/ScadaMapper.xml | 4 ++-- .../java/com/xinda/mqtt/auth/AuthService.java | 18 +++++++++--------- .../iot/service/impl/DeviceServiceImpl.java | 4 +++- 9 files changed, 50 insertions(+), 14 deletions(-) diff --git a/xinda-admin/src/main/java/com/xinda/web/controller/system/SysInfoController.java b/xinda-admin/src/main/java/com/xinda/web/controller/system/SysInfoController.java index e72c33b..025cf01 100644 --- a/xinda-admin/src/main/java/com/xinda/web/controller/system/SysInfoController.java +++ b/xinda-admin/src/main/java/com/xinda/web/controller/system/SysInfoController.java @@ -1,4 +1,4 @@ -package com.xinda.system.controller; +package com.xinda.web.controller.system; import java.util.List; import javax.servlet.http.HttpServletResponse; diff --git a/xinda-open-api/src/main/java/com/xinda/data/controller/DeviceController.java b/xinda-open-api/src/main/java/com/xinda/data/controller/DeviceController.java index 5aaa067..e300ef7 100644 --- a/xinda-open-api/src/main/java/com/xinda/data/controller/DeviceController.java +++ b/xinda-open-api/src/main/java/com/xinda/data/controller/DeviceController.java @@ -435,6 +435,14 @@ public class DeviceController extends BaseController device.setGuid(uuid.toString()); } } + }else{ + Scada scada = scadaService.selectScadaByGuid(device.getGuid()); + if(scada!=null){ + scada.setTenantId(device.getTenantId()); + scada.setTenantName(device.getTenantName()); + scada.setDeptId(device.getAgenciesId()); + scadaService.updateScadaDept(scada); + } } return deviceService.updateDevice(device); diff --git a/xinda-scada/src/main/java/com/xinda/scada/controller/ScadaController.java b/xinda-scada/src/main/java/com/xinda/scada/controller/ScadaController.java index e324684..f99f87a 100644 --- a/xinda-scada/src/main/java/com/xinda/scada/controller/ScadaController.java +++ b/xinda-scada/src/main/java/com/xinda/scada/controller/ScadaController.java @@ -275,7 +275,7 @@ public class ScadaController extends BaseController @ApiOperation("获取绑定设备物模型列表") @PreAuthorize("@ss.hasPermi('scada:center:query')") @GetMapping("/listDeviceThingsModel") - public TableDataInfo getBindDatalist(Integer pageNum, Integer pageSize, String scadaGuid, String serialNumber) + public TableDataInfo getBindDatalist(Integer pageNum, Integer pageSize, String scadaGuid, String serialNumber,String deviceName,String identifier) { List list= new ArrayList<>(); if(StringUtils.isEmpty(scadaGuid)){ @@ -365,6 +365,7 @@ public class ScadaController extends BaseController } } } + list = filterDevices(list,deviceName,identifier); List resultList = ScadaCollectionUtils.startPage(list, pageNum, pageSize); TableDataInfo rspData = new TableDataInfo(); rspData.setCode(HttpStatus.SUCCESS); @@ -374,6 +375,22 @@ public class ScadaController extends BaseController return rspData; } + public List filterDevices(List list, String deviceName, String identifier) { + return list.stream() + .filter(device -> { + // 过滤条件:deviceName 非空且匹配(忽略大小写) + boolean nameMatch = deviceName == null || deviceName.isEmpty() || + device.getDeviceName().equalsIgnoreCase(deviceName); + + // 过滤条件:identifier 非空且匹配(忽略大小写) + boolean idMatch = identifier == null || identifier.isEmpty() || + device.getIdentifier().equalsIgnoreCase(identifier); + + return nameMatch && idMatch; + }) + .collect(Collectors.toList()); + } + /** * 导入json文件 * @param file 文件 diff --git a/xinda-scada/src/main/java/com/xinda/scada/mapper/ScadaMapper.java b/xinda-scada/src/main/java/com/xinda/scada/mapper/ScadaMapper.java index 591d1bf..44f347e 100644 --- a/xinda-scada/src/main/java/com/xinda/scada/mapper/ScadaMapper.java +++ b/xinda-scada/src/main/java/com/xinda/scada/mapper/ScadaMapper.java @@ -121,4 +121,5 @@ public interface ScadaMapper Long selectDeptIdBySn(@Param("serialNumber") String serialNumber); + } diff --git a/xinda-scada/src/main/java/com/xinda/scada/service/IScadaService.java b/xinda-scada/src/main/java/com/xinda/scada/service/IScadaService.java index 256e658..6dfd04d 100644 --- a/xinda-scada/src/main/java/com/xinda/scada/service/IScadaService.java +++ b/xinda-scada/src/main/java/com/xinda/scada/service/IScadaService.java @@ -126,4 +126,6 @@ public interface IScadaService List listScadaVO(Scada scadaQuery); AjaxResult importJson(MultipartFile file, String guid) throws IOException; + + int updateScadaDept(Scada scada); } diff --git a/xinda-scada/src/main/java/com/xinda/scada/service/impl/ScadaServiceImpl.java b/xinda-scada/src/main/java/com/xinda/scada/service/impl/ScadaServiceImpl.java index 4c34ca1..e5c9fe1 100644 --- a/xinda-scada/src/main/java/com/xinda/scada/service/impl/ScadaServiceImpl.java +++ b/xinda-scada/src/main/java/com/xinda/scada/service/impl/ScadaServiceImpl.java @@ -238,6 +238,12 @@ public class ScadaServiceImpl implements IScadaService return scadaMapper.updateScada(scada); } + + @Override + public int updateScadaDept(Scada scada) { + return scadaMapper.updateScada(scada); + } + /** * 批量删除组态中心 * diff --git a/xinda-scada/src/main/resources/mapper/ScadaMapper.xml b/xinda-scada/src/main/resources/mapper/ScadaMapper.xml index 00216bd..227dc49 100644 --- a/xinda-scada/src/main/resources/mapper/ScadaMapper.xml +++ b/xinda-scada/src/main/resources/mapper/ScadaMapper.xml @@ -339,10 +339,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and del_flag = '0' - select agencies_id from iot_device - where serial_number = #{serial_number} + where serial_number = #{serialNumber} and del_flag = '0' diff --git a/xinda-server/mqtt-broker/src/main/java/com/xinda/mqtt/auth/AuthService.java b/xinda-server/mqtt-broker/src/main/java/com/xinda/mqtt/auth/AuthService.java index b43841d..11e3d47 100644 --- a/xinda-server/mqtt-broker/src/main/java/com/xinda/mqtt/auth/AuthService.java +++ b/xinda-server/mqtt-broker/src/main/java/com/xinda/mqtt/auth/AuthService.java @@ -105,15 +105,15 @@ public class AuthService { log.warn("=>设备端认证失败"); throw new ServiceException("设备端认证失败:" + response.getBody()); } - }else if (clientId.startsWith("8")) { - // 设备端认证 - ResponseEntity response = toolService.clientAuthNoClient(clientId, username, password); - if (response.getStatusCodeValue() == HttpStatus.OK.value()) { - return true; - } else { - log.warn("=>设备端认证失败"); - throw new ServiceException("设备端认证失败:" + response.getBody()); - } +// }else if (clientId.startsWith("8")) { +// // 设备端认证 +// ResponseEntity response = toolService.clientAuthNoClient(clientId, username, password); +// if (response.getStatusCodeValue() == HttpStatus.OK.value()) { +// return true; +// } else { +// log.warn("=>设备端认证失败"); +// throw new ServiceException("设备端认证失败:" + response.getBody()); +// } } else { Product product = productService.selectProductByProductId(147L); if (!username.equals(product.getMqttAccount()) && !password.equals(product.getMqttPassword())) { diff --git a/xinda-service/xinda-iot-service/src/main/java/com/xinda/iot/service/impl/DeviceServiceImpl.java b/xinda-service/xinda-iot-service/src/main/java/com/xinda/iot/service/impl/DeviceServiceImpl.java index 739fe95..043676c 100644 --- a/xinda-service/xinda-iot-service/src/main/java/com/xinda/iot/service/impl/DeviceServiceImpl.java +++ b/xinda-service/xinda-iot-service/src/main/java/com/xinda/iot/service/impl/DeviceServiceImpl.java @@ -1304,9 +1304,11 @@ public class DeviceServiceImpl implements IDeviceService { } // 设备下不能有场景联动 List sceneDeviceBindVOList = sceneDeviceMapper.listSceneDeviceBind(device.getSerialNumber()); - if (null != sceneDeviceBindVOList.stream().filter(s -> s.getUserId().equals(sceneUserId)).findAny().orElse(null)) { + if (null != sceneDeviceBindVOList.stream().filter(s -> null != s.getUserId() && sceneUserId.equals(s.getUserId())).findAny().orElse(null)) { return AjaxResult.error("删除失败,请先删除对应设备下的场景联动"); } + + // 查绑定用户被分享用户配置的场景,需要把场景删掉 DeviceUser deviceUser = deviceUserMapper.selectDeviceUserByDeviceId(deviceId); List userIdSceneList = new ArrayList<>();