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.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<List<DockWithGPSVO>> getDocksByGroupId(@PathVariable("groupId") Long groupId)
{
logger.info("getDocksByGroupId {}", groupId);
List<DockGroupDTO> groupDTOS = groupService.getDocksByGroupId(groupId);
List<DockDetailDTO> dtoList = new ArrayList<>();
for (DockGroupDTO dockGroupDTO : groupDTOS) {
DockDetailDTO dockDetailDTO = bufferDeviceService.getDockDetailById(dockGroupDTO.getDockId());
dtoList.add(dockDetailDTO);
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<DockDetailDTO> 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<List<GroupVO>> getAllGroupIds()
{
List<GroupDTO> groupDTOs = groupService.getAllGroupIds();
// Calculate aircraft count for each group
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){
GroupVO groupVO = GroupVOConvert.from(groupDTO);
List<DockGroupDTO> dockGroupDTOs = groupService.getDocksByGroupId(groupDTO.getGroupId());