diff --git a/pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanQueryRepository.java b/pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanQueryRepository.java index ac3e4dd8..a26842f4 100644 --- a/pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanQueryRepository.java +++ b/pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanQueryRepository.java @@ -25,7 +25,17 @@ public class DosFltPlanQueryRepository { QDosFltPlanBas bas = QDosFltPlanBas.dosFltPlanBas; 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(); @@ -38,8 +48,8 @@ public class DosFltPlanQueryRepository { if(StringUtils.hasText(rq.getApplyNo())) { builder.and(bas.applyNo.eq(rq.getApplyNo())); } - if(!districtAddr.isBlank()){ - builder.and(qDosFltPlanArea.addr.like("%" + districtAddr + "%")); + if(!districtAddr.toString().isBlank()){ + builder.and(qDosFltPlanArea.addr.like("%" + districtAddr.toString() + "%")); } if(rq.getAddress() != null && !rq.getAddress().isEmpty()){ builder.and(qDosFltPlanArea.addr.like("%" + rq.getAddress() + "%")); @@ -50,18 +60,29 @@ public class DosFltPlanQueryRepository { .on(bas.planSno.eq(qDosFltPlanArea.planSno)) .where(builder) .orderBy(bas.applyDt.desc(), bas.applyNo.desc()) + .groupBy(bas.planSno) .fetch(); } public List findByPlanSnoInAndAddrOrderByZoneNoAsc(List planSno, BasDosPlanRq rq){ 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(); builder.and(qDosFltPlanArea.planSno.in(planSno)); - if(!districtAddr.isBlank()){ - builder.and(qDosFltPlanArea.addr.like("%" + districtAddr + "%")); + if(!districtAddr.toString().isBlank()){ + builder.and(qDosFltPlanArea.addr.like("%" + districtAddr.toString() + "%")); } if(rq.getAddress() != null && !rq.getAddress().isEmpty()){ builder.and(qDosFltPlanArea.addr.like("%" + rq.getAddress() + "%"));