|
|
|
@ -2242,5 +2242,94 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 비정상상황 카테고리 경로이탈 |
|
|
|
|
* @param date |
|
|
|
|
* @param formatParam |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public List<FlightStaticStcsModel> 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<FlightStaticStcsModel> 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<FlightStaticStcsModel> 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<FlightStaticStcsModel> 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; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|