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 1c1624ff..2ed78ab8 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 @@ -1880,7 +1880,7 @@ public List listCntrlHstry(String id){ } return result; - } + } private String getFltTimeDay(String idntfNum){ QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; @@ -2466,6 +2466,14 @@ public List listCntrlHstry(String id){ if(queryResult.size() > 0){ result = queryResult.get(0); + + String idntfNum = result.getName(); + + result.setYear(getWarnYear(idntfNum, cate)); + result.setMonth(getWarnMonth(idntfNum, cate)); + result.setDay(getWarnDay(idntfNum, cate)); + + } else { FlightStaticStcsModel node = new FlightStaticStcsModel(); node.setName("-"); @@ -2478,6 +2486,67 @@ public List listCntrlHstry(String id){ } + private String getWarnDay(String idntfNum, String cate){ + QCtrCntrlWarnLog bas = QCtrCntrlWarnLog.ctrCntrlWarnLog; + + BooleanBuilder builder = new BooleanBuilder(); + builder.and(bas.idntfNum.eq(idntfNum)); + builder.and(bas.createDt.eq(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); + builder.and(bas.warnType.eq(cate)); + + return query + .select( + Projections.bean(String.class, + bas.cntrlId.countDistinct() // 결과 객체의 프로퍼티 이름을 지정 + ) + ) + .from(bas) + .where(builder) + .fetchOne(); + } + + private String getWarnMonth(String idntfNum, String cate){ + QCtrCntrlWarnLog bas = QCtrCntrlWarnLog.ctrCntrlWarnLog; + + BooleanBuilder builder = new BooleanBuilder(); + builder.and(bas.idntfNum.eq(idntfNum)); + builder.and(bas.warnType.eq(cate)); + builder.and(bas.createDt.goe(LocalDate.now().minusMonths(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); + builder.and(bas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); + + return query + .select( + Projections.bean(String.class, + bas.cntrlId.countDistinct() // 결과 객체의 프로퍼티 이름을 지정 + ) + ) + .from(bas) + .where(builder) + .fetchOne(); + } + + private String getWarnYear(String idntfNum, String cate){ + QCtrCntrlWarnLog bas = QCtrCntrlWarnLog.ctrCntrlWarnLog; + + BooleanBuilder builder = new BooleanBuilder(); + builder.and(bas.idntfNum.eq(idntfNum)); + builder.and(bas.warnType.eq(cate)); + builder.and(bas.createDt.goe(LocalDate.now().minusYears(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); + builder.and(bas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); + + return query + .select( + Projections.bean(String.class, + bas.cntrlId.countDistinct() // 결과 객체의 프로퍼티 이름을 지정 + ) + ) + .from(bas) + .where(builder) + .fetchOne(); + } + + + /** * 비정상상황 카테고리 경로이탈 * @param date