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 f833185f..1462ddd2 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 @@ -398,8 +398,8 @@ public class MainDashController { if(date == null) date = ""; formatParam = service.paramCheck(date,type); - List graphData = service.fltStatics(cate, date, formatParam); - List topData = service.fltTopStatics(cate, date, formatParam); + List graphData = service.warnStatics(cate, date, formatParam); + List topData = service.warnTopStatics(cate, date, formatParam); result.setGraphData(graphData); result.setTopData(topData); 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 4a546d66..7f70023b 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 @@ -242,7 +242,7 @@ public class MainDashService { } /** - * 김포공항, 비정상상황 통계 + * 비행통계 * @param idntfNum * @param date * @param formatParam @@ -270,6 +270,13 @@ public class MainDashService { return resultList; } + /** + * 비행통계 카테고리 별 Top 5 데이터 가져오기 + * @param cate + * @param date + * @param formatParam + * @return + */ public List fltTopStatics(String cate, String date, String[] formatParam){ List resultList = null; @@ -311,5 +318,32 @@ public class MainDashService { return result; } + /** + * 비정상상황 그래프 데이터 + * @param cate + * @param date + * @param formatParam + * @return + */ + public List warnStatics(String cate, String date, String[] formatParam){ + + List resultList = query.warnStcs(cate, date, formatParam); + return resultList; + } + + /** + * 비정상상황 카테고리별 Top5 데이터 + * @param cate + * @param date + * @param formatParam + * @return + */ + public List warnTopStatics(String cate, String date, String[] formatParam){ + + List resultList = query.warnTopStcs(cate, date, formatParam); + + return resultList; + } + } 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 45424c99..78485f38 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 @@ -2242,5 +2242,94 @@ public List listCntrlHstry(String id){ } + /** + * 비정상상황 카테고리 경로이탈 + * @param date + * @param formatParam + * @return + */ + public List warnStcs(String cate, 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(); + builder.and(bas.warnType.eq(cate)); + if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); + + List result = query + .select( + Projections.bean( + FlightStaticStcsModel.class , + formattedDate2.as("name"), + bas.cntrlId.countDistinct().as("value") + ) + ) + .from(bas) + .where(builder) + .groupBy(formattedDate2) + .fetch(); + + if(result.size() <= 0){ + FlightStaticStcsModel node = new FlightStaticStcsModel(); + + node.setName(null); + node.setValue("NoData"); + + result.add(node); + } + + return result; + } + + /** + * 비정상상황 카테고리 기체별 Top5 통계 + * @param cate + * @param date + * @param formatParam + * @return + */ + public List warnTopStcs(String cate, String date, String[] formatParam){ + + QCtrCntrlWarnLog bas = QCtrCntrlWarnLog.ctrCntrlWarnLog; + + StringTemplate formattedDate = Expressions.stringTemplate( + "DATE_FORMAT({0}, {1})" + , bas.createDt + , ConstantImpl.create(formatParam[0])); + + BooleanBuilder builder = new BooleanBuilder(); + builder.and(bas.warnType.eq(cate)); + if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); + + List result = query + .select( + Projections.bean(FlightStaticStcsModel.class, + bas.idntfNum.as("name"), // 결과 객체의 프로퍼티 이름을 지정 + bas.cntrlId.countDistinct().as("value") // 결과 객체의 프로퍼티 이름을 지정 + ) + ) + .from(bas) + .where(builder) + .groupBy(bas.idntfNum) + .orderBy(bas.cntrlId.countDistinct().desc()) + .limit(5) + .fetch(); + + + + return result; + + } + }