|
|
|
@ -268,28 +268,59 @@ public class MainDashService {
|
|
|
|
|
Instant tomorrowStart = Instant.now().plus(1, ChronoUnit.DAYS).truncatedTo(ChronoUnit.DAYS); |
|
|
|
|
Instant tomorrowEnd = Instant.now().plus(2, ChronoUnit.DAYS).minus(1, ChronoUnit.SECONDS); |
|
|
|
|
|
|
|
|
|
// 2. 비행계획서 승인 항목 : 비행계획서 제출기준(승인된 건수로봐도 동일)
|
|
|
|
|
long yesterdayCount = fltPlanBasRepository.countByAprvlYnAndAprvlDtBetween("Y", yesterdayStart, yesterdayEnd); |
|
|
|
|
log.info("yesterdayCount: {}", yesterdayCount); |
|
|
|
|
|
|
|
|
|
long todayCount = fltPlanBasRepository.countByAprvlYnAndAprvlDtBetween("Y", todayStart, todayEnd); |
|
|
|
|
log.info("todayCount: {}", todayCount); |
|
|
|
|
|
|
|
|
|
long tomorrowCount = fltPlanBasRepository.countByAprvlYnAndAprvlDtBetween("Y", tomorrowStart, tomorrowEnd); |
|
|
|
|
log.info("tomorrowCount: {}", tomorrowCount); |
|
|
|
|
|
|
|
|
|
// 카운트와 함께 MainDashFlightNumStcsModel 인스턴스 생성
|
|
|
|
|
// 3. 비행 완료 항목 : 실제 비행이 완료된 건수
|
|
|
|
|
long yesterdayCompleteCount = query.completeFlight(yesterdayStart,yesterdayEnd).size(); |
|
|
|
|
log.info("yesterdayCompleteCount: {}", yesterdayCompleteCount); |
|
|
|
|
long todayCompleteCount = query.completeFlight(todayStart,todayEnd).size(); |
|
|
|
|
log.info("todayCompleteCount: {}", todayCompleteCount); |
|
|
|
|
long tomorrowCompleteCount = query.completeFlight(tomorrowStart,tomorrowEnd).size(); |
|
|
|
|
log.info("tomorrowCompleteCount: {}", tomorrowCompleteCount); |
|
|
|
|
|
|
|
|
|
// 4. 미 비행 항목 : 비행계획서는 제출했으나,실제 비행안한 건수
|
|
|
|
|
long yesterdayNotFlight = query.notFlight(yesterdayStart,yesterdayEnd).size(); |
|
|
|
|
log.info("yesterdayNotFlight : {} ", yesterdayNotFlight); |
|
|
|
|
long todayNotFlight = query.notFlight(todayStart, todayEnd).size(); |
|
|
|
|
log.info("todayNotFlight : {} ", todayNotFlight); |
|
|
|
|
long tomorrowNotFlight = query.notFlight(tomorrowStart,tomorrowEnd).size(); |
|
|
|
|
log.info("tomorrowNotFlight : {} ", tomorrowNotFlight); |
|
|
|
|
|
|
|
|
|
// 5. 비고 : 비행 완료 건수를 기준으로 상승 또는 하락폭 적용
|
|
|
|
|
// ex) 오늘 기준 오늘은 어제의 비행 완료 건수를 비교해서 적용
|
|
|
|
|
// 전일(어제)은 2일전 비행 완료 건수를 비교해서 적용
|
|
|
|
|
// 명일(내일)은 오늘 비행 완료 건수를 비교해서 적용
|
|
|
|
|
long yesterdayNote = yesterdayCompleteCount - query.completeFlight(yesterdayStart.minus(1, ChronoUnit.DAYS), yesterdayEnd.minus(1, ChronoUnit.DAYS)).size(); |
|
|
|
|
double yesterdayNotePercent = yesterdayCompleteCount != 0 ? ((double) yesterdayNote / yesterdayCompleteCount) * 100.0 : 0.0; |
|
|
|
|
log.info("yesterdayNotePercent: {} ", yesterdayNotePercent); |
|
|
|
|
double todayNotePercent = yesterdayCompleteCount != 0 ? ((double)(todayCompleteCount - yesterdayCompleteCount) / yesterdayCompleteCount) * 100.0 : 0.0; |
|
|
|
|
log.info("todayNotePercent: {} ", todayNotePercent); |
|
|
|
|
double tomorrowNotePercent = todayCompleteCount != 0 ? ((double) (tomorrowCompleteCount - todayCompleteCount) / todayCompleteCount) * 100.0 : 0.0; |
|
|
|
|
log.info("tomorrowNotePercent: {} ", tomorrowNotePercent); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<MainDashFlightNumStcsModel> result = new ArrayList<>(); |
|
|
|
|
result.add(createModel("yesterday", yesterdayCount)); |
|
|
|
|
result.add(createModel("today", todayCount)); |
|
|
|
|
result.add(createModel("tomorrow", tomorrowCount)); |
|
|
|
|
result.add(createModel("yesterday", yesterdayCount,yesterdayCompleteCount,yesterdayNotFlight,yesterdayNotePercent)); |
|
|
|
|
result.add(createModel("today", todayCount,todayCompleteCount,todayNotFlight,todayNotePercent)); |
|
|
|
|
result.add(createModel("tomorrow", tomorrowCount,tomorrowCompleteCount,tomorrowNotFlight,tomorrowNotePercent)); |
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private MainDashFlightNumStcsModel createModel(String dateType, long flightPlanCount) { |
|
|
|
|
private MainDashFlightNumStcsModel createModel(String dateType, long flightPlanCount, long completeCount, long notFlight, double note) { |
|
|
|
|
MainDashFlightNumStcsModel model = new MainDashFlightNumStcsModel(); |
|
|
|
|
model.setDateType(dateType); |
|
|
|
|
model.setFlightPlan(flightPlanCount); |
|
|
|
|
model.setCompleteFlight(completeCount); |
|
|
|
|
model.setNotFlight(notFlight); |
|
|
|
|
model.setNote(note); |
|
|
|
|
return model; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|