diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/deviceoperationrecord/DeviceOperationRecordMapper.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/deviceoperationrecord/DeviceOperationRecordMapper.java index da1956d73..22c260db6 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/deviceoperationrecord/DeviceOperationRecordMapper.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/dal/mysql/deviceoperationrecord/DeviceOperationRecordMapper.java @@ -33,4 +33,8 @@ public interface DeviceOperationRecordMapper extends BaseMapperX deviceOperationPage(Page page,@Param("pageReqVO") DeviceTotalTimeRecordReqVO pageReqVO); + List selectLatestByDeviceAndRule(@Param("deviceIds") List deviceIds, @Param("ruleCodes") List ruleCodes); + + + } \ No newline at end of file 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 2dad10c11..6029ed05e 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 @@ -328,12 +328,14 @@ public class DeviceServiceImpl implements DeviceService { .map(DeviceStatusEnum::getCode) .collect(Collectors.toList()); - List operationRecords = deviceOperationRecordMapper.selectList( - Wrappers.lambdaQuery() - .in(DeviceOperationRecordDO::getDeviceId, deviceIds) - .in(DeviceOperationRecordDO::getRule, ruleCodes) - .orderByDesc(DeviceOperationRecordDO::getCreateTime) - ); +// List operationRecords = deviceOperationRecordMapper.selectList( +// Wrappers.lambdaQuery() +// .in(DeviceOperationRecordDO::getDeviceId, deviceIds) +// .in(DeviceOperationRecordDO::getRule, ruleCodes) +// .orderByDesc(DeviceOperationRecordDO::getCreateTime) +// ); + + List operationRecords = deviceOperationRecordMapper.selectLatestByDeviceAndRule(deviceIds,ruleCodes); // 按 deviceId 分组,取最新一条 Map latestRecordMap = operationRecords.stream() diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/deviceoperationrecord/DeviceOperationRecordMapper.xml b/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/deviceoperationrecord/DeviceOperationRecordMapper.xml index bc33e7e71..609456924 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/deviceoperationrecord/DeviceOperationRecordMapper.xml +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/resources/mapper/deviceoperationrecord/DeviceOperationRecordMapper.xml @@ -40,4 +40,37 @@ GROUP BY ide.id, ide.device_code, ide.device_name ORDER BY ide.device_code + \ No newline at end of file