From 8ff4808c8aff072b6af612d0f7ac5f9866b42d9e Mon Sep 17 00:00:00 2001 From: "Jonguk. Lim" Date: Fri, 31 May 2024 15:24:48 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=ED=8F=90=EA=B8=B0=EB=B3=B4=EA=B3=A0API?= =?UTF-8?q?=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adds/biz/nims/model/BizNimsRequest.java | 12 ++-- .../adds/biz/nims/model/BizNimsResponse.java | 4 +- .../nims/service/bean/BizNimsServiceBean.java | 15 +++-- .../adds/biz/nims/web/BizNimsController.java | 1 - .../xit/adds/inf/nims/model/NimsApiDto.java | 39 ++++++++----- .../adds/inf/nims/model/NimsApiRequest.java | 56 +++++++++---------- .../nims/service/bean/InfNimsServiceBean.java | 1 + src/main/resources/application.yml | 1 - .../resources/config/application-nims.yml | 23 +++++++- .../sql/mapper/biz/nims-mysql-mapper.xml | 15 +++-- 10 files changed, 96 insertions(+), 71 deletions(-) diff --git a/src/main/java/cokr/xit/adds/biz/nims/model/BizNimsRequest.java b/src/main/java/cokr/xit/adds/biz/nims/model/BizNimsRequest.java index 785d140..5e88683 100644 --- a/src/main/java/cokr/xit/adds/biz/nims/model/BizNimsRequest.java +++ b/src/main/java/cokr/xit/adds/biz/nims/model/BizNimsRequest.java @@ -257,12 +257,12 @@ public class BizNimsRequest { @Pattern(regexp = Constants.DATE_REGX, message = "취급일자를 정확히 입력해 주세요(yyyyMMdd)") private String hdrDe; - /** - * 보고일자 - */ - @Schema(title = "보고일자", example = " ") - @Pattern(regexp = Constants.DATE_REGX, message = "보고일자를 정확히 입력해 주세요(yyyyMMdd)") - private String rptDe; + // /** + // * 보고일자 + // */ + // @Schema(title = "보고일자", example = " ") + // @Pattern(regexp = Constants.DATE_REGX, message = "보고일자를 정확히 입력해 주세요(yyyyMMdd)") + // private String rptDe; /** *
diff --git a/src/main/java/cokr/xit/adds/biz/nims/model/BizNimsResponse.java b/src/main/java/cokr/xit/adds/biz/nims/model/BizNimsResponse.java
index 1749edc..795a511 100644
--- a/src/main/java/cokr/xit/adds/biz/nims/model/BizNimsResponse.java
+++ b/src/main/java/cokr/xit/adds/biz/nims/model/BizNimsResponse.java
@@ -86,12 +86,12 @@ public class BizNimsResponse {
 		private String bsshNm;
 
 		/**
-		 * 최소유통단위
+		 * 최소유통단위: 폐기보고의 minDistbUnit
 		 */
 		private String stdPackngStleNm;
 
 		/**
-		 * 낱개단위명
+		 * 낱개단위명 : 폐기보고의 pceUnit
 		 */
 		private String pceCoUnitNm;
 	}
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 6059a3f..5c32a82 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
@@ -256,7 +256,7 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
 
 		Map apiInfInfo = getApiInfInfo(reqDto.getUserId());
 		reqDto.setK(apiInfInfo.get("apiKey"));
-		reqDto.setFg4(apiInfInfo.get("deptCd"));	// 관할관청코드
+		reqDto.setGc(apiInfInfo.get("deptCd"));	// 관할관청코드
 
 		while(true) {
 			NimsApiResult.Response rslt = infNimsService.getDsuseRptInfo(reqDto);
@@ -548,15 +548,14 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
 
 		NimsApiRequest.DsuseRptInfoReq rptDto = NimsApiRequest.DsuseRptInfoReq.builder()
 			.k(apiInfInfo.get("apiKey"))
-			.fg("1")
+			.fg("2")	// 조회기준일자 : 1-보고일자, 2-취급일자
 			.pg("1")
-			.fg2("2")
-			.se("AAR")
-			.fg3("1")  // 조회기준일자 : 1-보고일자, 2-취급일자
-			.sdt("20220101")
-			.edt("20220131")
+			.fg2("")	// 보고 유형: ""- 전체, 0-신규, 1-취소, 2-변경
+			.se("AAR")	// 보고구분: AAR-폐기
+			.sdt(reqDto.getHdrDe())
+			.edt(reqDto.getHdrDe())
 			.bc(reqDto.getBsshCd())
-			.fg4(apiInfInfo.get("deptCd"))
+			.gc(apiInfInfo.get("deptCd"))
 			.build();
 
 		// 1. GET 폐기보고 데이타 목록 - NIMS API 호출
diff --git a/src/main/java/cokr/xit/adds/biz/nims/web/BizNimsController.java b/src/main/java/cokr/xit/adds/biz/nims/web/BizNimsController.java
index 1b17f70..70208bc 100644
--- a/src/main/java/cokr/xit/adds/biz/nims/web/BizNimsController.java
+++ b/src/main/java/cokr/xit/adds/biz/nims/web/BizNimsController.java
@@ -152,7 +152,6 @@ public class BizNimsController {
                    "bsshCd": "H00008333",
                    "rndDtlRptCnt": 2,
                    "hdrDe": "20240301",
-                   "rptDe": "20240305",
                    "dsuseSeCd": "1",
                    "dsusePrvCd": "04",
                    "dsuseMthCd": "3",
diff --git a/src/main/java/cokr/xit/adds/inf/nims/model/NimsApiDto.java b/src/main/java/cokr/xit/adds/inf/nims/model/NimsApiDto.java
index 3995888..ea7b764 100644
--- a/src/main/java/cokr/xit/adds/inf/nims/model/NimsApiDto.java
+++ b/src/main/java/cokr/xit/adds/inf/nims/model/NimsApiDto.java
@@ -393,6 +393,12 @@ public class NimsApiDto {
         @JsonAlias("STATUS")
         private String status;
 
+        /**
+         * 처리 일자
+         */
+        @JsonAlias("DSUSE_PROCESS_DE")
+        private String dsuseProcessDe;
+
         /**
          * 원사용자보고식별번호
          */
@@ -470,7 +476,6 @@ public class NimsApiDto {
                 String rptInfo = String.join("",
                     this.bsshCd,            // 마약류취급자식별번호
                     this.hdrDe,                         // 취급일자
-                    this.rptDe,                         // 보고일자
                     this.dsuseSeCd,                     // 폐기구분코드
                     this.dsusePrvCd,                    // 폐기사유코드
                     this.dsuseMthCd,                    // 폐기방법코드
@@ -480,7 +485,6 @@ public class NimsApiDto {
                 String mgtInfo = String.join("",
                     mgtDto.getBsshCd(),                         // 마약류취급자식별번호
                     mgtDto.getHdrDe(),                          // 취급일자
-                    mgtDto.getRptDe(),                          // 보고일자
                     mgtDto.getDsuseSeCd(),                      // 폐기구분코드
                     mgtDto.getDsusePrvCd(),                     // 폐기사유코드
                     mgtDto.getDsuseMthCd(),                     // 폐기방법코드
@@ -494,9 +498,9 @@ public class NimsApiDto {
                         for (DsuseRptInfoDtl rptDtl : this.dsuseRptInfoDtls) {
                             for (BizNimsRequest.DsuseMgtDtl mgtDtl : mgtDto.getDsuseMgtDtls()) {
                                 if (rptDtl.getPrductCd().equals(mgtDtl.getPrductCd())
-                                    // && rptDtl.getMnfNo().equals(mgtDtl.getMnfNo())
-                                    // && rptDtl.getPrdValidDe().equals(mgtDtl.getPrdValidDe())
-                                    // && rptDtl.getMnfSeq().equals(mgtDtl.getMnfSeq())
+                                    && rptDtl.getMnfNo().equals(mgtDtl.getMnfNo())
+                                    && rptDtl.getPrdValidDe().equals(mgtDtl.getPrdValidDe())
+                                    && rptDtl.getMnfSeq().equals(mgtDtl.getMnfSeq())
                                     && rptDtl.getDsuseQy().equals(mgtDtl.getDsuseQy())) {
                                     mgtDtl.setValidYn("Y");
                                     break;
@@ -557,9 +561,9 @@ public class NimsApiDto {
                         for (DsuseRptInfoDtl rptDtl : this.dsuseRptInfoDtls) {
                             for (BizNimsRequest.DsuseMgtDtl mgtDtl : mgtDto.getDsuseMgtDtls()) {
                                 if (rptDtl.getPrductCd().equals(mgtDtl.getPrductCd())
-                                    // && rptDtl.getMnfNo().equals(mgtDtl.getMnfNo())
-                                    // && rptDtl.getPrdValidDe().equals(mgtDtl.getPrdValidDe())
-                                    // && rptDtl.getMnfSeq().equals(mgtDtl.getMnfSeq())
+                                    && rptDtl.getMnfNo().equals(mgtDtl.getMnfNo())
+                                    && rptDtl.getPrdValidDe().equals(mgtDtl.getPrdValidDe())
+                                    && rptDtl.getMnfSeq().equals(mgtDtl.getMnfSeq())
                                     && rptDtl.getDsuseQy().equals(mgtDtl.getDsuseQy())) {
                                     mgtDtl.setValidYn("Y");
                                     break;
@@ -616,12 +620,24 @@ public class NimsApiDto {
         @JsonAlias("MIN_DISTB_QY")
         private Integer minDistbQy;
 
+        /**
+         * 최소 유통 단위
+         */
+        @JsonAlias("MIN_DISTB_UNIT")
+        private String minDistbUnit;
+
         /**
          * 낱개 단위 수량
          */
         @JsonAlias("PCE_QY")
         private Integer pceQy;
 
+        /**
+         * 낱개 단위
+         */
+        @JsonAlias("PCE_UNIT")
+        private String pceUnit;
+
         /**
          * 제조 번호
          */
@@ -640,13 +656,6 @@ public class NimsApiDto {
         @JsonAlias("MNF_SEQ")
         private String mnfSeq;
 
-        /**
-         * 이동 유형 코드
-         * 1102: 재고차감, 1170: 재고미차감
-         */
-        @JsonAlias("MVMN_TY_CD")
-        private String mvmnTyCd;
-
         /**
          * 폐기 수량
          */
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 b7b8fde..dec4995 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
@@ -236,13 +236,14 @@ public class NimsApiRequest {
         String k;
 
         /**
-         * 조회범위
-         * 1-취소제외(신규, 변경), 2-취소포함(신규,변경,취소)
+         * 조회기준일자(1-보고일,2-취급일)
+         * 1-보고일자 : 병의원에서 NIMS에 폐기 보고한 날짜 - 본 시스템에서는 사용하지 않음
+         * 2-취급일자
          */
-        @Schema(requiredMode = REQUIRED, title = "조회범위(1-취소제외(신규,변경), 2-취소포함)", description = "조회범위(1-취소제외(신규,변경), 2-취소포함)", example = "1", allowableValues = {"1", "2"})
-        @Pattern(regexp = "[12]", message = "조회범위는 필수 입니다(1-취소제외(신규,변경), 2-취소포함)")
+        @Schema(requiredMode = REQUIRED, title = "조회기준일자(1-보고일,2-취급일)", description = "조회기준일자(1-보고일,2-취급일)", example = "2", allowableValues = {"1", "2"})
+        @Pattern(regexp = "[12]", message = "조회기준일자는 필수 입니다(1-보고일,2-취급일")
         @Builder.Default
-        String fg = "1";
+        String fg = "2";
 
         /**
          * 조회 페이지
@@ -252,34 +253,23 @@ public class NimsApiRequest {
         String pg;
 
         /**
-         * 상태
-         * 1:정상
-         * 2:전체(변경, 취소 포함)
+         * 보고유형
+         * 빈값 : 전체
+         * 0: 신규, 1: 취소, 2: 변경
          */
-        @Schema(title = "상태(1:정상, 2:전체(정상,변경,취소))", description = "상태(1:정상, 2:전체(정상,변경,취소))", example = "1", allowableValues = {"1", "2"})
-        @Pattern(regexp = "[12]", message = "상태는 필수 입니다(상태(1:정상, 2:전체(정상,변경,취소))")
-        @Builder.Default
-        String fg2 = "1";
+        @Schema(title = "보고유형('': 전체, 0:신규, 1:취소, 2:변경)", description = "보고유형('': 전체, 0:신규, 1:취소, 2:변경)", example = " ", allowableValues = {"", "0", "1", "2"})
+        @Pattern(regexp = "^$|[012]", message = "보고유형 값을 확인해 주세요('': 전체, 0:신규, 1:취소, 2:변경)")
+        String fg2;
 
         /**
          * 보고구분코드
-         * AAR - 폐기보고
+         * AAR - 폐기보고 고정
          */
         @Schema(title = "보고 구분 코드(AAR-폐기보고)", description = "보고 구분 코드(AAR-폐기보고)", example = "AAR")
         @Pattern(regexp = "[A-Z]{3}", message = "보고 구분 코드는 필수 입니다(AAR-폐기보고)")
         @Builder.Default
         String se = "AAR";
 
-        /**
-         * 조회 기준 일자
-         * 1:보고 일자
-         * 2:취급 일자
-         */
-        @Schema(title = "조회 기준 일자(1:보고 일자, 2:취급 일자)", description = "조회 기준 일자(1:보고 일자, 2:취급 일자)", example = "1", allowableValues = {"1", "2"})
-        @Pattern(regexp = "[12]", message = "조회 기준 일자는 필수 입니다(1:보고 일자, 2:취급 일자)")
-        @Builder.Default
-        String fg3 = "1";
-
         /**
          * 조회 시작일(yyyyMMdd)
          * 최대 1개월
@@ -315,20 +305,24 @@ public class NimsApiRequest {
         String ur;
 
         /**
-         * FIXME : 속성명 및 상태값 확정 필요
-         * 폐기 보고 진행 상태
-         * 0: 전체, 1: 미처리, 2: 처리중, 3: 완료
+         * 폐기 보고 상태
+         * 01: 확인, 02: 보류, 03: 정정, 04: 미처리
          */
-        @Schema(title = "폐기 보고 진행 상태", description = "폐기 보고 진행 상태", example = " ", allowableValues = {"0", "1", "2", "3"})
+        @Schema(title = "상태", description = "상태", example = " ", allowableValues = {"01", "02", "03", "04"})
+        @Pattern(regexp = "^$|0[1-4]", message = "상태[폐기보고] 값을 확인해 주세요('': 전체, 01:확인, 02:보류, 03:정정, 04:미처리)")
         String ps;
 
         /**
-         * FIXME : 속성명 확정 필요
+         * 
+         * 관할관청기관코드
+         * 4050147 - 처인구보건소
+         * 4050148 - 기흥구보건소
          * 4050149 - 수지구보건소
+         * 
*/ - @Schema(title = "관할관청기관코드", description = "관할관청기관코드", example = "4050149") - @NotEmpty(message = "관할 관청 기관 코드는 필수 입니다") - String fg4; + @Schema(requiredMode = REQUIRED, title = "관할관청기관코드", description = "관할관청기관코드", example = "4050149") + @Pattern(regexp = "[0-9]{7}", message = "관할 관청 기관 코드는 필수 입니다(7자리)") + String gc; /** *
diff --git a/src/main/java/cokr/xit/adds/inf/nims/service/bean/InfNimsServiceBean.java b/src/main/java/cokr/xit/adds/inf/nims/service/bean/InfNimsServiceBean.java
index 76d7e2a..7f96c95 100644
--- a/src/main/java/cokr/xit/adds/inf/nims/service/bean/InfNimsServiceBean.java
+++ b/src/main/java/cokr/xit/adds/inf/nims/service/bean/InfNimsServiceBean.java
@@ -145,6 +145,7 @@ public class InfNimsServiceBean extends AbstractServiceBean implements InfNimsSe
 		ApiUtil.checkYmdError(dto.getSdt(), "sdt");
 		ApiUtil.checkYmdError(dto.getEdt(), "edt");
 
+		// FIXME: API 호출 시 주석 해제
 		//String rslt = ApiUtil.callNimsApi(nimsUrl + reportinfo, dto);
 		//NimsApiResult result = json.parse(rslt, new TypeReference<>() {});
 		//return result.getResponse();
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index a47380b..537a97d 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -150,7 +150,6 @@ app:
   cors:
     allowed-origins: http://localhost:9077
   swagger:
-    url: 211.
     desc: 사고마약류폐기지원시스템
   log:
     parameter-enabled: true
diff --git a/src/main/resources/config/application-nims.yml b/src/main/resources/config/application-nims.yml
index 9bffde9..d1ae4d2 100644
--- a/src/main/resources/config/application-nims.yml
+++ b/src/main/resources/config/application-nims.yml
@@ -1,7 +1,6 @@
 app:
   inf:
     nims:
-      url: https://test.nims.or.kr
       api:
         bsshinfoStV1: /api/bsshinfo_st_v1.do
         productinfoKd: /api/productinfo_kd.do
@@ -14,3 +13,25 @@ app:
       api-key: 0fTkYnZU6XjaAPAp6GzKW9Q6fYq8iaoSH9wKUZwz2PBjRXGM04aUgtO3a61xYGjL8nFZn4fjLGS9XErhMSXq%2Bw%3D%3D
       api:
         drugPrdtMcpnDtlInq: /1471000/DrugPrdtPrmsnInfoService05/getDrugPrdtMcpnDtlInq04
+
+---
+spring:
+  config:
+    activate:
+      on-profile: local
+
+app:
+  inf:
+    nims:
+      url: https://test.nims.or.kr
+
+---
+spring:
+  config:
+    activate:
+      on-profile: prod
+
+app:
+  inf:
+    nims:
+      url: https://www.nims.or.kr
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 963cd27..8619b3a 100644
--- a/src/main/resources/sql/mapper/biz/nims-mysql-mapper.xml
+++ b/src/main/resources/sql/mapper/biz/nims-mysql-mapper.xml
@@ -309,7 +309,6 @@
             bssh_cd,                /* 마약류취급자식별ID */
             rnd_dtl_rpt_cnt,        /* 수불상세보고수 */
             hdr_de,                 /* 취급일자 */
-            rpt_de,                 /* 보고일자 */
             dsuse_se_cd,            /* 폐기구분코드 */
             dsuse_prv_cd,           /* 폐기사유코드 */
             dsuse_mth_cd,           /* 폐기방법코드 */
@@ -326,7 +325,6 @@
             #{bsshCd},
             #{rndDtlRptCnt},
             #{hdrDe},
-            #{rptDe},
             #{dsuseSeCd},
             #{dsusePrvCd},
             #{dsuseMthCd},
@@ -404,7 +402,6 @@
                tdm.bssh_cd,             /** 마약류취급자식별번호 */
                tdm.rnd_dtl_rpt_cnt,     /** 수불상세보고수 */
                tdm.hdr_de,              /** 취급일자 */
-               tdm.rpt_de,              /** 보고일자 */
                tdm.dsuse_se_cd,         /** 폐기구분코드 */
                tdm.dsuse_prv_cd,        /** 폐기사유코드 */
                tdm.dsuse_mth_cd,        /** 폐기방법코드 */
@@ -531,6 +528,7 @@
                dsuse_loc,           /* 폐기장소 */
                dsuse_de,            /* 폐기일자 */
                status,              /* 상태 */
+               dsuse_process_de,    /* 폐기처리일자 */
                org_usr_rpt_id_no,   /* 원본사용자보고식별번호 */
                dept_cd,             /* 부서코드 */
                use_yn,
@@ -553,7 +551,9 @@
                tdrid.prduct_cd,          /* 제품코드 */
                tdrid.prduct_nm,          /* 제품명 */
                tdrid.min_distb_qy,       /* 최소유통단위수량 */
+               tdrid.min_distb_unit_nm,  /* 최소유통단위명 */
                tdrid.pce_qy,             /* 낱개단위수량 */
+               tdrid.pce_unit,           /* 낱개단위명 */
                tdrid.mnf_no,             /* 제조번호 */
                tdrid.prd_valid_de,       /* 제품유효기한일자 */
                tdrid.mnf_seq,            /* 제품일련번호 */
@@ -601,6 +601,7 @@
             dsuse_loc,              /* 폐기장소 */
             dsuse_de,               /* 폐기일자 */
             status,                 /* 상태 */
+            dsuse_process_de,       /* 폐기처리일자 */
             org_usr_rpt_id_no,      /* 원본사용자보고식별번호 */
             dept_cd,                /* 부서코드 */
             use_yn,
@@ -622,6 +623,7 @@
             #{dsuseLoc},
             #{dsuseDe},
             #{status},
+            #{dsuseProcessDe},
             #{orgUsrRptIdNo},
             (SELECT dept_cd FROM tb_user WHERE user_id = #{userId}),
             IF(#{rptTyCd} = '1', 'N', 'Y'),
@@ -638,7 +640,9 @@
             prduct_cd,          /* 제품코드 */
             prduct_nm,          /* 제품명 */
             min_distb_qy,       /* 최소유통단위수량 */
+            min_distb_unit,     /* 최소유통단위명 */
             pce_qy,             /* 낱개단위수량 */
+            pce_unit,           /* 낱개단위명 */
             mnf_no,             /* 제조번호 */
             prd_valid_de,       /* 제품유효기한일자 */
             mnf_seq,            /* 제품일련번호 */
@@ -652,7 +656,9 @@
             #{prductCd},
             #{prductNm},
             #{minDistbQy},
+            #{minDistbUnit},
             #{pceQy},
+            #{pceUnit},
             #{mnfNo},
             #{prdValidDe},
             #{mnfSeq},
@@ -691,9 +697,6 @@
           FROM tb_dsuse_rpt_info
          WHERE usr_rpt_id_no = #{refUsrRptIdNo}
     
-
-
-