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 89b1240..11c25c3 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 @@ -31,8 +31,8 @@ public interface BizNimsMapper extends AbstractMapper { // NIMS API CALL //------------------------------------------------------------------------------------------------------ int mergeBsshInfoSt(NimsApiDto.BsshInfoSt dto); - int mergeProductInfoKd(NimsApiDto.ProductInfoKd dto); - int mergeStorgeInfo(NimsApiDto.StorageInfo dto); + // int mergeProductInfoKd(NimsApiDto.ProductInfoKd dto); + // int mergeStorgeInfo(NimsApiDto.StorageInfo dto); //------------------------------------------------------------------------------------------------------ // NIMS BIZ diff --git a/src/main/java/cokr/xit/adds/biz/nims/model/BizNimsAarDto.java b/src/main/java/cokr/xit/adds/biz/nims/model/BizNimsAarDto.java index 1b6ccca..654678c 100644 --- a/src/main/java/cokr/xit/adds/biz/nims/model/BizNimsAarDto.java +++ b/src/main/java/cokr/xit/adds/biz/nims/model/BizNimsAarDto.java @@ -1,262 +1,262 @@ -package cokr.xit.adds.biz.nims.model; - -import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.*; - -import java.util.ArrayList; -import java.util.List; - -import javax.validation.Valid; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.Pattern; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; - -import cokr.xit.adds.core.Constants; -import cokr.xit.adds.core.model.AuditDto; -import cokr.xit.adds.inf.nims.model.NimsApiDto; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import lombok.experimental.SuperBuilder; - -/** - *
- * description : - * - * author : limju - * date : 2024-04-08 - * ====================================================================== - * 변경일 변경자 변경 내용 - * ---------------------------------------------------------------------- - * 2024-04-08 limju 최초 생성 - * - *- */ -public class BizNimsAarDto { - - /** - * 마약류 연계보고 Header request - */ - @Schema(name = "AarHeader", description = "마약류 연계보고 Header DTO") - @Getter - @NoArgsConstructor - @AllArgsConstructor - @SuperBuilder - public static class AarHeader extends AuditDto { - @Setter - @Schema(title = "폐기관리ID", description = "폐기관리ID", example = " ") - private String dscdmngId; - - @Setter - @Schema(requiredMode = REQUIRED, title = "보고자식별ID", description = "보고자식별ID", example = " ") - @NotEmpty(message = "보고자식별ID 필수 입니다") - private String uid; - - @Setter - @Schema(requiredMode = REQUIRED, title = "소프트웨어ID", example = " ") - @NotEmpty(message = "소프트웨어ID 필수 입니다") - private String swId; - - @Schema(requiredMode = AUTO, title = "수불비고", example = " ") - private String rndRmk; - - @Schema(requiredMode = REQUIRED, title = "취급일자", example = " ") - @Pattern(regexp = Constants.DATE_REGX, message = "취급일자 필수 입니다(8자리-yyyyMMdd)") - private String hdrDe; - - @Schema(requiredMode = REQUIRED, title = "마약류취급자식별번호", example = " ") - @NotEmpty(message = "마약류 취급자 식별번호는 필수 입니다") - private String bsshCd; - - @Schema(requiredMode = REQUIRED, title = "보고구분코드", example = "AAR") - @NotEmpty(message = "보고 구분 코드는 필수 입니다(폐기-AAR)") - @Builder.Default - private String rptSeCd = "AAR"; - - @Schema(requiredMode = REQUIRED, title = "사용자보고식별번호", example = " ") - @NotEmpty(message = "사용자 보고 식별번호는 필수 입니다") - private String usrRptIdNo; - - @Schema(requiredMode = AUTO, title = "참조사용자보고식별번호(변경|취소시 필수)", example = " ") - //@NotEmpty(message = "사용자 보고 식별번호는 필수 입니다") - private String refUsrRptIdNo; - - @Schema(requiredMode = REQUIRED, title = "보고유형코드", example = " ", allowableValues = {"0", "1", "2"}) - @Pattern(regexp = "[012]", message = "보고 유형 코드는 필수 입니다(0-신규, 1-취소, 2-변경)") - private String rptTyCd; - - @Schema(requiredMode = AUTO, title = "비고(변경 및 취소시 필수-사유 기재)", example = " ") - private String rmk; - - @Schema(requiredMode = REQUIRED, title = "보고자명", example = " ") - @NotEmpty(message = "보고자 이름은 필수 입니다") - private String rptrNm; - - @Schema(requiredMode = REQUIRED, title = "보고자업체명", example = " ") - @NotEmpty(message = "보고자 업체명은 필수 입니다") - private String rptrEntrpsNm; - - @Schema(requiredMode = REQUIRED, title = "담당자명", example = " ") - @NotEmpty(message = "담당자 이름은 필수 입니다") - private String chrgNm; - - @Schema(requiredMode = REQUIRED, title = "담당자 전화번호", example = " ") - @Pattern(regexp = Constants.TEL_REGX, message = "담당자 전화번호는 필수 입니다") - private String chrgTelNo; - - @Schema(requiredMode = REQUIRED, title = "담당자 휴대폰 번호", example = " ") - @Pattern(regexp = Constants.PHONE_REGX, message = "담당자 휴대폰 번호는 필수 입니다") - private String chrgMpNo; - - @Schema(requiredMode = REQUIRED, title = "수불 상세 보고수", example = " ") - @NotEmpty(message = "수불 상세 보고수는 필수 입니다") - private String rndDtlRptCnt; - - @Schema(requiredMode = REQUIRED, title = "폐기 구분 코드", example = " ", allowableValues = {"1", "2", "4"}) - @Pattern(regexp = "[124]", message = "폐기 구분 코드는 필수 입니다(1-보건소폐기, 2-공무원임회, 4-도난/분실/재해 발생 사고마약류)") - private String dsuseSeCd; - - /** - *
- * 폐기 사유 코드 - * - * 01-파손, 02-변질,부패, 03-유효기간 또는 사용기한 경과 - * 04-유효 기간 임박, 05-사용 중단, 07-폐업, 08-환자 반납 - * 09-기타, 12-제조 공정중 폐기물 - *- */ - @Schema(requiredMode = REQUIRED, title = "폐기 사유 코드", example = " ", allowableValues = {"01", "02", "03", "04", "05", "07", "08", "09", "12"}) - @Pattern(regexp = "0[1-57-9]|12", message = "폐기 사유 코드는 필수 입니다(01~05, 07~09, 12)") - private String dsusePrvCd; - - @Schema(requiredMode = REQUIRED, title = "폐기 방법 코드", example = " ", allowableValues = {"1", "2", "3", "4", "5", "6", "7", "8", "9"}) - @Pattern(regexp = "[1-9]", message = "폐기 방법 코드는 필수 입니다(1~9)") - private String dsuseMthCd; - - @Schema(requiredMode = REQUIRED, title = "폐기 장소", example = " ") - @NotEmpty(message = "폐기 장소는 필수 입니다") - private String dsuseLoc; - - @Schema(requiredMode = REQUIRED, title = "폐기 일자", example = " ") - @Pattern(regexp = Constants.CUR_DATE_REGX, message = "폐기 일자는 필수 입니다(8자리-yyyyMMdd)") - private String dsuseDe; - - @Setter - @Schema(requiredMode = REQUIRED, title = "폐기 관할 행정 기관 코드", example = " ") - @NotEmpty(message = "폐기 관할 행정 기관 코드는 필수 입니다") - private String dsuseInsttCd; - - @Schema(requiredMode = REQUIRED, title = "첨부 파일 건수", example = " ") - @Pattern(regexp = "\\d+", message = "첨부 파일 건수 필수 입니다") - private String atchFileCo; - - @Schema(requiredMode = REQUIRED, title = "등록자ID", example = " ") - @NotEmpty(message = "등록자 ID는 필수 입니다") - private String registerId; - - @Schema(requiredMode = REQUIRED, title = "파일 생성 일시", example = " ") - @Pattern(regexp = Constants.CUR_DTM_REGX, message = "파일 생성 일시는 필수 입니다(14자리-yyyyMMddHHmmss)") - private String fileCreatDt; - - @Schema(requiredMode = AUTO, title = "첨부파일", example = " ") - @Builder.Default - List
+// * description : +// * +// * author : limju +// * date : 2024-04-08 +// * ====================================================================== +// * 변경일 변경자 변경 내용 +// * ---------------------------------------------------------------------- +// * 2024-04-08 limju 최초 생성 +// * +// *+// */ +// public class BizNimsAarDto { +// +// /** +// * 마약류 연계보고 Header request +// */ +// @Schema(name = "AarHeader", description = "마약류 연계보고 Header DTO") +// @Getter +// @NoArgsConstructor +// @AllArgsConstructor +// @SuperBuilder +// public static class AarHeader extends AuditDto { +// @Setter +// @Schema(title = "폐기관리ID", description = "폐기관리ID", example = " ") +// private String dscdmngId; +// +// @Setter +// @Schema(requiredMode = REQUIRED, title = "보고자식별ID", description = "보고자식별ID", example = " ") +// @NotEmpty(message = "보고자식별ID 필수 입니다") +// private String uid; +// +// @Setter +// @Schema(requiredMode = REQUIRED, title = "소프트웨어ID", example = " ") +// @NotEmpty(message = "소프트웨어ID 필수 입니다") +// private String swId; +// +// @Schema(requiredMode = AUTO, title = "수불비고", example = " ") +// private String rndRmk; +// +// @Schema(requiredMode = REQUIRED, title = "취급일자", example = " ") +// @Pattern(regexp = Constants.DATE_REGX, message = "취급일자 필수 입니다(8자리-yyyyMMdd)") +// private String hdrDe; +// +// @Schema(requiredMode = REQUIRED, title = "마약류취급자식별번호", example = " ") +// @NotEmpty(message = "마약류 취급자 식별번호는 필수 입니다") +// private String bsshCd; +// +// @Schema(requiredMode = REQUIRED, title = "보고구분코드", example = "AAR") +// @NotEmpty(message = "보고 구분 코드는 필수 입니다(폐기-AAR)") +// @Builder.Default +// private String rptSeCd = "AAR"; +// +// @Schema(requiredMode = REQUIRED, title = "사용자보고식별번호", example = " ") +// @NotEmpty(message = "사용자 보고 식별번호는 필수 입니다") +// private String usrRptIdNo; +// +// @Schema(requiredMode = AUTO, title = "참조사용자보고식별번호(변경|취소시 필수)", example = " ") +// //@NotEmpty(message = "사용자 보고 식별번호는 필수 입니다") +// private String refUsrRptIdNo; +// +// @Schema(requiredMode = REQUIRED, title = "보고유형코드", example = " ", allowableValues = {"0", "1", "2"}) +// @Pattern(regexp = "[012]", message = "보고 유형 코드는 필수 입니다(0-신규, 1-취소, 2-변경)") +// private String rptTyCd; +// +// @Schema(requiredMode = AUTO, title = "비고(변경 및 취소시 필수-사유 기재)", example = " ") +// private String rmk; +// +// @Schema(requiredMode = REQUIRED, title = "보고자명", example = " ") +// @NotEmpty(message = "보고자 이름은 필수 입니다") +// private String rptrNm; +// +// @Schema(requiredMode = REQUIRED, title = "보고자업체명", example = " ") +// @NotEmpty(message = "보고자 업체명은 필수 입니다") +// private String rptrEntrpsNm; +// +// @Schema(requiredMode = REQUIRED, title = "담당자명", example = " ") +// @NotEmpty(message = "담당자 이름은 필수 입니다") +// private String chrgNm; +// +// @Schema(requiredMode = REQUIRED, title = "담당자 전화번호", example = " ") +// @Pattern(regexp = Constants.TEL_REGX, message = "담당자 전화번호는 필수 입니다") +// private String chrgTelNo; +// +// @Schema(requiredMode = REQUIRED, title = "담당자 휴대폰 번호", example = " ") +// @Pattern(regexp = Constants.PHONE_REGX, message = "담당자 휴대폰 번호는 필수 입니다") +// private String chrgMpNo; +// +// @Schema(requiredMode = REQUIRED, title = "수불 상세 보고수", example = " ") +// @NotEmpty(message = "수불 상세 보고수는 필수 입니다") +// private String rndDtlRptCnt; +// +// @Schema(requiredMode = REQUIRED, title = "폐기 구분 코드", example = " ", allowableValues = {"1", "2", "4"}) +// @Pattern(regexp = "[124]", message = "폐기 구분 코드는 필수 입니다(1-보건소폐기, 2-공무원임회, 4-도난/분실/재해 발생 사고마약류)") +// private String dsuseSeCd; +// +// /** +// *
+// * 폐기 사유 코드 +// * +// * 01-파손, 02-변질,부패, 03-유효기간 또는 사용기한 경과 +// * 04-유효 기간 임박, 05-사용 중단, 07-폐업, 08-환자 반납 +// * 09-기타, 12-제조 공정중 폐기물 +// *+// */ +// @Schema(requiredMode = REQUIRED, title = "폐기 사유 코드", example = " ", allowableValues = {"01", "02", "03", "04", "05", "07", "08", "09", "12"}) +// @Pattern(regexp = "0[1-57-9]|12", message = "폐기 사유 코드는 필수 입니다(01~05, 07~09, 12)") +// private String dsusePrvCd; +// +// @Schema(requiredMode = REQUIRED, title = "폐기 방법 코드", example = " ", allowableValues = {"1", "2", "3", "4", "5", "6", "7", "8", "9"}) +// @Pattern(regexp = "[1-9]", message = "폐기 방법 코드는 필수 입니다(1~9)") +// private String dsuseMthCd; +// +// @Schema(requiredMode = REQUIRED, title = "폐기 장소", example = " ") +// @NotEmpty(message = "폐기 장소는 필수 입니다") +// private String dsuseLoc; +// +// @Schema(requiredMode = REQUIRED, title = "폐기 일자", example = " ") +// @Pattern(regexp = Constants.CUR_DATE_REGX, message = "폐기 일자는 필수 입니다(8자리-yyyyMMdd)") +// private String dsuseDe; +// +// @Setter +// @Schema(requiredMode = REQUIRED, title = "폐기 관할 행정 기관 코드", example = " ") +// @NotEmpty(message = "폐기 관할 행정 기관 코드는 필수 입니다") +// private String dsuseInsttCd; +// +// @Schema(requiredMode = REQUIRED, title = "첨부 파일 건수", example = " ") +// @Pattern(regexp = "\\d+", message = "첨부 파일 건수 필수 입니다") +// private String atchFileCo; +// +// @Schema(requiredMode = REQUIRED, title = "등록자ID", example = " ") +// @NotEmpty(message = "등록자 ID는 필수 입니다") +// private String registerId; +// +// @Schema(requiredMode = REQUIRED, title = "파일 생성 일시", example = " ") +// @Pattern(regexp = Constants.CUR_DTM_REGX, message = "파일 생성 일시는 필수 입니다(14자리-yyyyMMddHHmmss)") +// private String fileCreatDt; +// +// @Schema(requiredMode = AUTO, title = "첨부파일", example = " ") +// @Builder.Default +// List
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 20d92a6..b56b1cc 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 @@ -4,35 +4,24 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.concurrent.atomic.AtomicReference; import javax.validation.Validation; import javax.validation.Validator; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.SerializationFeature; -import com.fasterxml.jackson.dataformat.xml.XmlMapper; -import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator; - import cokr.xit.adds.biz.nims.dao.BizNimsMapper; -import cokr.xit.adds.biz.nims.model.BizNimsAarDto; import cokr.xit.adds.biz.nims.model.BizNimsRequest; import cokr.xit.adds.biz.nims.model.BizNimsResponse; import cokr.xit.adds.biz.nims.service.BizNimsService; import cokr.xit.adds.core.Constants; import cokr.xit.adds.core.spring.exception.ApiCustomException; import cokr.xit.adds.core.util.ApiUtil; -import cokr.xit.adds.inf.nims.model.Aar; import cokr.xit.adds.inf.nims.model.NimsApiDto; import cokr.xit.adds.inf.nims.model.NimsApiDto.BsshInfoSt; -import cokr.xit.adds.inf.nims.model.NimsApiDto.ProductInfoKd; import cokr.xit.adds.inf.nims.model.NimsApiRequest; import cokr.xit.adds.inf.nims.model.NimsApiRequest.BsshInfoRequest; -import cokr.xit.adds.inf.nims.model.NimsApiRequest.ProductInfoRequest; import cokr.xit.adds.inf.nims.model.NimsApiResult; import cokr.xit.adds.inf.nims.service.InfNimsService; import cokr.xit.foundation.component.AbstractServiceBean; @@ -86,42 +75,42 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe return list; } - @Override - public ListsaveProductInfoKd(ProductInfoRequest dto) { - NimsApiResult.Response result = infNimsService.getProductInfoKd(dto); - List list = result.getResultOrThrow(); - - for (ProductInfoKd d : list) { - d.setRgtr(Constants.NIMS_API_USER_ID); - bizNimsMapper.mergeProductInfoKd(d); - } - return list; - } - - @Override - public List getMnfSeqInfo(NimsApiRequest.MnfSeqInfoRequest dto) { - NimsApiResult.Response response = infNimsService.getMnfSeqInfo(dto); - - return response.getResultOrThrow(); - } - - @Override - public List getJurisdictionGovInfo(NimsApiRequest.JurisdictionGovInfoRequest dto) { - NimsApiResult.Response result = infNimsService.getJurisdictionGovInfo(dto); - return result.getResultOrThrow(); - } - - @Override - public List saveStorageInfo(NimsApiRequest.StorageInfoRequest dto) { - NimsApiResult.Response result = infNimsService.getStorageInfo(dto); - List list = result.getResultOrThrow(); - - for (NimsApiDto.StorageInfo d : list) { - d.setRgtr(Constants.NIMS_API_USER_ID); - bizNimsMapper.mergeStorgeInfo(d); - } - return list; - } + // @Override + // public List saveProductInfoKd(ProductInfoRequest dto) { + // NimsApiResult.Response result = infNimsService.getProductInfoKd(dto); + // List list = result.getResultOrThrow(); + // + // for (ProductInfoKd d : list) { + // d.setRgtr(Constants.NIMS_API_USER_ID); + // bizNimsMapper.mergeProductInfoKd(d); + // } + // return list; + // } + // + // @Override + // public List getMnfSeqInfo(NimsApiRequest.MnfSeqInfoRequest dto) { + // NimsApiResult.Response response = infNimsService.getMnfSeqInfo(dto); + // + // return response.getResultOrThrow(); + // } + // + // @Override + // public List getJurisdictionGovInfo(NimsApiRequest.JurisdictionGovInfoRequest dto) { + // NimsApiResult.Response result = infNimsService.getJurisdictionGovInfo(dto); + // return result.getResultOrThrow(); + // } + // + // @Override + // public List saveStorageInfo(NimsApiRequest.StorageInfoRequest dto) { + // NimsApiResult.Response result = infNimsService.getStorageInfo(dto); + // List list = result.getResultOrThrow(); + // + // for (NimsApiDto.StorageInfo d : list) { + // d.setRgtr(Constants.NIMS_API_USER_ID); + // bizNimsMapper.mergeStorgeInfo(d); + // } + // return list; + // } /** * @@ -436,157 +425,157 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe - private String toXml() { - Aar dto = getAar(); - - XmlMapper mapper = new XmlMapper(); - mapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true); - mapper.enable(SerializationFeature.INDENT_OUTPUT); - - String xmlString = null; - try { - xmlString = mapper.writeValueAsString(dto); - } catch (JsonProcessingException e) { - throw ApiCustomException.create(e.getMessage()); - } - xmlString = xmlString.replaceFirst("nims\">", - "nims\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"); - return xmlString.replaceFirst(" xmlns=\"\"", StringUtils.EMPTY); - } - - private Aar getAar() { - Aar.ReportSet reportSet = Aar.ReportSet.builder() - .header(List.of(getHeader())) - .build(); - - return Aar.builder() - .reportSet(reportSet) - .build(); - } - - private Aar.Header getHeader() { - return Aar.Header.builder() - .hdrDe("20240326") - .bsshCd("123456789") - .lines(getLines()) - .atchFileCo("2") - .atchFiles(getAtchFiles()) - .build(); - } - - private Aar.Lines getLines() { - - return Aar.Lines.builder() - .line(getLineList()) - .build(); - } - - private Aar.AtchFiles getAtchFiles() { - return Aar.AtchFiles.builder() - .atchFileNm(List.of("file-1.txt","file-2.txt")) - .build(); - } - - private ListgetLineList(){ - Aar.Line line = Aar.Line.builder() - .usrRptIdNo("123456789") - .usrRptLnIdNo("123456789") - .storgeNo("123456789") - .mvmnTyCd("123456789") - .prductCd("123456789") - .build(); - Aar.Line line2 = Aar.Line.builder() - .usrRptIdNo("123456789-1") - .usrRptLnIdNo("123456789-1") - .storgeNo("123456789-1") - .mvmnTyCd("123456789-1") - .prductCd("123456789-1") - .build(); - - return List.of(line, line2); - } - - - private void setStorgeNo(BizNimsAarDto.AarHeader aarHeader, List aarDetails) { - - if(isEmpty(aarDetails.get(0).getStorgeNo())){ - try { - List storageInfos = saveStorageInfo( - NimsApiRequest.StorageInfoRequest.builder() - .fg("1") - .pg("1") - .bc(aarHeader.getBsshCd()) - .build() - ); - aarDetails.forEach(d -> d.setStorgeNo(storageInfos.get(0).getStorgeNo())); - - }catch (Exception e){ - if( e instanceof ApiCustomException){ - aarDetails.forEach(d -> d.setStorgeNo("S0001")); - return; - } - throw ApiCustomException.create(e.getMessage()); - } - } - } - - private void setDsuseInsttCd(BizNimsAarDto.AarHeader aarHeader) { - - try { - List list = getJurisdictionGovInfo( - NimsApiRequest.JurisdictionGovInfoRequest.builder() - .fg("1") - .pg("1") - .onm(onm) - .build() - ); - aarHeader.setDsuseInsttCd(list.get(0).getOfCd()); - - }catch (Exception e){ - if( e instanceof ApiCustomException){ - throw ApiCustomException.create(String.format("[%s]의 관할 행정 기관 코드를 찾을수 없습니다.", onm)); - } - throw ApiCustomException.create(e.getMessage()); - } - } - - private void setMnfSeqs(List aarDetails) { - AtomicReference productCd = new AtomicReference<>(""); - - try { - - aarDetails.forEach(d -> { - productCd.set(d.getPrductCd()); - - List list = getMnfSeqInfo( - NimsApiRequest.MnfSeqInfoRequest.builder() - .fg("1") - .pg("1") - .p(d.getPrductCd()) - .build() - ); - - // FIXME: 내림 차순 정렬 - list.sort((a, b) -> { - if(isEmpty(a.getPrdValidDe()) && isEmpty(b.getPrdValidDe())) return 0; - if(isEmpty(a.getPrdValidDe())) return 1; - if(isEmpty(b.getPrdValidDe())) return -1; - return b.getPrdValidDe().compareTo(a.getPrdValidDe()); - }); - - // FIXME: default list 1st value?? - d.setMnfNo(list.get(0).getMnfNo()); - d.setMnfSeq(list.get(0).getMnfSeq()); - d.setPrdValidDe(list.get(0).getPrdValidDe()); - - d.getMnfSeqInfos().addAll(list); - }); - - }catch (Exception e){ - if( e instanceof ApiCustomException){ - throw ApiCustomException.create(String.format("[%s]의 제조번호 정보를 찾을수 없습니다.", productCd.get())); - } - throw ApiCustomException.create(e.getMessage()); - } - } + // private String toXml() { + // Aar dto = getAar(); + // + // XmlMapper mapper = new XmlMapper(); + // mapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true); + // mapper.enable(SerializationFeature.INDENT_OUTPUT); + // + // String xmlString = null; + // try { + // xmlString = mapper.writeValueAsString(dto); + // } catch (JsonProcessingException e) { + // throw ApiCustomException.create(e.getMessage()); + // } + // xmlString = xmlString.replaceFirst("nims\">", + // "nims\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"); + // return xmlString.replaceFirst(" xmlns=\"\"", StringUtils.EMPTY); + // } + // + // private Aar getAar() { + // Aar.ReportSet reportSet = Aar.ReportSet.builder() + // .header(List.of(getHeader())) + // .build(); + // + // return Aar.builder() + // .reportSet(reportSet) + // .build(); + // } + // + // private Aar.Header getHeader() { + // return Aar.Header.builder() + // .hdrDe("20240326") + // .bsshCd("123456789") + // .lines(getLines()) + // .atchFileCo("2") + // .atchFiles(getAtchFiles()) + // .build(); + // } + // + // private Aar.Lines getLines() { + // + // return Aar.Lines.builder() + // .line(getLineList()) + // .build(); + // } + // + // private Aar.AtchFiles getAtchFiles() { + // return Aar.AtchFiles.builder() + // .atchFileNm(List.of("file-1.txt","file-2.txt")) + // .build(); + // } + // + // private List getLineList(){ + // Aar.Line line = Aar.Line.builder() + // .usrRptIdNo("123456789") + // .usrRptLnIdNo("123456789") + // .storgeNo("123456789") + // .mvmnTyCd("123456789") + // .prductCd("123456789") + // .build(); + // Aar.Line line2 = Aar.Line.builder() + // .usrRptIdNo("123456789-1") + // .usrRptLnIdNo("123456789-1") + // .storgeNo("123456789-1") + // .mvmnTyCd("123456789-1") + // .prductCd("123456789-1") + // .build(); + // + // return List.of(line, line2); + // } + // + // + // private void setStorgeNo(BizNimsAarDto.AarHeader aarHeader, List aarDetails) { + // + // if(isEmpty(aarDetails.get(0).getStorgeNo())){ + // try { + // List storageInfos = saveStorageInfo( + // NimsApiRequest.StorageInfoRequest.builder() + // .fg("1") + // .pg("1") + // .bc(aarHeader.getBsshCd()) + // .build() + // ); + // aarDetails.forEach(d -> d.setStorgeNo(storageInfos.get(0).getStorgeNo())); + // + // }catch (Exception e){ + // if( e instanceof ApiCustomException){ + // aarDetails.forEach(d -> d.setStorgeNo("S0001")); + // return; + // } + // throw ApiCustomException.create(e.getMessage()); + // } + // } + // } + // + // private void setDsuseInsttCd(BizNimsAarDto.AarHeader aarHeader) { + // + // try { + // List list = getJurisdictionGovInfo( + // NimsApiRequest.JurisdictionGovInfoRequest.builder() + // .fg("1") + // .pg("1") + // .onm(onm) + // .build() + // ); + // aarHeader.setDsuseInsttCd(list.get(0).getOfCd()); + // + // }catch (Exception e){ + // if( e instanceof ApiCustomException){ + // throw ApiCustomException.create(String.format("[%s]의 관할 행정 기관 코드를 찾을수 없습니다.", onm)); + // } + // throw ApiCustomException.create(e.getMessage()); + // } + // } + // + // private void setMnfSeqs(List aarDetails) { + // AtomicReference productCd = new AtomicReference<>(""); + // + // try { + // + // aarDetails.forEach(d -> { + // productCd.set(d.getPrductCd()); + // + // List list = getMnfSeqInfo( + // NimsApiRequest.MnfSeqInfoRequest.builder() + // .fg("1") + // .pg("1") + // .p(d.getPrductCd()) + // .build() + // ); + // + // // FIXME: 내림 차순 정렬 + // list.sort((a, b) -> { + // if(isEmpty(a.getPrdValidDe()) && isEmpty(b.getPrdValidDe())) return 0; + // if(isEmpty(a.getPrdValidDe())) return 1; + // if(isEmpty(b.getPrdValidDe())) return -1; + // return b.getPrdValidDe().compareTo(a.getPrdValidDe()); + // }); + // + // // FIXME: default list 1st value?? + // d.setMnfNo(list.get(0).getMnfNo()); + // d.setMnfSeq(list.get(0).getMnfSeq()); + // d.setPrdValidDe(list.get(0).getPrdValidDe()); + // + // d.getMnfSeqInfos().addAll(list); + // }); + // + // }catch (Exception e){ + // if( e instanceof ApiCustomException){ + // throw ApiCustomException.create(String.format("[%s]의 제조번호 정보를 찾을수 없습니다.", productCd.get())); + // } + // throw ApiCustomException.create(e.getMessage()); + // } + // } } 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 d5e37a2..bae8b36 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 @@ -53,37 +53,37 @@ public class BizNimsController { return ApiBaseResponse.of(bizNimsService.saveBsshInfoSt(dto)); } - @Operation(summary = "마약류 상품 정보 조회(NIMS API)", description = "마약류 상품정보 조회
NIMS API 호출 결과를 DB에 저장후 결과 Return") - @PostMapping(value = "/getProductInfoKd") - public ApiBaseResponse> getMnfSeqInfo( - @RequestBody @Validated NimsApiRequest.ProductInfoRequest dto - ) { - return ApiBaseResponse.of(bizNimsService.saveProductInfoKd(dto)); - } - - @Operation(summary = "제조 일련 번호 정보 조회(NIMS API)", description = "제보 일련 번호 정보 조회
NIMS API 호출 결과 Return") - @PostMapping(value = "/getMnfSeqInfo") - public ApiBaseResponse> getMnfSeqInfo( - @RequestBody @Validated NimsApiRequest.MnfSeqInfoRequest dto - ) { - return ApiBaseResponse.of(bizNimsService.getMnfSeqInfo(dto)); - } - - @Operation(summary = "관할 허가 관청 정보 조회(NIMS API)", description = "관할 허가 관청 정보 조회
NIMS API 호출 결과 Return") - @PostMapping(value = "/getJurisdictionGovInfo") - public ApiBaseResponse> getJurisdictionGovInfo( - @RequestBody @Validated NimsApiRequest.JurisdictionGovInfoRequest dto - ) { - return ApiBaseResponse.of(bizNimsService.getJurisdictionGovInfo(dto)); - } - - @Operation(summary = "저장소 정보 조회(NIMS API)", description = "저장소 정보 조회
NIMS API 호출 결과를 DB에 저장후 Return") - @PostMapping(value = "/getStorageInfo") - public ApiBaseResponse> getStorageInfo( - @RequestBody @Validated NimsApiRequest.StorageInfoRequest dto - ) { - return ApiBaseResponse.of(bizNimsService.saveStorageInfo(dto)); - } + // @Operation(summary = "마약류 상품 정보 조회(NIMS API)", description = "마약류 상품정보 조회
NIMS API 호출 결과를 DB에 저장후 결과 Return") + // @PostMapping(value = "/getProductInfoKd") + // public ApiBaseResponse> getMnfSeqInfo( + // @RequestBody @Validated NimsApiRequest.ProductInfoRequest dto + // ) { + // return ApiBaseResponse.of(bizNimsService.saveProductInfoKd(dto)); + // } + // + // @Operation(summary = "제조 일련 번호 정보 조회(NIMS API)", description = "제보 일련 번호 정보 조회
NIMS API 호출 결과 Return") + // @PostMapping(value = "/getMnfSeqInfo") + // public ApiBaseResponse> getMnfSeqInfo( + // @RequestBody @Validated NimsApiRequest.MnfSeqInfoRequest dto + // ) { + // return ApiBaseResponse.of(bizNimsService.getMnfSeqInfo(dto)); + // } + // + // @Operation(summary = "관할 허가 관청 정보 조회(NIMS API)", description = "관할 허가 관청 정보 조회
NIMS API 호출 결과 Return") + // @PostMapping(value = "/getJurisdictionGovInfo") + // public ApiBaseResponse> getJurisdictionGovInfo( + // @RequestBody @Validated NimsApiRequest.JurisdictionGovInfoRequest dto + // ) { + // return ApiBaseResponse.of(bizNimsService.getJurisdictionGovInfo(dto)); + // } + // + // @Operation(summary = "저장소 정보 조회(NIMS API)", description = "저장소 정보 조회
NIMS API 호출 결과를 DB에 저장후 Return") + // @PostMapping(value = "/getStorageInfo") + // public ApiBaseResponse> getStorageInfo( + // @RequestBody @Validated NimsApiRequest.StorageInfoRequest dto + // ) { + // return ApiBaseResponse.of(bizNimsService.saveStorageInfo(dto)); + // } @Operation(summary = "업체 폐기 보고 정보 조회(NIMS API)", description = "업체 폐기 보고 정보 조회
NIMS API 호출 결과를 DB에 저장후 Return") @PostMapping("/getDsuseRptInfo") diff --git a/src/main/java/cokr/xit/adds/inf/nims/model/Aar.java b/src/main/java/cokr/xit/adds/inf/nims/model/Aar.java index 5e17b58..c2e95ec 100644 --- a/src/main/java/cokr/xit/adds/inf/nims/model/Aar.java +++ b/src/main/java/cokr/xit/adds/inf/nims/model/Aar.java @@ -1,311 +1,311 @@ -package cokr.xit.adds.inf.nims.model; - -import java.util.List; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; - -import jakarta.xml.bind.annotation.XmlAccessType; -import jakarta.xml.bind.annotation.XmlAccessorType; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.NoArgsConstructor; - -/** - *- * description : NIMS xsd 구조 정의 - * 마약류 관리 시스템 연계시 사용되는 xsd 구조 정의 - * -> 폐기(AAR) - * - * packageName : cokr.xit.adds.inf.nims.model - * fileName : Aar - * author : limju - * date : 2024-03-22 - * ====================================================================== - * 변경일 변경자 변경 내용 - * ---------------------------------------------------------------------- - * 2024-03-22 limju 최초 생성 - * - *- */ -@JacksonXmlRootElement(localName = "aar_regist", namespace = "https://www.nims.or.kr/schema/nims") -@NoArgsConstructor -@AllArgsConstructor -@Builder -public class Aar { - @JacksonXmlProperty(localName = "REPORT_SET") - private ReportSet reportSet; - - @JsonInclude(JsonInclude.Include.NON_NULL) - @XmlAccessorType(XmlAccessType.FIELD) - @NoArgsConstructor - @AllArgsConstructor - @Builder - public static class ReportSet { - /** - * 필수 - 보고자식별ID - */ - @JacksonXmlProperty(localName = "UID") - private String uid; - - /** - * 필수 - 소프트웨어ID - */ - @JacksonXmlProperty(localName = "SW_ID") - private String swId; - - /** - * 수불비고 - 보고사유 기재 - */ - @JacksonXmlProperty(localName = "RND_RMK") - private String rndRmk; - - /** - * Header - */ - @JacksonXmlElementWrapper(useWrapping = false) - @JacksonXmlProperty(localName = "HEADER") - private Listheader; - - } - - @JsonInclude(JsonInclude.Include.NON_NULL) - @NoArgsConstructor - @AllArgsConstructor - @Builder - public static class Header { - /** - * 필수 - 취급일자 - * 폐기신청민원 처리일자(공문시행일자) - */ - @JacksonXmlProperty(localName = "HDR_DE") - private String hdrDe; - - /** - * 필수 - 마약류취급자식별번호 - */ - @JacksonXmlProperty(localName = "BSSH_CD") - private String bsshCd; - - /** - * 필수 - 보고구분코드 - * AAR - 폐기 - */ - @JacksonXmlProperty(localName = "RPT_SE_CD") - private String rptSeCd; - - /** - * 필수 - 사용자보고식별번호 - * 보고자 시스템에서 관리하는 고유식별번호 - * 변경|취소시 에도 다른 식별 번호 생성 - */ - @JacksonXmlProperty(localName = "USR_RPT_ID_NO") - private String usrRptIdNo; - - /** - * 참조사용자보고식별번호(변경|취소시 필수) - * 원본 사용자보고식별번호 기입 - */ - @JacksonXmlProperty(localName = "REF_USR_RPT_ID_NO") - private String refUsrRptIdNo; - - /** - * 필수 - 보고유형코드 - * 0-신규, 1-취소, 2-변경 - */ - @JacksonXmlProperty(localName = "RPT_TY_CD") - private String rptTyCd; - - /** - * 비고(변경 및 취소시 필수-사유 기재) - */ - @JacksonXmlProperty(localName = "RMK") - private String rmk; - - /** - * 필수 - 보고자명 - */ - @JacksonXmlProperty(localName = "RPTR_NM") - private String rptrNm; - - /** - * 필수 - 보고자업체명 - */ - @JacksonXmlProperty(localName = "RPTR_ENTRPS_NM") - private String rptrEntrpsNm; - - /** - * 필수 - 담당자명 - */ - @JacksonXmlProperty(localName = "CHRG_NM") - private String chrgNm; - - /** - * 필수 - 담당자 전화번호 - */ - @JacksonXmlProperty(localName = "CHRG_TEL_NO") - private String chrgTelNo; - - /** - * 필수 - 담당자 휴대폰 번호 - * 암호화 필요 - */ - @JacksonXmlProperty(localName = "CHRG_MP_NO") - private String chrgMpNo; - - /** - * 필수 - 수불 상세 보고수 - * 당해 보고건의 라인수 - */ - @JacksonXmlProperty(localName = "RND_DTL_RPT_CNT") - private String rndDtlRptCnt; - - /** - * 필수 - 폐기구분코드 - * 1-보건소폐기, 2-공무원임회, 4-도난/분실/재해 발생 사고마약류 - */ - @JacksonXmlProperty(localName = "DSUSE_SE_CD") - private String dsuseSeCd; - - /** - * - * 필수 - 폐기 사유 코드 - * - * 01-파손, 02-변질,부패, 03-유효기간 또는 사용기한 경과 - * 04-유효 기간 임박, 05-사용 중단, 07-폐업, 08-환자 반납 - * 09-기타, 12-제조 공정중 폐기물 - *- */ - @JacksonXmlProperty(localName = "DSUSE_PRV_CD") - private String dsusePrvCd; - - /** - *- * 필수 - 폐기방법코드 - * - * 1-소각, 2-중화, 3-가수 분해, 4-산화, 5-환원 - * 6-희석, 7-매물, 8-기타(파쇄,혼합), 9-사고 - *- */ - @JacksonXmlProperty(localName = "DSUSE_MTH_CD") - private String dsuseMthCd; - - /** - * 필수 - 폐기장소 - */ - @JacksonXmlProperty(localName = "DSUSE_LOC") - private String dsuseLoc; - - /** - * 필수 - 폐기일자 - * yyyyMMdd - */ - @JacksonXmlProperty(localName = "DSUSE_DE") - private String dsuseDe; - - /** - * 필수 - 폐기 관할 행정 기관 코드 - */ - @JacksonXmlProperty(localName = "DSUSE_INSTT_CD") - private String dsuseInsttCd; - - /** - * 필수 - 첨부 파일 건수 - */ - @JacksonXmlProperty(localName = "ATCH_FILE_CO") - private String atchFileCo; - - /** - * Line - */ - @JacksonXmlProperty(localName = "REGISTER_ID") - private String registerId; - - @JacksonXmlProperty(localName = "FILE_CREAT_DT") - private String fileCreatDt; - - @JacksonXmlProperty(localName = "LINES") - private Lines lines; - - @JacksonXmlProperty(localName = "ATCH_FILES") - private AtchFiles atchFiles; - } - - @JsonInclude(JsonInclude.Include.NON_NULL) - @NoArgsConstructor - @AllArgsConstructor - @Builder - public static class Lines { - @JacksonXmlElementWrapper(useWrapping = false) - @JacksonXmlProperty(localName = "LINE") - private Listline; - } - - @JsonInclude(JsonInclude.Include.NON_NULL) - @NoArgsConstructor - @AllArgsConstructor - @Builder - public static class Line { - @JacksonXmlProperty(localName = "USR_RPT_ID_NO") - private String usrRptIdNo; - - @JacksonXmlProperty(localName = "USR_RPT_LN_ID_NO") - private String usrRptLnIdNo; - - @JacksonXmlProperty(localName = "STORGE_NO") - private String storgeNo; - - @JacksonXmlProperty(localName = "MVMN_TY_CD") - private String mvmnTyCd; - - @JacksonXmlProperty(localName = "PRDUCT_CD") - private String prductCd; - - @JacksonXmlProperty(localName = "MNF_NO") - private String mnfNo; - @JacksonXmlProperty(localName = "MNF_SEQ") - private String mnfSeq; - - @JacksonXmlProperty(localName = "MIN_DISTB_QY") - private String minDistbQy; - - @JacksonXmlProperty(localName = "PRD_MIN_DISTB_UNIT") - private String prdMinDistbUnit; - - @JacksonXmlProperty(localName = "PCE_QY") - private String pceQy; - - @JacksonXmlProperty(localName = "PRD_PCE_UNIT") - private String prdPceUnit; - - @JacksonXmlProperty(localName = "PRDUCT_NM") - private String prductNm; - - @JacksonXmlProperty(localName = "PRD_SGTIN") - private String prdSgtin; - - @JacksonXmlProperty(localName = "PRD_MIN_DISTB_QY") - private String prdMinDistbQy; - - @JacksonXmlProperty(localName = "PRD_TOT_PCE_QY") - private String prdTotPceQy; - - @JacksonXmlProperty(localName = "PRD_VALID_DE") - private String prdValidDe; - - @JacksonXmlProperty(localName = "FILE_CREAT_DT") - private String fileCreatDt; - } - - @JsonInclude(JsonInclude.Include.NON_NULL) - @NoArgsConstructor - @AllArgsConstructor - @Builder - public static class AtchFiles{ - @JacksonXmlElementWrapper(useWrapping = false) - @JacksonXmlProperty(localName = "ATCH_FILE_NM") - private List atchFileNm; - } -} +// package cokr.xit.adds.inf.nims.model; +// +// import java.util.List; +// +// import com.fasterxml.jackson.annotation.JsonInclude; +// import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; +// import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +// import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; +// +// import jakarta.xml.bind.annotation.XmlAccessType; +// import jakarta.xml.bind.annotation.XmlAccessorType; +// import lombok.AllArgsConstructor; +// import lombok.Builder; +// import lombok.NoArgsConstructor; +// +// /** +// * +// * description : NIMS xsd 구조 정의 +// * 마약류 관리 시스템 연계시 사용되는 xsd 구조 정의 +// * -> 폐기(AAR) +// * +// * packageName : cokr.xit.adds.inf.nims.model +// * fileName : Aar +// * author : limju +// * date : 2024-03-22 +// * ====================================================================== +// * 변경일 변경자 변경 내용 +// * ---------------------------------------------------------------------- +// * 2024-03-22 limju 최초 생성 +// * +// *+// */ +// @JacksonXmlRootElement(localName = "aar_regist", namespace = "https://www.nims.or.kr/schema/nims") +// @NoArgsConstructor +// @AllArgsConstructor +// @Builder +// public class Aar { +// @JacksonXmlProperty(localName = "REPORT_SET") +// private ReportSet reportSet; +// +// @JsonInclude(JsonInclude.Include.NON_NULL) +// @XmlAccessorType(XmlAccessType.FIELD) +// @NoArgsConstructor +// @AllArgsConstructor +// @Builder +// public static class ReportSet { +// /** +// * 필수 - 보고자식별ID +// */ +// @JacksonXmlProperty(localName = "UID") +// private String uid; +// +// /** +// * 필수 - 소프트웨어ID +// */ +// @JacksonXmlProperty(localName = "SW_ID") +// private String swId; +// +// /** +// * 수불비고 - 보고사유 기재 +// */ +// @JacksonXmlProperty(localName = "RND_RMK") +// private String rndRmk; +// +// /** +// * Header +// */ +// @JacksonXmlElementWrapper(useWrapping = false) +// @JacksonXmlProperty(localName = "HEADER") +// private Listheader; +// +// } +// +// @JsonInclude(JsonInclude.Include.NON_NULL) +// @NoArgsConstructor +// @AllArgsConstructor +// @Builder +// public static class Header { +// /** +// * 필수 - 취급일자 +// * 폐기신청민원 처리일자(공문시행일자) +// */ +// @JacksonXmlProperty(localName = "HDR_DE") +// private String hdrDe; +// +// /** +// * 필수 - 마약류취급자식별번호 +// */ +// @JacksonXmlProperty(localName = "BSSH_CD") +// private String bsshCd; +// +// /** +// * 필수 - 보고구분코드 +// * AAR - 폐기 +// */ +// @JacksonXmlProperty(localName = "RPT_SE_CD") +// private String rptSeCd; +// +// /** +// * 필수 - 사용자보고식별번호 +// * 보고자 시스템에서 관리하는 고유식별번호 +// * 변경|취소시 에도 다른 식별 번호 생성 +// */ +// @JacksonXmlProperty(localName = "USR_RPT_ID_NO") +// private String usrRptIdNo; +// +// /** +// * 참조사용자보고식별번호(변경|취소시 필수) +// * 원본 사용자보고식별번호 기입 +// */ +// @JacksonXmlProperty(localName = "REF_USR_RPT_ID_NO") +// private String refUsrRptIdNo; +// +// /** +// * 필수 - 보고유형코드 +// * 0-신규, 1-취소, 2-변경 +// */ +// @JacksonXmlProperty(localName = "RPT_TY_CD") +// private String rptTyCd; +// +// /** +// * 비고(변경 및 취소시 필수-사유 기재) +// */ +// @JacksonXmlProperty(localName = "RMK") +// private String rmk; +// +// /** +// * 필수 - 보고자명 +// */ +// @JacksonXmlProperty(localName = "RPTR_NM") +// private String rptrNm; +// +// /** +// * 필수 - 보고자업체명 +// */ +// @JacksonXmlProperty(localName = "RPTR_ENTRPS_NM") +// private String rptrEntrpsNm; +// +// /** +// * 필수 - 담당자명 +// */ +// @JacksonXmlProperty(localName = "CHRG_NM") +// private String chrgNm; +// +// /** +// * 필수 - 담당자 전화번호 +// */ +// @JacksonXmlProperty(localName = "CHRG_TEL_NO") +// private String chrgTelNo; +// +// /** +// * 필수 - 담당자 휴대폰 번호 +// * 암호화 필요 +// */ +// @JacksonXmlProperty(localName = "CHRG_MP_NO") +// private String chrgMpNo; +// +// /** +// * 필수 - 수불 상세 보고수 +// * 당해 보고건의 라인수 +// */ +// @JacksonXmlProperty(localName = "RND_DTL_RPT_CNT") +// private String rndDtlRptCnt; +// +// /** +// * 필수 - 폐기구분코드 +// * 1-보건소폐기, 2-공무원임회, 4-도난/분실/재해 발생 사고마약류 +// */ +// @JacksonXmlProperty(localName = "DSUSE_SE_CD") +// private String dsuseSeCd; +// +// /** +// * +// * 필수 - 폐기 사유 코드 +// * +// * 01-파손, 02-변질,부패, 03-유효기간 또는 사용기한 경과 +// * 04-유효 기간 임박, 05-사용 중단, 07-폐업, 08-환자 반납 +// * 09-기타, 12-제조 공정중 폐기물 +// *+// */ +// @JacksonXmlProperty(localName = "DSUSE_PRV_CD") +// private String dsusePrvCd; +// +// /** +// *+// * 필수 - 폐기방법코드 +// * +// * 1-소각, 2-중화, 3-가수 분해, 4-산화, 5-환원 +// * 6-희석, 7-매물, 8-기타(파쇄,혼합), 9-사고 +// *+// */ +// @JacksonXmlProperty(localName = "DSUSE_MTH_CD") +// private String dsuseMthCd; +// +// /** +// * 필수 - 폐기장소 +// */ +// @JacksonXmlProperty(localName = "DSUSE_LOC") +// private String dsuseLoc; +// +// /** +// * 필수 - 폐기일자 +// * yyyyMMdd +// */ +// @JacksonXmlProperty(localName = "DSUSE_DE") +// private String dsuseDe; +// +// /** +// * 필수 - 폐기 관할 행정 기관 코드 +// */ +// @JacksonXmlProperty(localName = "DSUSE_INSTT_CD") +// private String dsuseInsttCd; +// +// /** +// * 필수 - 첨부 파일 건수 +// */ +// @JacksonXmlProperty(localName = "ATCH_FILE_CO") +// private String atchFileCo; +// +// /** +// * Line +// */ +// @JacksonXmlProperty(localName = "REGISTER_ID") +// private String registerId; +// +// @JacksonXmlProperty(localName = "FILE_CREAT_DT") +// private String fileCreatDt; +// +// @JacksonXmlProperty(localName = "LINES") +// private Lines lines; +// +// @JacksonXmlProperty(localName = "ATCH_FILES") +// private AtchFiles atchFiles; +// } +// +// @JsonInclude(JsonInclude.Include.NON_NULL) +// @NoArgsConstructor +// @AllArgsConstructor +// @Builder +// public static class Lines { +// @JacksonXmlElementWrapper(useWrapping = false) +// @JacksonXmlProperty(localName = "LINE") +// private Listline; +// } +// +// @JsonInclude(JsonInclude.Include.NON_NULL) +// @NoArgsConstructor +// @AllArgsConstructor +// @Builder +// public static class Line { +// @JacksonXmlProperty(localName = "USR_RPT_ID_NO") +// private String usrRptIdNo; +// +// @JacksonXmlProperty(localName = "USR_RPT_LN_ID_NO") +// private String usrRptLnIdNo; +// +// @JacksonXmlProperty(localName = "STORGE_NO") +// private String storgeNo; +// +// @JacksonXmlProperty(localName = "MVMN_TY_CD") +// private String mvmnTyCd; +// +// @JacksonXmlProperty(localName = "PRDUCT_CD") +// private String prductCd; +// +// @JacksonXmlProperty(localName = "MNF_NO") +// private String mnfNo; +// @JacksonXmlProperty(localName = "MNF_SEQ") +// private String mnfSeq; +// +// @JacksonXmlProperty(localName = "MIN_DISTB_QY") +// private String minDistbQy; +// +// @JacksonXmlProperty(localName = "PRD_MIN_DISTB_UNIT") +// private String prdMinDistbUnit; +// +// @JacksonXmlProperty(localName = "PCE_QY") +// private String pceQy; +// +// @JacksonXmlProperty(localName = "PRD_PCE_UNIT") +// private String prdPceUnit; +// +// @JacksonXmlProperty(localName = "PRDUCT_NM") +// private String prductNm; +// +// @JacksonXmlProperty(localName = "PRD_SGTIN") +// private String prdSgtin; +// +// @JacksonXmlProperty(localName = "PRD_MIN_DISTB_QY") +// private String prdMinDistbQy; +// +// @JacksonXmlProperty(localName = "PRD_TOT_PCE_QY") +// private String prdTotPceQy; +// +// @JacksonXmlProperty(localName = "PRD_VALID_DE") +// private String prdValidDe; +// +// @JacksonXmlProperty(localName = "FILE_CREAT_DT") +// private String fileCreatDt; +// } +// +// @JsonInclude(JsonInclude.Include.NON_NULL) +// @NoArgsConstructor +// @AllArgsConstructor +// @Builder +// public static class AtchFiles{ +// @JacksonXmlElementWrapper(useWrapping = false) +// @JacksonXmlProperty(localName = "ATCH_FILE_NM") +// private List atchFileNm; +// } +// } diff --git a/src/main/java/cokr/xit/adds/inf/nims/model/NimsAarResult.java b/src/main/java/cokr/xit/adds/inf/nims/model/NimsAarResult.java index e088b23..1e057f0 100644 --- a/src/main/java/cokr/xit/adds/inf/nims/model/NimsAarResult.java +++ b/src/main/java/cokr/xit/adds/inf/nims/model/NimsAarResult.java @@ -1,85 +1,85 @@ -package cokr.xit.adds.inf.nims.model; - -import com.fasterxml.jackson.annotation.JsonProperty; - -import jakarta.xml.bind.annotation.XmlAccessType; -import jakarta.xml.bind.annotation.XmlAccessorType; -import jakarta.xml.bind.annotation.XmlRootElement; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; - -/** - * - * description : - * - * packageName : cokr.xit.adds.inf.nims.model - * fileName : NimsAarResult - * author : limju - * date : 2024-03-21 - * ====================================================================== - * 변경일 변경자 변경 내용 - * ---------------------------------------------------------------------- - * 2024-03-21 limju 최초 생성 - * - *- */ -@XmlRootElement(name = "response") -@XmlAccessorType(XmlAccessType.FIELD) -@Getter -@NoArgsConstructor -@AllArgsConstructor -@Builder -public class NimsAarResult { - /** - * 결과코드 - * 0000 : 정상 보고 등록 되었습니다 - * 9999 : 보고 실패 되었습니다 - */ - @JsonProperty(value = "RESULT_CD", required = true) - String resultCd; - - /** - * 결과메시지 - * 0000 : 정상 보고 등록 되었습니다 - * 9999 : 보고 실패 되었습니다 - */ - @JsonProperty(value = "RESULT_MSG", required = true) - String resultMsg; - - /** - * 보고자식별ID - * 보고자를 식별할 수 있는 고유 식별자 - * 시스템 내부에서 사용하는 식별자 - */ - @JsonProperty(value = "UID", required = true) - String uid; - /** - * 마약류취급자식별번호 - * 마약류통합관리 시스템에서 부여한 고유 코드 - */ - @JsonProperty(value = "BSSH_CD", required = true) - String bsshCd; - /** - * 보고구분코드 - */ - @JsonProperty(value = "RPT_SE_CD", required = true) - String rptSeCd; - /** - * 사용자보고식별번호 - */ - String usrPrtIdNo; - /** - * 보고접수번호 - */ - String rptRceptNo; - /** - * 에러코드 - */ - String errorCd; - /** - * 에러메시지 - */ - String errorMsg; -} +// package cokr.xit.adds.inf.nims.model; +// +// import com.fasterxml.jackson.annotation.JsonProperty; +// +// import jakarta.xml.bind.annotation.XmlAccessType; +// import jakarta.xml.bind.annotation.XmlAccessorType; +// import jakarta.xml.bind.annotation.XmlRootElement; +// import lombok.AllArgsConstructor; +// import lombok.Builder; +// import lombok.Getter; +// import lombok.NoArgsConstructor; +// +// /** +// *+// * description : +// * +// * packageName : cokr.xit.adds.inf.nims.model +// * fileName : NimsAarResult +// * author : limju +// * date : 2024-03-21 +// * ====================================================================== +// * 변경일 변경자 변경 내용 +// * ---------------------------------------------------------------------- +// * 2024-03-21 limju 최초 생성 +// * +// *+// */ +// @XmlRootElement(name = "response") +// @XmlAccessorType(XmlAccessType.FIELD) +// @Getter +// @NoArgsConstructor +// @AllArgsConstructor +// @Builder +// public class NimsAarResult { +// /** +// * 결과코드 +// * 0000 : 정상 보고 등록 되었습니다 +// * 9999 : 보고 실패 되었습니다 +// */ +// @JsonProperty(value = "RESULT_CD", required = true) +// String resultCd; +// +// /** +// * 결과메시지 +// * 0000 : 정상 보고 등록 되었습니다 +// * 9999 : 보고 실패 되었습니다 +// */ +// @JsonProperty(value = "RESULT_MSG", required = true) +// String resultMsg; +// +// /** +// * 보고자식별ID +// * 보고자를 식별할 수 있는 고유 식별자 +// * 시스템 내부에서 사용하는 식별자 +// */ +// @JsonProperty(value = "UID", required = true) +// String uid; +// /** +// * 마약류취급자식별번호 +// * 마약류통합관리 시스템에서 부여한 고유 코드 +// */ +// @JsonProperty(value = "BSSH_CD", required = true) +// String bsshCd; +// /** +// * 보고구분코드 +// */ +// @JsonProperty(value = "RPT_SE_CD", required = true) +// String rptSeCd; +// /** +// * 사용자보고식별번호 +// */ +// String usrPrtIdNo; +// /** +// * 보고접수번호 +// */ +// String rptRceptNo; +// /** +// * 에러코드 +// */ +// String errorCd; +// /** +// * 에러메시지 +// */ +// String errorMsg; +// } 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 2f9a2fb..a322eb9 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 @@ -1,18 +1,13 @@ package cokr.xit.adds.inf.nims.model; -import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.validation.Valid; import com.fasterxml.jackson.annotation.JsonAlias; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; import cokr.xit.adds.core.model.AuditDto; -import cokr.xit.adds.core.spring.exception.ApiCustomException; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; @@ -118,87 +113,87 @@ public class NimsApiDto { private String prmisnNo; } - /** - * 상품 정보 조회 response - */ - @Getter - @NoArgsConstructor - @AllArgsConstructor - @SuperBuilder - public static class ProductInfoKd extends AuditDto { - /** - * 품목코드 - */ - @JsonAlias("PRDUCT_CD") - private String prductCd; - - /** - * 제품대표코드 - */ - @JsonAlias("PRDLST_MST_CD") - private String prdlstMstCd; - - /** - * 제품명 - */ - @JsonAlias("PRDUCT_NM") - private String prductNm; - - /** - * 마약/항정 구분명 - */ - @JsonAlias("NRCD_SE_NM") - private String nrcdSeNm; - - /** - * 중점/일반 구분 - */ - @JsonAlias("PRTM_SE_NM") - private String prtmSeNm; - - /** - * 제품최소유통단위수량 - * 제품규격정보(고정값 = 1) - */ - @JsonAlias("PRD_MIN_DISTB_QY") - private Integer prdMinDistbQy; - - /** - * 제품최소유통단위 - */ - @JsonAlias("STD_PACKNG_STLE_NM") - private String stdPackngStleNm; - - /** - * 제품총낱개단위수량 - */ - @JsonAlias("PRD_TOT_PCE_QY") - private Integer prdTotPceQy; - - /** - * 제품낱개단위 - */ - @JsonAlias("PCE_CO_UNIT_NM") - private String pceCoUnitNm; - - /** - * 마약류취급자식별번호 - */ - @JsonAlias("BSSH_CD") - private String bsshCd; - - /** - * 등록일 - */ - @JsonAlias("RGS_DT") - private String rgsDt; - - /** - * 변경일 - */ - @JsonAlias("UPD_DT") - private String updDt; - } + // /** + // * 상품 정보 조회 response + // */ + // @Getter + // @NoArgsConstructor + // @AllArgsConstructor + // @SuperBuilder + // public static class ProductInfoKd extends AuditDto { + // /** + // * 품목코드 + // */ + // @JsonAlias("PRDUCT_CD") + // private String prductCd; + // + // /** + // * 제품대표코드 + // */ + // @JsonAlias("PRDLST_MST_CD") + // private String prdlstMstCd; + // + // /** + // * 제품명 + // */ + // @JsonAlias("PRDUCT_NM") + // private String prductNm; + // + // /** + // * 마약/항정 구분명 + // */ + // @JsonAlias("NRCD_SE_NM") + // private String nrcdSeNm; + // + // /** + // * 중점/일반 구분 + // */ + // @JsonAlias("PRTM_SE_NM") + // private String prtmSeNm; + // + // /** + // * 제품최소유통단위수량 + // * 제품규격정보(고정값 = 1) + // */ + // @JsonAlias("PRD_MIN_DISTB_QY") + // private Integer prdMinDistbQy; + // + // /** + // * 제품최소유통단위 + // */ + // @JsonAlias("STD_PACKNG_STLE_NM") + // private String stdPackngStleNm; + // + // /** + // * 제품총낱개단위수량 + // */ + // @JsonAlias("PRD_TOT_PCE_QY") + // private Integer prdTotPceQy; + // + // /** + // * 제품낱개단위 + // */ + // @JsonAlias("PCE_CO_UNIT_NM") + // private String pceCoUnitNm; + // + // /** + // * 마약류취급자식별번호 + // */ + // @JsonAlias("BSSH_CD") + // private String bsshCd; + // + // /** + // * 등록일 + // */ + // @JsonAlias("RGS_DT") + // private String rgsDt; + // + // /** + // * 변경일 + // */ + // @JsonAlias("UPD_DT") + // private String updDt; + // } /** * 폐기보고 response @@ -322,16 +317,6 @@ public class NimsApiDto { @Builder.Default @Valid private ListdsuseRptInfoDtls = new ArrayList<>(); - - // clone 메소드 추가 - @Override - public DsuseRptInfo clone() { - try { - return (DsuseRptInfo) super.clone(); - } catch (CloneNotSupportedException e) { - throw ApiCustomException.create("NIMS 폐기보고 정보 복제 중 오류가 발생 하였습니다."); - } - } } @Getter @@ -408,175 +393,175 @@ public class NimsApiDto { private Integer dsuseQy; } - /** - * 제품 제조 일련 번호 정보 조회 response - */ - @Getter - @Setter - @NoArgsConstructor - @AllArgsConstructor - @SuperBuilder - public static class MnfSeqInfo extends AuditDto { - /** - * 제품코드 - */ - @JsonAlias("PRDUCT_CD") - private String prductCd; - - /** - * 제품명 - */ - @JsonAlias("PRDUCT_NM") - private String prductNm; - - /** - * 제조번호 - */ - @JsonAlias("MNF_NO") - private String mnfNo; - - /** - * 일련번호 - */ - @JsonAlias("MNF_SEQ") - private String mnfSeq; - - /** - * 유효기간 - */ - @JsonAlias("PRD_VALID_DE") - private String prdValidDe; - } - - /** - * 관할 허가 관청 정보 조회 response - */ - @Getter - @NoArgsConstructor - @AllArgsConstructor - @SuperBuilder - public static class JurisdictionGovInfo extends AuditDto { - /** - * 기관코드 - */ - @JsonAlias("OF_CD") - private String ofCd; - - /** - * 기관명 - */ - @JsonAlias("OF_NM") - private String ofNm; - - /** - * 상위 기관명 - */ - @JsonAlias("UP_OF_NM") - private String upOfNm; - - /** - * 최상위 기관명 - */ - @JsonAlias("TOP_OF_NM") - private String topOfNm; - - /** - * 기본 주소 - */ - @JsonAlias("BASS_ADRES") - private String bassAdres; - - /** - * 상세 주소 - */ - @JsonAlias("BASS_DTL_ADRES") - private String bassDtlAdres; - } - - /** - * 저장소 정보 조회 response - */ - @Getter - @NoArgsConstructor - @AllArgsConstructor - @SuperBuilder - public static class StorageInfo extends AuditDto { - /** - * 마약류취급자식별번호 - */ - @JsonAlias("BSSH_CD") - private String bsshCd; - - /** - * 업체명 - */ - @JsonAlias("BSSH_NM") - private String bsshNm; - - /** - * 저장소 번호 - */ - @JsonAlias("STORGE_NO") - private String storgeNo; - - /** - * 저장소명 - */ - @JsonAlias("STORGE_NM") - private String storgeNm; - - /** - * 저장소 유형 - */ - @JsonAlias("STORGE_SE_NM") - private String storgeSeNm; - - /** - * 기본 주소 - */ - @JsonAlias("BASS_ADRES") - private String bassAdres; - - /** - * 상세 주소 - */ - @JsonAlias("BASS_DTL_ADRES") - private String bassDtlAdres; - - /** - * 사용 유무 - */ - @JsonAlias("USE_AT") - private String useAt; - } - - /** - * - * 제품 제조 일련 번호 정보 조회 response Serializer - * 제품 제조 일련 번호 정보 조회시 (json "PRODUCT_CD" -> "prductCd") 직렬화를 위한 Serializer - * @uses @JsonSerialize(using = MnfSeqInfoSerializer.class) - *- */ - public static class MnfSeqInfoSerializer extends JsonSerializer> { - @Override - public void serialize(List
mnfSeqInfos, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) { - - try { - jsonGenerator.writeStartArray(); - for(MnfSeqInfo mnfSeqInfo : mnfSeqInfos) { - jsonGenerator.writeStartObject(); - jsonGenerator.writeStringField("prductCd", mnfSeqInfo.getPrductCd()); - jsonGenerator.writeStringField("prductNm", mnfSeqInfo.getPrductNm()); - jsonGenerator.writeStringField("mnfNo", mnfSeqInfo.getMnfNo()); - jsonGenerator.writeStringField("mnfSeq", mnfSeqInfo.getMnfSeq()); - jsonGenerator.writeStringField("prdValidDe", mnfSeqInfo.getPrdValidDe()); - jsonGenerator.writeEndObject(); - } - jsonGenerator.writeEndArray(); - } catch (IOException e) { - throw ApiCustomException.create("NIMS 제조 일련 번호 조회 API 호출 결과 직렬화 중 오류가 발생 하였습니다."); - } - } - } + // /** + // * 제품 제조 일련 번호 정보 조회 response + // */ + // @Getter + // @Setter + // @NoArgsConstructor + // @AllArgsConstructor + // @SuperBuilder + // public static class MnfSeqInfo extends AuditDto { + // /** + // * 제품코드 + // */ + // @JsonAlias("PRDUCT_CD") + // private String prductCd; + // + // /** + // * 제품명 + // */ + // @JsonAlias("PRDUCT_NM") + // private String prductNm; + // + // /** + // * 제조번호 + // */ + // @JsonAlias("MNF_NO") + // private String mnfNo; + // + // /** + // * 일련번호 + // */ + // @JsonAlias("MNF_SEQ") + // private String mnfSeq; + // + // /** + // * 유효기간 + // */ + // @JsonAlias("PRD_VALID_DE") + // private String prdValidDe; + // } + // + // /** + // * 관할 허가 관청 정보 조회 response + // */ + // @Getter + // @NoArgsConstructor + // @AllArgsConstructor + // @SuperBuilder + // public static class JurisdictionGovInfo extends AuditDto { + // /** + // * 기관코드 + // */ + // @JsonAlias("OF_CD") + // private String ofCd; + // + // /** + // * 기관명 + // */ + // @JsonAlias("OF_NM") + // private String ofNm; + // + // /** + // * 상위 기관명 + // */ + // @JsonAlias("UP_OF_NM") + // private String upOfNm; + // + // /** + // * 최상위 기관명 + // */ + // @JsonAlias("TOP_OF_NM") + // private String topOfNm; + // + // /** + // * 기본 주소 + // */ + // @JsonAlias("BASS_ADRES") + // private String bassAdres; + // + // /** + // * 상세 주소 + // */ + // @JsonAlias("BASS_DTL_ADRES") + // private String bassDtlAdres; + // } + // + // /** + // * 저장소 정보 조회 response + // */ + // @Getter + // @NoArgsConstructor + // @AllArgsConstructor + // @SuperBuilder + // public static class StorageInfo extends AuditDto { + // /** + // * 마약류취급자식별번호 + // */ + // @JsonAlias("BSSH_CD") + // private String bsshCd; + // + // /** + // * 업체명 + // */ + // @JsonAlias("BSSH_NM") + // private String bsshNm; + // + // /** + // * 저장소 번호 + // */ + // @JsonAlias("STORGE_NO") + // private String storgeNo; + // + // /** + // * 저장소명 + // */ + // @JsonAlias("STORGE_NM") + // private String storgeNm; + // + // /** + // * 저장소 유형 + // */ + // @JsonAlias("STORGE_SE_NM") + // private String storgeSeNm; + // + // /** + // * 기본 주소 + // */ + // @JsonAlias("BASS_ADRES") + // private String bassAdres; + // + // /** + // * 상세 주소 + // */ + // @JsonAlias("BASS_DTL_ADRES") + // private String bassDtlAdres; + // + // /** + // * 사용 유무 + // */ + // @JsonAlias("USE_AT") + // private String useAt; + // } + // + // /** + // * + // * 제품 제조 일련 번호 정보 조회 response Serializer + // * 제품 제조 일련 번호 정보 조회시 (json "PRODUCT_CD" -> "prductCd") 직렬화를 위한 Serializer + // * @uses @JsonSerialize(using = MnfSeqInfoSerializer.class) + // *+ // */ + // public static class MnfSeqInfoSerializer extends JsonSerializer> { + // @Override + // public void serialize(List
mnfSeqInfos, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) { + // + // try { + // jsonGenerator.writeStartArray(); + // for(MnfSeqInfo mnfSeqInfo : mnfSeqInfos) { + // jsonGenerator.writeStartObject(); + // jsonGenerator.writeStringField("prductCd", mnfSeqInfo.getPrductCd()); + // jsonGenerator.writeStringField("prductNm", mnfSeqInfo.getPrductNm()); + // jsonGenerator.writeStringField("mnfNo", mnfSeqInfo.getMnfNo()); + // jsonGenerator.writeStringField("mnfSeq", mnfSeqInfo.getMnfSeq()); + // jsonGenerator.writeStringField("prdValidDe", mnfSeqInfo.getPrdValidDe()); + // jsonGenerator.writeEndObject(); + // } + // jsonGenerator.writeEndArray(); + // } catch (IOException e) { + // throw ApiCustomException.create("NIMS 제조 일련 번호 조회 API 호출 결과 직렬화 중 오류가 발생 하였습니다."); + // } + // } + // } } 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 75e6f0b..6e8b01d 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 @@ -111,73 +111,73 @@ public class NimsApiRequest { String fg2 = "1"; } - /** - * 상품 정보 조회 request - */ - @Schema(name = "ProductInfoRequest", description = "상품 정보 조회 request") - @Data - @NoArgsConstructor - @AllArgsConstructor - @Builder - public static class ProductInfoRequest { - /** - * 인증키 - */ - @Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "998003699950fa950b798c9edea1b38f3cfbcf3b77e03e419") - @NotEmpty(message = "인증키는 필수 입니다") - String k; - - /** - * 조회범위 - * 1-전체, 2-내거래품목, 3-청구코드매핑 - */ - @Schema(requiredMode = REQUIRED, title = "조회범위(1-전체, 2-내거래처 품목, 3-청구코드 매핑)", description = "조회범위(1-전체, 2-내거래처 품목, 3-청구코드 매핑)", example = "1", allowableValues = {"1", "2", "3"}) - @Pattern(regexp = "[1-3]", message = "조회범위는 필수 입니다(1-전체, 2-내거래처 품목, 3-청구코드 매핑)") - String fg; - - /** - * 조회 페이지 - */ - @Schema(requiredMode = REQUIRED, title = "조회 페이지", description = "조회 페이지", example = "1") - @Pattern(regexp = "[0-9]{1,}", message = "조회 페이지는 필수 입니다") - String pg; - - /** - * 기준일자 이후 - * yyyyMMdd - */ - @Schema(title = "기준일자(yyyyMMdd-이후일자)", description = "기준일자(yyyyMMdd-이후일자)", example = " ") - @Pattern(regexp = "^$|"+Constants.DATE_REGX, message = "기준 일자는 8자리 입니다(yyyyMMdd)") - @Builder.Default - String ymd = StringUtils.EMPTY; - - /** - * 중점/일반 구분 - * 1:중점 - * 2:일반 - */ - @Schema(title = "중점|일반 구분(all, 1:중점, 2:일반)", description = "중점|일반 구분(all, 1:중점, 2:일반)", example = " ", allowableValues = {"", "1", "2"}) - @Pattern(regexp = "^$|[12]", message = "중점|일반 구분은 1 또는 2 입니다(1:중점, 2:일반)") - @Builder.Default - String fg2 = StringUtils.EMPTY; - - /** - * 제품코드 - * 제품코드(like 검색) - * 조회범위(pg)가 3인 경우 청구 코드 - */ - @Schema(title = "제품코드", description = "제품코드", example = " ") - @Pattern(regexp = "^$|[0-9a-zA-Z]{13}", message = "제품코드는 13자리 입니다") - @Builder.Default - String p = StringUtils.EMPTY; - - /** - * 제품명(like 검색) - */ - @Schema(title = "제품명", description = "제품명", example = " ") - @Builder.Default - String pn = StringUtils.EMPTY; - } + // /** + // * 상품 정보 조회 request + // */ + // @Schema(name = "ProductInfoRequest", description = "상품 정보 조회 request") + // @Data + // @NoArgsConstructor + // @AllArgsConstructor + // @Builder + // public static class ProductInfoRequest { + // /** + // * 인증키 + // */ + // @Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "998003699950fa950b798c9edea1b38f3cfbcf3b77e03e419") + // @NotEmpty(message = "인증키는 필수 입니다") + // String k; + // + // /** + // * 조회범위 + // * 1-전체, 2-내거래품목, 3-청구코드매핑 + // */ + // @Schema(requiredMode = REQUIRED, title = "조회범위(1-전체, 2-내거래처 품목, 3-청구코드 매핑)", description = "조회범위(1-전체, 2-내거래처 품목, 3-청구코드 매핑)", example = "1", allowableValues = {"1", "2", "3"}) + // @Pattern(regexp = "[1-3]", message = "조회범위는 필수 입니다(1-전체, 2-내거래처 품목, 3-청구코드 매핑)") + // String fg; + // + // /** + // * 조회 페이지 + // */ + // @Schema(requiredMode = REQUIRED, title = "조회 페이지", description = "조회 페이지", example = "1") + // @Pattern(regexp = "[0-9]{1,}", message = "조회 페이지는 필수 입니다") + // String pg; + // + // /** + // * 기준일자 이후 + // * yyyyMMdd + // */ + // @Schema(title = "기준일자(yyyyMMdd-이후일자)", description = "기준일자(yyyyMMdd-이후일자)", example = " ") + // @Pattern(regexp = "^$|"+Constants.DATE_REGX, message = "기준 일자는 8자리 입니다(yyyyMMdd)") + // @Builder.Default + // String ymd = StringUtils.EMPTY; + // + // /** + // * 중점/일반 구분 + // * 1:중점 + // * 2:일반 + // */ + // @Schema(title = "중점|일반 구분(all, 1:중점, 2:일반)", description = "중점|일반 구분(all, 1:중점, 2:일반)", example = " ", allowableValues = {"", "1", "2"}) + // @Pattern(regexp = "^$|[12]", message = "중점|일반 구분은 1 또는 2 입니다(1:중점, 2:일반)") + // @Builder.Default + // String fg2 = StringUtils.EMPTY; + // + // /** + // * 제품코드 + // * 제품코드(like 검색) + // * 조회범위(pg)가 3인 경우 청구 코드 + // */ + // @Schema(title = "제품코드", description = "제품코드", example = " ") + // @Pattern(regexp = "^$|[0-9a-zA-Z]{13}", message = "제품코드는 13자리 입니다") + // @Builder.Default + // String p = StringUtils.EMPTY; + // + // /** + // * 제품명(like 검색) + // */ + // @Schema(title = "제품명", description = "제품명", example = " ") + // @Builder.Default + // String pn = StringUtils.EMPTY; + // } @Schema(name = "DsuseRptInfoRequest", description = "폐기 보고 정보 조회 request") @Data @@ -289,164 +289,164 @@ public class NimsApiRequest { } - /** - * 제품 일련 번호 정보 조회 request - */ - @Schema(name = "MnfSeqInfoRequest", description = "제품 일련 번호 정보 조회 request") - @Data - @NoArgsConstructor - @AllArgsConstructor - @Builder - public static class MnfSeqInfoRequest { - /** - * 인증키 - */ - @Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "998003699950fa950b798c9edea1b38f3cfbcf3b77e03e419") - @NotEmpty(message = "인증키는 필수 입니다") - String k; - - /** - * 조회범위 : 실제는 동일 - * 1-제조번호, 2-일련번호, 3-바코드/RFID - */ - @Schema(requiredMode = REQUIRED, title = "제조번호 또는 일련번호 구분", description = "제조번호 또는 일련번호 구분(1-제조번호, 2-일련번호, 3-바코드/RFID)", example = "1", allowableValues = {"1", "2", "3"}) - @Pattern(regexp = "[1-3]", message = "제조번호 또는 일련번호 구분은 필수 입니다(1-제조번호, 2-일련번호, 3-바코드/RFID)") - String fg; - - /** - * 조회 페이지 - */ - @Schema(requiredMode = REQUIRED, title = "조회 페이지", description = "조회 페이지", example = "1") - @Pattern(regexp = "[0-9]{1,}", message = "조회 페이지는 필수 입니다") - String pg; - - /** - * 제품코드 - * 제품코드(like 검색) - * 조회범위(pg)가 3인 경우 청구 코드 - */ - @Schema(requiredMode = REQUIRED, title = "제품코드", description = "제품코드", example = "8806718050823") - @Pattern(regexp = "[0-9]{13}", message = "제품코드는 필수 입니다(13자리)") - String p; - - - /** - * 기준일자 이후 - * yyyyMMdd - */ - @Schema(title = "기준일자(yyyyMMdd-이후일자)", description = "기준일자(yyyyMMdd-이후일자)", example = " ") - @Pattern(regexp = "^$|"+Constants.DATE_REGX, message = "기준 일자는 8자리 입니다(yyyyMMdd)") - @Builder.Default - String ymd = StringUtils.EMPTY; - - /** - * 제품코드 : like 검색 - 오류 -> 사용하지 말것 - */ - @Schema(title = "번호일부 검색", description = "번호 일부 검색(like)", example = " ") - @Pattern(regexp = "^$|[0-9]{5,}", message = "제품코드를 5자이상 입력해주세요(제품코드는 13자리)") - @Builder.Default - String t = StringUtils.EMPTY; - } - - /** - * 관할 허가 관청 정보 조회 request - */ - @Schema(name = "JurisdictionGovInfoRequest", description = "관할 허가 관청 정보 조회 request") - @Data - @NoArgsConstructor - @AllArgsConstructor - @Builder - public static class JurisdictionGovInfoRequest { - /** - * 인증키 - */ - @Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "998003699950fa950b798c9edea1b38f3cfbcf3b77e03e419") - @NotEmpty(message = "인증키는 필수 입니다") - String k; - - /** - * 조회범위 - * 1-전체 - */ - @Schema(requiredMode = REQUIRED, title = "조회범위", description = "조회범위(1-전체)", allowableValues = {"1"}) - @Pattern(regexp = "1", message = "조회 범위는 필수 입니다(1-전체)") - String fg; - - /** - * 조회 페이지 - */ - @Schema(requiredMode = REQUIRED, title = "조회 페이지", description = "조회 페이지", example = "1") - @Pattern(regexp = "[0-9]{1,}", message = "조회 페이지는 필수 입니다") - String pg; - - /** - * 기관명 - */ - @Schema(title = "기관명", description = "기관명", example = " ") - @Builder.Default - String onm = StringUtils.EMPTY; - - /** - * 기관 코드 - */ - @Schema(title = "기관 코드", description = "기관 코드", example = " ") - @Builder.Default - String ocd = StringUtils.EMPTY; - - /** - * 주소 - */ - @Schema(title = "주소", description = "주소", example = " ") - @Builder.Default - String adr = StringUtils.EMPTY; - } - - /** - * 저장소 정보 조회 request - */ - @Schema(name = "StorageInfoRequest", description = "저장소 정보 조회 request") - @Data - @NoArgsConstructor - @AllArgsConstructor - @Builder - public static class StorageInfoRequest { - /** - * 인증키 - */ - @Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "998003699950fa950b798c9edea1b38f3cfbcf3b77e03e419") - @NotEmpty(message = "인증키는 필수 입니다") - String k; - - /** - * 조회범위 - * 1-특정 업체, 2-전체 - */ - @Schema(requiredMode = REQUIRED, title = "조회범위", description = "조회범위(1-특정업체, 2-전체)", allowableValues = {"1", "2"}) - @Pattern(regexp = "[12]", message = "조회 범위는 필수 입니다(1-특정업체, 2-전체)") - String fg; - - /** - * 조회 페이지 - */ - @Schema(requiredMode = REQUIRED, title = "조회 페이지", description = "조회 페이지", example = "1") - @Pattern(regexp = "[0-9]{1,}", message = "조회 페이지는 필수 입니다") - String pg; - - /** - * 취급자식별번호 - * 조회범위가 1-특정업체인 경우 필수 - */ - @Schema(title = "취급자식별번호", description = "취급자식별번호", example = " ") - @Builder.Default - String bc = StringUtils.EMPTY; - - /** - * 기준일자 이후 - * yyyyMMdd - */ - @Schema(title = "기준일자(yyyyMMdd-이후일자)", description = "기준일자(yyyyMMdd-이후일자)", example = " ") - @Pattern(regexp = "^$|"+Constants.DATE_REGX, message = "기준 일자는 8자리 입니다(yyyyMMdd)") - @Builder.Default - String ymd = StringUtils.EMPTY; - } + // /** + // * 제품 일련 번호 정보 조회 request + // */ + // @Schema(name = "MnfSeqInfoRequest", description = "제품 일련 번호 정보 조회 request") + // @Data + // @NoArgsConstructor + // @AllArgsConstructor + // @Builder + // public static class MnfSeqInfoRequest { + // /** + // * 인증키 + // */ + // @Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "998003699950fa950b798c9edea1b38f3cfbcf3b77e03e419") + // @NotEmpty(message = "인증키는 필수 입니다") + // String k; + // + // /** + // * 조회범위 : 실제는 동일 + // * 1-제조번호, 2-일련번호, 3-바코드/RFID + // */ + // @Schema(requiredMode = REQUIRED, title = "제조번호 또는 일련번호 구분", description = "제조번호 또는 일련번호 구분(1-제조번호, 2-일련번호, 3-바코드/RFID)", example = "1", allowableValues = {"1", "2", "3"}) + // @Pattern(regexp = "[1-3]", message = "제조번호 또는 일련번호 구분은 필수 입니다(1-제조번호, 2-일련번호, 3-바코드/RFID)") + // String fg; + // + // /** + // * 조회 페이지 + // */ + // @Schema(requiredMode = REQUIRED, title = "조회 페이지", description = "조회 페이지", example = "1") + // @Pattern(regexp = "[0-9]{1,}", message = "조회 페이지는 필수 입니다") + // String pg; + // + // /** + // * 제품코드 + // * 제품코드(like 검색) + // * 조회범위(pg)가 3인 경우 청구 코드 + // */ + // @Schema(requiredMode = REQUIRED, title = "제품코드", description = "제품코드", example = "8806718050823") + // @Pattern(regexp = "[0-9]{13}", message = "제품코드는 필수 입니다(13자리)") + // String p; + // + // + // /** + // * 기준일자 이후 + // * yyyyMMdd + // */ + // @Schema(title = "기준일자(yyyyMMdd-이후일자)", description = "기준일자(yyyyMMdd-이후일자)", example = " ") + // @Pattern(regexp = "^$|"+Constants.DATE_REGX, message = "기준 일자는 8자리 입니다(yyyyMMdd)") + // @Builder.Default + // String ymd = StringUtils.EMPTY; + // + // /** + // * 제품코드 : like 검색 - 오류 -> 사용하지 말것 + // */ + // @Schema(title = "번호일부 검색", description = "번호 일부 검색(like)", example = " ") + // @Pattern(regexp = "^$|[0-9]{5,}", message = "제품코드를 5자이상 입력해주세요(제품코드는 13자리)") + // @Builder.Default + // String t = StringUtils.EMPTY; + // } + // + // /** + // * 관할 허가 관청 정보 조회 request + // */ + // @Schema(name = "JurisdictionGovInfoRequest", description = "관할 허가 관청 정보 조회 request") + // @Data + // @NoArgsConstructor + // @AllArgsConstructor + // @Builder + // public static class JurisdictionGovInfoRequest { + // /** + // * 인증키 + // */ + // @Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "998003699950fa950b798c9edea1b38f3cfbcf3b77e03e419") + // @NotEmpty(message = "인증키는 필수 입니다") + // String k; + // + // /** + // * 조회범위 + // * 1-전체 + // */ + // @Schema(requiredMode = REQUIRED, title = "조회범위", description = "조회범위(1-전체)", allowableValues = {"1"}) + // @Pattern(regexp = "1", message = "조회 범위는 필수 입니다(1-전체)") + // String fg; + // + // /** + // * 조회 페이지 + // */ + // @Schema(requiredMode = REQUIRED, title = "조회 페이지", description = "조회 페이지", example = "1") + // @Pattern(regexp = "[0-9]{1,}", message = "조회 페이지는 필수 입니다") + // String pg; + // + // /** + // * 기관명 + // */ + // @Schema(title = "기관명", description = "기관명", example = " ") + // @Builder.Default + // String onm = StringUtils.EMPTY; + // + // /** + // * 기관 코드 + // */ + // @Schema(title = "기관 코드", description = "기관 코드", example = " ") + // @Builder.Default + // String ocd = StringUtils.EMPTY; + // + // /** + // * 주소 + // */ + // @Schema(title = "주소", description = "주소", example = " ") + // @Builder.Default + // String adr = StringUtils.EMPTY; + // } + // + // /** + // * 저장소 정보 조회 request + // */ + // @Schema(name = "StorageInfoRequest", description = "저장소 정보 조회 request") + // @Data + // @NoArgsConstructor + // @AllArgsConstructor + // @Builder + // public static class StorageInfoRequest { + // /** + // * 인증키 + // */ + // @Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "998003699950fa950b798c9edea1b38f3cfbcf3b77e03e419") + // @NotEmpty(message = "인증키는 필수 입니다") + // String k; + // + // /** + // * 조회범위 + // * 1-특정 업체, 2-전체 + // */ + // @Schema(requiredMode = REQUIRED, title = "조회범위", description = "조회범위(1-특정업체, 2-전체)", allowableValues = {"1", "2"}) + // @Pattern(regexp = "[12]", message = "조회 범위는 필수 입니다(1-특정업체, 2-전체)") + // String fg; + // + // /** + // * 조회 페이지 + // */ + // @Schema(requiredMode = REQUIRED, title = "조회 페이지", description = "조회 페이지", example = "1") + // @Pattern(regexp = "[0-9]{1,}", message = "조회 페이지는 필수 입니다") + // String pg; + // + // /** + // * 취급자식별번호 + // * 조회범위가 1-특정업체인 경우 필수 + // */ + // @Schema(title = "취급자식별번호", description = "취급자식별번호", example = " ") + // @Builder.Default + // String bc = StringUtils.EMPTY; + // + // /** + // * 기준일자 이후 + // * yyyyMMdd + // */ + // @Schema(title = "기준일자(yyyyMMdd-이후일자)", description = "기준일자(yyyyMMdd-이후일자)", example = " ") + // @Pattern(regexp = "^$|"+Constants.DATE_REGX, message = "기준 일자는 8자리 입니다(yyyyMMdd)") + // @Builder.Default + // String ymd = StringUtils.EMPTY; + // } } diff --git a/src/main/java/cokr/xit/adds/inf/nims/service/InfNimsService.java b/src/main/java/cokr/xit/adds/inf/nims/service/InfNimsService.java index bc3d1d8..d0e381b 100644 --- a/src/main/java/cokr/xit/adds/inf/nims/service/InfNimsService.java +++ b/src/main/java/cokr/xit/adds/inf/nims/service/InfNimsService.java @@ -22,13 +22,13 @@ import cokr.xit.adds.inf.nims.model.NimsApiResult; public interface InfNimsService { NimsApiResult.Response getBsshInfoSt(NimsApiRequest.BsshInfoRequest dto); - NimsApiResult.Response getProductInfoKd(NimsApiRequest.ProductInfoRequest dto); - - NimsApiResult.Response getMnfSeqInfo(NimsApiRequest.MnfSeqInfoRequest dto); - - NimsApiResult.Response getJurisdictionGovInfo(NimsApiRequest.JurisdictionGovInfoRequest dto); - - NimsApiResult.Response getStorageInfo(NimsApiRequest.StorageInfoRequest dto); + // NimsApiResult.Response getProductInfoKd(NimsApiRequest.ProductInfoRequest dto); + // + // NimsApiResult.Response getMnfSeqInfo(NimsApiRequest.MnfSeqInfoRequest dto); + // + // NimsApiResult.Response getJurisdictionGovInfo(NimsApiRequest.JurisdictionGovInfoRequest dto); + // + // NimsApiResult.Response getStorageInfo(NimsApiRequest.StorageInfoRequest dto); NimsApiResult.Response getDsuseRptInfo(NimsApiRequest.DsuseRptInfoRequest dto); } 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 eeadd63..20d9ddd 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 @@ -90,61 +90,61 @@ public class InfNimsServiceBean extends AbstractServiceBean implements InfNimsSe return result.getResponse(); } - @Override - @TraceLogging - public NimsApiResult.Response getProductInfoKd(NimsApiRequest.ProductInfoRequest dto) { - dto.setK(nimsApiKey); - ApiUtil.validate(dto, null, validator); - if(!isEmpty(dto.getYmd())) ApiUtil.checkYmdError(dto.getYmd(), null); - - String rslt = ApiUtil.callNimsApi(nimsUrl + productinfoKd, dto); - NimsApiResult result = json.parse(rslt, new TypeReference >() {}); - return result.getResponse(); - } - - @Override - @TraceLogging - public NimsApiResult.Response getMnfSeqInfo(NimsApiRequest.MnfSeqInfoRequest dto) { - dto.setK(nimsApiKey); - ApiUtil.validate(dto, null, validator); - if(!isEmpty(dto.getYmd())) ApiUtil.checkYmdError(dto.getYmd(), null); - - String rslt = ApiUtil.callNimsApi(nimsUrl + seqinfo, dto); - NimsApiResult result = json.parse(rslt, new TypeReference >() {}); - return result.getResponse(); - } - - @Override - @TraceLogging - public NimsApiResult.Response getJurisdictionGovInfo( - NimsApiRequest.JurisdictionGovInfoRequest dto) { - dto.setK(nimsApiKey); - ApiUtil.validate(dto, null, validator); - if(isEmpty(dto.getOcd()) && isEmpty(dto.getOnm()) && isEmpty(dto.getAdr())) { - throw ApiCustomException.create("필수 파라메터 에러(ocd-기관 코드, onm-기관명, adr-주소 중 하나는 필수)"); - } - - String rslt = ApiUtil.callNimsApi(nimsUrl + officeinfo, dto); - NimsApiResult result = json.parse(rslt, new TypeReference >() {}); - return result.getResponse(); - } - - @Override - @TraceLogging - public NimsApiResult.Response getStorageInfo(NimsApiRequest.StorageInfoRequest dto) { - dto.setK(nimsApiKey); - ApiUtil.validate(dto, null, validator); - if(!isEmpty(dto.getYmd())) ApiUtil.checkYmdError(dto.getYmd(), null); - if(!isEmpty(dto.getFg()) && dto.getFg().equals("1")) { - if(isEmpty(dto.getBc())){ - throw ApiCustomException.create("조회 범위를 특정업체(fg=1)로 조회할 경우 취급자식별번호(bc)는 필수입니다"); - } - } - - String rslt = ApiUtil.callNimsApi(nimsUrl + placeinfoV1, dto); - NimsApiResult result = json.parse(rslt, new TypeReference >() {}); - return result.getResponse(); - } + // @Override + // @TraceLogging + // public NimsApiResult.Response getProductInfoKd(NimsApiRequest.ProductInfoRequest dto) { + // dto.setK(nimsApiKey); + // ApiUtil.validate(dto, null, validator); + // if(!isEmpty(dto.getYmd())) ApiUtil.checkYmdError(dto.getYmd(), null); + // + // String rslt = ApiUtil.callNimsApi(nimsUrl + productinfoKd, dto); + // NimsApiResult result = json.parse(rslt, new TypeReference >() {}); + // return result.getResponse(); + // } + // + // @Override + // @TraceLogging + // public NimsApiResult.Response getMnfSeqInfo(NimsApiRequest.MnfSeqInfoRequest dto) { + // dto.setK(nimsApiKey); + // ApiUtil.validate(dto, null, validator); + // if(!isEmpty(dto.getYmd())) ApiUtil.checkYmdError(dto.getYmd(), null); + // + // String rslt = ApiUtil.callNimsApi(nimsUrl + seqinfo, dto); + // NimsApiResult result = json.parse(rslt, new TypeReference >() {}); + // return result.getResponse(); + // } + // + // @Override + // @TraceLogging + // public NimsApiResult.Response getJurisdictionGovInfo( + // NimsApiRequest.JurisdictionGovInfoRequest dto) { + // dto.setK(nimsApiKey); + // ApiUtil.validate(dto, null, validator); + // if(isEmpty(dto.getOcd()) && isEmpty(dto.getOnm()) && isEmpty(dto.getAdr())) { + // throw ApiCustomException.create("필수 파라메터 에러(ocd-기관 코드, onm-기관명, adr-주소 중 하나는 필수)"); + // } + // + // String rslt = ApiUtil.callNimsApi(nimsUrl + officeinfo, dto); + // NimsApiResult result = json.parse(rslt, new TypeReference >() {}); + // return result.getResponse(); + // } + // + // @Override + // @TraceLogging + // public NimsApiResult.Response getStorageInfo(NimsApiRequest.StorageInfoRequest dto) { + // dto.setK(nimsApiKey); + // ApiUtil.validate(dto, null, validator); + // if(!isEmpty(dto.getYmd())) ApiUtil.checkYmdError(dto.getYmd(), null); + // if(!isEmpty(dto.getFg()) && dto.getFg().equals("1")) { + // if(isEmpty(dto.getBc())){ + // throw ApiCustomException.create("조회 범위를 특정업체(fg=1)로 조회할 경우 취급자식별번호(bc)는 필수입니다"); + // } + // } + // + // String rslt = ApiUtil.callNimsApi(nimsUrl + placeinfoV1, dto); + // NimsApiResult result = json.parse(rslt, new TypeReference >() {}); + // return result.getResponse(); + // } @Override public NimsApiResult.Response getDsuseRptInfo(NimsApiRequest.DsuseRptInfoRequest dto) { diff --git a/src/main/java/cokr/xit/adds/inf/nims/web/InfNimsController.java b/src/main/java/cokr/xit/adds/inf/nims/web/InfNimsController.java index 710f46f..e6f78a6 100644 --- a/src/main/java/cokr/xit/adds/inf/nims/web/InfNimsController.java +++ b/src/main/java/cokr/xit/adds/inf/nims/web/InfNimsController.java @@ -44,37 +44,37 @@ public class InfNimsController { return ApiBaseResponse.of(infNimsService.getBsshInfoSt(dto)); } - @Operation(summary = "마약류 상품 정보 조회", description = "마약류 상품정보 조회") - @PostMapping("/getProductInfoKd") - public ApiBaseResponse > getProductInfoKd( - @RequestBody NimsApiRequest.ProductInfoRequest dto - ) { - return ApiBaseResponse.of(infNimsService.getProductInfoKd(dto)); - } - - @Operation(summary = "제조 일련 번호 정보 조회", description = "제조 일련 번호 정보 조회") - @PostMapping("/getMnfSeqInfo") - public ApiBaseResponse > getMnfSeqInfo( - @RequestBody NimsApiRequest.MnfSeqInfoRequest dto - ) { - return ApiBaseResponse.of(infNimsService.getMnfSeqInfo(dto)); - } - - @Operation(summary = "관할 허가 관청 정보 조회", description = "관할 허가 관청 정보 조회") - @PostMapping("/getJurisdictionGovInfo") - public ApiBaseResponse > getJurisdictionGovInfo( - @RequestBody NimsApiRequest.JurisdictionGovInfoRequest dto - ) { - return ApiBaseResponse.of(infNimsService.getJurisdictionGovInfo(dto)); - } - - @Operation(summary = "저장소 정보 조회", description = "저장소 정보 조회") - @PostMapping("/getStorageInfo") - public ApiBaseResponse > getStorageInfo( - @RequestBody NimsApiRequest.StorageInfoRequest dto - ) { - return ApiBaseResponse.of(infNimsService.getStorageInfo(dto)); - } + // @Operation(summary = "마약류 상품 정보 조회", description = "마약류 상품정보 조회") + // @PostMapping("/getProductInfoKd") + // public ApiBaseResponse > getProductInfoKd( + // @RequestBody NimsApiRequest.ProductInfoRequest dto + // ) { + // return ApiBaseResponse.of(infNimsService.getProductInfoKd(dto)); + // } + // + // @Operation(summary = "제조 일련 번호 정보 조회", description = "제조 일련 번호 정보 조회") + // @PostMapping("/getMnfSeqInfo") + // public ApiBaseResponse > getMnfSeqInfo( + // @RequestBody NimsApiRequest.MnfSeqInfoRequest dto + // ) { + // return ApiBaseResponse.of(infNimsService.getMnfSeqInfo(dto)); + // } + // + // @Operation(summary = "관할 허가 관청 정보 조회", description = "관할 허가 관청 정보 조회") + // @PostMapping("/getJurisdictionGovInfo") + // public ApiBaseResponse > getJurisdictionGovInfo( + // @RequestBody NimsApiRequest.JurisdictionGovInfoRequest dto + // ) { + // return ApiBaseResponse.of(infNimsService.getJurisdictionGovInfo(dto)); + // } + // + // @Operation(summary = "저장소 정보 조회", description = "저장소 정보 조회") + // @PostMapping("/getStorageInfo") + // public ApiBaseResponse > getStorageInfo( + // @RequestBody NimsApiRequest.StorageInfoRequest dto + // ) { + // return ApiBaseResponse.of(infNimsService.getStorageInfo(dto)); + // } @Operation(summary = "폐기 보고 정보 조회", description = "폐기 보고 정보 조회") @PostMapping("/getDsuseRptInfo") diff --git a/src/main/resources/sql/mapper-backup/nims-mysql-mapper-backup.xml b/src/main/resources/sql/mapper-backup/nims-mysql-mapper-backup.xml new file mode 100644 index 0000000..446aab9 --- /dev/null +++ b/src/main/resources/sql/mapper-backup/nims-mysql-mapper-backup.xml @@ -0,0 +1,458 @@ + + + + + + + + + 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 446aab9..75ad66d 100644 --- a/src/main/resources/sql/mapper/biz/nims-mysql-mapper.xml +++ b/src/main/resources/sql/mapper/biz/nims-mysql-mapper.xml @@ -57,96 +57,6 @@ mdfcn_dt = DATE_FORMAT(now(), '%Y%m%d%H%i%s'), mdfr = #{rgtr} - -+ /** nims-mysql-mapper|mergeBsshInfoSt-마약류취급자정보 생성/변경|julim */ + INSERT INTO tb_bssh_info( + bssh_cd, + bssh_nm, + induty_nm, + hdnt_cd, + hdnt_nm, + bizrno, + rprsntv_nm, + chrg_nm, + hptl_no, + join_yn, + bssh_stts_nm, + prmisn_no, + use_yn, + reg_dt, + rgtr + ) VALUES ( + #{bsshCd}, + #{bsshNm}, + #{indutyNm}, + #{hdntCd}, + #{hdntNm}, + #{bizrno}, + #{rprsntvNm}, + #{chrgNm}, + #{hptlNo}, + #{joinYn}, + #{bsshSttusNm}, + #{prmisnNo}, + 'Y', + DATE_FORMAT(now(), '%Y%m%d%H%i%s'), + #{rgtr} + ) + ON DUPLICATE KEY UPDATE + bssh_nm = #{bsshNm}, + induty_nm = #{indutyNm}, + hdnt_cd = #{hdntCd}, + hdnt_nm = #{hdntNm}, + bizrno = #{bizrno}, + rprsntv_nm = #{rprsntvNm}, + chrg_nm = #{chrgNm}, + hptl_no = #{hptlNo}, + join_yn = #{joinYn}, + bssh_stts_nm = #{bsshSttusNm}, + prmisn_no = #{prmisnNo}, + mdfcn_dt = DATE_FORMAT(now(), '%Y%m%d%H%i%s'), + mdfr = #{rgtr} + + ++ /** nims-mysql-mapper|mergeProductInfoKd-상품정보 생성|julim */ + INSERT INTO tb_prduct_info( + prduct_cd, + prdlst_mst_cd, + prduct_nm, + nrcd_se_nm, + prtm_se_nm, + prd_min_distb_qy, + std_packng_stle_nm, + prd_tot_pce_qy, + pce_co_unit_nm, + bssh_cd, + rgs_dt, + upd_dt, + use_yn, + reg_dt, + rgtr + ) VALUES ( + #{prductCd}, + #{prdlstMstCd}, + #{prductNm}, + #{nrcdSeNm}, + #{prtmSeNm}, + #{prdMinDistbQy}, + #{stdPackngStleNm}, + #{prdTotPceQy}, + #{pceCoUnitNm}, + #{bsshCd}, + #{rgsDt}, + #{updDt}, + 'Y', + DATE_FORMAT(now(), '%Y%m%d%H%i%s'), + #{rgtr} + ) + ON DUPLICATE KEY UPDATE + prdlst_mst_cd = #{prdlstMstCd}, + prduct_nm = #{prductNm}, + nrcd_se_nm = #{nrcdSeNm}, + prtm_se_nm = #{prtmSeNm}, + prd_min_distb_qy = #{prdMinDistbQy}, + std_packng_stle_nm = #{stdPackngStleNm}, + prd_tot_pce_qy = #{prdTotPceQy}, + pce_co_unit_nm = #{pceCoUnitNm}, + bssh_cd = #{bsshCd}, + rgs_dt = #{rgsDt}, + upd_dt = #{updDt}, + mdfcn_dt = DATE_FORMAT(now(), '%Y%m%d%H%i%s'), + mdfr = #{rgtr} + + ++ /** nims-mysql-mapper|mergeStorgeInfo-저장소 정보 생성|julim */ + INSERT INTO tb_storge_info( + bssh_cd, + bssh_nm, + use_at, + storge_se_nm, + storge_no, + storge_nm, + bass_adres, + bass_dtl_adres, + use_yn, + reg_dt, + rgtr + ) VALUES ( + #{bsshCd}, + #{bsshNm}, + #{useAt}, + #{storgeSeNm}, + #{storgeNo}, + #{storgeNm}, + #{bassAdres}, + #{bassDtlAdres}, + 'Y', + DATE_FORMAT(now(), '%Y%m%d%H%i%s'), + #{rgtr} + ) + ON DUPLICATE KEY UPDATE + bssh_nm = #{bsshNm}, + use_at = #{useAt}, + storge_se_nm = #{storgeSeNm}, + storge_no = #{storgeNo}, + storge_nm = #{storgeNm}, + bass_adres = #{bassAdres}, + bass_dtl_adres = #{bassDtlAdres}, + mdfcn_dt = DATE_FORMAT(now(), '%Y%m%d%H%i%s'), + mdfr = #{rgtr} + + + + + + + + + + + ++ /** nims-mysql-mapper|insertDsuseRptInfo-폐기보고정보 생성|julim */ + INSERT INTO tb_dsuse_rpt_info ( + usr_rpt_id_no, /* 사용자보고식별번호 */ + ref_usr_rpt_id_no, /* 참조사용자식별번호 */ + bssh_cd, /* 마약류취급자식별번호 */ + bssh_nm, /* 마약류취급자명 */ + induty_nm, /* 업종명 */ + rpt_ty_cd, /* 보고유형코드 : AAR - 폐기보고 */ + rnd_dtl_rpt_cnt, /* 수불상세보고수 */ + hdr_de, /* 취급일자 */ + rpt_de, /* 보고일자 */ + dsuse_se_cd, /* 폐기구분코드 */ + dsuse_prv_cd, /* 폐기사유코드 */ + dsuse_mth_cd, /* 폐기방법코드 */ + dsuse_loc, /* 폐기장소 */ + dsuse_de, /* 폐기일자 */ + status, /* 상태 */ + rpt_prg_stts_cd, /* 보고진행상태코드 */ + org_usr_rpt_id_no, /* 원본사용자보고식별번호 */ + use_yn, + reg_dt, + rgtr + ) VALUES ( + #{usrRptIdNo}, + #{refUsrRptIdNo}, + #{bsshCd}, + #{bsshNm}, + #{indutyNm}, + #{rptTyCd}, + #{rndDtlRptCnt}, + #{hdrDe}, + #{rptDe}, + #{dsuseSeCd}, + #{dsusePrvCd}, + #{dsuseMthCd}, + #{dsuseLoc}, + #{dsuseDe}, + #{status}, + #{rptPrgSttsCd}, + #{orgUsrRptIdNo}, + IF(#{rptTyCd} = '1', 'N', 'Y'), + DATE_FORMAT(now(), '%Y%m%d%H%i%s'), + #{rgtr} + ) + + ++ /** nims-mysql-mapper|insertDsuseRptInfoDtl-폐기보고정보 상세 생성|julim */ + INSERT INTO tb_dsuse_rpt_info_dtl ( + usr_rpt_id_no, /* 사용자보고식별번호 */ + usr_rpt_ln_id_no, /* 사용자보고라인식별번호 */ + prduct_cd, /* 제품코드 */ + prduct_nm, /* 제품명 */ + min_distb_qy, /* 최소유통단위수량 */ + pce_qy, /* 낱개단위수량 */ + mnf_no, /* 제조번호 */ + prd_valid_de, /* 제품유효기한일자 */ + mnf_seq, /* 제품일련번호 */ + mvmn_ty_cd, /* 이동유형코드 */ + dsuse_qy, /* 폐기수량 */ + use_yn, + reg_dt, + rgtr + ) VALUES ( + #{usrRptIdNo}, + #{usrRptLnIdNo}, + #{prductCd}, + #{prductNm}, + #{minDistbQy}, + #{pceQy}, + #{mnfNo}, + #{prdValidDe}, + #{mnfSeq}, + #{mvmnTyCd}, + #{dsuseQy}, + 'Y', + DATE_FORMAT(now(), '%Y%m%d%H%i%s'), + #{rgtr} + ) + + ++ /** nims-mysql-mapper|updateCancelDsuseRptInfo-폐기보고정보 취소|julim */ + UPDATE tb_dsuse_rpt_info + SET use_yn = 'N' + , mdfcn_dt = DATE_FORMAT(now(), '%Y%m%d%H%i%s') + , mdfr = #{rgtr} + WHERE usr_rpt_id_no = #{refUsrRptIdNo} + AND use_yn = 'Y' + + ++ /** nims-mysql-mapper|updateCancelDsuseMgt-폐기관리 취소(참조사용자식별번호로)|julim */ + UPDATE tb_dsuse_mgt + SET usr_rpt_id_no = #{usrRptIdNo} + , use_yn = IF(#{rptTyCd} = '1', 'N', use_yn) + , mdfcn_dt = DATE_FORMAT(now(), '%Y%m%d%H%i%s') + , mdfr = #{rgtr} + WHERE usr_rpt_id_no = #{refUsrRptIdNo} + AND use_yn = 'Y' + + ++ /** nims-mysql-mapper|updateCancelDsuseRptInfoDtl-폐기보고정보 상세 취소|julim */ + UPDATE tb_dsuse_rpt_info_dtl + SET use_yn = 'N' + , mdfcn_dt = DATE_FORMAT(now(), '%Y%m%d%H%i%s') + , mdfr = #{rgtr} + WHERE usr_rpt_id_no = #{refUsrRptIdNo} + AND use_yn = 'Y' + + + + + ++ /** nims-mysql-mapper|insertDsuseMgt-폐기관리 생성|julim */ + + + + + + + + + + + + + + + + + + + + + ++ SELECT NVL(MAX(dscdmng_id), CONCAT(DATE_FORMAT(now(), '%Y%m'),'0000')) + 1 + FROM tb_dsuse_mgt + WHERE dscdmng_id LIKE CONCAT(DATE_FORMAT(now(), '%Y%m'), '%'); + + INSERT INTO tb_dsuse_mgt ( + dscdmng_id, /* 폐기관리ID */ + user_id, /* 사용자ID */ + usr_rpt_id_no, /* 사용자보고식별번호 */ + org_usr_rpt_id_no, /* 원사용자보고식별번호 */ + prgrs_stts_cd, /* 폐기관리진행상태코드 */ + use_yn, + reg_dt, + rgtr + ) VALUES ( + #{dscdmngId}, + #{userId}, + #{usrRptIdNo}, + #{orgUsrRptIdNo}, + #{prgrsSttsCd}, + 'Y', + DATE_FORMAT(now(), '%Y%m%d%H%i%s'), + #{rgtr} + ) +- /** nims-mysql-mapper|mergeProductInfoKd-상품정보 생성|julim */ - INSERT INTO tb_prduct_info( - prduct_cd, - prdlst_mst_cd, - prduct_nm, - nrcd_se_nm, - prtm_se_nm, - prd_min_distb_qy, - std_packng_stle_nm, - prd_tot_pce_qy, - pce_co_unit_nm, - bssh_cd, - rgs_dt, - upd_dt, - use_yn, - reg_dt, - rgtr - ) VALUES ( - #{prductCd}, - #{prdlstMstCd}, - #{prductNm}, - #{nrcdSeNm}, - #{prtmSeNm}, - #{prdMinDistbQy}, - #{stdPackngStleNm}, - #{prdTotPceQy}, - #{pceCoUnitNm}, - #{bsshCd}, - #{rgsDt}, - #{updDt}, - 'Y', - DATE_FORMAT(now(), '%Y%m%d%H%i%s'), - #{rgtr} - ) - ON DUPLICATE KEY UPDATE - prdlst_mst_cd = #{prdlstMstCd}, - prduct_nm = #{prductNm}, - nrcd_se_nm = #{nrcdSeNm}, - prtm_se_nm = #{prtmSeNm}, - prd_min_distb_qy = #{prdMinDistbQy}, - std_packng_stle_nm = #{stdPackngStleNm}, - prd_tot_pce_qy = #{prdTotPceQy}, - pce_co_unit_nm = #{pceCoUnitNm}, - bssh_cd = #{bsshCd}, - rgs_dt = #{rgsDt}, - upd_dt = #{updDt}, - mdfcn_dt = DATE_FORMAT(now(), '%Y%m%d%H%i%s'), - mdfr = #{rgtr} - - -- /** nims-mysql-mapper|mergeStorgeInfo-저장소 정보 생성|julim */ - INSERT INTO tb_storge_info( - bssh_cd, - bssh_nm, - use_at, - storge_se_nm, - storge_no, - storge_nm, - bass_adres, - bass_dtl_adres, - use_yn, - reg_dt, - rgtr - ) VALUES ( - #{bsshCd}, - #{bsshNm}, - #{useAt}, - #{storgeSeNm}, - #{storgeNo}, - #{storgeNm}, - #{bassAdres}, - #{bassDtlAdres}, - 'Y', - DATE_FORMAT(now(), '%Y%m%d%H%i%s'), - #{rgtr} - ) - ON DUPLICATE KEY UPDATE - bssh_nm = #{bsshNm}, - use_at = #{useAt}, - storge_se_nm = #{storgeSeNm}, - storge_no = #{storgeNo}, - storge_nm = #{storgeNm}, - bass_adres = #{bassAdres}, - bass_dtl_adres = #{bassDtlAdres}, - mdfcn_dt = DATE_FORMAT(now(), '%Y%m%d%H%i%s'), - mdfr = #{rgtr} - @@ -374,85 +284,4 @@ - - - - - - - - - - - - - - -