From 4e81906fc00bb99ec6fcce237450fe1d477054d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Fri, 30 Jan 2026 15:29:11 +0800 Subject: [PATCH] xx --- .../device/controller/GroupController.java | 59 ++++++++++++++++--- 1 file changed, 51 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/ruoyi/device/controller/GroupController.java b/src/main/java/com/ruoyi/device/controller/GroupController.java index d1eeba5..b7a35a4 100644 --- a/src/main/java/com/ruoyi/device/controller/GroupController.java +++ b/src/main/java/com/ruoyi/device/controller/GroupController.java @@ -6,6 +6,8 @@ import com.ruoyi.device.api.domain.*; import com.ruoyi.device.controller.convert.DockVOConvert; import com.ruoyi.device.controller.convert.DockWithGPSVOConvert; import com.ruoyi.device.controller.convert.GroupVOConvert; +import com.ruoyi.device.domain.api.IDockDomain; +import com.ruoyi.device.domain.model.Dock; import com.ruoyi.device.service.api.IBufferDeviceService; import com.ruoyi.device.service.api.IGroupService; import com.ruoyi.device.service.dto.DockDetailDTO; @@ -34,6 +36,9 @@ public class GroupController extends BaseController @Autowired private IBufferDeviceService bufferDeviceService; + + @Autowired + private IDockDomain dockDomain; /** * 创建分组 * @@ -123,14 +128,33 @@ public class GroupController extends BaseController public R> getDocksByGroupId(@PathVariable("groupId") Long groupId) { logger.info("getDocksByGroupId {}", groupId); - List groupDTOS = groupService.getDocksByGroupId(groupId); - List dtoList = new ArrayList<>(); - for (DockGroupDTO dockGroupDTO : groupDTOS) { - DockDetailDTO dockDetailDTO = bufferDeviceService.getDockDetailById(dockGroupDTO.getDockId()); - dtoList.add(dockDetailDTO); + + if(Objects.equals(groupId, -1L)){ + List groupDTOS = groupService.getDocksByGroupId(groupId); + List dtoList = new ArrayList<>(); + Dock queryDock = new Dock(); + List allDocks = dockDomain.selectDockList(queryDock); + + if (allDocks != null) { + for (Dock dock : allDocks) { + if (dock.getLastActiveTime() != null) { + DockDetailDTO dockDetailDTO = bufferDeviceService.getDockDetailById(dock.getDockId()); + dtoList.add(dockDetailDTO); + } + } + } + return R.ok(DockWithGPSVOConvert.fromList(dtoList)); + }else { + List groupDTOS = groupService.getDocksByGroupId(groupId); + List dtoList = new ArrayList<>(); + for (DockGroupDTO dockGroupDTO : groupDTOS) { + DockDetailDTO dockDetailDTO = bufferDeviceService.getDockDetailById(dockGroupDTO.getDockId()); + dtoList.add(dockDetailDTO); + } + + return R.ok(DockWithGPSVOConvert.fromList(dtoList)); } - return R.ok(DockWithGPSVOConvert.fromList(dtoList)); } /** @@ -143,10 +167,29 @@ public class GroupController extends BaseController public R> getAllGroupIds() { List groupDTOs = groupService.getAllGroupIds(); - // Calculate aircraft count for each group - List groupVOS = new ArrayList<>(); + // 添加虚拟的"最近使用"分组(groupId = -1) + // 统计 last_active_time 不为空的机场数量 + Dock queryDock = new Dock(); + List allDocks = dockDomain.selectDockList(queryDock); + int recentlyUsedCount = 0; + if (allDocks != null) { + for (Dock dock : allDocks) { + if (dock.getLastActiveTime() != null) { + recentlyUsedCount++; + } + } + } + + // 创建"最近使用"虚拟分组 + GroupVO recentlyUsedGroup = new GroupVO(); + recentlyUsedGroup.setGroupId(-1L); + recentlyUsedGroup.setGroupName("最近使用"); + recentlyUsedGroup.setDockCount(recentlyUsedCount); + groupVOS.add(recentlyUsedGroup); + + // 添加其他真实分组 for(GroupDTO groupDTO : groupDTOs){ GroupVO groupVO = GroupVOConvert.from(groupDTO); List dockGroupDTOs = groupService.getDocksByGroupId(groupDTO.getGroupId());