Browse Source

feat: 드론원스톱 비행승인 조회 주소검색 로직 보완

feature/address-coordinate^2
lkd9125(이경도) 2 months ago
parent
commit
9d5fd9a912
  1. 33
      pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanQueryRepository.java

33
pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanQueryRepository.java

@ -25,7 +25,17 @@ public class DosFltPlanQueryRepository {
QDosFltPlanBas bas = QDosFltPlanBas.dosFltPlanBas; QDosFltPlanBas bas = QDosFltPlanBas.dosFltPlanBas;
QDosFltPlanArea qDosFltPlanArea = QDosFltPlanArea.dosFltPlanArea; QDosFltPlanArea qDosFltPlanArea = QDosFltPlanArea.dosFltPlanArea;
String districtAddr = rq.getCtprvn() + " " + (rq.getSig() != null ? rq.getSig() : ""); short idx = 0;
StringBuilder districtAddr = new StringBuilder();
if(rq.getCtprvn() != null && !rq.getCtprvn().isBlank()) {
districtAddr.append(rq.getCtprvn());
idx ++;
}
if(rq.getSig() != null && !rq.getSig().isBlank()) {
if(idx > 0) districtAddr.append(" ");
districtAddr.append(rq.getSig());
}
BooleanBuilder builder = new BooleanBuilder(); BooleanBuilder builder = new BooleanBuilder();
@ -38,8 +48,8 @@ public class DosFltPlanQueryRepository {
if(StringUtils.hasText(rq.getApplyNo())) { if(StringUtils.hasText(rq.getApplyNo())) {
builder.and(bas.applyNo.eq(rq.getApplyNo())); builder.and(bas.applyNo.eq(rq.getApplyNo()));
} }
if(!districtAddr.isBlank()){ if(!districtAddr.toString().isBlank()){
builder.and(qDosFltPlanArea.addr.like("%" + districtAddr + "%")); builder.and(qDosFltPlanArea.addr.like("%" + districtAddr.toString() + "%"));
} }
if(rq.getAddress() != null && !rq.getAddress().isEmpty()){ if(rq.getAddress() != null && !rq.getAddress().isEmpty()){
builder.and(qDosFltPlanArea.addr.like("%" + rq.getAddress() + "%")); builder.and(qDosFltPlanArea.addr.like("%" + rq.getAddress() + "%"));
@ -50,18 +60,29 @@ public class DosFltPlanQueryRepository {
.on(bas.planSno.eq(qDosFltPlanArea.planSno)) .on(bas.planSno.eq(qDosFltPlanArea.planSno))
.where(builder) .where(builder)
.orderBy(bas.applyDt.desc(), bas.applyNo.desc()) .orderBy(bas.applyDt.desc(), bas.applyNo.desc())
.groupBy(bas.planSno)
.fetch(); .fetch();
} }
public List<DosFltPlanArea> findByPlanSnoInAndAddrOrderByZoneNoAsc(List<Long> planSno, BasDosPlanRq rq){ public List<DosFltPlanArea> findByPlanSnoInAndAddrOrderByZoneNoAsc(List<Long> planSno, BasDosPlanRq rq){
QDosFltPlanArea qDosFltPlanArea = QDosFltPlanArea.dosFltPlanArea; QDosFltPlanArea qDosFltPlanArea = QDosFltPlanArea.dosFltPlanArea;
String districtAddr = rq.getCtprvn() + " " + (rq.getSig() != null ? rq.getSig() : ""); short idx = 0;
StringBuilder districtAddr = new StringBuilder();
if(rq.getCtprvn() != null && !rq.getCtprvn().isBlank()) {
districtAddr.append(rq.getCtprvn());
idx ++;
}
if(rq.getSig() != null && !rq.getSig().isBlank()) {
if(idx > 0) districtAddr.append(" ");
districtAddr.append(rq.getSig());
}
BooleanBuilder builder = new BooleanBuilder(); BooleanBuilder builder = new BooleanBuilder();
builder.and(qDosFltPlanArea.planSno.in(planSno)); builder.and(qDosFltPlanArea.planSno.in(planSno));
if(!districtAddr.isBlank()){ if(!districtAddr.toString().isBlank()){
builder.and(qDosFltPlanArea.addr.like("%" + districtAddr + "%")); builder.and(qDosFltPlanArea.addr.like("%" + districtAddr.toString() + "%"));
} }
if(rq.getAddress() != null && !rq.getAddress().isEmpty()){ if(rq.getAddress() != null && !rq.getAddress().isEmpty()){
builder.and(qDosFltPlanArea.addr.like("%" + rq.getAddress() + "%")); builder.and(qDosFltPlanArea.addr.like("%" + rq.getAddress() + "%"));

Loading…
Cancel
Save