diff --git a/pav-server/src/main/java/com/palnet/biz/api/main/dash/controller/MainDashController.java b/pav-server/src/main/java/com/palnet/biz/api/main/dash/controller/MainDashController.java index 448ae12..b0fbe48 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/main/dash/controller/MainDashController.java +++ b/pav-server/src/main/java/com/palnet/biz/api/main/dash/controller/MainDashController.java @@ -1,6 +1,5 @@ package com.palnet.biz.api.main.dash.controller; -import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -12,16 +11,9 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.palnet.biz.api.anls.hstry.model.AnlsHstryDetailModel; -import com.palnet.biz.api.anls.hstry.model.AnlsHstryModel; -import com.palnet.biz.api.anls.hstry.model.AnlsHstryRqModel; -import com.palnet.biz.api.anls.smlt.model.AnlsSmltDetailModel; -import com.palnet.biz.api.anls.smlt.model.AnlsSmltStcsModel; -import com.palnet.biz.api.anls.smlt.service.AnlsSmltService; import com.palnet.biz.api.comn.response.BasicResponse; import com.palnet.biz.api.comn.response.ErrorResponse; import com.palnet.biz.api.comn.response.SuccessResponse; @@ -29,7 +21,6 @@ import com.palnet.biz.api.main.dash.model.MainDashListModel; import com.palnet.biz.api.main.dash.model.MainDashStcsModel; import com.palnet.biz.api.main.dash.service.MainDashService; import com.palnet.comn.code.RSErrorCode; -import com.palnet.comn.utils.JsonUtils; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; @@ -65,8 +56,7 @@ public class MainDashController { try { - result = service.mainDashStcsDay(yyyymm); - + result = service.mainDashStcsDay(yyyymm); } catch (Exception e) { log.error("IGNORE : {}", e); @@ -174,13 +164,11 @@ public class MainDashController { @Tag(name = "메인화면 컨트롤러", description = "메인화면 관련 API") @ApiImplicitParam(name = "yyyymm",value = "날짜", dataTypeClass = String.class) public ResponseEntity kacDateStatistics(String yyyymm){ - if(yyyymm == null) yyyymm = ""; - - log.error("yyyyMM -> {}", yyyymm); - + String[] formatParam = null; try { + if(yyyymm == null) yyyymm = ""; formatParam = service.paramCheck(yyyymm); } catch (NumberFormatException e) { return ResponseEntity.status(HttpStatus.OK) @@ -192,7 +180,6 @@ public class MainDashController { try { result = service.mainKacDashStcsDay(yyyymm,formatParam); } catch (Exception e) { - // TODO: handle exception log.error("IGNORE : {}", e); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) @@ -202,30 +189,4 @@ public class MainDashController { return ResponseEntity.ok().body(new SuccessResponse(result)); } - -// public ResponseEntity stcsDay(String yyyymm) { -// List result = null; - -// // log.debug(yyyymm); - -// //입력값 검증 -// if(yyyymm == null || !(yyyymm.length() == 7) ) { - // return ResponseEntity.status(HttpStatus.OK) - // .body(new ErrorResponse(RSErrorCode.ER_PARAM)); -// } - -// try { - -// result = service.mainDashStcsDay(yyyymm); - - -// } 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(result)); - -// } } diff --git a/pav-server/src/main/java/com/palnet/biz/api/main/dash/service/MainDashService.java b/pav-server/src/main/java/com/palnet/biz/api/main/dash/service/MainDashService.java index d2f1ee9..e3500e1 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/main/dash/service/MainDashService.java +++ b/pav-server/src/main/java/com/palnet/biz/api/main/dash/service/MainDashService.java @@ -107,10 +107,7 @@ public class MainDashService { */ public List mainKacDashStcsDay(String yyyymm, String[] formatParam){ - List resultList = query.mainKacDashStcsDay(yyyymm, formatParam); - - - + List resultList = query.mainKacDashStcsDay(yyyymm, formatParam); return resultList; } @@ -128,27 +125,18 @@ public class MainDashService { public String[] paramCheck(String yyyymm) throws NumberFormatException{ String[] result = new String[2]; - String[] paramStrings = null; - - // 1. 연단위 검색 -> Parameter Null일 경우 - // 2. 월단위 검색 -> Parameter 2023등 연도만 있는경우 - // 3. 일단위 검색 -> Parameter 2023-09 등 월까지 있는경우 - // 이하 모든 데이터는 Exception 발생 - + yyyymm = yyyymm.trim(); + String[] paramStrings = yyyymm.split("-"); - switch (yyyymm.length()) { - // 2. 월단위 검색 -> Parameter 2023등 연도만 있는경우 - case 4: + switch (yyyymm.length()) { + case 4: // 2. 월단위 검색 -> Parameter 2023등 연도만 있는경우 Integer.parseInt(yyyymm.trim()); - - + result[0] = "%Y"; result[1] = "%m"; - break; - // 3. 일단위 검색 -> Parameter 2023-09 등 월까지 있는경우 - case 7: - paramStrings = yyyymm.split("-"); + break; + case 7: // 3. 일단위 검색 -> Parameter 2023-09 등 월까지 있는경우 if(paramStrings.length == 2){ for(String param : paramStrings){ @@ -161,29 +149,29 @@ public class MainDashService { throw new NumberFormatException(); } - break; - case 10: - paramStrings = yyyymm.split("-"); + break; + case 10: // 4. 일일단위 검색 -> Parameter 2023-09-01 등 한 날짜에 대한 검색 if(paramStrings.length == 3){ for(String param : paramStrings){ + Integer.parseInt(param.trim()); } result[0] = "%Y-%m-%d"; - result[1] = ""; + result[1] = "%d"; } else { throw new NumberFormatException(); } break; default: // 1. 연단위 검색 -> Parameter Null일 경우 + if(paramStrings.length > 0) throw new NumberFormatException(); result[0] = ""; result[1] = "%y"; break; } - return result; } diff --git a/pav-server/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java b/pav-server/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java index 7904102..65ad442 100644 --- a/pav-server/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java +++ b/pav-server/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java @@ -33,6 +33,7 @@ import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Repository; +import java.text.SimpleDateFormat; import java.time.Duration; import java.time.Instant; import java.util.ArrayList; @@ -1674,11 +1675,9 @@ public List listCntrlHstry(String id){ * 김포공항, 날짜별 통계 API * @param yyyymm * @return - */ + */ public List mainKacDashStcsDay(String yyyymm, String[] formatParam){ QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas; - - StringTemplate formattedDate = Expressions.stringTemplate( "DATE_FORMAT({0}, {1})" @@ -1690,23 +1689,32 @@ public List listCntrlHstry(String id){ , bas.cntrlStDt , ConstantImpl.create(formatParam[1])); - BooleanBuilder builder = new BooleanBuilder(); builder.and(bas.statusCd.eq("99")); - if(yyyymm != null && yyyymm.length() > 0) builder.and(formattedDate.eq(yyyymm)); - - log.info("builder -> {}", builder); + if(yyyymm != null && yyyymm.length() > 0) builder.and(formattedDate.eq(yyyymm)); - List result = query.select(Projections.bean(MainDashStcsModel.class , - formattedDate2.as("typeCd"), - bas.count().as("count") - )) + List result = query + .select( + Projections.bean( + MainDashStcsModel.class , + formattedDate2.as("typeCd"), + bas.count().as("count") + ) + ) .from(bas) .where(builder) .groupBy(formattedDate2) - .fetch(); + .fetch(); + + if(result.size() <= 0){ + + MainDashStcsModel node = new MainDashStcsModel(); + node.setCount(0); + node.setTypeCd("NoData"); + + result.add(node); + } - log.info("result -> {}", result); return result; } }