diff --git a/src/main/java/cokr/xit/adds/biz/nims/dao/BizNimsMapper.java b/src/main/java/cokr/xit/adds/biz/nims/dao/BizNimsMapper.java index b3f32e8..8efc576 100644 --- a/src/main/java/cokr/xit/adds/biz/nims/dao/BizNimsMapper.java +++ b/src/main/java/cokr/xit/adds/biz/nims/dao/BizNimsMapper.java @@ -8,6 +8,7 @@ import org.egovframe.rte.psl.dataaccess.mapper.Mapper; import cokr.xit.adds.biz.nims.model.BizNimsRequest; import cokr.xit.adds.biz.nims.model.BizNimsResponse; import cokr.xit.adds.inf.nims.model.NimsApiDto; +import cokr.xit.adds.inf.nims.model.NimsApiRequest; import cokr.xit.foundation.component.AbstractMapper; /** @@ -30,8 +31,10 @@ public interface BizNimsMapper extends AbstractMapper { //------------------------------------------------------------------------------------------------------ // NIMS API CALL //------------------------------------------------------------------------------------------------------ - int mergeBsshInfoSt(NimsApiDto.BsshInfoSt dto); - int mergeProductInfoKd(NimsApiDto.ProductInfoKd dto); + void mergeBsshInfoSt(NimsApiDto.BsshInfoSt dto); + List selectBsshInfos(NimsApiRequest.BsshInfoRequest dto); + void mergeProductInfoKd(NimsApiDto.ProductInfoKd dto); + List selectProductInfos(NimsApiRequest.ProductInfoRequest dto); // int mergeStorgeInfo(NimsApiDto.StorageInfo dto); //------------------------------------------------------------------------------------------------------ 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 5c39d96..3c734cd 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 @@ -66,6 +66,8 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe //------------------------------------------------------------------------------------------------------ /** *
+	 *     DB에서 먼저 조회(dbSkipYn = 'Y' 인 경우는 DB 조회 skip)
+	 *     -> 조회 결과가 없는 경우 API 조회
 	 *     업체정보 조회후 DB 저장
 	 *     조회 건수를 제한하기 위해 조회 조건 강제 - 업체명(3자 이상) 필수
 	 * @param dto NimsApiRequest.BsshInfoRequest
@@ -77,7 +79,14 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
 		if(!isEmpty(dto.getBn()) && dto.getBn().length() < 3) {
 			throw ApiCustomException.create("업체[사업자]명은 3자 이상 으로 조회해 주세요");
 		}
+
+		// DB 조회
 		List list = new ArrayList<>();
+		if("N".equals(dto.getDbSkipYn())) {
+			list = bizNimsMapper.selectBsshInfos(dto);
+			if (!isEmpty(list)) 	return list;
+		}
+
 		while(true) {
 			// 마약류취급자식별번호로 마약류취급자정보 조회
 			NimsApiResult.Response rslt = infNimsService.getBsshInfoSt(dto);
@@ -100,6 +109,8 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
 
 	/**
 	 * 
+	 *     DB에서 먼저 조회(dbSkipYn = 'Y' 인 경우는 DB 조회 skip)
+	 *     -> 조회 결과가 없는 경우 API 조회
 	 *     상품정보 조회후 DB 저장
 	 *     제조번호 조회 여부에 따라 제조번호, 일련번호, 유효기간 정보 목록 추가
 	 *     조회 건수를 제한하기 위해 조회 조건 강제 - 상품번호 또는 상품명(2자 이상) 필수
@@ -119,6 +130,14 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
 		}
 
 		List list = new ArrayList<>();
+		// DB 조회
+		if("N".equals(dto.getDbSkipYn())) {
+			list = bizNimsMapper.selectProductInfos(dto);
+			if (!isEmpty(list)){
+				if(isMnfSeqInfo)	productInfoaddMnfSeqs(list);
+				return list;
+			}
+		}
 		while(true) {
 			// 제품코드로 제품정보 조회
 			NimsApiResult.Response rslt = infNimsService.getProductInfoKd(dto);
@@ -130,10 +149,10 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
 				d.setRgtr(Constants.NIMS_API_USER_ID);
 				bizNimsMapper.mergeProductInfoKd(d);
 			}
-			list.addAll(curList);
 
 			// 제조 번호, 일련번호, 유효기간  정보 목록 추가
 			if(isMnfSeqInfo)	productInfoaddMnfSeqs(curList);
+			list.addAll(curList);
 
 			if(rslt.isEndYn()) break;
 			dto.setPg(String.valueOf(Integer.parseInt(dto.getPg()) + 1));
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 a15db23..536a74f 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
@@ -102,13 +102,27 @@ public class NimsApiRequest {
         String ymd = StringUtils.EMPTY;
 
         /**
+         * 
          * 조회범위2
          * 1:NK(취급승인)포함 - default
          * 2:NK(취급승인)제외
+         * 
*/ @Schema(requiredMode = REQUIRED, title = "조회범위2(1:NK(취급승인)포함 - default, 2:NK(취급승인)제외)", description = "조회범위2(1:NK(취급승인)포함 - default, 2:NK(취급승인)제외)", example = "1", allowableValues = {"1", "2"}) @Builder.Default String fg2 = "1"; + + /** + *
+         * DB 조회 skip 여부
+         * DB먼저 조회 하고 없는 경우 NIMS API 조회 호출
+         * true 인 경우 DB 조회 skip
+         * 
+ */ + @Schema(title = "DB 조회 skip 여부", description = "DB 조회 skip 여부(DB 조회 없이 NIMS API호출 하려면 Y)", example = "N") + @Builder.Default + //@JsonIgnore + private String dbSkipYn = "N"; } /** @@ -177,6 +191,18 @@ public class NimsApiRequest { @Schema(title = "제품명", description = "제품명", example = " ") @Builder.Default String pn = StringUtils.EMPTY; + + /** + *
+         * DB 조회 skip 여부
+         * DB먼저 조회 하고 없는 경우 NIMS API 조회 호출
+         * true 인 경우 DB 조회 skip
+         * 
+ */ + @Schema(title = "DB 조회 skip 여부", description = "DB 조회 skip 여부(DB 조회 없이 NIMS API호출 하려면 Y)", example = "N") + @Builder.Default + //@JsonIgnore + private String dbSkipYn = "N"; } @Schema(name = "DsuseRptInfoRequest", description = "폐기 보고 정보 조회 request") diff --git a/src/main/resources/sql/mapper/biz/nims-mysql-mapper.xml b/src/main/resources/sql/mapper/biz/nims-mysql-mapper.xml index c7a01cc..4f9d5fc 100644 --- a/src/main/resources/sql/mapper/biz/nims-mysql-mapper.xml +++ b/src/main/resources/sql/mapper/biz/nims-mysql-mapper.xml @@ -109,6 +109,64 @@ mdfr = #{rgtr} + + + @@ -260,16 +318,16 @@ LEFT JOIN tb_bssh_info tbi ON (tpi.bssh_cd = tbi.bssh_cd) WHERE tdmd.dscdmng_id = #{dscdmngId} - + AND tdmd.dscdmng_sn = #{dscdmngSn} - + AND tdmd.use_yn = #{useYn} - + AND tdmd.userId = #{userId} - + AND tdmd.usr_rpt_id_no = #{usrRptIdNo} @@ -310,10 +368,10 @@ rgtr FROM tb_dsuse_rpt_info WHERE usr_rpt_id_no = #{usrRptIdNo} - + AND use_yn = #{useYn} - + AND userId = #{userId} @@ -344,13 +402,13 @@ LEFT JOIN tb_bssh_info tbi ON (tpi.bssh_cd = tbi.bssh_cd) WHERE tdrid.usr_rpt_id_no = #{usrRptIdNo} - + AND tdrid.usr_rpt_ln_id_no = #{usrRptLnIdNo} - + AND tdrid.use_yn = #{useYn} - + AND tdrid.userId = #{userId}