|
|
|
@ -1974,4 +1974,237 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 비행통계 카테고리 거리 |
|
|
|
|
* @param date |
|
|
|
|
* @param formatParam |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public List<FlightStaticStcsModel> fltDistanceStcs(String date, String[] formatParam){ |
|
|
|
|
|
|
|
|
|
QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
|
|
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<FlightStaticStcsModel> result = query |
|
|
|
|
.select( |
|
|
|
|
Projections.bean( |
|
|
|
|
FlightStaticStcsModel.class , |
|
|
|
|
formattedDate2.as("name"), |
|
|
|
|
bas.ttlDstnc.sum().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; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 비행통계 카테고리 비행횟수 |
|
|
|
|
* @param date |
|
|
|
|
* @param formatParam |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public List<FlightStaticStcsModel> fltCountStcs(String date, String[] formatParam){ |
|
|
|
|
|
|
|
|
|
QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
|
|
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<FlightStaticStcsModel> result = query |
|
|
|
|
.select( |
|
|
|
|
Projections.bean( |
|
|
|
|
FlightStaticStcsModel.class , |
|
|
|
|
formattedDate2.as("name"), |
|
|
|
|
bas.cntrlId.count().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 date |
|
|
|
|
* @param formatParam |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public List<FlightStaticStcsModel> fltTopTimeStcs(String date, String[] formatParam){ |
|
|
|
|
QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
|
, bas.createDt |
|
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
|
|
|
|
|
|
List<FlightStaticStcsModel> result = query |
|
|
|
|
.select( |
|
|
|
|
Projections.bean(FlightStaticStcsModel.class, |
|
|
|
|
bas.idntfNum.as("name"), // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
|
Expressions.stringTemplate( |
|
|
|
|
"CONCAT(SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF({0}, {1})))))", |
|
|
|
|
bas.cntrlEndDt, |
|
|
|
|
bas.cntrlStDt |
|
|
|
|
).as("value") // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
|
) |
|
|
|
|
) |
|
|
|
|
.from(bas) |
|
|
|
|
.where(builder) |
|
|
|
|
.groupBy(bas.idntfNum) |
|
|
|
|
.orderBy(Expressions.stringTemplate( |
|
|
|
|
"SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF({0}, {1}))))", |
|
|
|
|
bas.cntrlEndDt, |
|
|
|
|
bas.cntrlStDt |
|
|
|
|
).desc()) |
|
|
|
|
.limit(5) |
|
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
if(result.size() <= 0){ |
|
|
|
|
FlightStaticStcsModel node = new FlightStaticStcsModel(); |
|
|
|
|
|
|
|
|
|
node.setName(null); |
|
|
|
|
node.setValue("NoData"); |
|
|
|
|
|
|
|
|
|
result.add(node); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 비행 거리, 날짜데이터에 맞춘 TOP5 |
|
|
|
|
* @param date |
|
|
|
|
* @param formatParam |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public List<FlightStaticStcsModel> fltTopDistanceStcs(String date, String[] formatParam){ |
|
|
|
|
QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
|
, bas.createDt |
|
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
|
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.ttlDstnc.sum().as("value") |
|
|
|
|
) |
|
|
|
|
) |
|
|
|
|
.from(bas) |
|
|
|
|
.where(builder) |
|
|
|
|
.groupBy(bas.idntfNum) |
|
|
|
|
.orderBy(bas.ttlDstnc.sum().desc()) |
|
|
|
|
.limit(5) |
|
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
if(result.size() <= 0){ |
|
|
|
|
FlightStaticStcsModel node = new FlightStaticStcsModel(); |
|
|
|
|
|
|
|
|
|
node.setName(null); |
|
|
|
|
node.setValue("NoData"); |
|
|
|
|
|
|
|
|
|
result.add(node); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 비행 횟수, 날짜데이터에 맞춘 TOP5 |
|
|
|
|
* @param date |
|
|
|
|
* @param formatParam |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public List<FlightStaticStcsModel> fltTopCountStcs(String date, String[] formatParam){ |
|
|
|
|
QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
|
, bas.createDt |
|
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
|
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.count().as("value") |
|
|
|
|
) |
|
|
|
|
) |
|
|
|
|
.from(bas) |
|
|
|
|
.where(builder) |
|
|
|
|
.groupBy(bas.idntfNum) |
|
|
|
|
.orderBy(bas.cntrlId.count().desc()) |
|
|
|
|
.limit(5) |
|
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
if(result.size() <= 0){ |
|
|
|
|
FlightStaticStcsModel node = new FlightStaticStcsModel(); |
|
|
|
|
|
|
|
|
|
node.setName(null); |
|
|
|
|
node.setValue("NoData"); |
|
|
|
|
|
|
|
|
|
result.add(node); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|