diff --git a/http/server/server.http b/http/server/server.http index a7316485..3c91e808 100644 --- a/http/server/server.http +++ b/http/server/server.http @@ -7,10 +7,10 @@ // } // dev-gmp-admin - const loginInfo = { - userId: "gmp-admin", - userPswd: "palnet5909!" - } + // const loginInfo = { + // userId: "gmp-admin", + // userPswd: "palnet5909!" + // } // prod-root // const loginInfo = { @@ -37,10 +37,10 @@ // } // 김항소-관제과 - // const loginInfo = { - // userId: "GMPATC2", - // userPswd: "GMPATC12!@" - // } + const loginInfo = { + userId: "GMPOPS", + userPswd: "GMPOPS12!@" + } request.variables.set("loginInfo", JSON.stringify(loginInfo)) @@ -63,7 +63,10 @@ GET {{appHost}}/api/acnt/jwt/profile/{{cstmrSno}} Authorization: {{accessToken}} ### dos(드론원스톱) 목록 조회 -GET {{appHost}}/api/bas/dos/plan?searchStDt=2024-06-29&searchEndDt=2024-06-29 +GET {{appHost}}/api/bas/dos/plan + ?searchStDt=2023-06-29 + &searchEndDt=2024-06-29 +# &reviewedType=W Authorization: {{accessToken}} ### dos(드론원스톱) 목록 수정 diff --git a/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanRq.java b/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanRq.java index 55038403..f37f1ac5 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanRq.java +++ b/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanRq.java @@ -1,5 +1,6 @@ package com.palnet.biz.api.bas.dos.model; +import com.palnet.biz.jpa.entity.type.ReviewedType; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Builder; @@ -37,4 +38,7 @@ public class BasDosPlanRq { @Schema(description = "상세주소" , example = "만수동", implementation = String.class) private String address; + + @Schema(description = "검토결과" , example = "W", implementation = ReviewedType.class) + private ReviewedType reviewedType; } 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 bf086018..6838ba0b 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 @@ -96,7 +96,7 @@ public class BasDosService { List planSnoList = planBasList.stream().map(DosFltPlanBas::getPlanSno).collect(Collectors.toList()); - List areaList = dosFltPlanQueryRepository.findByPlanSnoInAndAddrOrderByZoneNoAsc(planSnoList, rq); + List areaList = dosFltPlanQueryRepository.findByPlanSnoInAndSearchOrderByZoneNoAsc(planSnoList, rq); List resultList = dosFltPlanResultRepository.findByPlanSnoIn(planSnoList); List rs = new ArrayList<>(); @@ -146,6 +146,13 @@ public class BasDosService { continue; } + // ReviewedType이 UNNECESSARY(불필요)인 경우 ApprovalCd가 UNTARGETED_AREA(비대상)인 경우만 조회 + if(rq.getReviewedType() == ReviewedType.UNNECESSARY){ + if(approvalCd != ApprovalCd.UNTARGETED_AREA) { + continue; + } + } + // 사용자 부서에 따른 필터 관제과(DF0002), 운항과(DF0002-1) String cptAuthCode = jwtTokenUtil.getCptAuthCodeByToken(); if (cptAuthCode != null) { diff --git a/pav-server/src/main/java/com/palnet/biz/config/WebMvcConfig.java b/pav-server/src/main/java/com/palnet/biz/config/WebMvcConfig.java index 31759379..32404c50 100644 --- a/pav-server/src/main/java/com/palnet/biz/config/WebMvcConfig.java +++ b/pav-server/src/main/java/com/palnet/biz/config/WebMvcConfig.java @@ -1,6 +1,7 @@ package com.palnet.biz.config; import com.palnet.biz.config.convert.CodeToFltPurposeBinding; +import com.palnet.biz.config.convert.CodeToReviewdTypeConverter; import com.palnet.biz.config.convert.StringToInstantBinding; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -93,6 +94,7 @@ public class WebMvcConfig implements WebMvcConfigurer{ registry.addConverter(new StringToInstantBinding()); registry.addConverter(new CodeToFltPurposeBinding()); + registry.addConverter(new CodeToReviewdTypeConverter()); /* ISO 타입. registrar.setUseIsoFormat(true); diff --git a/pav-server/src/main/java/com/palnet/biz/config/convert/CodeToFltPurposeBinding.java b/pav-server/src/main/java/com/palnet/biz/config/convert/CodeToFltPurposeBinding.java index 3bca7ba3..46b109c8 100644 --- a/pav-server/src/main/java/com/palnet/biz/config/convert/CodeToFltPurposeBinding.java +++ b/pav-server/src/main/java/com/palnet/biz/config/convert/CodeToFltPurposeBinding.java @@ -1,10 +1,8 @@ package com.palnet.biz.config.convert; import com.palnet.biz.jpa.entity.type.FltPurpose; -import lombok.extern.slf4j.Slf4j; import org.springframework.core.convert.converter.Converter; -@Slf4j public class CodeToFltPurposeBinding implements Converter { @Override diff --git a/pav-server/src/main/java/com/palnet/biz/config/convert/CodeToReviewdTypeConverter.java b/pav-server/src/main/java/com/palnet/biz/config/convert/CodeToReviewdTypeConverter.java new file mode 100644 index 00000000..d1f6fabd --- /dev/null +++ b/pav-server/src/main/java/com/palnet/biz/config/convert/CodeToReviewdTypeConverter.java @@ -0,0 +1,11 @@ +package com.palnet.biz.config.convert; + +import com.palnet.biz.jpa.entity.type.ReviewedType; +import org.springframework.core.convert.converter.Converter; + +public class CodeToReviewdTypeConverter implements Converter { + @Override + public ReviewedType convert(String s) { + return ReviewedType.fromCode(s); + } +} 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 a26842f4..919675d5 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 @@ -28,66 +28,71 @@ public class DosFltPlanQueryRepository { short idx = 0; StringBuilder districtAddr = new StringBuilder(); - if(rq.getCtprvn() != null && !rq.getCtprvn().isBlank()) { + if (rq.getCtprvn() != null && !rq.getCtprvn().isBlank()) { districtAddr.append(rq.getCtprvn()); - idx ++; + idx++; } - if(rq.getSig() != null && !rq.getSig().isBlank()) { - if(idx > 0) districtAddr.append(" "); + if (rq.getSig() != null && !rq.getSig().isBlank()) { + if (idx > 0) districtAddr.append(" "); districtAddr.append(rq.getSig()); } BooleanBuilder builder = new BooleanBuilder(); - if(rq.getSearchStDt() != null) { + if (rq.getSearchStDt() != null) { builder.and(bas.applyDt.goe(rq.getSearchStDt())); } - if(rq.getSearchEndDt() != null) { + if (rq.getSearchEndDt() != null) { builder.and(bas.applyDt.loe(rq.getSearchEndDt())); } - if(StringUtils.hasText(rq.getApplyNo())) { + if (StringUtils.hasText(rq.getApplyNo())) { builder.and(bas.applyNo.eq(rq.getApplyNo())); } - if(!districtAddr.toString().isBlank()){ + if (!districtAddr.toString().isBlank()) { 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() + "%")); } return query.selectFrom(bas) .leftJoin(qDosFltPlanArea) - .on(bas.planSno.eq(qDosFltPlanArea.planSno)) + .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){ + public List findByPlanSnoInAndSearchOrderByZoneNoAsc(List planSno, BasDosPlanRq rq) { QDosFltPlanArea qDosFltPlanArea = QDosFltPlanArea.dosFltPlanArea; short idx = 0; StringBuilder districtAddr = new StringBuilder(); - if(rq.getCtprvn() != null && !rq.getCtprvn().isBlank()) { + if (rq.getCtprvn() != null && !rq.getCtprvn().isBlank()) { districtAddr.append(rq.getCtprvn()); - idx ++; + idx++; } - if(rq.getSig() != null && !rq.getSig().isBlank()) { - if(idx > 0) districtAddr.append(" "); + 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.toString().isBlank()){ + if (!districtAddr.toString().isBlank()) { 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() + "%")); } + // 검토 결과 - W일 경우 W, null 모두 조회(null == W) + if (rq.getReviewedType() != null) { + builder.and(qDosFltPlanArea.reviewedType.eq(rq.getReviewedType()).or(qDosFltPlanArea.reviewedType.isNull())); + } + return query .select(qDosFltPlanArea) .from(qDosFltPlanArea)