From 1eaca28d93590f48954b0e11d40574eae40a4abd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?lkd9125=28=EC=9D=B4=EA=B2=BD=EB=8F=84=29?= Date: Mon, 26 Aug 2024 15:40:01 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=98=A4=EB=A5=98=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/bas/dos/service/BasDosService.java | 35 +++++++++++++++++-- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/pav-server/src/main/java/com/palnet/biz/api/bas/dos/service/BasDosService.java b/pav-server/src/main/java/com/palnet/biz/api/bas/dos/service/BasDosService.java index 0dab245c..909c02ca 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/bas/dos/service/BasDosService.java +++ b/pav-server/src/main/java/com/palnet/biz/api/bas/dos/service/BasDosService.java @@ -990,10 +990,10 @@ public class BasDosService { Long totalDataCount = dosFltPlanQueryRepository.countByPlanSnoInAndSearchOrderByZoneNoAsc(planSnoList, rq); Long totalPages = totalDataCount / rq.getPageDataSize(); - if(rq.getPage() > totalPages || rq.getPage() < 1) throw new CustomException(ErrorCode.NON_VALID_PARAMETER, String.format("페이지는 [ %s ] page 부터 [ %s ] page 까지입니다.", 1, totalPages)); - if(totalDataCount % rq.getPageDataSize() > 0) totalPages ++; + if(rq.getPage() > totalPages || rq.getPage() < 1) throw new CustomException(ErrorCode.NON_VALID_PARAMETER, String.format("페이지는 [ %s ] page 부터 [ %s ] page 까지입니다.", 1, totalPages)); + Boolean isFirst = rq.getPage() == 1; Boolean isLast = rq.getPage().equals(totalPages); @@ -1049,7 +1049,22 @@ public class BasDosService { List rs = new ArrayList<>(); List boundary = null; - for(Map.Entry entry : fltPlanBasMap.entrySet()){ + Map sortedMap = fltPlanBasMap.entrySet().stream() + .sorted((e1, e2) -> { + int cmp = e2.getValue().getApplyDt().compareTo(e1.getValue().getApplyDt()); + if (cmp == 0) { + return e2.getValue().getApplyNo().compareTo(e1.getValue().getApplyNo()); + } + return cmp; + }) + .collect(Collectors.toMap( + Map.Entry::getKey, + Map.Entry::getValue, + (e1, e2) -> e1, + LinkedHashMap::new + )); + + for(Map.Entry entry : sortedMap.entrySet()){ Long planSno = entry.getKey(); DosFltPlanBas bas = entry.getValue(); @@ -1074,6 +1089,9 @@ public class BasDosService { DosFltPlanArea area = areaList.get(i); +// TOOD :: 추후 리스트를 삭제하며 돌 수 있도록 수정 필요 +// Boolean addResult = false; + if (area.getPlanSno().equals(planSno)) { Optional first = resultList.stream().filter(result -> result.getPlanAreaSno().equals(area.getPlanAreaSno())).findFirst(); ApprovalCd approvalCd = null; @@ -1233,10 +1251,13 @@ public class BasDosService { .bufferCoordList(bufferCoordList) .reqBufferCoordList(reqBufferCoordList) .build(); +// addResult = areaRsList.add(areaRs); } +// if(addResult) areaList.remove(i); } + // TODO :: 속도이슈 걸리는 곳.. [paging 하면 완화됨] List droneList = null; List pilotList = null; if (type == PlanSelectType.LIST) { @@ -1265,6 +1286,14 @@ public class BasDosService { } + int count = 0; + + for(int i = 0; i < rs.size(); i ++){ + BasDosPlanRs rsNode = rs.get(i); + + count += rsNode.getAreaList().size(); + } + SearchBasDosPlanRS result = new SearchBasDosPlanRS(); result.setContent(rs); result.setPagination(pagination);