|
|
@ -3,7 +3,10 @@ package com.palnet.biz.jpa.repository.flt; |
|
|
|
import java.time.Duration; |
|
|
|
import java.time.Duration; |
|
|
|
import java.time.Instant; |
|
|
|
import java.time.Instant; |
|
|
|
import java.time.LocalDate; |
|
|
|
import java.time.LocalDate; |
|
|
|
|
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.time.ZoneId; |
|
|
|
import java.time.ZoneId; |
|
|
|
|
|
|
|
import java.time.ZoneOffset; |
|
|
|
|
|
|
|
import java.time.temporal.ChronoUnit; |
|
|
|
import java.util.List; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Optional; |
|
|
|
import java.util.Optional; |
|
|
|
|
|
|
|
|
|
|
@ -1871,6 +1874,9 @@ public class FltPlanQueryRepository { |
|
|
|
builder.and(pgb.groupId.eq(groupId)); |
|
|
|
builder.and(pgb.groupId.eq(groupId)); |
|
|
|
} |
|
|
|
} |
|
|
|
Instant now = Instant.now(); |
|
|
|
Instant now = Instant.now(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Instant todayStart = LocalDate.now().atStartOfDay().toInstant(ZoneOffset.UTC); |
|
|
|
|
|
|
|
Instant todayEnd = LocalDate.now().plusDays(1).atStartOfDay().toInstant(ZoneOffset.UTC); |
|
|
|
|
|
|
|
|
|
|
|
List<MainDashFlightListModel> result = query |
|
|
|
List<MainDashFlightListModel> result = query |
|
|
|
.select(Projections.bean(MainDashFlightListModel.class, |
|
|
|
.select(Projections.bean(MainDashFlightListModel.class, |
|
|
@ -1885,9 +1891,10 @@ public class FltPlanQueryRepository { |
|
|
|
ccb.cntrlStDt |
|
|
|
ccb.cntrlStDt |
|
|
|
).as("totalFlightTime"), |
|
|
|
).as("totalFlightTime"), |
|
|
|
new CaseBuilder() |
|
|
|
new CaseBuilder() |
|
|
|
.when(ccb.statusCd.eq("01")).then("비행 중") |
|
|
|
.when(ccb.statusCd.eq("01")).then("비행 중") |
|
|
|
.when(ccb.statusCd.eq("99")).then("비행 완료") |
|
|
|
.when(ccb.statusCd.eq("99")).then("비행 완료") |
|
|
|
.otherwise("비행 대기 중").as("status") |
|
|
|
.when(fpb.planSno.isNotNull()).then("비행 대기 중") |
|
|
|
|
|
|
|
.otherwise("비행 없음").as("status") |
|
|
|
)) |
|
|
|
)) |
|
|
|
.from(fpa) |
|
|
|
.from(fpa) |
|
|
|
.leftJoin(fpb).on(fpb.planSno.eq(fpa.planSno)) |
|
|
|
.leftJoin(fpb).on(fpb.planSno.eq(fpa.planSno)) |
|
|
@ -1896,11 +1903,17 @@ public class FltPlanQueryRepository { |
|
|
|
.leftJoin(fpccr).on(fpccr.planSno.eq(fpb.planSno)) |
|
|
|
.leftJoin(fpccr).on(fpccr.planSno.eq(fpb.planSno)) |
|
|
|
.leftJoin(ccb).on(ccb.cntrlId.eq(fpccr.cntrlId)) |
|
|
|
.leftJoin(ccb).on(ccb.cntrlId.eq(fpccr.cntrlId)) |
|
|
|
.where( |
|
|
|
.where( |
|
|
|
builder |
|
|
|
builder |
|
|
|
.and(fpb.schFltStDt.between(now, now.plus(Duration.ofDays(1)))) |
|
|
|
.and(fpb.schFltStDt.between( |
|
|
|
.and(fpb.schFltEndDt.between(now, now.plus(Duration.ofDays(1)))) |
|
|
|
now.atZone(ZoneId.of("Asia/Seoul")).truncatedTo(ChronoUnit.DAYS).toInstant(), |
|
|
|
.and(fpb.planSno.isNotNull()) |
|
|
|
now.atZone(ZoneId.of("Asia/Seoul")).truncatedTo(ChronoUnit.DAYS).plus(1, ChronoUnit.DAYS).toInstant() |
|
|
|
) |
|
|
|
)) |
|
|
|
|
|
|
|
.and(fpb.schFltEndDt.between( |
|
|
|
|
|
|
|
now.atZone(ZoneId.of("Asia/Seoul")).truncatedTo(ChronoUnit.DAYS).toInstant(), |
|
|
|
|
|
|
|
now.atZone(ZoneId.of("Asia/Seoul")).truncatedTo(ChronoUnit.DAYS).plus(1, ChronoUnit.DAYS).toInstant() |
|
|
|
|
|
|
|
)) |
|
|
|
|
|
|
|
.and(fpb.planSno.isNotNull()) |
|
|
|
|
|
|
|
) |
|
|
|
.orderBy(((ComparableExpressionBase<Integer>) groupOrder).desc(), cib.createDt.asc()) |
|
|
|
.orderBy(((ComparableExpressionBase<Integer>) groupOrder).desc(), cib.createDt.asc()) |
|
|
|
.fetch(); |
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
|
|