diff --git a/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanDroneRs.java b/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanDroneRs.java index 1925b5cd..cdf446e8 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanDroneRs.java +++ b/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanDroneRs.java @@ -1,5 +1,6 @@ package com.palnet.biz.api.bas.dos.model; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -22,4 +23,7 @@ public class BasDosPlanDroneRs { private String weightNm; // 가입여부 private String insrncJoinYn; + // planSno + @JsonIgnore + private Long planSno; } diff --git a/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanPilotRs.java b/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanPilotRs.java index 02f8340c..9e470026 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanPilotRs.java +++ b/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanPilotRs.java @@ -1,5 +1,6 @@ package com.palnet.biz.api.bas.dos.model; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -18,4 +19,7 @@ public class BasDosPlanPilotRs { private String birthDate; // 조종사 자격번호 private String crtfctNo; + + @JsonIgnore + private Long planSno; } 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 f54e1f77..0dab245c 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 @@ -15,6 +15,7 @@ import com.palnet.biz.api.external.model.DosApprovalResult; import com.palnet.biz.api.external.service.DronOneStopService; import com.palnet.biz.jpa.entity.DosFltPlanArea; import com.palnet.biz.jpa.entity.DosFltPlanBas; +import com.palnet.biz.jpa.entity.DosFltPlanDrone; import com.palnet.biz.jpa.entity.DosFltPlanResult; import com.palnet.biz.jpa.entity.type.ReviewedProcType; import com.palnet.biz.jpa.entity.type.ReviewedType; @@ -1005,6 +1006,33 @@ public class BasDosService { pagination.setIsLast(isLast); Map fltPlanBasMap = this.getConvertMap(planBasList, "planSno", Long.class); + Map> fltDroneBasMap = dosFltPlanDroneRepository.findByPlanSnoIn(planSnoList).stream() + .map(drone -> { + String weightCd = drone.getWeightCd(); + WeightCdType weightCdType = WeightCdType.fromCode(weightCd); + return BasDosPlanDroneRs.builder() + .planDroneSno(drone.getPlanDroneSno()) + .fbctnNo(drone.getFbctnNo()) + .benefit(drone.getBenefit()) + .weightCd(drone.getWeightCd()) + .weightNm(weightCdType != null ? weightCdType.getMessage() : null) + .insrncJoinYn(drone.getInsrncJoinYn()) + .planSno(drone.getPlanSno()) + .build(); + }) + .collect(Collectors.groupingBy(BasDosPlanDroneRs::getPlanSno));; + + Map> fltPliotBasMap = dosFltPlanPilotRepository.findByPlanSnoIn(planSnoList).stream() + .map(pilot -> { + return BasDosPlanPilotRs.builder() + .planPilotSno(pilot.getPlanPilotSno()) + .pilotNm(pilot.getPilotNm()) + .birthDate(pilot.getBirthDate()) + .crtfctNo(pilot.getCrtfctNo()) + .planSno(pilot.getPlanPilotSno()) + .build(); + }) + .collect(Collectors.groupingBy(BasDosPlanPilotRs::getPlanSno)); List areaList = dosFltPlanQueryRepository.findByPlanSnoInAndSearchOrderByZoneNoAsc(planSnoList, rq); List resultList = dosFltPlanResultRepository.findByPlanSnoIn(planSnoList); @@ -1207,35 +1235,13 @@ public class BasDosService { .build(); areaRsList.add(areaRs); } - - areaList.remove(area); } - // TODO :: 속도이슈 걸리는 곳.. [paging 하면 완화됨] List droneList = null; List pilotList = null; if (type == PlanSelectType.LIST) { - droneList = dosFltPlanDroneRepository.findByPlanSno(planSno).stream().map(drone -> { - String weightCd = drone.getWeightCd(); - WeightCdType weightCdType = WeightCdType.fromCode(weightCd); - return BasDosPlanDroneRs.builder() - .planDroneSno(drone.getPlanDroneSno()) - .fbctnNo(drone.getFbctnNo()) - .benefit(drone.getBenefit()) - .weightCd(drone.getWeightCd()) - .weightNm(weightCdType != null ? weightCdType.getMessage() : null) - .insrncJoinYn(drone.getInsrncJoinYn()) - .build(); - }).collect(Collectors.toList()); - - pilotList = dosFltPlanPilotRepository.findByPlanSno(planSno).stream().map(pilot -> { - return BasDosPlanPilotRs.builder() - .planPilotSno(pilot.getPlanPilotSno()) - .pilotNm(pilot.getPilotNm()) - .birthDate(pilot.getBirthDate()) - .crtfctNo(pilot.getCrtfctNo()) - .build(); - }).collect(Collectors.toList()); + droneList = fltDroneBasMap.get(planSno); + pilotList = fltPliotBasMap.get(planSno); } diff --git a/pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanDroneRepository.java b/pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanDroneRepository.java index 72bf8867..02d10f07 100644 --- a/pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanDroneRepository.java +++ b/pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanDroneRepository.java @@ -9,4 +9,6 @@ import java.util.List; @Repository public interface DosFltPlanDroneRepository extends JpaRepository { List findByPlanSno(Long planSno); + + List findByPlanSnoIn(List planSnot); } diff --git a/pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanPilotRepository.java b/pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanPilotRepository.java index f93dfb8d..c95721ae 100644 --- a/pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanPilotRepository.java +++ b/pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanPilotRepository.java @@ -9,4 +9,6 @@ import java.util.List; @Repository public interface DosFltPlanPilotRepository extends JpaRepository { List findByPlanSno(Long planSno); + + List findByPlanSnoIn (List planSno); }