From d5ce02101a713da27d5230fe585ee9d384bb2240 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dhji=28=EC=A7=80=EB=8C=80=ED=95=9C=29?= Date: Wed, 18 Oct 2023 19:05:14 +0900 Subject: [PATCH] =?UTF-8?q?=EC=8A=B9=EC=9D=B8=EB=AA=A9=EB=A1=9D=20?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=95=20=EC=97=86=EB=8A=94=20api=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BasLaancAprvController.java | 27 ++++ .../api/bas/laanc/model/BasLaancAprvRs.java | 1 - .../laanc/service/BasLaancAprvService.java | 8 ++ .../flt/FltPlanQueryRepository.java | 122 ++++++++++++++++++ 4 files changed, 157 insertions(+), 1 deletion(-) diff --git a/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/controller/BasLaancAprvController.java b/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/controller/BasLaancAprvController.java index a0bd47f0..351abc77 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/controller/BasLaancAprvController.java +++ b/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/controller/BasLaancAprvController.java @@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -78,6 +79,32 @@ public class BasLaancAprvController { return ResponseEntity.ok().body(new SuccessResponse<>(rs)); } + @ApiOperation(value = "LAANC 승인 목록") + @Tag(name = "LAANC 승인", description = "LAANC 승인 관련 API") + @GetMapping("/list2") + public ResponseEntity getLaancAprvList2(BasLaancAprvListRq rq) { + List rs = null; + try { + log.debug(">>> rq : {}", rq); + rs = basLaancAprvService.getLaancAprvList2(rq); + + } catch (CustomException e) { + Map resultMap = new HashMap<>(); + log.error("IGNORE : ", e); + resultMap.put("result", false); + resultMap.put("errorCode", e.getErrorCode()); + resultMap.put("errorMessage", e.getMessage()); + return ResponseEntity.ok().body(new SuccessResponse<>(resultMap)); + } catch (Exception e) { + log.error("IGNORE : ", e); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) + .body(new ErrorResponse("Server Error", "-1")); + + } + + return ResponseEntity.ok().body(new SuccessResponse<>(rs)); + } + /** * laanc 승인 상세 * @param planSno diff --git a/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/model/BasLaancAprvRs.java b/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/model/BasLaancAprvRs.java index 86bd07ac..e4505f4f 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/model/BasLaancAprvRs.java +++ b/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/model/BasLaancAprvRs.java @@ -86,7 +86,6 @@ public class BasLaancAprvRs { public String getArcrftWght() { if (arcrftList == null || arcrftList.isEmpty()) return null; List arcrftWghtCdList = arcrftList.stream().map(BasLaancArcrftModel::getArcrftWghtCd).distinct().filter(Objects::nonNull).collect(Collectors.toList()); - System.out.println(arcrftWghtCdList); String ArcrftWghtType = arcrftWghtCdList.stream().map(ArcrftWghtCd::getValue).collect(Collectors.joining(",")); return ArcrftWghtType; } diff --git a/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/service/BasLaancAprvService.java b/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/service/BasLaancAprvService.java index 95d5a62b..603e2fad 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/service/BasLaancAprvService.java +++ b/pav-server/src/main/java/com/palnet/biz/api/bas/laanc/service/BasLaancAprvService.java @@ -14,6 +14,8 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; +import java.util.List; + /** * packageName : com.palnet.biz.api.bas.laanc.service * fileName : BasLaancAprvService @@ -44,6 +46,12 @@ public class BasLaancAprvService { Page rs = PageUtils.convert(result, BasLaancAprvMapper.MAPPER.toRsList(result.getContent())); return rs; } + public List getLaancAprvList2(BasLaancAprvListRq rq) { + LaancAprvSearchDto searchDto = BasLaancAprvMapper.MAPPER.toDto(rq); + List result = fltPlanQueryRepository.findAllAprvListBySearch2(searchDto); + List rs = BasLaancAprvMapper.MAPPER.toRsList(result); + return rs; + } /** * laanc 승인 상세 diff --git a/pav-server/src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanQueryRepository.java b/pav-server/src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanQueryRepository.java index a7df972d..a5f90381 100644 --- a/pav-server/src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanQueryRepository.java +++ b/pav-server/src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanQueryRepository.java @@ -850,6 +850,128 @@ public class FltPlanQueryRepository { return laancPlanDtos; } + + public List findAllAprvListBySearch2(LaancAprvSearchDto search) { + + QFltPlanBas bas = QFltPlanBas.fltPlanBas; + QFltPlanArea area = QFltPlanArea.fltPlanArea; + QFltPlanArcrft arcrft = QFltPlanArcrft.fltPlanArcrft; + + // serach + BooleanBuilder builder = new BooleanBuilder(); + if(search != null){ + if(StringUtils.hasText(search.getMemberName())){ + builder.and(bas.memberName.contains(search.getMemberName())); + } + if(search.getCreateDate() != null){ + Instant createStDate = InstantUtils.toDate(search.getCreateDate()); + Instant createEndDate = createStDate.plus(Duration.ofDays(1)); + builder.and(bas.createDt.goe(createStDate).and(bas.createDt.lt(createEndDate))); + } + if(search.getCreateStDate() != null) { + Instant createStDate = InstantUtils.toDate(search.getCreateStDate()); + builder.and(bas.createDt.goe(createStDate)); + } + if(search.getCreateEndDate() != null){ + Instant createEndDate = InstantUtils.toDate(search.getCreateEndDate()).plus(Duration.ofDays(1)); + builder.and(bas.createDt.lt(createEndDate)); + } + if(search.getSchFltStDate() != null){ + Instant schFltStDate = InstantUtils.toDate(search.getSchFltStDate()); + builder.and(bas.schFltStDt.goe(schFltStDate)); + } + if(search.getSchFltEndDate() != null){ + Instant schFltEndDate = InstantUtils.toDate(search.getSchFltEndDate()).plus(Duration.ofDays(1)); + builder.and(bas.schFltEndDt.lt(schFltEndDate)); + } + } + + + JPAQuery jpaQuery = query.from(bas) + .leftJoin(area) + .on(bas.planSno.eq(area.planSno)) + .leftJoin(arcrft) + .on(bas.planSno.eq(arcrft.planSno)) + .where(builder); + + List list = jpaQuery.transform( + GroupBy.groupBy(bas.planSno) + .list(Projections.bean( + LaancPlanDto.class, + bas.planSno, + bas.groupId, + bas.cstmrSno, + bas.memberName, + bas.email, + bas.hpno, + bas.clncd, + bas.addr, + bas.addrDtlCn, + bas.zip, + bas.schFltStDt, + bas.schFltEndDt, + bas.fltPurpose, + bas.aprvlYn, + bas.delYn, + bas.createUserId, + bas.createDt, + bas.updateUserId, + bas.updateDt, + bas.corpRegYn, + bas.serviceType, + GroupBy.list(Projections.bean( + LaancPlanAreaDto.class, + area.planAreaSno, + area.planSno, + area.areaType, + area.fltMethod, + area.fltAreaAddr, + area.bufferZone, + area.fltElev, + area.createUserId, + area.createDt, + area.updateUserId, + area.updateDt, + area.fltMothoeRm + ).skipNulls()).as("areaList"), + GroupBy.list(Projections.bean( + LaancPlanArcrftDto.class, + arcrft.planArcrftSno, + arcrft.planSno, + arcrft.arcrftSno, + arcrft.idntfNum, + arcrft.groupNm, + arcrft.prdctNum, + arcrft.arcrftTypeCd, + arcrft.arcrftModelNm, + arcrft.prdctCmpnNm, + arcrft.prdctDate, + arcrft.arcrftLngth, + arcrft.arcrftWdth, + arcrft.arcrftHght, + arcrft.arcrftWght, + arcrft.arcrftWghtCd, + arcrft.wghtTypeCd, + arcrft.imageUrl, + arcrft.takeoffWght, + arcrft.useYn, + arcrft.cameraYn, + arcrft.insrncYn, + arcrft.ownerNm, + arcrft.createUserId, + arcrft.createDt, + arcrft.updateUserId, + arcrft.updateDt, + arcrft.acrftInsuranceYn, + arcrft.insuranceExperiod, + arcrft.corporationNm + ).skipNulls()).as("arcrftList") + ).skipNulls()) + ); + + return list; + } + // laanc 승인 상세 public LaancPlanDto findAprvById(Integer planSno) { QFltPlanBas bas = QFltPlanBas.fltPlanBas;