typeRef) {
+ try {
+ return ObjectUtils.isNotEmpty(obj)? new JSON().getObjectMapper().convertValue(obj, typeRef) : null;
+ } catch (IllegalArgumentException e) {
+ //throw ApiCustomException.create(e.getLocalizedMessage());
+ return null;
+ }
+ }
+}
diff --git a/src/main/java/cokr/xit/adds/cmm/model/NimsApiRequest.java b/src/main/java/cokr/xit/adds/cmm/model/NimsApiRequest.java
new file mode 100644
index 0000000..90b4d5f
--- /dev/null
+++ b/src/main/java/cokr/xit/adds/cmm/model/NimsApiRequest.java
@@ -0,0 +1,346 @@
+package cokr.xit.adds.cmm.model;
+
+import org.apache.commons.lang3.StringUtils;
+
+import lombok.Data;
+
+/**
+ *
+ * description :
+ *
+ * packageName : cokr.xit.adds.inf.nims.model
+ * fileName : NimsApiRequest
+ * author : limju
+ * date : 2024-03-21
+ * ======================================================================
+ * 변경일 변경자 변경 내용
+ * ----------------------------------------------------------------------
+ * 2024-03-21 limju 최초 생성
+ *
+ *
+ */
+
+public class NimsApiRequest {
+ /**
+ * 마약류 취급자 정보 조회 request
+ */
+ @Data
+ public static class BsshInfoReq {
+
+ /**
+ * 인증키
+ */
+ private String k;
+
+ /**
+ * 조회범위
+ * 1-전체, 2-내거래처
+ */
+ private String fg;
+
+ /**
+ * 조회 페이지
+ */
+ private String pg;
+
+ /**
+ * 사업자 등록 번호
+ */
+ private String bi;
+
+ /**
+ * 요양기관번호
+ */
+ private String hp;
+
+ /**
+ * 업체명(like 검색)
+ */
+ private String bn;
+
+ /**
+ * 취급자식별번호
+ * 보고자의 마약류취급자 식별번호
+ */
+ private String bc;
+
+ /**
+ * 기준일자 이후
+ * yyyyMMdd
+ */
+ private String ymd;
+
+ /**
+ *
+ * 조회범위2
+ * 1:NK(취급승인)포함 - default
+ * 2:NK(취급승인)제외
+ *
+ */
+ private String fg2 = "1";
+
+ /**
+ *
+ * DB 조회 skip 여부
+ * DB먼저 조회 하고 없는 경우 NIMS API 조회 호출
+ * true 인 경우 DB 조회 skip
+ *
+ */
+ private String dbSkipYn = "N";
+
+ /**
+ *
+ * 업무상 필요에 의해 추가
+ *
+ */
+ private String userId;
+ }
+
+ /**
+ * 상품 정보 조회 request
+ */
+ @Data
+ public static class ProductInfoReq {
+ /**
+ * 인증키
+ */
+ private String k;
+
+ /**
+ * 조회범위
+ * 1-전체, 2-내거래품목, 3-청구코드매핑
+ */
+ private String fg;
+
+ /**
+ * 조회 페이지
+ */
+ private String pg;
+
+ /**
+ * 기준일자 이후
+ * yyyyMMdd
+ */
+ private String ymd;
+
+ /**
+ * 중점/일반 구분
+ * 1:중점
+ * 2:일반
+ */
+ private String fg2;
+
+ /**
+ * 제품코드
+ * 제품코드(like 검색)
+ * 조회범위(pg)가 3인 경우 청구 코드
+ */
+ private String p;
+
+ /**
+ * 제품명(like 검색)
+ */
+ private String pn;
+
+ /**
+ *
+ * DB 조회 skip 여부
+ * DB먼저 조회 하고 없는 경우 NIMS API 조회 호출
+ * true 인 경우 DB 조회 skip
+ * 업무상 필요에 의해 추가
+ *
+ */
+ private String dbSkipYn = "N";
+
+ /**
+ *
+ * 업무상 필요에 의해 추가
+ *
+ */
+ private String userId;
+ }
+
+ @Data
+ public static class DsuseRptInfoReq {
+ /**
+ * 인증키
+ */
+ private String k;
+
+ /**
+ * 조회기준일자(1-보고일,2-취급일)
+ * 1-보고일자 : 병의원에서 NIMS에 폐기 보고한 날짜 - 본 시스템에서는 사용하지 않음
+ * 2-취급일자
+ */
+ private String fg = "2";
+
+ /**
+ * 조회 페이지
+ */
+ private String pg;
+
+ /**
+ * 보고유형
+ * 빈값 : 전체
+ * 0: 신규, 1: 취소, 2: 변경
+ */
+ private String fg2;
+
+ /**
+ * 보고구분코드
+ * AAR - 폐기보고 고정
+ */
+ private String se = "AAR";
+
+ /**
+ * 조회 시작일(yyyyMMdd)
+ * 최대 1개월
+ */
+ private String sdt;
+
+ /**
+ * 조회 종료일(yyyyMMdd)
+ * 최대 1개월
+ */
+ private String edt;
+
+ /**
+ * 마약류 취급자 식별 번호
+ */
+ private String bc;
+
+ /**
+ * 업체명
+ */
+ private String bn;
+
+ /**
+ * 사용자 보고 식별 번호
+ */
+ private String ur;
+
+ /**
+ * 폐기 보고 상태
+ * "": 전체, 01: 확인, 02: 보류, 03: 정정, 04: 미처리
+ */
+ private String ps;
+
+ /**
+ *
+ * 관할관청기관코드
+ * 4050147 - 처인구보건소
+ * 4050148 - 기흥구보건소
+ * 4050149 - 수지구보건소
+ *
+ */
+ private String gc;
+
+ /**
+ *
+ * 업무상 필요에 의해 추가
+ *
+ */
+ private String userId;
+ }
+
+ /**
+ * 제품 일련 번호 정보 조회 request
+ */
+ @Data
+ public static class MnfSeqInfoReq {
+ /**
+ * 인증키
+ */
+ private String k;
+
+ /**
+ * 조회범위 : 실제는 동일
+ * 1-제조번호, 2-일련번호, 3-바코드/RFID
+ */
+ private String fg;
+
+ /**
+ * 조회 페이지
+ */
+ private String pg;
+
+ /**
+ * 제품코드
+ * 제품코드(like 검색)
+ * 조회범위(pg)가 3인 경우 청구 코드
+ */
+ private String p;
+
+
+ /**
+ * 기준일자 이후
+ * yyyyMMdd
+ */
+ private String ymd;
+
+ /**
+ * 제품코드 : like 검색 - 오류 -> 사용하지 말것
+ */
+ private String t = StringUtils.EMPTY;
+
+ /**
+ *
+ * 업무상 필요에 의해 추가
+ *
+ */
+ private String userId;
+ }
+
+ /**
+ * 관할 허가 관청 정보 조회 request
+ */
+ @Data
+ public static class JurisdictionGovInfoReq {
+ /**
+ * 인증키
+ */
+ private String k;
+
+ /**
+ * 조회범위
+ * 1-전체
+ */
+ private String fg;
+
+ /**
+ * 조회 페이지
+ */
+ private String pg;
+
+ /**
+ * 기관명
+ */
+ private String onm;
+
+ /**
+ * 기관 코드
+ */
+ private String ocd;
+
+ /**
+ * 주소
+ */
+ private String adr;
+
+ /**
+ *
+ * DB 조회 skip 여부
+ * DB먼저 조회 하고 없는 경우 NIMS API 조회 호출
+ * true 인 경우 DB 조회 skip
+ *
+ */
+ private String dbSkipYn = "N";
+
+ /**
+ *
+ * 업무상 필요에 의해 추가
+ *
+ */
+ private String userId;
+ }
+}
diff --git a/src/main/java/cokr/xit/adds/nims/web/AddsNimsController.java b/src/main/java/cokr/xit/adds/nims/web/AddsNimsController.java
index 87009d3..a874057 100644
--- a/src/main/java/cokr/xit/adds/nims/web/AddsNimsController.java
+++ b/src/main/java/cokr/xit/adds/nims/web/AddsNimsController.java
@@ -12,16 +12,23 @@ import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
+import net.minidev.json.JSONObject;
+import net.minidev.json.parser.ParseException;
+
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import cokr.xit.adds.cmm.model.ApiBaseResponse;
+import cokr.xit.adds.cmm.model.ApiUtil;
import cokr.xit.adds.cmm.model.DsuseMappingInfo;
import cokr.xit.adds.cmm.model.DsuseReceiptDtl;
import cokr.xit.adds.cmm.model.DsuseRsltInfo;
+import cokr.xit.adds.cmm.model.NimsApiRequest;
import cokr.xit.adds.cmmn.hwp.format.DisposeProcessDetails;
import cokr.xit.adds.cmmn.hwp.format.DisposeResultReport;
import cokr.xit.adds.nims.DsuseMgtDocQuery;
@@ -42,8 +49,6 @@ import cokr.xit.base.web.ApplicationController;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.foundation.data.JSON;
import cokr.xit.foundation.web.WebClient;
-import net.minidev.json.JSONObject;
-import net.minidev.json.parser.ParseException;
@Controller
@RequestMapping(
@@ -57,6 +62,12 @@ public class AddsNimsController extends ApplicationController {
@Value("${app.file.root.path}")
private String fileRootPath;
+ @Value("${app.inf.nims.api.bsshInfo}")
+ private String bsshInfoEndpoint;
+
+ @Value("${app.inf.nims.api.productAndseqInfo}")
+ private String productAndseqInfoEndpoint;
+
@Resource(name="defaultOgdpBean")
private DefaultOgdpBean defaultOgdpBean;
@@ -69,6 +80,7 @@ public class AddsNimsController extends ApplicationController {
@Resource(name="fileService")
private FileService fileService;
+ private JSON json = new JSON();
//-------------------------------------------------------------------------------------------------
// 신청서 접수
//-------------------------------------------------------------------------------------------------
@@ -470,8 +482,21 @@ public class AddsNimsController extends ApplicationController {
//-------------------------------------------------------------------------------------------------
//TODO : 서버통신으로 변경 할것
- @RequestMapping(name="마약류폐기 신청서 접수 조회", value="")
- public ModelAndView getbsshList(ProductQuery query) throws JsonProcessingException, ParseException {
+ @RequestMapping(value = "/getNimsProductInfoKdAndMnfSeqInfo.do", name="제품 & 시리얼번호 검색", produces = "application/json;charset=UTF-8")
+ public @ResponseBody ApiBaseResponse> getNimsProductInfoKdAndMnfSeqInfo(@ModelAttribute NimsApiRequest.ProductInfoReq dto) throws JsonProcessingException, ParseException {
+ String rslt = ApiUtil.callNimsApi(apiHost + productAndseqInfoEndpoint, dto);
+ return json.parse(rslt, new TypeReference<>() {});
+ }
+
+ @RequestMapping(value = "/getNimsBsshInfoSt.do", name="업체(마약류취급자) 검색", produces = "application/json;charset=UTF-8")
+ public @ResponseBody ApiBaseResponse> getNimsBsshInfoSt(@ModelAttribute NimsApiRequest.BsshInfoReq dto) throws JsonProcessingException, ParseException {
+ String rslt = ApiUtil.callNimsApi(apiHost + bsshInfoEndpoint, dto);
+ return json.parse(rslt, new TypeReference<>() {});
+ }
+
+ //TODO : 서버통신으로 변경 할것
+ @RequestMapping(name="업체(마약류취급자) 검색", value="")
+ public ModelAndView getbsshList2(ProductQuery query) throws JsonProcessingException, ParseException {
ModelAndView mav = new ModelAndView();
JSON json = new JSON();
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index b6d47fd..1876d98 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -52,6 +52,22 @@ app:
file:
root:
path: ${app.data.root.path}/files/
+ inf:
+ nims:
+ api:
+ # 업체(마약류 취급자) 조회
+ bsshInfo: /api/biz/nims/v1/getNimsBsshInfoSt
+ # 제품 조회
+ productInfo: /api/biz/nims/v1/getNimsProductInfoKd
+ # 제품 & 시리얼 번호 조회
+ productAndseqInfo: /api/biz/nims/v1/getNimsProductInfoKdAndMnfSeqInfo
+ # 제품 시리얼 번호 조회
+ seqInfo: /api/biz/nims/v1/getNimsMnfSeqInfo
+ # 관할관청 조회
+ jurisdictionGovInfo: /api/biz/nims/v1/getNimsJurisdictionGovInfo
+ # 폐기보고 조회
+ nimsDsuseRptInfo: /api/biz/nims/v1/getNimsDsuseRptInfo
+
logging:
file:
diff --git a/src/main/webapp/WEB-INF/jsp/adds/nims/bssh-popup.jsp b/src/main/webapp/WEB-INF/jsp/adds/nims/bssh-popup.jsp
index 06cbd8f..c9754a1 100644
--- a/src/main/webapp/WEB-INF/jsp/adds/nims/bssh-popup.jsp
+++ b/src/main/webapp/WEB-INF/jsp/adds/nims/bssh-popup.jsp
@@ -39,13 +39,13 @@
- 취급자번호 |
+ 취급자번호 |
취급업체명 |
업종명 |
- 대표자 |
- 허가번호 |
- 구분 |
- 담당자명 |
+ 대표자 |
+ 허가번호 |
+ 담당자명 |
+ 구분 |
@@ -58,8 +58,8 @@
{indutyNm} |
{rprsntvNm} |
{prmisnNo} |
- {hdntCd} |
{chrgNm} |
+ {hdntNm} |
@@ -98,7 +98,8 @@
**************************************************************************/
$P.control = new DatasetControl({
urls : {
- load : '',
+ <%--load : '',--%>
+ load : wctx.url("/adds/nims/getNimsBsshInfoSt.do"),
}
, prefix: "bsshPopup"
, prefixName: "마약류 취급업체 조회"
diff --git a/src/main/webapp/WEB-INF/jsp/adds/nims/product-popup.jsp b/src/main/webapp/WEB-INF/jsp/adds/nims/product-popup.jsp
index 1bbf022..24b4c7a 100644
--- a/src/main/webapp/WEB-INF/jsp/adds/nims/product-popup.jsp
+++ b/src/main/webapp/WEB-INF/jsp/adds/nims/product-popup.jsp
@@ -105,7 +105,8 @@
**************************************************************************/
$P.control = new DatasetControl({
urls : {
- load : '',
+ load : wctx.url("/adds/nims/getNimsProductInfoKdAndMnfSeqInfo.do"),
+ <%--load : '',--%>
}
, prefix: "productMain"
, prefixName: "마약류 제품 조회"