|
|
|
@ -1830,23 +1830,29 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){
|
|
|
|
|
* DB 데이터내에 가장 많은 비행시간을 가진 기체, 비행시간 SELECT |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public FlightStcsValueModel getFlightTimeStcs(){ |
|
|
|
|
public FlightStcsValueModel getFlightTimeStcs(boolean authCheck, String groupId){ |
|
|
|
|
FlightStcsValueModel result = new FlightStcsValueModel(); |
|
|
|
|
|
|
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
|
builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
List<FlightStcsValueModel> queryResult = query |
|
|
|
|
.select( |
|
|
|
|
Projections.bean(FlightStcsValueModel.class, |
|
|
|
|
qCtrCntrlBas.idntfNum.as("name"), // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
|
Expressions.stringTemplate( |
|
|
|
|
"CONCAT(SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF({0}, {1})))))", |
|
|
|
|
qCtrCntrlBas.cntrlEndDt, |
|
|
|
|
qCtrCntrlBas.cntrlStDt |
|
|
|
|
).as("value") // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
|
qCtrCntrlBas.idntfNum.as("name") // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
|
) |
|
|
|
|
) |
|
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
.where(builder) |
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
|
.groupBy(qCtrCntrlBas.idntfNum) |
|
|
|
|
.orderBy(Expressions.stringTemplate( |
|
|
|
|
"SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF({0}, {1}))))", |
|
|
|
@ -1947,25 +1953,34 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){
|
|
|
|
|
* 가장 많이 이동한 기체 |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public FlightStcsValueModel getFlightDistanceStcs(){ |
|
|
|
|
public FlightStcsValueModel getFlightDistanceStcs(boolean authCheck, String groupId){ |
|
|
|
|
FlightStcsValueModel result = new FlightStcsValueModel(); |
|
|
|
|
|
|
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
|
builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<FlightStcsValueModel> queryResult = query |
|
|
|
|
.select( |
|
|
|
|
Projections.bean(FlightStcsValueModel.class, |
|
|
|
|
qCtrCntrlBas.idntfNum.as("name"), // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
|
qCtrCntrlBas.ttlDstnc.sum().as("value") |
|
|
|
|
qCtrCntrlBas.idntfNum.as("name") // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
|
) |
|
|
|
|
) |
|
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
.where(builder) |
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
|
.groupBy(qCtrCntrlBas.idntfNum) |
|
|
|
|
.orderBy(qCtrCntrlBas.ttlDstnc.sum().desc()) |
|
|
|
|
.limit(1) |
|
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
log.warn("size => {}", queryResult.size()); |
|
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
if(queryResult.size() > 0){ |
|
|
|
|
result = queryResult.get(0); |
|
|
|
@ -2043,10 +2058,16 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){
|
|
|
|
|
* 가장 많이 비행한 기체 |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public FlightStcsValueModel getFlightCountStcs(){ |
|
|
|
|
public FlightStcsValueModel getFlightCountStcs(boolean authCheck, String groupId){ |
|
|
|
|
FlightStcsValueModel result = new FlightStcsValueModel(); |
|
|
|
|
|
|
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
|
builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
List<FlightStcsValueModel> queryResult = query |
|
|
|
|
.select( |
|
|
|
@ -2056,6 +2077,11 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){
|
|
|
|
|
) |
|
|
|
|
) |
|
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
.where(builder) |
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
|
.groupBy(qCtrCntrlBas.idntfNum) |
|
|
|
|
.orderBy(qCtrCntrlBas.cntrlId.count().desc()) |
|
|
|
|
.limit(1) |
|
|
|
|