From 97b8e131fea2519a4e32849786f79fa8419332e9 Mon Sep 17 00:00:00 2001 From: "Jonguk. Lim" Date: Mon, 8 Jul 2024 11:38:34 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=A0=9C=ED=92=88=EC=8B=9C=EB=A6=AC?= =?UTF-8?q?=EC=96=BC=20=EB=B2=88=ED=98=B8=EA=B2=80=EC=83=89=20=20=20=20=20?= =?UTF-8?q?=20->=20=EC=A0=9C=EC=A1=B0=EB=B2=88=ED=98=B8=20or=20=EC=8B=9C?= =?UTF-8?q?=EB=A6=AC=EC=96=BC=EB=B2=88=ED=98=B8=20=EA=B2=80=EC=83=89(0=20~?= =?UTF-8?q?=20299=EA=B0=9C=20=EA=B9=8C=EC=A7=80)=20=20=20=20=20=20->=20?= =?UTF-8?q?=EC=9C=84=20=EC=A1=B0=EA=B1=B4=EB=82=B4=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EC=9C=A0=ED=9A=A8=EA=B8=B0=EA=B0=84=20=EC=A1=B0=ED=9A=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nims/service/bean/BizNimsServiceBean.java | 28 +++++++++++-------- .../adds/inf/nims/model/NimsApiRequest.java | 2 +- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/main/java/cokr/xit/adds/biz/nims/service/bean/BizNimsServiceBean.java b/src/main/java/cokr/xit/adds/biz/nims/service/bean/BizNimsServiceBean.java index 0f3b585..6965790 100644 --- a/src/main/java/cokr/xit/adds/biz/nims/service/bean/BizNimsServiceBean.java +++ b/src/main/java/cokr/xit/adds/biz/nims/service/bean/BizNimsServiceBean.java @@ -201,29 +201,33 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe reqDto.setPg("1"); // 조회페이지 List list = new ArrayList<>(); - boolean isPrdValidDe = !isEmpty(reqDto.getPrdValidDe()); while (true) { NimsApiResult.Response rslt = infNimsService.getMnfSeqInfo(reqDto); List curList = rslt.getResult(); if (isEmpty(curList)) break; - - if(isPrdValidDe) { - for (NimsApiDto.MnfSeqInfo d : curList) { - if(!isEmpty(d.getPrdValidDe()) && d.getPrdValidDe().contains(reqDto.getPrdValidDe())){ - list.add(d); - } - } - }else{ - list.addAll(curList); - } + list.addAll(curList); // 데이타 조회 결과 마지막 페이지 이거나 100건 이상인 경우 종료 - if(rslt.isEndYn() || list.size() >= 100) break; + if(rslt.isEndYn() || list.size() >= 200) break; reqDto.setPg(String.valueOf(Integer.parseInt(reqDto.getPg()) + 1)); } + + // 유효기간을 기준으로 검색하면 시리얼조회건수가 많아(10000건이상인 경우등) 무한루프가 도는 것처럼 보여짐 + // 시리얼번호 및 제조번호 기준 검색후, 결과내에서 유효기간으로 필터링 하도록 처리 + boolean isPrdValidDe = !isEmpty(reqDto.getPrdValidDe()); + if(isPrdValidDe) { + List tempList = new ArrayList<>(); + for (NimsApiDto.MnfSeqInfo d : list) { + if(!isEmpty(d.getPrdValidDe()) && d.getPrdValidDe().contains(reqDto.getPrdValidDe())){ + tempList.add(d); + } + } + return tempList; + } + // 올림 차순 정렬 list.sort((a, b) -> { if (isEmpty(a.getPrdValidDe()) && isEmpty(b.getPrdValidDe())) diff --git a/src/main/java/cokr/xit/adds/inf/nims/model/NimsApiRequest.java b/src/main/java/cokr/xit/adds/inf/nims/model/NimsApiRequest.java index bd10753..0cd22ba 100644 --- a/src/main/java/cokr/xit/adds/inf/nims/model/NimsApiRequest.java +++ b/src/main/java/cokr/xit/adds/inf/nims/model/NimsApiRequest.java @@ -374,7 +374,7 @@ public class NimsApiRequest { * yyyyMMdd */ @Schema(title = "기준일자(yyyyMMdd-이후일자)", description = "기준일자(yyyyMMdd-이후일자)", example = " ") - @Pattern(regexp = "^$|"+Constants.DATE_REGX, message = "기준 일자는 8자리 입니다(yyyyMMdd)") + @Pattern(regexp = "^$|^\\d{4}((0[1-9])|(1[0-2]))(0[1-9]|[12]\\d|3[01])$", message = "기준 일자는 8자리 입니다(yyyyMMdd)") private String ymd; /**