This commit is contained in:
孙小云 2026-01-30 15:29:11 +08:00
parent d469656148
commit 4e81906fc0
1 changed files with 51 additions and 8 deletions

View File

@ -6,6 +6,8 @@ import com.ruoyi.device.api.domain.*;
import com.ruoyi.device.controller.convert.DockVOConvert; import com.ruoyi.device.controller.convert.DockVOConvert;
import com.ruoyi.device.controller.convert.DockWithGPSVOConvert; import com.ruoyi.device.controller.convert.DockWithGPSVOConvert;
import com.ruoyi.device.controller.convert.GroupVOConvert; 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.IBufferDeviceService;
import com.ruoyi.device.service.api.IGroupService; import com.ruoyi.device.service.api.IGroupService;
import com.ruoyi.device.service.dto.DockDetailDTO; import com.ruoyi.device.service.dto.DockDetailDTO;
@ -34,6 +36,9 @@ public class GroupController extends BaseController
@Autowired @Autowired
private IBufferDeviceService bufferDeviceService; private IBufferDeviceService bufferDeviceService;
@Autowired
private IDockDomain dockDomain;
/** /**
* 创建分组 * 创建分组
* *
@ -123,6 +128,23 @@ public class GroupController extends BaseController
public R<List<DockWithGPSVO>> getDocksByGroupId(@PathVariable("groupId") Long groupId) public R<List<DockWithGPSVO>> getDocksByGroupId(@PathVariable("groupId") Long groupId)
{ {
logger.info("getDocksByGroupId {}", groupId); logger.info("getDocksByGroupId {}", groupId);
if(Objects.equals(groupId, -1L)){
List<DockGroupDTO> groupDTOS = groupService.getDocksByGroupId(groupId);
List<DockDetailDTO> dtoList = new ArrayList<>();
Dock queryDock = new Dock();
List<Dock> 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<DockGroupDTO> groupDTOS = groupService.getDocksByGroupId(groupId); List<DockGroupDTO> groupDTOS = groupService.getDocksByGroupId(groupId);
List<DockDetailDTO> dtoList = new ArrayList<>(); List<DockDetailDTO> dtoList = new ArrayList<>();
for (DockGroupDTO dockGroupDTO : groupDTOS) { for (DockGroupDTO dockGroupDTO : groupDTOS) {
@ -133,6 +155,8 @@ public class GroupController extends BaseController
return R.ok(DockWithGPSVOConvert.fromList(dtoList)); return R.ok(DockWithGPSVOConvert.fromList(dtoList));
} }
}
/** /**
* 查看所有分组 * 查看所有分组
* *
@ -143,10 +167,29 @@ public class GroupController extends BaseController
public R<List<GroupVO>> getAllGroupIds() public R<List<GroupVO>> getAllGroupIds()
{ {
List<GroupDTO> groupDTOs = groupService.getAllGroupIds(); List<GroupDTO> groupDTOs = groupService.getAllGroupIds();
// Calculate aircraft count for each group
List<GroupVO> groupVOS = new ArrayList<>(); List<GroupVO> groupVOS = new ArrayList<>();
// 添加虚拟的"最近使用"分组groupId = -1
// 统计 last_active_time 不为空的机场数量
Dock queryDock = new Dock();
List<Dock> 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){ for(GroupDTO groupDTO : groupDTOs){
GroupVO groupVO = GroupVOConvert.from(groupDTO); GroupVO groupVO = GroupVOConvert.from(groupDTO);
List<DockGroupDTO> dockGroupDTOs = groupService.getDocksByGroupId(groupDTO.getGroupId()); List<DockGroupDTO> dockGroupDTOs = groupService.getDocksByGroupId(groupDTO.getGroupId());