Browse Source

[메인] 일일 비행횟수 현황 : 비행계획서 승인 항목 작업중

pull/15/head
hagjoon(이학준) 10 months ago
parent
commit
a527959cf2
  1. 14
      pav-server/src/main/java/com/palnet/biz/api/main/dash/controller/MainDashController.java
  2. 35
      pav-server/src/main/java/com/palnet/biz/api/main/dash/model/MainDashFlightNumStcsModel.java
  3. 36
      pav-server/src/main/java/com/palnet/biz/api/main/dash/service/MainDashService.java
  4. 3
      pav-server/src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanBasRepository.java

14
pav-server/src/main/java/com/palnet/biz/api/main/dash/controller/MainDashController.java

@ -3,6 +3,7 @@ package com.palnet.biz.api.main.dash.controller;
import java.util.List;
import java.util.Map;
import com.palnet.biz.api.main.dash.model.MainDashFlightNumStcsModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
@ -319,6 +320,19 @@ public class MainDashController {
return ResponseEntity.ok().body(new SuccessResponse<List<MainDashFlightListModel>>(result));
}
@GetMapping("/stcs/dailyflight")
@ApiOperation(value = "일일 비행횟수 현황")
@Tag(name = "메인화면 컨트롤러",description = "메인화면 관련 API")
public ResponseEntity<? extends BasicResponse> getDailyFlightNumOfStcs(){
List<MainDashFlightNumStcsModel> result = null;
try {
result = service.dailyFlightNumOfStcs();
}catch (Exception e){
log.error("IGNORE : {} ", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(new ErrorResponse("Server Error", "-1"));
}
return ResponseEntity.ok().body(new SuccessResponse<List<MainDashFlightNumStcsModel>>(result));
}
}

35
pav-server/src/main/java/com/palnet/biz/api/main/dash/model/MainDashFlightNumStcsModel.java

@ -0,0 +1,35 @@
package com.palnet.biz.api.main.dash.model;
import io.swagger.annotations.ApiParam;
import lombok.Data;
/**
* packageName : com.palnet.biz.api.main.dash.model
* fileName : MainDashFlightNumStcsModel
* author : hagjoon
* date : 2023-11-13
* description :
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 2023-11-13 hagjoon 최초 생성
*/
@Data
public class MainDashFlightNumStcsModel {
@ApiParam(value = "구분",example = "전일(어제), 금일(오늘), 명일(내일)")
private String dateType = "";
@ApiParam(value = "계획",example = "전일(어제), 금일(오늘), 명일(내일) 비행계획서 목록")
private long flightPlan = 0;
@ApiParam(value = "비행 완료",example = "전일(어제), 금일(오늘), 명일(내일) 비행완료 목록")
private long completeFlight = 0;
@ApiParam(value = "미 비행",example = "전일(어제), 금일(오늘), 명일(내일) 미 비행 목록")
private long notFlight = 0;
@ApiParam(value = "비고",example = "전일(어제), 금일(오늘), 명일(내일) 비고")
private int note = 0;
}

36
pav-server/src/main/java/com/palnet/biz/api/main/dash/service/MainDashService.java

@ -1,5 +1,7 @@
package com.palnet.biz.api.main.dash.service;
import java.time.Instant;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -9,6 +11,9 @@ import java.util.stream.Collectors;
import com.palnet.biz.api.acnt.jwt.model.JwtGroupModel;
import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil;
import com.palnet.biz.api.bas.group.model.BasGroupModel;
import com.palnet.biz.api.main.dash.model.MainDashFlightNumStcsModel;
import com.palnet.biz.jpa.entity.FltPlanBas;
import com.palnet.biz.jpa.repository.flt.FltPlanBasRepository;
import com.palnet.biz.jpa.repository.pty.*;
import lombok.extern.slf4j.Slf4j;
@ -28,6 +33,8 @@ import com.palnet.biz.jpa.repository.flt.FltPlanQueryRepository;
@Service
@Slf4j
public class MainDashService {
@Autowired
private FltPlanBasRepository fltPlanBasRepository;
private Logger logger = LoggerFactory.getLogger(getClass());
@ -252,4 +259,33 @@ public class MainDashService {
return result;
}
public List<MainDashFlightNumStcsModel> dailyFlightNumOfStcs(){
// 1. 전일 , 금일, 명일(내일)
Instant yesterday = Instant.now().minus(1, ChronoUnit.DAYS);
Instant today = Instant.now();
Instant tomorrow = Instant.now().plus(1, ChronoUnit.DAYS);
long yesterdayCount = fltPlanBasRepository.countByAprvlYnAndAprvlDtBetween("Y", yesterday, today);
log.info("yesterdayCount : {}", yesterdayCount);
long todayCount = fltPlanBasRepository.countByAprvlYnAndAprvlDtBetween("Y", today, today.plus(1, ChronoUnit.DAYS));
log.info("todayCount : {}", todayCount);
long tomorrowCount = fltPlanBasRepository.countByAprvlYnAndAprvlDtBetween("Y", tomorrow, tomorrow.plus(1, ChronoUnit.DAYS));
log.info("tomorrowCount : {} ", tomorrowCount);
// 카운트와 함께 MainDashFlightNumStcsModel 인스턴스 생성
List<MainDashFlightNumStcsModel> result = new ArrayList<>();
result.add(createModel("yesterday", yesterdayCount));
result.add(createModel("today", todayCount));
result.add(createModel("tomorrow", tomorrowCount));
return result;
}
private MainDashFlightNumStcsModel createModel(String dateType, long flightPlanCount) {
MainDashFlightNumStcsModel model = new MainDashFlightNumStcsModel();
model.setDateType(dateType);
model.setFlightPlan(flightPlanCount);
return model;
}
}

3
pav-server/src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanBasRepository.java

@ -53,5 +53,8 @@ public interface FltPlanBasRepository extends JpaRepository<FltPlanBas, Integer>
"and f.aprvlYn = 'Y' ")
List<FltPlanBas> findBasList(@Param("planSno") int planSno);
@Query("SELECT f FROM FltPlanBas f WHERE f.aprvlYn = 'Y' AND f.aprvlDt IS NOT NULL AND f.aprvlDt >= :startDate AND f.aprvlDt < :endDate")
List<FltPlanBas> findApprovedFlightPlansByApprovalDate(Instant startDate, Instant endDate);
long countByAprvlYnAndAprvlDtBetween(String aprvlYn, Instant startDate, Instant endDate);
}

Loading…
Cancel
Save