|
|
|
@ -2466,6 +2466,14 @@ public List<AnlsHstryDetailModel> 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<AnlsHstryDetailModel> 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 |
|
|
|
|