Browse Source

refactor: 성능개선 코드 추가

pull/19/head
lkd9125(이경도) 4 weeks ago
parent
commit
d82483f6c9
  1. 4
      pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanDroneRs.java
  2. 4
      pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanPilotRs.java
  3. 54
      pav-server/src/main/java/com/palnet/biz/api/bas/dos/service/BasDosService.java
  4. 2
      pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanDroneRepository.java
  5. 2
      pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanPilotRepository.java

4
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; package com.palnet.biz.api.bas.dos.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@ -22,4 +23,7 @@ public class BasDosPlanDroneRs {
private String weightNm; private String weightNm;
// 가입여부 // 가입여부
private String insrncJoinYn; private String insrncJoinYn;
// planSno
@JsonIgnore
private Long planSno;
} }

4
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; package com.palnet.biz.api.bas.dos.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@ -18,4 +19,7 @@ public class BasDosPlanPilotRs {
private String birthDate; private String birthDate;
// 조종사 자격번호 // 조종사 자격번호
private String crtfctNo; private String crtfctNo;
@JsonIgnore
private Long planSno;
} }

54
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.api.external.service.DronOneStopService;
import com.palnet.biz.jpa.entity.DosFltPlanArea; import com.palnet.biz.jpa.entity.DosFltPlanArea;
import com.palnet.biz.jpa.entity.DosFltPlanBas; 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.DosFltPlanResult;
import com.palnet.biz.jpa.entity.type.ReviewedProcType; import com.palnet.biz.jpa.entity.type.ReviewedProcType;
import com.palnet.biz.jpa.entity.type.ReviewedType; import com.palnet.biz.jpa.entity.type.ReviewedType;
@ -1005,6 +1006,33 @@ public class BasDosService {
pagination.setIsLast(isLast); pagination.setIsLast(isLast);
Map<Long , DosFltPlanBas> fltPlanBasMap = this.getConvertMap(planBasList, "planSno", Long.class); Map<Long , DosFltPlanBas> fltPlanBasMap = this.getConvertMap(planBasList, "planSno", Long.class);
Map<Long , List<BasDosPlanDroneRs>> 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<Long , List<BasDosPlanPilotRs>> 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<DosFltPlanArea> areaList = dosFltPlanQueryRepository.findByPlanSnoInAndSearchOrderByZoneNoAsc(planSnoList, rq); List<DosFltPlanArea> areaList = dosFltPlanQueryRepository.findByPlanSnoInAndSearchOrderByZoneNoAsc(planSnoList, rq);
List<DosFltPlanResult> resultList = dosFltPlanResultRepository.findByPlanSnoIn(planSnoList); List<DosFltPlanResult> resultList = dosFltPlanResultRepository.findByPlanSnoIn(planSnoList);
@ -1207,35 +1235,13 @@ public class BasDosService {
.build(); .build();
areaRsList.add(areaRs); areaRsList.add(areaRs);
} }
areaList.remove(area);
} }
// TODO :: 속도이슈 걸리는 곳.. [paging 하면 완화됨]
List<BasDosPlanDroneRs> droneList = null; List<BasDosPlanDroneRs> droneList = null;
List<BasDosPlanPilotRs> pilotList = null; List<BasDosPlanPilotRs> pilotList = null;
if (type == PlanSelectType.LIST) { if (type == PlanSelectType.LIST) {
droneList = dosFltPlanDroneRepository.findByPlanSno(planSno).stream().map(drone -> { droneList = fltDroneBasMap.get(planSno);
String weightCd = drone.getWeightCd(); pilotList = fltPliotBasMap.get(planSno);
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());
} }

2
pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanDroneRepository.java

@ -9,4 +9,6 @@ import java.util.List;
@Repository @Repository
public interface DosFltPlanDroneRepository extends JpaRepository<DosFltPlanDrone, Long> { public interface DosFltPlanDroneRepository extends JpaRepository<DosFltPlanDrone, Long> {
List<DosFltPlanDrone> findByPlanSno(Long planSno); List<DosFltPlanDrone> findByPlanSno(Long planSno);
List<DosFltPlanDrone> findByPlanSnoIn(List<Long> planSnot);
} }

2
pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanPilotRepository.java

@ -9,4 +9,6 @@ import java.util.List;
@Repository @Repository
public interface DosFltPlanPilotRepository extends JpaRepository<DosFltPlanPilot, Long> { public interface DosFltPlanPilotRepository extends JpaRepository<DosFltPlanPilot, Long> {
List<DosFltPlanPilot> findByPlanSno(Long planSno); List<DosFltPlanPilot> findByPlanSno(Long planSno);
List<DosFltPlanPilot> findByPlanSnoIn (List<Long> planSno);
} }

Loading…
Cancel
Save