From 87377baa1cf145c1af8ab64c09e4125229187101 Mon Sep 17 00:00:00 2001 From: lkd9125 Date: Fri, 22 Sep 2023 16:36:30 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B9=84=EC=A0=95=EC=83=81=EC=83=81=ED=99=A9?= =?UTF-8?q?=20=ED=86=B5=EA=B3=84=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dash/controller/MainDashController.java | 30 +++++++++++ .../main/dash/service/MainDashService.java | 16 +++++- .../ctr/CtrCntrlQueryRepository.java | 52 +++++++++++++++++-- 3 files changed, 94 insertions(+), 4 deletions(-) diff --git a/pav-server/src/main/java/com/palnet/biz/api/main/dash/controller/MainDashController.java b/pav-server/src/main/java/com/palnet/biz/api/main/dash/controller/MainDashController.java index fbc4636..c6a8500 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/main/dash/controller/MainDashController.java +++ b/pav-server/src/main/java/com/palnet/biz/api/main/dash/controller/MainDashController.java @@ -251,5 +251,35 @@ public class MainDashController { return ResponseEntity.ok().body(new SuccessResponse>(result)); } + + @GetMapping("/stcs/warning-flight/date/{type}") + @ApiOperation(value = "김포공항, 비정상상황 비행 통계") + @Tag(name = "메인화면 컨트롤러", description = "메인화면 관련 API") + @ApiImplicitParam(name = "date",value = "날짜", dataTypeClass = String.class) + public ResponseEntity warningFlightStatistics(String date, @PathVariable String type){ + + String[] formatParam = null; + + try { + if(date == null) date = ""; + formatParam = service.paramCheck(date,type); + } catch (NumberFormatException e) { + return ResponseEntity.status(HttpStatus.OK) + .body(new ErrorResponse(RSErrorCode.ER_PARAM)); + } + + List result = null; + + try { + result = service.mainStcsWarningFlight(date,formatParam); + } 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>(result)); + } } diff --git a/pav-server/src/main/java/com/palnet/biz/api/main/dash/service/MainDashService.java b/pav-server/src/main/java/com/palnet/biz/api/main/dash/service/MainDashService.java index d3c2581..72235f7 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/main/dash/service/MainDashService.java +++ b/pav-server/src/main/java/com/palnet/biz/api/main/dash/service/MainDashService.java @@ -122,7 +122,7 @@ public class MainDashService { } /** - * 드론별 비행실적 리스트 + * 김포공항, 드론별 비행실적 통계 * @param idntfNum * @param date * @param formatParam @@ -135,6 +135,20 @@ public class MainDashService { return resultList; } + /** + * 김포공항, 비정상상황 통계 + * @param idntfNum + * @param date + * @param formatParam + * @return + */ + public List mainStcsWarningFlight(String date, String[] formatParam){ + + List resultList = query.mainStcsWarningFlight(date, formatParam); + + return resultList; + } + /** * 파라미터 체크 * 1. 연단위 검색 -> Parameter Null일 경우 diff --git a/pav-server/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java b/pav-server/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java index c8a9787..8d3bb98 100644 --- a/pav-server/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java +++ b/pav-server/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java @@ -38,6 +38,7 @@ import com.palnet.biz.jpa.entity.QComIdntfBas; import com.palnet.biz.jpa.entity.QCtrCntrlBas; import com.palnet.biz.jpa.entity.QCtrCntrlHstry; import com.palnet.biz.jpa.entity.QCtrCntrlHstryArea; +import com.palnet.biz.jpa.entity.QCtrCntrlWarnLog; import com.palnet.biz.jpa.entity.QFltPlanArea; import com.palnet.biz.jpa.entity.QFltPlanBas; import com.palnet.biz.jpa.entity.QFltPlanCtrCntrlRel; @@ -1710,8 +1711,6 @@ public List listCntrlHstry(String id){ if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); if(idntfNum != null) builder.and(bas.idntfNum.eq(idntfNum)); - log.info("builder -> {}", builder); - List result = query .select( Projections.bean( @@ -1722,7 +1721,7 @@ public List listCntrlHstry(String id){ ) .from(bas) .where(builder) - .groupBy(formattedDate2) + .groupBy(formattedDate2) .fetch(); if(result.size() <= 0){ @@ -1736,6 +1735,53 @@ public List listCntrlHstry(String id){ return result; } + + /** + * 김포공항, 비정상상황 통계 + * @param date + * @param formatParam + * @return + */ + public List mainStcsWarningFlight(String date, String[] formatParam){ + // QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas; + QCtrCntrlWarnLog bas = QCtrCntrlWarnLog.ctrCntrlWarnLog; + + StringTemplate formattedDate = Expressions.stringTemplate( + "DATE_FORMAT({0}, {1})" + , bas.createDt + , ConstantImpl.create(formatParam[0])); + + StringTemplate formattedDate2 = Expressions.stringTemplate( + "DATE_FORMAT({0}, {1})" + , bas.createDt + , ConstantImpl.create(formatParam[1])); + + BooleanBuilder builder = new BooleanBuilder(); + if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); + + List result = query + .select( + Projections.bean( + MainDashStcsModel.class , + formattedDate2.as("typeCd"), + bas.cntrlId.countDistinct().as("count") + ) + ) + .from(bas) + .where(builder) + .groupBy(formattedDate2) + .fetch(); + + if(result.size() <= 0){ + MainDashStcsModel node = new MainDashStcsModel(); + node.setCount(0); + node.setTypeCd("NoData"); + + result.add(node); + } + + return result; + } public List getCompleteInfo(String cntrlId){