From b658dcebd5fc2b8ba98ca37183edf5ea148cf7f6 Mon Sep 17 00:00:00 2001 From: liutao <790864623@qq.com> Date: Tue, 28 Jul 2026 16:32:17 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E8=BF=90=E8=A1=8C=E6=80=BB?= =?UTF-8?q?=E8=A7=88=E5=8F=8A=E4=BA=A7=E7=BA=BF=E7=9C=8B=E6=9D=BF=E7=89=A9?= =?UTF-8?q?=E8=81=94=E8=AE=BE=E5=A4=87=E5=A2=9E=E5=8A=A0=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E4=B8=BA=E8=AE=BE=E5=A4=87=E7=9A=84=E8=BF=87?= =?UTF-8?q?=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/device/DeviceController.java | 12 ++++++++---- .../iot/dal/mysql/device/DeviceMapper.java | 4 ++++ .../module/iot/service/device/DeviceService.java | 4 ++-- .../iot/service/device/DeviceServiceImpl.java | 16 +++++++++++----- .../resources/mapper/device/DeviceMapper.xml | 15 +++++++++++++++ 5 files changed, 40 insertions(+), 11 deletions(-) diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/DeviceController.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/DeviceController.java index 5bd7ec9a3..2dd3c83d2 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/DeviceController.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/controller/admin/device/DeviceController.java @@ -305,8 +305,10 @@ public class DeviceController { @Operation(summary = "获取首页设备运行状态") // @PreAuthorize("@ss.hasPermission('iot:device:query')") @Parameter(name = "orgId", description = "产线组织Id") - public CommonResult getDeviceOperationalStatus(@RequestParam(name = "orgId",required = false) Long orgId) throws JsonProcessingException { - DeviceOperationStatusRespVO deviceOperationalStatus=deviceService.getDeviceOperationalStatus(); + public CommonResult getDeviceOperationalStatus( + @RequestParam(name = "orgId", required = false) Long orgId, + @RequestParam(name = "deviceType", required = false) Integer deviceType) throws JsonProcessingException { + DeviceOperationStatusRespVO deviceOperationalStatus=deviceService.getDeviceOperationalStatus(deviceType); return success(deviceOperationalStatus); } @@ -439,8 +441,10 @@ public class DeviceController { @Operation(summary = "获得多个设备的属性数据") @Parameter(name = "goviewId", description = "大屏ID", required = true) //@PreAuthorize("@ss.hasPermission('iot:device:query')") - public CommonResult>> getMultiDeviceAttributes(@RequestParam("goviewId") Long goviewId) { - return success(deviceService.getMultiDeviceAttributes(goviewId)); + public CommonResult>> getMultiDeviceAttributes( + @RequestParam("goviewId") Long goviewId, + @RequestParam(name = "deviceType", required = false) Integer deviceType) { + return success(deviceService.getMultiDeviceAttributes(goviewId, deviceType)); } diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/device/DeviceMapper.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/device/DeviceMapper.java index b6c82ca51..50deacd45 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/device/DeviceMapper.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/device/DeviceMapper.java @@ -130,8 +130,12 @@ public interface DeviceMapper extends BaseMapperX { Integer getTotalDeviceCount(); + Integer getTotalDeviceCountByType(@Param("deviceType") Integer deviceType); + List getAllDeviceIds(); + List getAllDeviceIdsByType(@Param("deviceType") Integer deviceType); + List selectDeviceSelectList(); DeviceDO selectByIdWithDeleted(@Param("id") Long id); diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceService.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceService.java index 04c1967aa..aa2509d39 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceService.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceService.java @@ -142,13 +142,13 @@ public interface DeviceService { Boolean scheduledStop(Long id); - DeviceOperationStatusRespVO getDeviceOperationalStatus(); + DeviceOperationStatusRespVO getDeviceOperationalStatus(Integer deviceType); DeviceOverviewRespVO getDeviceOverview(); List getDeviceRateTrend(DeviceRateTrendReqVO reqVO); - List> getMultiDeviceAttributes(Long goviewId); + List> getMultiDeviceAttributes(Long goviewId, Integer deviceType); List getDeviceAttributeList(Long deviceId); diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java index cccf137d1..ec51b4f0b 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/device/DeviceServiceImpl.java @@ -1761,16 +1761,20 @@ public class DeviceServiceImpl implements DeviceService { } @Override - public DeviceOperationStatusRespVO getDeviceOperationalStatus() { + public DeviceOperationStatusRespVO getDeviceOperationalStatus(Integer deviceType) { DeviceOperationStatusRespVO result = new DeviceOperationStatusRespVO(); // 1. 从 MySQL 获取设备总数 - Integer totalDevices = deviceMapper.getTotalDeviceCount(); + Integer totalDevices = deviceType == null + ? deviceMapper.getTotalDeviceCount() + : deviceMapper.getTotalDeviceCountByType(deviceType); result.setTotalDevices(totalDevices); // 2. 从 MySQL 获取所有设备ID - List deviceIds = deviceMapper.getAllDeviceIds(); + List deviceIds = deviceType == null + ? deviceMapper.getAllDeviceIds() + : deviceMapper.getAllDeviceIdsByType(deviceType); if (CollectionUtils.isEmpty(deviceIds)) { // 没有设备,所有状态设为0 @@ -1909,7 +1913,7 @@ public class DeviceServiceImpl implements DeviceService { } @Override - public List> getMultiDeviceAttributes(Long goviewId) { + public List> getMultiDeviceAttributes(Long goviewId, Integer deviceType) { List> result = new ArrayList<>(); @@ -1946,7 +1950,9 @@ public class DeviceServiceImpl implements DeviceService { // 3. 批量查设备 Map deviceMap = deviceMapper - .selectBatchIds(allDeviceIds) + .selectList(Wrappers.lambdaQuery() + .in(DeviceDO::getId, allDeviceIds) + .eq(deviceType != null, DeviceDO::getDeviceType, deviceType)) .stream() .collect(Collectors.toMap(DeviceDO::getId, Function.identity())); log.info("deviceMap size: {}", deviceMap.size()); diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/device/DeviceMapper.xml b/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/device/DeviceMapper.xml index 2a3f99bc2..5377913cc 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/device/DeviceMapper.xml +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/device/DeviceMapper.xml @@ -207,6 +207,13 @@ WHERE deleted = 0 + + + +