|
|
@ -71,6 +71,7 @@ public class CtrCntrlQueryRepository{ |
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
@Autowired |
|
|
|
private JwtTokenUtil jwtTokenUtil; |
|
|
|
private JwtTokenUtil jwtTokenUtil; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 비행 현황 데이터 조회 |
|
|
|
* 비행 현황 데이터 조회 |
|
|
|
* @param rq |
|
|
|
* @param rq |
|
|
@ -1830,23 +1831,29 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
* DB 데이터내에 가장 많은 비행시간을 가진 기체, 비행시간 SELECT |
|
|
|
* DB 데이터내에 가장 많은 비행시간을 가진 기체, 비행시간 SELECT |
|
|
|
* @return |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public FlightStcsValueModel getFlightTimeStcs(){ |
|
|
|
public FlightStcsValueModel getFlightTimeStcs(boolean authCheck, String groupId){ |
|
|
|
FlightStcsValueModel result = new FlightStcsValueModel(); |
|
|
|
FlightStcsValueModel result = new FlightStcsValueModel(); |
|
|
|
|
|
|
|
|
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
|
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
List<FlightStcsValueModel> queryResult = query |
|
|
|
List<FlightStcsValueModel> queryResult = query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
Projections.bean(FlightStcsValueModel.class, |
|
|
|
Projections.bean(FlightStcsValueModel.class, |
|
|
|
qCtrCntrlBas.idntfNum.as("name"), // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
qCtrCntrlBas.idntfNum.as("name") // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
Expressions.stringTemplate( |
|
|
|
|
|
|
|
"CONCAT(SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF({0}, {1})))))", |
|
|
|
|
|
|
|
qCtrCntrlBas.cntrlEndDt, |
|
|
|
|
|
|
|
qCtrCntrlBas.cntrlStDt |
|
|
|
|
|
|
|
).as("value") // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
|
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
|
|
|
.where(builder) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.groupBy(qCtrCntrlBas.idntfNum) |
|
|
|
.groupBy(qCtrCntrlBas.idntfNum) |
|
|
|
.orderBy(Expressions.stringTemplate( |
|
|
|
.orderBy(Expressions.stringTemplate( |
|
|
|
"SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF({0}, {1}))))", |
|
|
|
"SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF({0}, {1}))))", |
|
|
@ -1861,11 +1868,9 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
|
|
|
|
|
|
|
|
String idntfNum = result.getName(); |
|
|
|
String idntfNum = result.getName(); |
|
|
|
|
|
|
|
|
|
|
|
result.setDay(getFltTimeDay(idntfNum)); |
|
|
|
result.setDay(getFltTimeDay(idntfNum, authCheck, groupId)); |
|
|
|
result.setYear(getFltTimeYear(idntfNum)); |
|
|
|
result.setYear(getFltTimeYear(idntfNum, authCheck, groupId)); |
|
|
|
result.setMonth(getFltTimeMonth(idntfNum)); |
|
|
|
result.setMonth(getFltTimeMonth(idntfNum, authCheck, groupId)); |
|
|
|
|
|
|
|
|
|
|
|
log.warn("a => {}", result); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
} else { |
|
|
|
FlightStcsValueModel node = new FlightStcsValueModel(); |
|
|
|
FlightStcsValueModel node = new FlightStcsValueModel(); |
|
|
@ -1881,12 +1886,16 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
return result; |
|
|
|
return result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Long getFltTimeDay(String idntfNum){ |
|
|
|
private Long getFltTimeDay(String idntfNum, boolean authCheck, String groupId){ |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
builder.and(qCtrCntrlBas.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qCtrCntrlBas.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qCtrCntrlBas.createDt.eq(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.eq(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
|
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
return Long.parseLong(query |
|
|
|
return Long.parseLong(query |
|
|
|
.select( |
|
|
|
.select( |
|
|
@ -1897,17 +1906,25 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
) // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) |
|
|
|
) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.fetchOne()); |
|
|
|
.fetchOne()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Long getFltTimeMonth(String idntfNum){ |
|
|
|
private Long getFltTimeMonth(String idntfNum, boolean authCheck, String groupId){ |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
builder.and(qCtrCntrlBas.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qCtrCntrlBas.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qCtrCntrlBas.createDt.goe(LocalDate.now().minusMonths(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.goe(LocalDate.now().minusMonths(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
|
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
return Long.parseLong(query |
|
|
|
return Long.parseLong(query |
|
|
|
.select( |
|
|
|
.select( |
|
|
@ -1918,17 +1935,25 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
) // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) |
|
|
|
) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.fetchOne()); |
|
|
|
.fetchOne()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Long getFltTimeYear(String idntfNum){ |
|
|
|
private Long getFltTimeYear(String idntfNum, boolean authCheck, String groupId){ |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
builder.and(qCtrCntrlBas.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qCtrCntrlBas.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qCtrCntrlBas.createDt.goe(LocalDate.now().minusYears(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.goe(LocalDate.now().minusYears(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
|
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
return Long.parseLong(query |
|
|
|
return Long.parseLong(query |
|
|
|
.select( |
|
|
|
.select( |
|
|
@ -1939,6 +1964,10 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
) // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) |
|
|
|
) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.fetchOne()); |
|
|
|
.fetchOne()); |
|
|
|
} |
|
|
|
} |
|
|
@ -1947,34 +1976,43 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
* 가장 많이 이동한 기체 |
|
|
|
* 가장 많이 이동한 기체 |
|
|
|
* @return |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public FlightStcsValueModel getFlightDistanceStcs(){ |
|
|
|
public FlightStcsValueModel getFlightDistanceStcs(boolean authCheck, String groupId){ |
|
|
|
FlightStcsValueModel result = new FlightStcsValueModel(); |
|
|
|
FlightStcsValueModel result = new FlightStcsValueModel(); |
|
|
|
|
|
|
|
|
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
|
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<FlightStcsValueModel> queryResult = query |
|
|
|
List<FlightStcsValueModel> queryResult = query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
Projections.bean(FlightStcsValueModel.class, |
|
|
|
Projections.bean(FlightStcsValueModel.class, |
|
|
|
qCtrCntrlBas.idntfNum.as("name"), // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
qCtrCntrlBas.idntfNum.as("name") // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
qCtrCntrlBas.ttlDstnc.sum().as("value") |
|
|
|
|
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
|
|
|
.where(builder) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.groupBy(qCtrCntrlBas.idntfNum) |
|
|
|
.groupBy(qCtrCntrlBas.idntfNum) |
|
|
|
.orderBy(qCtrCntrlBas.ttlDstnc.sum().desc()) |
|
|
|
.orderBy(qCtrCntrlBas.ttlDstnc.sum().desc()) |
|
|
|
.limit(1) |
|
|
|
.limit(1) |
|
|
|
.fetch(); |
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
|
|
log.warn("size => {}", queryResult.size()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(queryResult.size() > 0){ |
|
|
|
if(queryResult.size() > 0){ |
|
|
|
result = queryResult.get(0); |
|
|
|
result = queryResult.get(0); |
|
|
|
|
|
|
|
|
|
|
|
String idntfNum = result.getName(); |
|
|
|
String idntfNum = result.getName(); |
|
|
|
|
|
|
|
|
|
|
|
result.setYear(getFltDistanceYear(idntfNum)); |
|
|
|
result.setYear(getFltDistanceYear(idntfNum, authCheck, groupId)); |
|
|
|
result.setMonth(getFltDistanceMonth(idntfNum)); |
|
|
|
result.setMonth(getFltDistanceMonth(idntfNum, authCheck, groupId)); |
|
|
|
result.setDay(getFltDistanceDay(idntfNum)); |
|
|
|
result.setDay(getFltDistanceDay(idntfNum, authCheck, groupId)); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
FlightStcsValueModel node = new FlightStcsValueModel(); |
|
|
|
FlightStcsValueModel node = new FlightStcsValueModel(); |
|
|
|
node.setName("-"); |
|
|
|
node.setName("-"); |
|
|
@ -1988,29 +2026,41 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
return result; |
|
|
|
return result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Double getFltDistanceDay(String idntfNum){ |
|
|
|
private Double getFltDistanceDay(String idntfNum, boolean authCheck, String groupId){ |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
builder.and(qCtrCntrlBas.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qCtrCntrlBas.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qCtrCntrlBas.createDt.eq(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.eq(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
|
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
return query |
|
|
|
return query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
qCtrCntrlBas.ttlDstnc.sum() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
qCtrCntrlBas.ttlDstnc.sum() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) |
|
|
|
) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.fetchOne(); |
|
|
|
.fetchOne(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Double getFltDistanceMonth(String idntfNum){ |
|
|
|
private Double getFltDistanceMonth(String idntfNum, boolean authCheck, String groupId){ |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
builder.and(qCtrCntrlBas.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qCtrCntrlBas.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qCtrCntrlBas.createDt.goe(LocalDate.now().minusMonths(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.goe(LocalDate.now().minusMonths(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
|
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
return query |
|
|
|
return query |
|
|
|
.select( |
|
|
|
.select( |
|
|
@ -2018,23 +2068,35 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
|
|
|
|
|
|
|
|
) |
|
|
|
) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.fetchOne(); |
|
|
|
.fetchOne(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Double getFltDistanceYear(String idntfNum){ |
|
|
|
private Double getFltDistanceYear(String idntfNum, boolean authCheck, String groupId){ |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
builder.and(qCtrCntrlBas.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qCtrCntrlBas.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qCtrCntrlBas.createDt.goe(LocalDate.now().minusYears(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.goe(LocalDate.now().minusYears(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
|
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
return query |
|
|
|
return query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
qCtrCntrlBas.ttlDstnc.sum() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
qCtrCntrlBas.ttlDstnc.sum() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) |
|
|
|
) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.fetchOne(); |
|
|
|
.fetchOne(); |
|
|
|
} |
|
|
|
} |
|
|
@ -2043,10 +2105,16 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
* 가장 많이 비행한 기체 |
|
|
|
* 가장 많이 비행한 기체 |
|
|
|
* @return |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public FlightStcsValueModel getFlightCountStcs(){ |
|
|
|
public FlightStcsValueModel getFlightCountStcs(boolean authCheck, String groupId){ |
|
|
|
FlightStcsValueModel result = new FlightStcsValueModel(); |
|
|
|
FlightStcsValueModel result = new FlightStcsValueModel(); |
|
|
|
|
|
|
|
|
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
|
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
List<FlightStcsValueModel> queryResult = query |
|
|
|
List<FlightStcsValueModel> queryResult = query |
|
|
|
.select( |
|
|
|
.select( |
|
|
@ -2056,6 +2124,11 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
|
|
|
.where(builder) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.groupBy(qCtrCntrlBas.idntfNum) |
|
|
|
.groupBy(qCtrCntrlBas.idntfNum) |
|
|
|
.orderBy(qCtrCntrlBas.cntrlId.count().desc()) |
|
|
|
.orderBy(qCtrCntrlBas.cntrlId.count().desc()) |
|
|
|
.limit(1) |
|
|
|
.limit(1) |
|
|
@ -2066,9 +2139,9 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
|
|
|
|
|
|
|
|
String idntfNum = result.getName(); |
|
|
|
String idntfNum = result.getName(); |
|
|
|
|
|
|
|
|
|
|
|
result.setYear(getFltCountYear(idntfNum)); |
|
|
|
result.setYear(getFltCountYear(idntfNum, authCheck, groupId)); |
|
|
|
result.setMonth(getFltCountMonth(idntfNum)); |
|
|
|
result.setMonth(getFltCountMonth(idntfNum, authCheck, groupId)); |
|
|
|
result.setDay(getFltCountDay(idntfNum)); |
|
|
|
result.setDay(getFltCountDay(idntfNum, authCheck, groupId)); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
FlightStcsValueModel node = new FlightStcsValueModel(); |
|
|
|
FlightStcsValueModel node = new FlightStcsValueModel(); |
|
|
|
node.setName("-"); |
|
|
|
node.setName("-"); |
|
|
@ -2082,52 +2155,76 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
return result; |
|
|
|
return result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Long getFltCountDay(String idntfNum){ |
|
|
|
private Long getFltCountDay(String idntfNum, boolean authCheck, String groupId){ |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
builder.and(qCtrCntrlBas.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qCtrCntrlBas.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qCtrCntrlBas.createDt.eq(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.eq(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
|
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
return query |
|
|
|
return query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
qCtrCntrlBas.cntrlId.count() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
qCtrCntrlBas.cntrlId.count() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) |
|
|
|
) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.fetchOne(); |
|
|
|
.fetchOne(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Long getFltCountMonth(String idntfNum){ |
|
|
|
private Long getFltCountMonth(String idntfNum, boolean authCheck, String groupId){ |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
builder.and(qCtrCntrlBas.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qCtrCntrlBas.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qCtrCntrlBas.createDt.goe(LocalDate.now().minusMonths(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.goe(LocalDate.now().minusMonths(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
|
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
return query |
|
|
|
return query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
qCtrCntrlBas.cntrlId.count() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
qCtrCntrlBas.cntrlId.count() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) |
|
|
|
) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.fetchOne(); |
|
|
|
.fetchOne(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Long getFltCountYear(String idntfNum){ |
|
|
|
private Long getFltCountYear(String idntfNum, boolean authCheck, String groupId){ |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
builder.and(qCtrCntrlBas.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qCtrCntrlBas.idntfNum.eq(idntfNum)); |
|
|
|
builder.and(qCtrCntrlBas.createDt.goe(LocalDate.now().minusYears(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.goe(LocalDate.now().minusYears(1).atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
builder.and(qCtrCntrlBas.createDt.loe(LocalDate.now().atStartOfDay().atZone(ZoneId.of("Asia/Seoul")).toInstant())); |
|
|
|
|
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
return query |
|
|
|
return query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
qCtrCntrlBas.cntrlId.count() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
qCtrCntrlBas.cntrlId.count() // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) |
|
|
|
) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.fetchOne(); |
|
|
|
.fetchOne(); |
|
|
|
} |
|
|
|
} |
|
|
@ -2141,22 +2238,26 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
* @param formatParam |
|
|
|
* @param formatParam |
|
|
|
* @return |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public List<FlightStcsValueModel> fltTimeStcs(String date, String[] formatParam){ |
|
|
|
public List<FlightStcsValueModel> fltTimeStcs(String date, String groupId, boolean authCheck, String[] formatParam){ |
|
|
|
// QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas;
|
|
|
|
|
|
|
|
QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
, bas.createDt |
|
|
|
, qCtrCntrlBas.createDt |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
|
|
|
|
|
|
|
|
StringTemplate formattedDate2 = Expressions.stringTemplate( |
|
|
|
StringTemplate formattedDate2 = Expressions.stringTemplate( |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
, bas.createDt |
|
|
|
, qCtrCntrlBas.createDt |
|
|
|
, ConstantImpl.create(formatParam[1])); |
|
|
|
, ConstantImpl.create(formatParam[1])); |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
|
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
.select( |
|
|
|
.select( |
|
|
@ -2165,12 +2266,16 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
formattedDate2.as("name"), |
|
|
|
formattedDate2.as("name"), |
|
|
|
Expressions.stringTemplate( |
|
|
|
Expressions.stringTemplate( |
|
|
|
"CONCAT(SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF({0}, {1})))))", |
|
|
|
"CONCAT(SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF({0}, {1})))))", |
|
|
|
bas.cntrlEndDt, |
|
|
|
qCtrCntrlBas.cntrlEndDt, |
|
|
|
bas.cntrlStDt |
|
|
|
qCtrCntrlBas.cntrlStDt |
|
|
|
).as("value") |
|
|
|
).as("value") |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
.from(bas) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.groupBy(formattedDate2) |
|
|
|
.groupBy(formattedDate2) |
|
|
|
.fetch(); |
|
|
|
.fetch(); |
|
|
@ -2193,32 +2298,40 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
* @param formatParam |
|
|
|
* @param formatParam |
|
|
|
* @return |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public List<FlightStcsValueModel> fltDistanceStcs(String date, String[] formatParam){ |
|
|
|
public List<FlightStcsValueModel> fltDistanceStcs(String date, String groupId, boolean authCheck, String[] formatParam){ |
|
|
|
|
|
|
|
|
|
|
|
QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
, bas.createDt |
|
|
|
, qCtrCntrlBas.createDt |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
|
|
|
|
|
|
|
|
StringTemplate formattedDate2 = Expressions.stringTemplate( |
|
|
|
StringTemplate formattedDate2 = Expressions.stringTemplate( |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
, bas.createDt |
|
|
|
, qCtrCntrlBas.createDt |
|
|
|
, ConstantImpl.create(formatParam[1])); |
|
|
|
, ConstantImpl.create(formatParam[1])); |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
|
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
Projections.bean( |
|
|
|
Projections.bean( |
|
|
|
FlightStcsValueModel.class , |
|
|
|
FlightStcsValueModel.class , |
|
|
|
formattedDate2.as("name"), |
|
|
|
formattedDate2.as("name"), |
|
|
|
bas.ttlDstnc.sum().as("value") |
|
|
|
qCtrCntrlBas.ttlDstnc.sum().as("value") |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
.from(bas) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.groupBy(formattedDate2) |
|
|
|
.groupBy(formattedDate2) |
|
|
|
.fetch(); |
|
|
|
.fetch(); |
|
|
@ -2241,32 +2354,40 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
* @param formatParam |
|
|
|
* @param formatParam |
|
|
|
* @return |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public List<FlightStcsValueModel> fltCountStcs(String date, String[] formatParam){ |
|
|
|
public List<FlightStcsValueModel> fltCountStcs(String date, String groupId, boolean authCheck, String[] formatParam){ |
|
|
|
|
|
|
|
|
|
|
|
QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
, bas.createDt |
|
|
|
, qCtrCntrlBas.createDt |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
|
|
|
|
|
|
|
|
StringTemplate formattedDate2 = Expressions.stringTemplate( |
|
|
|
StringTemplate formattedDate2 = Expressions.stringTemplate( |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
, bas.createDt |
|
|
|
, qCtrCntrlBas.createDt |
|
|
|
, ConstantImpl.create(formatParam[1])); |
|
|
|
, ConstantImpl.create(formatParam[1])); |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
|
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
Projections.bean( |
|
|
|
Projections.bean( |
|
|
|
FlightStcsValueModel.class , |
|
|
|
FlightStcsValueModel.class , |
|
|
|
formattedDate2.as("name"), |
|
|
|
formattedDate2.as("name"), |
|
|
|
bas.cntrlId.count().as("value") |
|
|
|
qCtrCntrlBas.cntrlId.count().as("value") |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
.from(bas) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.groupBy(formattedDate2) |
|
|
|
.groupBy(formattedDate2) |
|
|
|
.fetch(); |
|
|
|
.fetch(); |
|
|
@ -2289,35 +2410,44 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
* @param formatParam |
|
|
|
* @param formatParam |
|
|
|
* @return |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public List<FlightStcsValueModel> fltTopTimeStcs(String date, String[] formatParam){ |
|
|
|
public List<FlightStcsValueModel> fltTopTimeStcs(String date, String groupId, boolean authCheck, String[] formatParam){ |
|
|
|
QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
|
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
, bas.createDt |
|
|
|
, qCtrCntrlBas.createDt |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
|
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
Projections.bean(FlightStcsValueModel.class, |
|
|
|
Projections.bean(FlightStcsValueModel.class, |
|
|
|
bas.idntfNum.as("name"), // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
qCtrCntrlBas.idntfNum.as("name"), // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
Expressions.stringTemplate( |
|
|
|
Expressions.stringTemplate( |
|
|
|
"CONCAT(SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF({0}, {1})))))", |
|
|
|
"CONCAT(SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF({0}, {1})))))", |
|
|
|
bas.cntrlEndDt, |
|
|
|
qCtrCntrlBas.cntrlEndDt, |
|
|
|
bas.cntrlStDt |
|
|
|
qCtrCntrlBas.cntrlStDt |
|
|
|
).as("value") // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
).as("value") // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
.from(bas) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.groupBy(bas.idntfNum) |
|
|
|
.groupBy(qCtrCntrlBas.idntfNum) |
|
|
|
.orderBy(Expressions.stringTemplate( |
|
|
|
.orderBy(Expressions.stringTemplate( |
|
|
|
"SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF({0}, {1}))))", |
|
|
|
"SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF({0}, {1}))))", |
|
|
|
bas.cntrlEndDt, |
|
|
|
qCtrCntrlBas.cntrlEndDt, |
|
|
|
bas.cntrlStDt |
|
|
|
qCtrCntrlBas.cntrlStDt |
|
|
|
).desc()) |
|
|
|
).desc()) |
|
|
|
.limit(5) |
|
|
|
.limit(5) |
|
|
|
.fetch(); |
|
|
|
.fetch(); |
|
|
@ -2340,28 +2470,38 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
* @param formatParam |
|
|
|
* @param formatParam |
|
|
|
* @return |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public List<FlightStcsValueModel> fltTopDistanceStcs(String date, String[] formatParam){ |
|
|
|
public List<FlightStcsValueModel> fltTopDistanceStcs(String date, String groupId, boolean authCheck, String[] formatParam){ |
|
|
|
QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
, bas.createDt |
|
|
|
, qCtrCntrlBas.createDt |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
|
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
Projections.bean(FlightStcsValueModel.class, |
|
|
|
Projections.bean(FlightStcsValueModel.class, |
|
|
|
bas.idntfNum.as("name"), // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
qCtrCntrlBas.idntfNum.as("name"), // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
bas.ttlDstnc.sum().as("value") |
|
|
|
qCtrCntrlBas.ttlDstnc.sum().as("value") |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
.from(bas) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.groupBy(bas.idntfNum) |
|
|
|
.groupBy(qCtrCntrlBas.idntfNum) |
|
|
|
.orderBy(bas.ttlDstnc.sum().desc()) |
|
|
|
.orderBy(qCtrCntrlBas.ttlDstnc.sum().desc()) |
|
|
|
.limit(5) |
|
|
|
.limit(5) |
|
|
|
.fetch(); |
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
|
@ -2383,28 +2523,37 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){ |
|
|
|
* @param formatParam |
|
|
|
* @param formatParam |
|
|
|
* @return |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public List<FlightStcsValueModel> fltTopCountStcs(String date, String[] formatParam){ |
|
|
|
public List<FlightStcsValueModel> fltTopCountStcs(String date, String groupId, boolean authCheck, String[] formatParam){ |
|
|
|
QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
|
|
|
|
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas; |
|
|
|
|
|
|
|
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel; |
|
|
|
|
|
|
|
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas; |
|
|
|
|
|
|
|
|
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
StringTemplate formattedDate = Expressions.stringTemplate( |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
"DATE_FORMAT({0}, {1})" |
|
|
|
, bas.createDt |
|
|
|
, qCtrCntrlBas.createDt |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
, ConstantImpl.create(formatParam[0])); |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date)); |
|
|
|
|
|
|
|
if(groupId != null && !(groupId.equals(""))) builder.and(qFltPlanBas.groupId.eq(groupId)); |
|
|
|
|
|
|
|
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken())); |
|
|
|
|
|
|
|
|
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
List<FlightStcsValueModel> result = query |
|
|
|
.select( |
|
|
|
.select( |
|
|
|
Projections.bean(FlightStcsValueModel.class, |
|
|
|
Projections.bean(FlightStcsValueModel.class, |
|
|
|
bas.idntfNum.as("name"), // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
qCtrCntrlBas.idntfNum.as("name"), // 결과 객체의 프로퍼티 이름을 지정
|
|
|
|
bas.cntrlId.count().as("value") |
|
|
|
qCtrCntrlBas.cntrlId.count().as("value") |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
) |
|
|
|
.from(bas) |
|
|
|
.from(qCtrCntrlBas) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanCtrCntrlRel) |
|
|
|
|
|
|
|
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId)) |
|
|
|
|
|
|
|
.leftJoin(qFltPlanBas) |
|
|
|
|
|
|
|
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.groupBy(bas.idntfNum) |
|
|
|
.groupBy(qCtrCntrlBas.idntfNum) |
|
|
|
.orderBy(bas.cntrlId.count().desc()) |
|
|
|
.orderBy(qCtrCntrlBas.cntrlId.count().desc()) |
|
|
|
.limit(5) |
|
|
|
.limit(5) |
|
|
|
.fetch(); |
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
|
|