미사용 API 정리

dev
Jonguk. Lim 7 months ago
parent 95bcc8994a
commit 489c04c4f5

@ -31,8 +31,8 @@ public interface BizNimsMapper extends AbstractMapper {
// NIMS API CALL // NIMS API CALL
//------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------
int mergeBsshInfoSt(NimsApiDto.BsshInfoSt dto); int mergeBsshInfoSt(NimsApiDto.BsshInfoSt dto);
int mergeProductInfoKd(NimsApiDto.ProductInfoKd dto); // int mergeProductInfoKd(NimsApiDto.ProductInfoKd dto);
int mergeStorgeInfo(NimsApiDto.StorageInfo dto); // int mergeStorgeInfo(NimsApiDto.StorageInfo dto);
//------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------
// NIMS BIZ // NIMS BIZ

@ -1,262 +1,262 @@
package cokr.xit.adds.biz.nims.model; // package cokr.xit.adds.biz.nims.model;
//
import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.*; // import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.*;
//
import java.util.ArrayList; // import java.util.ArrayList;
import java.util.List; // import java.util.List;
//
import javax.validation.Valid; // import javax.validation.Valid;
import javax.validation.constraints.NotEmpty; // import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Pattern; // import javax.validation.constraints.Pattern;
//
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; // import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; // import com.fasterxml.jackson.databind.annotation.JsonSerialize;
//
import cokr.xit.adds.core.Constants; // import cokr.xit.adds.core.Constants;
import cokr.xit.adds.core.model.AuditDto; // import cokr.xit.adds.core.model.AuditDto;
import cokr.xit.adds.inf.nims.model.NimsApiDto; // import cokr.xit.adds.inf.nims.model.NimsApiDto;
import io.swagger.v3.oas.annotations.media.Schema; // import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; // import lombok.AllArgsConstructor;
import lombok.Builder; // import lombok.Builder;
import lombok.Getter; // import lombok.Getter;
import lombok.NoArgsConstructor; // import lombok.NoArgsConstructor;
import lombok.Setter; // import lombok.Setter;
import lombok.experimental.SuperBuilder; // import lombok.experimental.SuperBuilder;
//
/** // /**
* <pre> // * <pre>
* description : // * description :
* // *
* author : limju // * author : limju
* date : 2024-04-08 // * date : 2024-04-08
* ====================================================================== // * ======================================================================
* // * 변경일 변경자 변경 내용
* ---------------------------------------------------------------------- // * ----------------------------------------------------------------------
* 2024-04-08 limju // * 2024-04-08 limju 최초 생성
* // *
* </pre> // * </pre>
*/ // */
public class BizNimsAarDto { // public class BizNimsAarDto {
//
/** // /**
* Header request // * 마약류 연계보고 Header request
*/ // */
@Schema(name = "AarHeader", description = "마약류 연계보고 Header DTO") // @Schema(name = "AarHeader", description = "마약류 연계보고 Header DTO")
@Getter // @Getter
@NoArgsConstructor // @NoArgsConstructor
@AllArgsConstructor // @AllArgsConstructor
@SuperBuilder // @SuperBuilder
public static class AarHeader extends AuditDto { // public static class AarHeader extends AuditDto {
@Setter // @Setter
@Schema(title = "폐기관리ID", description = "폐기관리ID", example = " ") // @Schema(title = "폐기관리ID", description = "폐기관리ID", example = " ")
private String dscdmngId; // private String dscdmngId;
//
@Setter // @Setter
@Schema(requiredMode = REQUIRED, title = "보고자식별ID", description = "보고자식별ID", example = " ") // @Schema(requiredMode = REQUIRED, title = "보고자식별ID", description = "보고자식별ID", example = " ")
@NotEmpty(message = "보고자식별ID 필수 입니다") // @NotEmpty(message = "보고자식별ID 필수 입니다")
private String uid; // private String uid;
//
@Setter // @Setter
@Schema(requiredMode = REQUIRED, title = "소프트웨어ID", example = " ") // @Schema(requiredMode = REQUIRED, title = "소프트웨어ID", example = " ")
@NotEmpty(message = "소프트웨어ID 필수 입니다") // @NotEmpty(message = "소프트웨어ID 필수 입니다")
private String swId; // private String swId;
//
@Schema(requiredMode = AUTO, title = "수불비고", example = " ") // @Schema(requiredMode = AUTO, title = "수불비고", example = " ")
private String rndRmk; // private String rndRmk;
//
@Schema(requiredMode = REQUIRED, title = "취급일자", example = " ") // @Schema(requiredMode = REQUIRED, title = "취급일자", example = " ")
@Pattern(regexp = Constants.DATE_REGX, message = "취급일자 필수 입니다(8자리-yyyyMMdd)") // @Pattern(regexp = Constants.DATE_REGX, message = "취급일자 필수 입니다(8자리-yyyyMMdd)")
private String hdrDe; // private String hdrDe;
//
@Schema(requiredMode = REQUIRED, title = "마약류취급자식별번호", example = " ") // @Schema(requiredMode = REQUIRED, title = "마약류취급자식별번호", example = " ")
@NotEmpty(message = "마약류 취급자 식별번호는 필수 입니다") // @NotEmpty(message = "마약류 취급자 식별번호는 필수 입니다")
private String bsshCd; // private String bsshCd;
//
@Schema(requiredMode = REQUIRED, title = "보고구분코드", example = "AAR") // @Schema(requiredMode = REQUIRED, title = "보고구분코드", example = "AAR")
@NotEmpty(message = "보고 구분 코드는 필수 입니다(폐기-AAR)") // @NotEmpty(message = "보고 구분 코드는 필수 입니다(폐기-AAR)")
@Builder.Default // @Builder.Default
private String rptSeCd = "AAR"; // private String rptSeCd = "AAR";
//
@Schema(requiredMode = REQUIRED, title = "사용자보고식별번호", example = " ") // @Schema(requiredMode = REQUIRED, title = "사용자보고식별번호", example = " ")
@NotEmpty(message = "사용자 보고 식별번호는 필수 입니다") // @NotEmpty(message = "사용자 보고 식별번호는 필수 입니다")
private String usrRptIdNo; // private String usrRptIdNo;
//
@Schema(requiredMode = AUTO, title = "참조사용자보고식별번호(변경|취소시 필수)", example = " ") // @Schema(requiredMode = AUTO, title = "참조사용자보고식별번호(변경|취소시 필수)", example = " ")
//@NotEmpty(message = "사용자 보고 식별번호는 필수 입니다") // //@NotEmpty(message = "사용자 보고 식별번호는 필수 입니다")
private String refUsrRptIdNo; // private String refUsrRptIdNo;
//
@Schema(requiredMode = REQUIRED, title = "보고유형코드", example = " ", allowableValues = {"0", "1", "2"}) // @Schema(requiredMode = REQUIRED, title = "보고유형코드", example = " ", allowableValues = {"0", "1", "2"})
@Pattern(regexp = "[012]", message = "보고 유형 코드는 필수 입니다(0-신규, 1-취소, 2-변경)") // @Pattern(regexp = "[012]", message = "보고 유형 코드는 필수 입니다(0-신규, 1-취소, 2-변경)")
private String rptTyCd; // private String rptTyCd;
//
@Schema(requiredMode = AUTO, title = "비고(변경 및 취소시 필수-사유 기재)", example = " ") // @Schema(requiredMode = AUTO, title = "비고(변경 및 취소시 필수-사유 기재)", example = " ")
private String rmk; // private String rmk;
//
@Schema(requiredMode = REQUIRED, title = "보고자명", example = " ") // @Schema(requiredMode = REQUIRED, title = "보고자명", example = " ")
@NotEmpty(message = "보고자 이름은 필수 입니다") // @NotEmpty(message = "보고자 이름은 필수 입니다")
private String rptrNm; // private String rptrNm;
//
@Schema(requiredMode = REQUIRED, title = "보고자업체명", example = " ") // @Schema(requiredMode = REQUIRED, title = "보고자업체명", example = " ")
@NotEmpty(message = "보고자 업체명은 필수 입니다") // @NotEmpty(message = "보고자 업체명은 필수 입니다")
private String rptrEntrpsNm; // private String rptrEntrpsNm;
//
@Schema(requiredMode = REQUIRED, title = "담당자명", example = " ") // @Schema(requiredMode = REQUIRED, title = "담당자명", example = " ")
@NotEmpty(message = "담당자 이름은 필수 입니다") // @NotEmpty(message = "담당자 이름은 필수 입니다")
private String chrgNm; // private String chrgNm;
//
@Schema(requiredMode = REQUIRED, title = "담당자 전화번호", example = " ") // @Schema(requiredMode = REQUIRED, title = "담당자 전화번호", example = " ")
@Pattern(regexp = Constants.TEL_REGX, message = "담당자 전화번호는 필수 입니다") // @Pattern(regexp = Constants.TEL_REGX, message = "담당자 전화번호는 필수 입니다")
private String chrgTelNo; // private String chrgTelNo;
//
@Schema(requiredMode = REQUIRED, title = "담당자 휴대폰 번호", example = " ") // @Schema(requiredMode = REQUIRED, title = "담당자 휴대폰 번호", example = " ")
@Pattern(regexp = Constants.PHONE_REGX, message = "담당자 휴대폰 번호는 필수 입니다") // @Pattern(regexp = Constants.PHONE_REGX, message = "담당자 휴대폰 번호는 필수 입니다")
private String chrgMpNo; // private String chrgMpNo;
//
@Schema(requiredMode = REQUIRED, title = "수불 상세 보고수", example = " ") // @Schema(requiredMode = REQUIRED, title = "수불 상세 보고수", example = " ")
@NotEmpty(message = "수불 상세 보고수는 필수 입니다") // @NotEmpty(message = "수불 상세 보고수는 필수 입니다")
private String rndDtlRptCnt; // private String rndDtlRptCnt;
//
@Schema(requiredMode = REQUIRED, title = "폐기 구분 코드", example = " ", allowableValues = {"1", "2", "4"}) // @Schema(requiredMode = REQUIRED, title = "폐기 구분 코드", example = " ", allowableValues = {"1", "2", "4"})
@Pattern(regexp = "[124]", message = "폐기 구분 코드는 필수 입니다(1-보건소폐기, 2-공무원임회, 4-도난/분실/재해 발생 사고마약류)") // @Pattern(regexp = "[124]", message = "폐기 구분 코드는 필수 입니다(1-보건소폐기, 2-공무원임회, 4-도난/분실/재해 발생 사고마약류)")
private String dsuseSeCd; // private String dsuseSeCd;
//
/** // /**
* <pre> // * <pre>
* // * 폐기 사유 코드
* // *
* 01-, 02-,, 03- // * 01-파손, 02-변질,부패, 03-유효기간 또는 사용기한 경과
* 04- , 05- , 07-, 08- // * 04-유효 기간 임박, 05-사용 중단, 07-폐업, 08-환자 반납
* 09-, 12- // * 09-기타, 12-제조 공정중 폐기물
* </pre> // * </pre>
*/ // */
@Schema(requiredMode = REQUIRED, title = "폐기 사유 코드", example = " ", allowableValues = {"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)") // @Pattern(regexp = "0[1-57-9]|12", message = "폐기 사유 코드는 필수 입니다(01~05, 07~09, 12)")
private String dsusePrvCd; // private String dsusePrvCd;
//
@Schema(requiredMode = REQUIRED, title = "폐기 방법 코드", example = " ", allowableValues = {"1", "2", "3", "4", "5", "6", "7", "8", "9"}) // @Schema(requiredMode = REQUIRED, title = "폐기 방법 코드", example = " ", allowableValues = {"1", "2", "3", "4", "5", "6", "7", "8", "9"})
@Pattern(regexp = "[1-9]", message = "폐기 방법 코드는 필수 입니다(1~9)") // @Pattern(regexp = "[1-9]", message = "폐기 방법 코드는 필수 입니다(1~9)")
private String dsuseMthCd; // private String dsuseMthCd;
//
@Schema(requiredMode = REQUIRED, title = "폐기 장소", example = " ") // @Schema(requiredMode = REQUIRED, title = "폐기 장소", example = " ")
@NotEmpty(message = "폐기 장소는 필수 입니다") // @NotEmpty(message = "폐기 장소는 필수 입니다")
private String dsuseLoc; // private String dsuseLoc;
//
@Schema(requiredMode = REQUIRED, title = "폐기 일자", example = " ") // @Schema(requiredMode = REQUIRED, title = "폐기 일자", example = " ")
@Pattern(regexp = Constants.CUR_DATE_REGX, message = "폐기 일자는 필수 입니다(8자리-yyyyMMdd)") // @Pattern(regexp = Constants.CUR_DATE_REGX, message = "폐기 일자는 필수 입니다(8자리-yyyyMMdd)")
private String dsuseDe; // private String dsuseDe;
//
@Setter // @Setter
@Schema(requiredMode = REQUIRED, title = "폐기 관할 행정 기관 코드", example = " ") // @Schema(requiredMode = REQUIRED, title = "폐기 관할 행정 기관 코드", example = " ")
@NotEmpty(message = "폐기 관할 행정 기관 코드는 필수 입니다") // @NotEmpty(message = "폐기 관할 행정 기관 코드는 필수 입니다")
private String dsuseInsttCd; // private String dsuseInsttCd;
//
@Schema(requiredMode = REQUIRED, title = "첨부 파일 건수", example = " ") // @Schema(requiredMode = REQUIRED, title = "첨부 파일 건수", example = " ")
@Pattern(regexp = "\\d+", message = "첨부 파일 건수 필수 입니다") // @Pattern(regexp = "\\d+", message = "첨부 파일 건수 필수 입니다")
private String atchFileCo; // private String atchFileCo;
//
@Schema(requiredMode = REQUIRED, title = "등록자ID", example = " ") // @Schema(requiredMode = REQUIRED, title = "등록자ID", example = " ")
@NotEmpty(message = "등록자 ID는 필수 입니다") // @NotEmpty(message = "등록자 ID는 필수 입니다")
private String registerId; // private String registerId;
//
@Schema(requiredMode = REQUIRED, title = "파일 생성 일시", example = " ") // @Schema(requiredMode = REQUIRED, title = "파일 생성 일시", example = " ")
@Pattern(regexp = Constants.CUR_DTM_REGX, message = "파일 생성 일시는 필수 입니다(14자리-yyyyMMddHHmmss)") // @Pattern(regexp = Constants.CUR_DTM_REGX, message = "파일 생성 일시는 필수 입니다(14자리-yyyyMMddHHmmss)")
private String fileCreatDt; // private String fileCreatDt;
//
@Schema(requiredMode = AUTO, title = "첨부파일", example = " ") // @Schema(requiredMode = AUTO, title = "첨부파일", example = " ")
@Builder.Default // @Builder.Default
List<String> atchFiles = new ArrayList<>(); // List<String> atchFiles = new ArrayList<>();
//
@Schema(requiredMode = REQUIRED) // @Schema(requiredMode = REQUIRED)
@Builder.Default // @Builder.Default
@Valid // @Valid
List<AarDetail> aarDetails = new ArrayList<>(); // List<AarDetail> aarDetails = new ArrayList<>();
} // }
//
/** // /**
* Detail request // * 마약류 연계보고 Detail request
*/ // */
@Schema(name = "AarDetail", description = "마약류 연계보고 상세 DTO") // @Schema(name = "AarDetail", description = "마약류 연계보고 상세 DTO")
@Getter // @Getter
@NoArgsConstructor // @NoArgsConstructor
@AllArgsConstructor // @AllArgsConstructor
@Builder // @Builder
//@JsonIgnoreProperties(value = { "mnfSeqInfos" }, allowGetters = true) // //@JsonIgnoreProperties(value = { "mnfSeqInfos" }, allowGetters = true)
@JsonIgnoreProperties(value = { "prductCd" }, allowGetters = true) // @JsonIgnoreProperties(value = { "prductCd" }, allowGetters = true)
public static class AarDetail { // public static class AarDetail {
@Schema(requiredMode = REQUIRED, title = "사용자 보고 식별 번호", example = " ") // @Schema(requiredMode = REQUIRED, title = "사용자 보고 식별 번호", example = " ")
@NotEmpty(message = "사용자 보고 식별 번호는 필수 입니다") // @NotEmpty(message = "사용자 보고 식별 번호는 필수 입니다")
private String usrRptIdNo; // private String usrRptIdNo;
//
@Schema(requiredMode = REQUIRED, title = "사용자 보고 라인 식별 번호", example = " ") // @Schema(requiredMode = REQUIRED, title = "사용자 보고 라인 식별 번호", example = " ")
@NotEmpty(message = "사용자 보고 라인 식별 번호는 필수 입니다") // @NotEmpty(message = "사용자 보고 라인 식별 번호는 필수 입니다")
private String usrRptLnIdNo; // private String usrRptLnIdNo;
//
@Setter // @Setter
@Schema(requiredMode = REQUIRED, title = "저장소 번호", example = " ") // @Schema(requiredMode = REQUIRED, title = "저장소 번호", example = " ")
@NotEmpty(message = "저장소 번호는 필수 입니다") // @NotEmpty(message = "저장소 번호는 필수 입니다")
private String storgeNo; // private String storgeNo;
//
@Schema(requiredMode = REQUIRED, title = "이동 유형 코드", example = " ", allowableValues = {"1102", "1170"}) // @Schema(requiredMode = REQUIRED, title = "이동 유형 코드", example = " ", allowableValues = {"1102", "1170"})
@Pattern(regexp = "1102|1170", message = "이동 유형 코드는 필수 입니다(1102-폐기출고,1170-폐기재고미차감)") // @Pattern(regexp = "1102|1170", message = "이동 유형 코드는 필수 입니다(1102-폐기출고,1170-폐기재고미차감)")
private String mvmnTyCd; // private String mvmnTyCd;
//
@Schema(requiredMode = REQUIRED, title = "제품 코드", example = " ") // @Schema(requiredMode = REQUIRED, title = "제품 코드", example = " ")
@NotEmpty(message = "제품 코드는 필수 입니다") // @NotEmpty(message = "제품 코드는 필수 입니다")
private String prductCd; // private String prductCd;
//
@Setter // @Setter
@Schema(requiredMode = REQUIRED, title = "제조 번호", example = " ") // @Schema(requiredMode = REQUIRED, title = "제조 번호", example = " ")
@NotEmpty(message = "제조 번호는 필수 입니다") // @NotEmpty(message = "제조 번호는 필수 입니다")
private String mnfNo; // private String mnfNo;
//
@Setter // @Setter
@Schema(requiredMode = AUTO, title = "제품 일련 번호", example = " ") // @Schema(requiredMode = AUTO, title = "제품 일련 번호", example = " ")
private String mnfSeq; // private String mnfSeq;
//
@Schema(requiredMode = REQUIRED, title = "최소 유통 단위 수량", example = " ") // @Schema(requiredMode = REQUIRED, title = "최소 유통 단위 수량", example = " ")
@NotEmpty(message = "최소 유통 단위 수량은 필수 입니다") // @NotEmpty(message = "최소 유통 단위 수량은 필수 입니다")
private String minDistbQy; // private String minDistbQy;
//
@Schema(requiredMode = REQUIRED, title = "제품 최소 유통 단위", example = " ") // @Schema(requiredMode = REQUIRED, title = "제품 최소 유통 단위", example = " ")
@NotEmpty(message = "제품 최소 유통 단위는 필수 입니다") // @NotEmpty(message = "제품 최소 유통 단위는 필수 입니다")
private String prdMinDistbUnit; // private String prdMinDistbUnit;
//
@Schema(requiredMode = REQUIRED, title = "낱개 단위 수량", example = " ") // @Schema(requiredMode = REQUIRED, title = "낱개 단위 수량", example = " ")
@NotEmpty(message = "낱개 단위 수량은 필수 입니다") // @NotEmpty(message = "낱개 단위 수량은 필수 입니다")
private String pceQy; // private String pceQy;
//
@Schema(requiredMode = REQUIRED, title = "제품 낱개 단위", example = " ") // @Schema(requiredMode = REQUIRED, title = "제품 낱개 단위", example = " ")
@NotEmpty(message = "제품 낱개 단위는 필수 입니다") // @NotEmpty(message = "제품 낱개 단위는 필수 입니다")
private String prdPceUnit; // private String prdPceUnit;
//
@Schema(requiredMode = REQUIRED, title = "제품명", example = " ") // @Schema(requiredMode = REQUIRED, title = "제품명", example = " ")
@NotEmpty(message = "제품명은 필수 입니다") // @NotEmpty(message = "제품명은 필수 입니다")
private String prductNm; // private String prductNm;
//
@Schema(requiredMode = AUTO, title = "제품 바코드(RFID)", example = " ") // @Schema(requiredMode = AUTO, title = "제품 바코드(RFID)", example = " ")
private String prdSgtin; // private String prdSgtin;
//
@Schema(requiredMode = REQUIRED, title = "제품 최소 유통 단위 수량", example = " ") // @Schema(requiredMode = REQUIRED, title = "제품 최소 유통 단위 수량", example = " ")
@NotEmpty(message = "제품 최소 유통 단위 수량은 필수 입니다") // @NotEmpty(message = "제품 최소 유통 단위 수량은 필수 입니다")
private String prdMinDistbQy; // private String prdMinDistbQy;
//
@Schema(requiredMode = REQUIRED, title = "제품 총 낱개 단위 수량", example = " ") // @Schema(requiredMode = REQUIRED, title = "제품 총 낱개 단위 수량", example = " ")
@NotEmpty(message = "제품 총 낱개 단위 수량 필수 입니다") // @NotEmpty(message = "제품 총 낱개 단위 수량 필수 입니다")
private String prdTotPceQy; // private String prdTotPceQy;
//
@Setter // @Setter
@Schema(requiredMode = REQUIRED, title = "제품 유효 기간 일자(yyyyMMdd)", example = " ") // @Schema(requiredMode = REQUIRED, title = "제품 유효 기간 일자(yyyyMMdd)", example = " ")
@Pattern(regexp = Constants.DATE_REGX, message = "제품 유효 기간 일자는 필수 입니다(yyyyMMdd)") // @Pattern(regexp = Constants.DATE_REGX, message = "제품 유효 기간 일자는 필수 입니다(yyyyMMdd)")
private String prdValidDe; // private String prdValidDe;
//
@Schema(requiredMode = REQUIRED, title = "파일 생성 일시", example = " ") // @Schema(requiredMode = REQUIRED, title = "파일 생성 일시", example = " ")
@Pattern(regexp = Constants.CUR_DTM_REGX, message = "파일 생성 일시는 필수 입니다(yyyyMMddHHmmss)") // @Pattern(regexp = Constants.CUR_DTM_REGX, message = "파일 생성 일시는 필수 입니다(yyyyMMddHHmmss)")
private String fileCreatDt; // private String fileCreatDt;
//
@Schema(title = "제조 일련 번호 정보 목록", example = " ") // @Schema(title = "제조 일련 번호 정보 목록", example = " ")
@Builder.Default // @Builder.Default
@JsonSerialize(using = NimsApiDto.MnfSeqInfoSerializer.class) // @JsonSerialize(using = NimsApiDto.MnfSeqInfoSerializer.class)
@Setter // @Setter
private List<NimsApiDto.MnfSeqInfo> mnfSeqInfos = new ArrayList<>(); // private List<NimsApiDto.MnfSeqInfo> mnfSeqInfos = new ArrayList<>();
} // }
} // }

@ -27,10 +27,10 @@ public interface BizNimsService {
// NIMS API CALL // NIMS API CALL
//------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------
List<NimsApiDto.BsshInfoSt> saveBsshInfoSt(NimsApiRequest.BsshInfoRequest dto); List<NimsApiDto.BsshInfoSt> saveBsshInfoSt(NimsApiRequest.BsshInfoRequest dto);
List<NimsApiDto.ProductInfoKd> saveProductInfoKd(NimsApiRequest.ProductInfoRequest dto); // List<NimsApiDto.ProductInfoKd> saveProductInfoKd(NimsApiRequest.ProductInfoRequest dto);
List<NimsApiDto.MnfSeqInfo> getMnfSeqInfo(NimsApiRequest.MnfSeqInfoRequest dto); // List<NimsApiDto.MnfSeqInfo> getMnfSeqInfo(NimsApiRequest.MnfSeqInfoRequest dto);
List<NimsApiDto.JurisdictionGovInfo> getJurisdictionGovInfo(NimsApiRequest.JurisdictionGovInfoRequest dto); // List<NimsApiDto.JurisdictionGovInfo> getJurisdictionGovInfo(NimsApiRequest.JurisdictionGovInfoRequest dto);
List<NimsApiDto.StorageInfo> saveStorageInfo(NimsApiRequest.StorageInfoRequest dto); // List<NimsApiDto.StorageInfo> saveStorageInfo(NimsApiRequest.StorageInfoRequest dto);
/** /**
* <pre> * <pre>

@ -4,35 +4,24 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import javax.validation.Validation; import javax.validation.Validation;
import javax.validation.Validator; import javax.validation.Validator;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; 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.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.BizNimsRequest;
import cokr.xit.adds.biz.nims.model.BizNimsResponse; import cokr.xit.adds.biz.nims.model.BizNimsResponse;
import cokr.xit.adds.biz.nims.service.BizNimsService; import cokr.xit.adds.biz.nims.service.BizNimsService;
import cokr.xit.adds.core.Constants; import cokr.xit.adds.core.Constants;
import cokr.xit.adds.core.spring.exception.ApiCustomException; import cokr.xit.adds.core.spring.exception.ApiCustomException;
import cokr.xit.adds.core.util.ApiUtil; 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;
import cokr.xit.adds.inf.nims.model.NimsApiDto.BsshInfoSt; 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;
import cokr.xit.adds.inf.nims.model.NimsApiRequest.BsshInfoRequest; 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.model.NimsApiResult;
import cokr.xit.adds.inf.nims.service.InfNimsService; import cokr.xit.adds.inf.nims.service.InfNimsService;
import cokr.xit.foundation.component.AbstractServiceBean; import cokr.xit.foundation.component.AbstractServiceBean;
@ -86,42 +75,42 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
return list; return list;
} }
@Override // @Override
public List<ProductInfoKd> saveProductInfoKd(ProductInfoRequest dto) { // public List<ProductInfoKd> saveProductInfoKd(ProductInfoRequest dto) {
NimsApiResult.Response<ProductInfoKd> result = infNimsService.getProductInfoKd(dto); // NimsApiResult.Response<ProductInfoKd> result = infNimsService.getProductInfoKd(dto);
List<ProductInfoKd> list = result.getResultOrThrow(); // List<ProductInfoKd> list = result.getResultOrThrow();
//
for (ProductInfoKd d : list) { // for (ProductInfoKd d : list) {
d.setRgtr(Constants.NIMS_API_USER_ID); // d.setRgtr(Constants.NIMS_API_USER_ID);
bizNimsMapper.mergeProductInfoKd(d); // bizNimsMapper.mergeProductInfoKd(d);
} // }
return list; // return list;
} // }
//
@Override // @Override
public List<NimsApiDto.MnfSeqInfo> getMnfSeqInfo(NimsApiRequest.MnfSeqInfoRequest dto) { // public List<NimsApiDto.MnfSeqInfo> getMnfSeqInfo(NimsApiRequest.MnfSeqInfoRequest dto) {
NimsApiResult.Response<NimsApiDto.MnfSeqInfo> response = infNimsService.getMnfSeqInfo(dto); // NimsApiResult.Response<NimsApiDto.MnfSeqInfo> response = infNimsService.getMnfSeqInfo(dto);
//
return response.getResultOrThrow(); // return response.getResultOrThrow();
} // }
//
@Override // @Override
public List<NimsApiDto.JurisdictionGovInfo> getJurisdictionGovInfo(NimsApiRequest.JurisdictionGovInfoRequest dto) { // public List<NimsApiDto.JurisdictionGovInfo> getJurisdictionGovInfo(NimsApiRequest.JurisdictionGovInfoRequest dto) {
NimsApiResult.Response<NimsApiDto.JurisdictionGovInfo> result = infNimsService.getJurisdictionGovInfo(dto); // NimsApiResult.Response<NimsApiDto.JurisdictionGovInfo> result = infNimsService.getJurisdictionGovInfo(dto);
return result.getResultOrThrow(); // return result.getResultOrThrow();
} // }
//
@Override // @Override
public List<NimsApiDto.StorageInfo> saveStorageInfo(NimsApiRequest.StorageInfoRequest dto) { // public List<NimsApiDto.StorageInfo> saveStorageInfo(NimsApiRequest.StorageInfoRequest dto) {
NimsApiResult.Response<NimsApiDto.StorageInfo> result = infNimsService.getStorageInfo(dto); // NimsApiResult.Response<NimsApiDto.StorageInfo> result = infNimsService.getStorageInfo(dto);
List<NimsApiDto.StorageInfo> list = result.getResultOrThrow(); // List<NimsApiDto.StorageInfo> list = result.getResultOrThrow();
//
for (NimsApiDto.StorageInfo d : list) { // for (NimsApiDto.StorageInfo d : list) {
d.setRgtr(Constants.NIMS_API_USER_ID); // d.setRgtr(Constants.NIMS_API_USER_ID);
bizNimsMapper.mergeStorgeInfo(d); // bizNimsMapper.mergeStorgeInfo(d);
} // }
return list; // return list;
} // }
/** /**
* <pre> * <pre>
@ -436,157 +425,157 @@ public class BizNimsServiceBean extends AbstractServiceBean implements BizNimsSe
private String toXml() { // private String toXml() {
Aar dto = getAar(); // Aar dto = getAar();
//
XmlMapper mapper = new XmlMapper(); // XmlMapper mapper = new XmlMapper();
mapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true); // mapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);
mapper.enable(SerializationFeature.INDENT_OUTPUT); // mapper.enable(SerializationFeature.INDENT_OUTPUT);
//
String xmlString = null; // String xmlString = null;
try { // try {
xmlString = mapper.writeValueAsString(dto); // xmlString = mapper.writeValueAsString(dto);
} catch (JsonProcessingException e) { // } catch (JsonProcessingException e) {
throw ApiCustomException.create(e.getMessage()); // throw ApiCustomException.create(e.getMessage());
} // }
xmlString = xmlString.replaceFirst("nims\">", // xmlString = xmlString.replaceFirst("nims\">",
"nims\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"); // "nims\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">");
return xmlString.replaceFirst(" xmlns=\"\"", StringUtils.EMPTY); // return xmlString.replaceFirst(" xmlns=\"\"", StringUtils.EMPTY);
} // }
//
private Aar getAar() { // private Aar getAar() {
Aar.ReportSet reportSet = Aar.ReportSet.builder() // Aar.ReportSet reportSet = Aar.ReportSet.builder()
.header(List.of(getHeader())) // .header(List.of(getHeader()))
.build(); // .build();
//
return Aar.builder() // return Aar.builder()
.reportSet(reportSet) // .reportSet(reportSet)
.build(); // .build();
} // }
//
private Aar.Header getHeader() { // private Aar.Header getHeader() {
return Aar.Header.builder() // return Aar.Header.builder()
.hdrDe("20240326") // .hdrDe("20240326")
.bsshCd("123456789") // .bsshCd("123456789")
.lines(getLines()) // .lines(getLines())
.atchFileCo("2") // .atchFileCo("2")
.atchFiles(getAtchFiles()) // .atchFiles(getAtchFiles())
.build(); // .build();
} // }
//
private Aar.Lines getLines() { // private Aar.Lines getLines() {
//
return Aar.Lines.builder() // return Aar.Lines.builder()
.line(getLineList()) // .line(getLineList())
.build(); // .build();
} // }
//
private Aar.AtchFiles getAtchFiles() { // private Aar.AtchFiles getAtchFiles() {
return Aar.AtchFiles.builder() // return Aar.AtchFiles.builder()
.atchFileNm(List.of("file-1.txt","file-2.txt")) // .atchFileNm(List.of("file-1.txt","file-2.txt"))
.build(); // .build();
} // }
//
private List<Aar.Line> getLineList(){ // private List<Aar.Line> getLineList(){
Aar.Line line = Aar.Line.builder() // Aar.Line line = Aar.Line.builder()
.usrRptIdNo("123456789") // .usrRptIdNo("123456789")
.usrRptLnIdNo("123456789") // .usrRptLnIdNo("123456789")
.storgeNo("123456789") // .storgeNo("123456789")
.mvmnTyCd("123456789") // .mvmnTyCd("123456789")
.prductCd("123456789") // .prductCd("123456789")
.build(); // .build();
Aar.Line line2 = Aar.Line.builder() // Aar.Line line2 = Aar.Line.builder()
.usrRptIdNo("123456789-1") // .usrRptIdNo("123456789-1")
.usrRptLnIdNo("123456789-1") // .usrRptLnIdNo("123456789-1")
.storgeNo("123456789-1") // .storgeNo("123456789-1")
.mvmnTyCd("123456789-1") // .mvmnTyCd("123456789-1")
.prductCd("123456789-1") // .prductCd("123456789-1")
.build(); // .build();
//
return List.of(line, line2); // return List.of(line, line2);
} // }
//
//
private void setStorgeNo(BizNimsAarDto.AarHeader aarHeader, List<BizNimsAarDto.AarDetail> aarDetails) { // private void setStorgeNo(BizNimsAarDto.AarHeader aarHeader, List<BizNimsAarDto.AarDetail> aarDetails) {
//
if(isEmpty(aarDetails.get(0).getStorgeNo())){ // if(isEmpty(aarDetails.get(0).getStorgeNo())){
try { // try {
List<NimsApiDto.StorageInfo> storageInfos = saveStorageInfo( // List<NimsApiDto.StorageInfo> storageInfos = saveStorageInfo(
NimsApiRequest.StorageInfoRequest.builder() // NimsApiRequest.StorageInfoRequest.builder()
.fg("1") // .fg("1")
.pg("1") // .pg("1")
.bc(aarHeader.getBsshCd()) // .bc(aarHeader.getBsshCd())
.build() // .build()
); // );
aarDetails.forEach(d -> d.setStorgeNo(storageInfos.get(0).getStorgeNo())); // aarDetails.forEach(d -> d.setStorgeNo(storageInfos.get(0).getStorgeNo()));
//
}catch (Exception e){ // }catch (Exception e){
if( e instanceof ApiCustomException){ // if( e instanceof ApiCustomException){
aarDetails.forEach(d -> d.setStorgeNo("S0001")); // aarDetails.forEach(d -> d.setStorgeNo("S0001"));
return; // return;
} // }
throw ApiCustomException.create(e.getMessage()); // throw ApiCustomException.create(e.getMessage());
} // }
} // }
} // }
//
private void setDsuseInsttCd(BizNimsAarDto.AarHeader aarHeader) { // private void setDsuseInsttCd(BizNimsAarDto.AarHeader aarHeader) {
//
try { // try {
List<NimsApiDto.JurisdictionGovInfo> list = getJurisdictionGovInfo( // List<NimsApiDto.JurisdictionGovInfo> list = getJurisdictionGovInfo(
NimsApiRequest.JurisdictionGovInfoRequest.builder() // NimsApiRequest.JurisdictionGovInfoRequest.builder()
.fg("1") // .fg("1")
.pg("1") // .pg("1")
.onm(onm) // .onm(onm)
.build() // .build()
); // );
aarHeader.setDsuseInsttCd(list.get(0).getOfCd()); // aarHeader.setDsuseInsttCd(list.get(0).getOfCd());
//
}catch (Exception e){ // }catch (Exception e){
if( e instanceof ApiCustomException){ // if( e instanceof ApiCustomException){
throw ApiCustomException.create(String.format("[%s]의 관할 행정 기관 코드를 찾을수 없습니다.", onm)); // throw ApiCustomException.create(String.format("[%s]의 관할 행정 기관 코드를 찾을수 없습니다.", onm));
} // }
throw ApiCustomException.create(e.getMessage()); // throw ApiCustomException.create(e.getMessage());
} // }
} // }
//
private void setMnfSeqs(List<BizNimsAarDto.AarDetail> aarDetails) { // private void setMnfSeqs(List<BizNimsAarDto.AarDetail> aarDetails) {
AtomicReference<String> productCd = new AtomicReference<>(""); // AtomicReference<String> productCd = new AtomicReference<>("");
//
try { // try {
//
aarDetails.forEach(d -> { // aarDetails.forEach(d -> {
productCd.set(d.getPrductCd()); // productCd.set(d.getPrductCd());
//
List<NimsApiDto.MnfSeqInfo> list = getMnfSeqInfo( // List<NimsApiDto.MnfSeqInfo> list = getMnfSeqInfo(
NimsApiRequest.MnfSeqInfoRequest.builder() // NimsApiRequest.MnfSeqInfoRequest.builder()
.fg("1") // .fg("1")
.pg("1") // .pg("1")
.p(d.getPrductCd()) // .p(d.getPrductCd())
.build() // .build()
); // );
//
// FIXME: 내림 차순 정렬 // // FIXME: 내림 차순 정렬
list.sort((a, b) -> { // list.sort((a, b) -> {
if(isEmpty(a.getPrdValidDe()) && isEmpty(b.getPrdValidDe())) return 0; // if(isEmpty(a.getPrdValidDe()) && isEmpty(b.getPrdValidDe())) return 0;
if(isEmpty(a.getPrdValidDe())) return 1; // if(isEmpty(a.getPrdValidDe())) return 1;
if(isEmpty(b.getPrdValidDe())) return -1; // if(isEmpty(b.getPrdValidDe())) return -1;
return b.getPrdValidDe().compareTo(a.getPrdValidDe()); // return b.getPrdValidDe().compareTo(a.getPrdValidDe());
}); // });
//
// FIXME: default list 1st value?? // // FIXME: default list 1st value??
d.setMnfNo(list.get(0).getMnfNo()); // d.setMnfNo(list.get(0).getMnfNo());
d.setMnfSeq(list.get(0).getMnfSeq()); // d.setMnfSeq(list.get(0).getMnfSeq());
d.setPrdValidDe(list.get(0).getPrdValidDe()); // d.setPrdValidDe(list.get(0).getPrdValidDe());
//
d.getMnfSeqInfos().addAll(list); // d.getMnfSeqInfos().addAll(list);
}); // });
//
}catch (Exception e){ // }catch (Exception e){
if( e instanceof ApiCustomException){ // if( e instanceof ApiCustomException){
throw ApiCustomException.create(String.format("[%s]의 제조번호 정보를 찾을수 없습니다.", productCd.get())); // throw ApiCustomException.create(String.format("[%s]의 제조번호 정보를 찾을수 없습니다.", productCd.get()));
} // }
throw ApiCustomException.create(e.getMessage()); // throw ApiCustomException.create(e.getMessage());
} // }
} // }
} }

@ -53,37 +53,37 @@ public class BizNimsController {
return ApiBaseResponse.of(bizNimsService.saveBsshInfoSt(dto)); return ApiBaseResponse.of(bizNimsService.saveBsshInfoSt(dto));
} }
@Operation(summary = "마약류 상품 정보 조회(NIMS API)", description = "마약류 상품정보 조회<br><br>NIMS API 호출 결과를 DB에 저장후 결과 Return") // @Operation(summary = "마약류 상품 정보 조회(NIMS API)", description = "마약류 상품정보 조회<br><br>NIMS API 호출 결과를 DB에 저장후 결과 Return")
@PostMapping(value = "/getProductInfoKd") // @PostMapping(value = "/getProductInfoKd")
public ApiBaseResponse<List<NimsApiDto.ProductInfoKd>> getMnfSeqInfo( // public ApiBaseResponse<List<NimsApiDto.ProductInfoKd>> getMnfSeqInfo(
@RequestBody @Validated NimsApiRequest.ProductInfoRequest dto // @RequestBody @Validated NimsApiRequest.ProductInfoRequest dto
) { // ) {
return ApiBaseResponse.of(bizNimsService.saveProductInfoKd(dto)); // return ApiBaseResponse.of(bizNimsService.saveProductInfoKd(dto));
} // }
//
@Operation(summary = "제조 일련 번호 정보 조회(NIMS API)", description = "제보 일련 번호 정보 조회<br><br>NIMS API 호출 결과 Return") // @Operation(summary = "제조 일련 번호 정보 조회(NIMS API)", description = "제보 일련 번호 정보 조회<br><br>NIMS API 호출 결과 Return")
@PostMapping(value = "/getMnfSeqInfo") // @PostMapping(value = "/getMnfSeqInfo")
public ApiBaseResponse<List<NimsApiDto.MnfSeqInfo>> getMnfSeqInfo( // public ApiBaseResponse<List<NimsApiDto.MnfSeqInfo>> getMnfSeqInfo(
@RequestBody @Validated NimsApiRequest.MnfSeqInfoRequest dto // @RequestBody @Validated NimsApiRequest.MnfSeqInfoRequest dto
) { // ) {
return ApiBaseResponse.of(bizNimsService.getMnfSeqInfo(dto)); // return ApiBaseResponse.of(bizNimsService.getMnfSeqInfo(dto));
} // }
//
@Operation(summary = "관할 허가 관청 정보 조회(NIMS API)", description = "관할 허가 관청 정보 조회<br><br>NIMS API 호출 결과 Return") // @Operation(summary = "관할 허가 관청 정보 조회(NIMS API)", description = "관할 허가 관청 정보 조회<br><br>NIMS API 호출 결과 Return")
@PostMapping(value = "/getJurisdictionGovInfo") // @PostMapping(value = "/getJurisdictionGovInfo")
public ApiBaseResponse<List<NimsApiDto.JurisdictionGovInfo>> getJurisdictionGovInfo( // public ApiBaseResponse<List<NimsApiDto.JurisdictionGovInfo>> getJurisdictionGovInfo(
@RequestBody @Validated NimsApiRequest.JurisdictionGovInfoRequest dto // @RequestBody @Validated NimsApiRequest.JurisdictionGovInfoRequest dto
) { // ) {
return ApiBaseResponse.of(bizNimsService.getJurisdictionGovInfo(dto)); // return ApiBaseResponse.of(bizNimsService.getJurisdictionGovInfo(dto));
} // }
//
@Operation(summary = "저장소 정보 조회(NIMS API)", description = "저장소 정보 조회<br><br>NIMS API 호출 결과를 DB에 저장후 Return") // @Operation(summary = "저장소 정보 조회(NIMS API)", description = "저장소 정보 조회<br><br>NIMS API 호출 결과를 DB에 저장후 Return")
@PostMapping(value = "/getStorageInfo") // @PostMapping(value = "/getStorageInfo")
public ApiBaseResponse<List<NimsApiDto.StorageInfo>> getStorageInfo( // public ApiBaseResponse<List<NimsApiDto.StorageInfo>> getStorageInfo(
@RequestBody @Validated NimsApiRequest.StorageInfoRequest dto // @RequestBody @Validated NimsApiRequest.StorageInfoRequest dto
) { // ) {
return ApiBaseResponse.of(bizNimsService.saveStorageInfo(dto)); // return ApiBaseResponse.of(bizNimsService.saveStorageInfo(dto));
} // }
@Operation(summary = "업체 폐기 보고 정보 조회(NIMS API)", description = "업체 폐기 보고 정보 조회<br><br>NIMS API 호출 결과를 DB에 저장후 Return") @Operation(summary = "업체 폐기 보고 정보 조회(NIMS API)", description = "업체 폐기 보고 정보 조회<br><br>NIMS API 호출 결과를 DB에 저장후 Return")
@PostMapping("/getDsuseRptInfo") @PostMapping("/getDsuseRptInfo")

@ -1,311 +1,311 @@
package cokr.xit.adds.inf.nims.model; // package cokr.xit.adds.inf.nims.model;
//
import java.util.List; // import java.util.List;
//
import com.fasterxml.jackson.annotation.JsonInclude; // import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; // import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; // import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; // import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
//
import jakarta.xml.bind.annotation.XmlAccessType; // import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType; // import jakarta.xml.bind.annotation.XmlAccessorType;
import lombok.AllArgsConstructor; // import lombok.AllArgsConstructor;
import lombok.Builder; // import lombok.Builder;
import lombok.NoArgsConstructor; // import lombok.NoArgsConstructor;
//
/** // /**
* <pre> // * <pre>
* description : NIMS xsd // * description : NIMS xsd 구조 정의
* xsd // * 마약류 관리 시스템 연계시 사용되는 xsd 구조 정의
* -> (AAR) // * -> 폐기(AAR)
* // *
* packageName : cokr.xit.adds.inf.nims.model // * packageName : cokr.xit.adds.inf.nims.model
* fileName : Aar // * fileName : Aar
* author : limju // * author : limju
* date : 2024-03-22 // * date : 2024-03-22
* ====================================================================== // * ======================================================================
* // * 변경일 변경자 변경 내용
* ---------------------------------------------------------------------- // * ----------------------------------------------------------------------
* 2024-03-22 limju // * 2024-03-22 limju 최초 생성
* // *
* </pre> // * </pre>
*/ // */
@JacksonXmlRootElement(localName = "aar_regist", namespace = "https://www.nims.or.kr/schema/nims") // @JacksonXmlRootElement(localName = "aar_regist", namespace = "https://www.nims.or.kr/schema/nims")
@NoArgsConstructor // @NoArgsConstructor
@AllArgsConstructor // @AllArgsConstructor
@Builder // @Builder
public class Aar { // public class Aar {
@JacksonXmlProperty(localName = "REPORT_SET") // @JacksonXmlProperty(localName = "REPORT_SET")
private ReportSet reportSet; // private ReportSet reportSet;
//
@JsonInclude(JsonInclude.Include.NON_NULL) // @JsonInclude(JsonInclude.Include.NON_NULL)
@XmlAccessorType(XmlAccessType.FIELD) // @XmlAccessorType(XmlAccessType.FIELD)
@NoArgsConstructor // @NoArgsConstructor
@AllArgsConstructor // @AllArgsConstructor
@Builder // @Builder
public static class ReportSet { // public static class ReportSet {
/** // /**
* - ID // * 필수 - 보고자식별ID
*/ // */
@JacksonXmlProperty(localName = "UID") // @JacksonXmlProperty(localName = "UID")
private String uid; // private String uid;
//
/** // /**
* - ID // * 필수 - 소프트웨어ID
*/ // */
@JacksonXmlProperty(localName = "SW_ID") // @JacksonXmlProperty(localName = "SW_ID")
private String swId; // private String swId;
//
/** // /**
* - // * 수불비고 - 보고사유 기재
*/ // */
@JacksonXmlProperty(localName = "RND_RMK") // @JacksonXmlProperty(localName = "RND_RMK")
private String rndRmk; // private String rndRmk;
//
/** // /**
* Header // * Header
*/ // */
@JacksonXmlElementWrapper(useWrapping = false) // @JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "HEADER") // @JacksonXmlProperty(localName = "HEADER")
private List<Header> header; // private List<Header> header;
//
} // }
//
@JsonInclude(JsonInclude.Include.NON_NULL) // @JsonInclude(JsonInclude.Include.NON_NULL)
@NoArgsConstructor // @NoArgsConstructor
@AllArgsConstructor // @AllArgsConstructor
@Builder // @Builder
public static class Header { // public static class Header {
/** // /**
* - // * 필수 - 취급일자
* () // * 폐기신청민원 처리일자(공문시행일자)
*/ // */
@JacksonXmlProperty(localName = "HDR_DE") // @JacksonXmlProperty(localName = "HDR_DE")
private String hdrDe; // private String hdrDe;
//
/** // /**
* - // * 필수 - 마약류취급자식별번호
*/ // */
@JacksonXmlProperty(localName = "BSSH_CD") // @JacksonXmlProperty(localName = "BSSH_CD")
private String bsshCd; // private String bsshCd;
//
/** // /**
* - // * 필수 - 보고구분코드
* AAR - // * AAR - 폐기
*/ // */
@JacksonXmlProperty(localName = "RPT_SE_CD") // @JacksonXmlProperty(localName = "RPT_SE_CD")
private String rptSeCd; // private String rptSeCd;
//
/** // /**
* - // * 필수 - 사용자보고식별번호
* // * 보고자 시스템에서 관리하는 고유식별번호
* | // * 변경|취소시 에도 다른 식별 번호 생성
*/ // */
@JacksonXmlProperty(localName = "USR_RPT_ID_NO") // @JacksonXmlProperty(localName = "USR_RPT_ID_NO")
private String usrRptIdNo; // private String usrRptIdNo;
//
/** // /**
* (| ) // * 참조사용자보고식별번호(변경|취소시 필수)
* // * 원본 사용자보고식별번호 기입
*/ // */
@JacksonXmlProperty(localName = "REF_USR_RPT_ID_NO") // @JacksonXmlProperty(localName = "REF_USR_RPT_ID_NO")
private String refUsrRptIdNo; // private String refUsrRptIdNo;
//
/** // /**
* - // * 필수 - 보고유형코드
* 0-, 1-, 2- // * 0-신규, 1-취소, 2-변경
*/ // */
@JacksonXmlProperty(localName = "RPT_TY_CD") // @JacksonXmlProperty(localName = "RPT_TY_CD")
private String rptTyCd; // private String rptTyCd;
//
/** // /**
* ( - ) // * 비고(변경 및 취소시 필수-사유 기재)
*/ // */
@JacksonXmlProperty(localName = "RMK") // @JacksonXmlProperty(localName = "RMK")
private String rmk; // private String rmk;
//
/** // /**
* - // * 필수 - 보고자명
*/ // */
@JacksonXmlProperty(localName = "RPTR_NM") // @JacksonXmlProperty(localName = "RPTR_NM")
private String rptrNm; // private String rptrNm;
//
/** // /**
* - // * 필수 - 보고자업체명
*/ // */
@JacksonXmlProperty(localName = "RPTR_ENTRPS_NM") // @JacksonXmlProperty(localName = "RPTR_ENTRPS_NM")
private String rptrEntrpsNm; // private String rptrEntrpsNm;
//
/** // /**
* - // * 필수 - 담당자명
*/ // */
@JacksonXmlProperty(localName = "CHRG_NM") // @JacksonXmlProperty(localName = "CHRG_NM")
private String chrgNm; // private String chrgNm;
//
/** // /**
* - // * 필수 - 담당자 전화번호
*/ // */
@JacksonXmlProperty(localName = "CHRG_TEL_NO") // @JacksonXmlProperty(localName = "CHRG_TEL_NO")
private String chrgTelNo; // private String chrgTelNo;
//
/** // /**
* - // * 필수 - 담당자 휴대폰 번호
* // * 암호화 필요
*/ // */
@JacksonXmlProperty(localName = "CHRG_MP_NO") // @JacksonXmlProperty(localName = "CHRG_MP_NO")
private String chrgMpNo; // private String chrgMpNo;
//
/** // /**
* - // * 필수 - 수불 상세 보고수
* // * 당해 보고건의 라인수
*/ // */
@JacksonXmlProperty(localName = "RND_DTL_RPT_CNT") // @JacksonXmlProperty(localName = "RND_DTL_RPT_CNT")
private String rndDtlRptCnt; // private String rndDtlRptCnt;
//
/** // /**
* - // * 필수 - 폐기구분코드
* 1-, 2-, 4-// // * 1-보건소폐기, 2-공무원임회, 4-도난/분실/재해 발생 사고마약류
*/ // */
@JacksonXmlProperty(localName = "DSUSE_SE_CD") // @JacksonXmlProperty(localName = "DSUSE_SE_CD")
private String dsuseSeCd; // private String dsuseSeCd;
//
/** // /**
* <pre> // * <pre>
* - // * 필수 - 폐기 사유 코드
* // *
* 01-, 02-,, 03- // * 01-파손, 02-변질,부패, 03-유효기간 또는 사용기한 경과
* 04- , 05- , 07-, 08- // * 04-유효 기간 임박, 05-사용 중단, 07-폐업, 08-환자 반납
* 09-, 12- // * 09-기타, 12-제조 공정중 폐기물
* </pre> // * </pre>
*/ // */
@JacksonXmlProperty(localName = "DSUSE_PRV_CD") // @JacksonXmlProperty(localName = "DSUSE_PRV_CD")
private String dsusePrvCd; // private String dsusePrvCd;
//
/** // /**
* <pre> // * <pre>
* - // * 필수 - 폐기방법코드
* // *
* 1-, 2-, 3- , 4-, 5- // * 1-소각, 2-중화, 3-가수 분해, 4-산화, 5-환원
* 6-, 7-, 8-(,), 9- // * 6-희석, 7-매물, 8-기타(파쇄,혼합), 9-사고
* </pre> // * </pre>
*/ // */
@JacksonXmlProperty(localName = "DSUSE_MTH_CD") // @JacksonXmlProperty(localName = "DSUSE_MTH_CD")
private String dsuseMthCd; // private String dsuseMthCd;
//
/** // /**
* - // * 필수 - 폐기장소
*/ // */
@JacksonXmlProperty(localName = "DSUSE_LOC") // @JacksonXmlProperty(localName = "DSUSE_LOC")
private String dsuseLoc; // private String dsuseLoc;
//
/** // /**
* - // * 필수 - 폐기일자
* yyyyMMdd // * yyyyMMdd
*/ // */
@JacksonXmlProperty(localName = "DSUSE_DE") // @JacksonXmlProperty(localName = "DSUSE_DE")
private String dsuseDe; // private String dsuseDe;
//
/** // /**
* - // * 필수 - 폐기 관할 행정 기관 코드
*/ // */
@JacksonXmlProperty(localName = "DSUSE_INSTT_CD") // @JacksonXmlProperty(localName = "DSUSE_INSTT_CD")
private String dsuseInsttCd; // private String dsuseInsttCd;
//
/** // /**
* - // * 필수 - 첨부 파일 건수
*/ // */
@JacksonXmlProperty(localName = "ATCH_FILE_CO") // @JacksonXmlProperty(localName = "ATCH_FILE_CO")
private String atchFileCo; // private String atchFileCo;
//
/** // /**
* Line // * Line
*/ // */
@JacksonXmlProperty(localName = "REGISTER_ID") // @JacksonXmlProperty(localName = "REGISTER_ID")
private String registerId; // private String registerId;
//
@JacksonXmlProperty(localName = "FILE_CREAT_DT") // @JacksonXmlProperty(localName = "FILE_CREAT_DT")
private String fileCreatDt; // private String fileCreatDt;
//
@JacksonXmlProperty(localName = "LINES") // @JacksonXmlProperty(localName = "LINES")
private Lines lines; // private Lines lines;
//
@JacksonXmlProperty(localName = "ATCH_FILES") // @JacksonXmlProperty(localName = "ATCH_FILES")
private AtchFiles atchFiles; // private AtchFiles atchFiles;
} // }
//
@JsonInclude(JsonInclude.Include.NON_NULL) // @JsonInclude(JsonInclude.Include.NON_NULL)
@NoArgsConstructor // @NoArgsConstructor
@AllArgsConstructor // @AllArgsConstructor
@Builder // @Builder
public static class Lines { // public static class Lines {
@JacksonXmlElementWrapper(useWrapping = false) // @JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "LINE") // @JacksonXmlProperty(localName = "LINE")
private List<Line> line; // private List<Line> line;
} // }
//
@JsonInclude(JsonInclude.Include.NON_NULL) // @JsonInclude(JsonInclude.Include.NON_NULL)
@NoArgsConstructor // @NoArgsConstructor
@AllArgsConstructor // @AllArgsConstructor
@Builder // @Builder
public static class Line { // public static class Line {
@JacksonXmlProperty(localName = "USR_RPT_ID_NO") // @JacksonXmlProperty(localName = "USR_RPT_ID_NO")
private String usrRptIdNo; // private String usrRptIdNo;
//
@JacksonXmlProperty(localName = "USR_RPT_LN_ID_NO") // @JacksonXmlProperty(localName = "USR_RPT_LN_ID_NO")
private String usrRptLnIdNo; // private String usrRptLnIdNo;
//
@JacksonXmlProperty(localName = "STORGE_NO") // @JacksonXmlProperty(localName = "STORGE_NO")
private String storgeNo; // private String storgeNo;
//
@JacksonXmlProperty(localName = "MVMN_TY_CD") // @JacksonXmlProperty(localName = "MVMN_TY_CD")
private String mvmnTyCd; // private String mvmnTyCd;
//
@JacksonXmlProperty(localName = "PRDUCT_CD") // @JacksonXmlProperty(localName = "PRDUCT_CD")
private String prductCd; // private String prductCd;
//
@JacksonXmlProperty(localName = "MNF_NO") // @JacksonXmlProperty(localName = "MNF_NO")
private String mnfNo; // private String mnfNo;
@JacksonXmlProperty(localName = "MNF_SEQ") // @JacksonXmlProperty(localName = "MNF_SEQ")
private String mnfSeq; // private String mnfSeq;
//
@JacksonXmlProperty(localName = "MIN_DISTB_QY") // @JacksonXmlProperty(localName = "MIN_DISTB_QY")
private String minDistbQy; // private String minDistbQy;
//
@JacksonXmlProperty(localName = "PRD_MIN_DISTB_UNIT") // @JacksonXmlProperty(localName = "PRD_MIN_DISTB_UNIT")
private String prdMinDistbUnit; // private String prdMinDistbUnit;
//
@JacksonXmlProperty(localName = "PCE_QY") // @JacksonXmlProperty(localName = "PCE_QY")
private String pceQy; // private String pceQy;
//
@JacksonXmlProperty(localName = "PRD_PCE_UNIT") // @JacksonXmlProperty(localName = "PRD_PCE_UNIT")
private String prdPceUnit; // private String prdPceUnit;
//
@JacksonXmlProperty(localName = "PRDUCT_NM") // @JacksonXmlProperty(localName = "PRDUCT_NM")
private String prductNm; // private String prductNm;
//
@JacksonXmlProperty(localName = "PRD_SGTIN") // @JacksonXmlProperty(localName = "PRD_SGTIN")
private String prdSgtin; // private String prdSgtin;
//
@JacksonXmlProperty(localName = "PRD_MIN_DISTB_QY") // @JacksonXmlProperty(localName = "PRD_MIN_DISTB_QY")
private String prdMinDistbQy; // private String prdMinDistbQy;
//
@JacksonXmlProperty(localName = "PRD_TOT_PCE_QY") // @JacksonXmlProperty(localName = "PRD_TOT_PCE_QY")
private String prdTotPceQy; // private String prdTotPceQy;
//
@JacksonXmlProperty(localName = "PRD_VALID_DE") // @JacksonXmlProperty(localName = "PRD_VALID_DE")
private String prdValidDe; // private String prdValidDe;
//
@JacksonXmlProperty(localName = "FILE_CREAT_DT") // @JacksonXmlProperty(localName = "FILE_CREAT_DT")
private String fileCreatDt; // private String fileCreatDt;
} // }
//
@JsonInclude(JsonInclude.Include.NON_NULL) // @JsonInclude(JsonInclude.Include.NON_NULL)
@NoArgsConstructor // @NoArgsConstructor
@AllArgsConstructor // @AllArgsConstructor
@Builder // @Builder
public static class AtchFiles{ // public static class AtchFiles{
@JacksonXmlElementWrapper(useWrapping = false) // @JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "ATCH_FILE_NM") // @JacksonXmlProperty(localName = "ATCH_FILE_NM")
private List<String> atchFileNm; // private List<String> atchFileNm;
} // }
} // }

@ -1,85 +1,85 @@
package cokr.xit.adds.inf.nims.model; // package cokr.xit.adds.inf.nims.model;
//
import com.fasterxml.jackson.annotation.JsonProperty; // import com.fasterxml.jackson.annotation.JsonProperty;
//
import jakarta.xml.bind.annotation.XmlAccessType; // import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType; // import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlRootElement; // import jakarta.xml.bind.annotation.XmlRootElement;
import lombok.AllArgsConstructor; // import lombok.AllArgsConstructor;
import lombok.Builder; // import lombok.Builder;
import lombok.Getter; // import lombok.Getter;
import lombok.NoArgsConstructor; // import lombok.NoArgsConstructor;
//
/** // /**
* <pre> // * <pre>
* description : // * description :
* // *
* packageName : cokr.xit.adds.inf.nims.model // * packageName : cokr.xit.adds.inf.nims.model
* fileName : NimsAarResult // * fileName : NimsAarResult
* author : limju // * author : limju
* date : 2024-03-21 // * date : 2024-03-21
* ====================================================================== // * ======================================================================
* // * 변경일 변경자 변경 내용
* ---------------------------------------------------------------------- // * ----------------------------------------------------------------------
* 2024-03-21 limju // * 2024-03-21 limju 최초 생성
* // *
* </pre> // * </pre>
*/ // */
@XmlRootElement(name = "response") // @XmlRootElement(name = "response")
@XmlAccessorType(XmlAccessType.FIELD) // @XmlAccessorType(XmlAccessType.FIELD)
@Getter // @Getter
@NoArgsConstructor // @NoArgsConstructor
@AllArgsConstructor // @AllArgsConstructor
@Builder // @Builder
public class NimsAarResult { // public class NimsAarResult {
/** // /**
* // * 결과코드
* 0000 : // * 0000 : 정상 보고 등록 되었습니다
* 9999 : // * 9999 : 보고 실패 되었습니다
*/ // */
@JsonProperty(value = "RESULT_CD", required = true) // @JsonProperty(value = "RESULT_CD", required = true)
String resultCd; // String resultCd;
//
/** // /**
* // * 결과메시지
* 0000 : // * 0000 : 정상 보고 등록 되었습니다
* 9999 : // * 9999 : 보고 실패 되었습니다
*/ // */
@JsonProperty(value = "RESULT_MSG", required = true) // @JsonProperty(value = "RESULT_MSG", required = true)
String resultMsg; // String resultMsg;
//
/** // /**
* ID // * 보고자식별ID
* // * 보고자를 식별할 수 있는 고유 식별자
* // * 시스템 내부에서 사용하는 식별자
*/ // */
@JsonProperty(value = "UID", required = true) // @JsonProperty(value = "UID", required = true)
String uid; // String uid;
/** // /**
* // * 마약류취급자식별번호
* // * 마약류통합관리 시스템에서 부여한 고유 코드
*/ // */
@JsonProperty(value = "BSSH_CD", required = true) // @JsonProperty(value = "BSSH_CD", required = true)
String bsshCd; // String bsshCd;
/** // /**
* // * 보고구분코드
*/ // */
@JsonProperty(value = "RPT_SE_CD", required = true) // @JsonProperty(value = "RPT_SE_CD", required = true)
String rptSeCd; // String rptSeCd;
/** // /**
* // * 사용자보고식별번호
*/ // */
String usrPrtIdNo; // String usrPrtIdNo;
/** // /**
* // * 보고접수번호
*/ // */
String rptRceptNo; // String rptRceptNo;
/** // /**
* // * 에러코드
*/ // */
String errorCd; // String errorCd;
/** // /**
* // * 에러메시지
*/ // */
String errorMsg; // String errorMsg;
} // }

@ -1,18 +1,13 @@
package cokr.xit.adds.inf.nims.model; package cokr.xit.adds.inf.nims.model;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.validation.Valid; import javax.validation.Valid;
import com.fasterxml.jackson.annotation.JsonAlias; 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.model.AuditDto;
import cokr.xit.adds.core.spring.exception.ApiCustomException;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Getter; import lombok.Getter;
@ -118,87 +113,87 @@ public class NimsApiDto {
private String prmisnNo; private String prmisnNo;
} }
/** // /**
* response // * 상품 정보 조회 response
*/ // */
@Getter // @Getter
@NoArgsConstructor // @NoArgsConstructor
@AllArgsConstructor // @AllArgsConstructor
@SuperBuilder // @SuperBuilder
public static class ProductInfoKd extends AuditDto { // public static class ProductInfoKd extends AuditDto {
/** // /**
* // * 품목코드
*/ // */
@JsonAlias("PRDUCT_CD") // @JsonAlias("PRDUCT_CD")
private String prductCd; // private String prductCd;
//
/** // /**
* // * 제품대표코드
*/ // */
@JsonAlias("PRDLST_MST_CD") // @JsonAlias("PRDLST_MST_CD")
private String prdlstMstCd; // private String prdlstMstCd;
//
/** // /**
* // * 제품명
*/ // */
@JsonAlias("PRDUCT_NM") // @JsonAlias("PRDUCT_NM")
private String prductNm; // private String prductNm;
//
/** // /**
* / // * 마약/항정 구분명
*/ // */
@JsonAlias("NRCD_SE_NM") // @JsonAlias("NRCD_SE_NM")
private String nrcdSeNm; // private String nrcdSeNm;
//
/** // /**
* / // * 중점/일반 구분
*/ // */
@JsonAlias("PRTM_SE_NM") // @JsonAlias("PRTM_SE_NM")
private String prtmSeNm; // private String prtmSeNm;
//
/** // /**
* // * 제품최소유통단위수량
* ( = 1) // * 제품규격정보(고정값 = 1)
*/ // */
@JsonAlias("PRD_MIN_DISTB_QY") // @JsonAlias("PRD_MIN_DISTB_QY")
private Integer prdMinDistbQy; // private Integer prdMinDistbQy;
//
/** // /**
* // * 제품최소유통단위
*/ // */
@JsonAlias("STD_PACKNG_STLE_NM") // @JsonAlias("STD_PACKNG_STLE_NM")
private String stdPackngStleNm; // private String stdPackngStleNm;
//
/** // /**
* // * 제품총낱개단위수량
*/ // */
@JsonAlias("PRD_TOT_PCE_QY") // @JsonAlias("PRD_TOT_PCE_QY")
private Integer prdTotPceQy; // private Integer prdTotPceQy;
//
/** // /**
* // * 제품낱개단위
*/ // */
@JsonAlias("PCE_CO_UNIT_NM") // @JsonAlias("PCE_CO_UNIT_NM")
private String pceCoUnitNm; // private String pceCoUnitNm;
//
/** // /**
* // * 마약류취급자식별번호
*/ // */
@JsonAlias("BSSH_CD") // @JsonAlias("BSSH_CD")
private String bsshCd; // private String bsshCd;
//
/** // /**
* // * 등록일
*/ // */
@JsonAlias("RGS_DT") // @JsonAlias("RGS_DT")
private String rgsDt; // private String rgsDt;
//
/** // /**
* // * 변경일
*/ // */
@JsonAlias("UPD_DT") // @JsonAlias("UPD_DT")
private String updDt; // private String updDt;
} // }
/** /**
* response * response
@ -322,16 +317,6 @@ public class NimsApiDto {
@Builder.Default @Builder.Default
@Valid @Valid
private List<DsuseRptInfoDtl> dsuseRptInfoDtls = new ArrayList<>(); private List<DsuseRptInfoDtl> dsuseRptInfoDtls = new ArrayList<>();
// clone 메소드 추가
@Override
public DsuseRptInfo clone() {
try {
return (DsuseRptInfo) super.clone();
} catch (CloneNotSupportedException e) {
throw ApiCustomException.create("NIMS 폐기보고 정보 복제 중 오류가 발생 하였습니다.");
}
}
} }
@Getter @Getter
@ -408,175 +393,175 @@ public class NimsApiDto {
private Integer dsuseQy; private Integer dsuseQy;
} }
/** // /**
* response // * 제품 제조 일련 번호 정보 조회 response
*/ // */
@Getter // @Getter
@Setter // @Setter
@NoArgsConstructor // @NoArgsConstructor
@AllArgsConstructor // @AllArgsConstructor
@SuperBuilder // @SuperBuilder
public static class MnfSeqInfo extends AuditDto { // public static class MnfSeqInfo extends AuditDto {
/** // /**
* // * 제품코드
*/ // */
@JsonAlias("PRDUCT_CD") // @JsonAlias("PRDUCT_CD")
private String prductCd; // private String prductCd;
//
/** // /**
* // * 제품명
*/ // */
@JsonAlias("PRDUCT_NM") // @JsonAlias("PRDUCT_NM")
private String prductNm; // private String prductNm;
//
/** // /**
* // * 제조번호
*/ // */
@JsonAlias("MNF_NO") // @JsonAlias("MNF_NO")
private String mnfNo; // private String mnfNo;
//
/** // /**
* // * 일련번호
*/ // */
@JsonAlias("MNF_SEQ") // @JsonAlias("MNF_SEQ")
private String mnfSeq; // private String mnfSeq;
//
/** // /**
* // * 유효기간
*/ // */
@JsonAlias("PRD_VALID_DE") // @JsonAlias("PRD_VALID_DE")
private String prdValidDe; // private String prdValidDe;
} // }
//
/** // /**
* response // * 관할 허가 관청 정보 조회 response
*/ // */
@Getter // @Getter
@NoArgsConstructor // @NoArgsConstructor
@AllArgsConstructor // @AllArgsConstructor
@SuperBuilder // @SuperBuilder
public static class JurisdictionGovInfo extends AuditDto { // public static class JurisdictionGovInfo extends AuditDto {
/** // /**
* // * 기관코드
*/ // */
@JsonAlias("OF_CD") // @JsonAlias("OF_CD")
private String ofCd; // private String ofCd;
//
/** // /**
* // * 기관명
*/ // */
@JsonAlias("OF_NM") // @JsonAlias("OF_NM")
private String ofNm; // private String ofNm;
//
/** // /**
* // * 상위 기관명
*/ // */
@JsonAlias("UP_OF_NM") // @JsonAlias("UP_OF_NM")
private String upOfNm; // private String upOfNm;
//
/** // /**
* // * 최상위 기관명
*/ // */
@JsonAlias("TOP_OF_NM") // @JsonAlias("TOP_OF_NM")
private String topOfNm; // private String topOfNm;
//
/** // /**
* // * 기본 주소
*/ // */
@JsonAlias("BASS_ADRES") // @JsonAlias("BASS_ADRES")
private String bassAdres; // private String bassAdres;
//
/** // /**
* // * 상세 주소
*/ // */
@JsonAlias("BASS_DTL_ADRES") // @JsonAlias("BASS_DTL_ADRES")
private String bassDtlAdres; // private String bassDtlAdres;
} // }
//
/** // /**
* response // * 저장소 정보 조회 response
*/ // */
@Getter // @Getter
@NoArgsConstructor // @NoArgsConstructor
@AllArgsConstructor // @AllArgsConstructor
@SuperBuilder // @SuperBuilder
public static class StorageInfo extends AuditDto { // public static class StorageInfo extends AuditDto {
/** // /**
* // * 마약류취급자식별번호
*/ // */
@JsonAlias("BSSH_CD") // @JsonAlias("BSSH_CD")
private String bsshCd; // private String bsshCd;
//
/** // /**
* // * 업체명
*/ // */
@JsonAlias("BSSH_NM") // @JsonAlias("BSSH_NM")
private String bsshNm; // private String bsshNm;
//
/** // /**
* // * 저장소 번호
*/ // */
@JsonAlias("STORGE_NO") // @JsonAlias("STORGE_NO")
private String storgeNo; // private String storgeNo;
//
/** // /**
* // * 저장소명
*/ // */
@JsonAlias("STORGE_NM") // @JsonAlias("STORGE_NM")
private String storgeNm; // private String storgeNm;
//
/** // /**
* // * 저장소 유형
*/ // */
@JsonAlias("STORGE_SE_NM") // @JsonAlias("STORGE_SE_NM")
private String storgeSeNm; // private String storgeSeNm;
//
/** // /**
* // * 기본 주소
*/ // */
@JsonAlias("BASS_ADRES") // @JsonAlias("BASS_ADRES")
private String bassAdres; // private String bassAdres;
//
/** // /**
* // * 상세 주소
*/ // */
@JsonAlias("BASS_DTL_ADRES") // @JsonAlias("BASS_DTL_ADRES")
private String bassDtlAdres; // private String bassDtlAdres;
//
/** // /**
* // * 사용 유무
*/ // */
@JsonAlias("USE_AT") // @JsonAlias("USE_AT")
private String useAt; // private String useAt;
} // }
//
/** // /**
* <pre> // * <pre>
* response Serializer // * 제품 제조 일련 번호 정보 조회 response Serializer
* (json "PRODUCT_CD" -> "prductCd") Serializer // * 제품 제조 일련 번호 정보 조회시 (json "PRODUCT_CD" -> "prductCd") 직렬화를 위한 Serializer
* @uses @JsonSerialize(using = MnfSeqInfoSerializer.class) // * @uses @JsonSerialize(using = MnfSeqInfoSerializer.class)
* </pre> // * </pre>
*/ // */
public static class MnfSeqInfoSerializer extends JsonSerializer<List<MnfSeqInfo>> { // public static class MnfSeqInfoSerializer extends JsonSerializer<List<MnfSeqInfo>> {
@Override // @Override
public void serialize(List<NimsApiDto.MnfSeqInfo> mnfSeqInfos, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) { // public void serialize(List<NimsApiDto.MnfSeqInfo> mnfSeqInfos, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) {
//
try { // try {
jsonGenerator.writeStartArray(); // jsonGenerator.writeStartArray();
for(MnfSeqInfo mnfSeqInfo : mnfSeqInfos) { // for(MnfSeqInfo mnfSeqInfo : mnfSeqInfos) {
jsonGenerator.writeStartObject(); // jsonGenerator.writeStartObject();
jsonGenerator.writeStringField("prductCd", mnfSeqInfo.getPrductCd()); // jsonGenerator.writeStringField("prductCd", mnfSeqInfo.getPrductCd());
jsonGenerator.writeStringField("prductNm", mnfSeqInfo.getPrductNm()); // jsonGenerator.writeStringField("prductNm", mnfSeqInfo.getPrductNm());
jsonGenerator.writeStringField("mnfNo", mnfSeqInfo.getMnfNo()); // jsonGenerator.writeStringField("mnfNo", mnfSeqInfo.getMnfNo());
jsonGenerator.writeStringField("mnfSeq", mnfSeqInfo.getMnfSeq()); // jsonGenerator.writeStringField("mnfSeq", mnfSeqInfo.getMnfSeq());
jsonGenerator.writeStringField("prdValidDe", mnfSeqInfo.getPrdValidDe()); // jsonGenerator.writeStringField("prdValidDe", mnfSeqInfo.getPrdValidDe());
jsonGenerator.writeEndObject(); // jsonGenerator.writeEndObject();
} // }
jsonGenerator.writeEndArray(); // jsonGenerator.writeEndArray();
} catch (IOException e) { // } catch (IOException e) {
throw ApiCustomException.create("NIMS 제조 일련 번호 조회 API 호출 결과 직렬화 중 오류가 발생 하였습니다."); // throw ApiCustomException.create("NIMS 제조 일련 번호 조회 API 호출 결과 직렬화 중 오류가 발생 하였습니다.");
} // }
} // }
} // }
} }

@ -111,73 +111,73 @@ public class NimsApiRequest {
String fg2 = "1"; String fg2 = "1";
} }
/** // /**
* request // * 상품 정보 조회 request
*/ // */
@Schema(name = "ProductInfoRequest", description = "상품 정보 조회 request") // @Schema(name = "ProductInfoRequest", description = "상품 정보 조회 request")
@Data // @Data
@NoArgsConstructor // @NoArgsConstructor
@AllArgsConstructor // @AllArgsConstructor
@Builder // @Builder
public static class ProductInfoRequest { // public static class ProductInfoRequest {
/** // /**
* // * 인증키
*/ // */
@Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "998003699950fa950b798c9edea1b38f3cfbcf3b77e03e419") // @Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "998003699950fa950b798c9edea1b38f3cfbcf3b77e03e419")
@NotEmpty(message = "인증키는 필수 입니다") // @NotEmpty(message = "인증키는 필수 입니다")
String k; // String k;
//
/** // /**
* // * 조회범위
* 1-, 2-, 3- // * 1-전체, 2-내거래품목, 3-청구코드매핑
*/ // */
@Schema(requiredMode = REQUIRED, title = "조회범위(1-전체, 2-내거래처 품목, 3-청구코드 매핑)", description = "조회범위(1-전체, 2-내거래처 품목, 3-청구코드 매핑)", example = "1", allowableValues = {"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-청구코드 매핑)") // @Pattern(regexp = "[1-3]", message = "조회범위는 필수 입니다(1-전체, 2-내거래처 품목, 3-청구코드 매핑)")
String fg; // String fg;
//
/** // /**
* // * 조회 페이지
*/ // */
@Schema(requiredMode = REQUIRED, title = "조회 페이지", description = "조회 페이지", example = "1") // @Schema(requiredMode = REQUIRED, title = "조회 페이지", description = "조회 페이지", example = "1")
@Pattern(regexp = "[0-9]{1,}", message = "조회 페이지는 필수 입니다") // @Pattern(regexp = "[0-9]{1,}", message = "조회 페이지는 필수 입니다")
String pg; // String pg;
//
/** // /**
* // * 기준일자 이후
* yyyyMMdd // * yyyyMMdd
*/ // */
@Schema(title = "기준일자(yyyyMMdd-이후일자)", description = "기준일자(yyyyMMdd-이후일자)", example = " ") // @Schema(title = "기준일자(yyyyMMdd-이후일자)", description = "기준일자(yyyyMMdd-이후일자)", example = " ")
@Pattern(regexp = "^$|"+Constants.DATE_REGX, message = "기준 일자는 8자리 입니다(yyyyMMdd)") // @Pattern(regexp = "^$|"+Constants.DATE_REGX, message = "기준 일자는 8자리 입니다(yyyyMMdd)")
@Builder.Default // @Builder.Default
String ymd = StringUtils.EMPTY; // String ymd = StringUtils.EMPTY;
//
/** // /**
* / // * 중점/일반 구분
* 1: // * 1:중점
* 2: // * 2:일반
*/ // */
@Schema(title = "중점|일반 구분(all, 1:중점, 2:일반)", description = "중점|일반 구분(all, 1:중점, 2:일반)", example = " ", allowableValues = {"", "1", "2"}) // @Schema(title = "중점|일반 구분(all, 1:중점, 2:일반)", description = "중점|일반 구분(all, 1:중점, 2:일반)", example = " ", allowableValues = {"", "1", "2"})
@Pattern(regexp = "^$|[12]", message = "중점|일반 구분은 1 또는 2 입니다(1:중점, 2:일반)") // @Pattern(regexp = "^$|[12]", message = "중점|일반 구분은 1 또는 2 입니다(1:중점, 2:일반)")
@Builder.Default // @Builder.Default
String fg2 = StringUtils.EMPTY; // String fg2 = StringUtils.EMPTY;
//
/** // /**
* // * 제품코드
* (like ) // * 제품코드(like 검색)
* (pg) 3 // * 조회범위(pg)가 3인 경우 청구 코드
*/ // */
@Schema(title = "제품코드", description = "제품코드", example = " ") // @Schema(title = "제품코드", description = "제품코드", example = " ")
@Pattern(regexp = "^$|[0-9a-zA-Z]{13}", message = "제품코드는 13자리 입니다") // @Pattern(regexp = "^$|[0-9a-zA-Z]{13}", message = "제품코드는 13자리 입니다")
@Builder.Default // @Builder.Default
String p = StringUtils.EMPTY; // String p = StringUtils.EMPTY;
//
/** // /**
* (like ) // * 제품명(like 검색)
*/ // */
@Schema(title = "제품명", description = "제품명", example = " ") // @Schema(title = "제품명", description = "제품명", example = " ")
@Builder.Default // @Builder.Default
String pn = StringUtils.EMPTY; // String pn = StringUtils.EMPTY;
} // }
@Schema(name = "DsuseRptInfoRequest", description = "폐기 보고 정보 조회 request") @Schema(name = "DsuseRptInfoRequest", description = "폐기 보고 정보 조회 request")
@Data @Data
@ -289,164 +289,164 @@ public class NimsApiRequest {
} }
/** // /**
* request // * 제품 일련 번호 정보 조회 request
*/ // */
@Schema(name = "MnfSeqInfoRequest", description = "제품 일련 번호 정보 조회 request") // @Schema(name = "MnfSeqInfoRequest", description = "제품 일련 번호 정보 조회 request")
@Data // @Data
@NoArgsConstructor // @NoArgsConstructor
@AllArgsConstructor // @AllArgsConstructor
@Builder // @Builder
public static class MnfSeqInfoRequest { // public static class MnfSeqInfoRequest {
/** // /**
* // * 인증키
*/ // */
@Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "998003699950fa950b798c9edea1b38f3cfbcf3b77e03e419") // @Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "998003699950fa950b798c9edea1b38f3cfbcf3b77e03e419")
@NotEmpty(message = "인증키는 필수 입니다") // @NotEmpty(message = "인증키는 필수 입니다")
String k; // String k;
//
/** // /**
* : // * 조회범위 : 실제는 동일
* 1-, 2-, 3-/RFID // * 1-제조번호, 2-일련번호, 3-바코드/RFID
*/ // */
@Schema(requiredMode = REQUIRED, title = "제조번호 또는 일련번호 구분", description = "제조번호 또는 일련번호 구분(1-제조번호, 2-일련번호, 3-바코드/RFID)", example = "1", allowableValues = {"1", "2", "3"}) // @Schema(requiredMode = REQUIRED, title = "제조번호 또는 일련번호 구분", description = "제조번호 또는 일련번호 구분(1-제조번호, 2-일련번호, 3-바코드/RFID)", example = "1", allowableValues = {"1", "2", "3"})
@Pattern(regexp = "[1-3]", message = "제조번호 또는 일련번호 구분은 필수 입니다(1-제조번호, 2-일련번호, 3-바코드/RFID)") // @Pattern(regexp = "[1-3]", message = "제조번호 또는 일련번호 구분은 필수 입니다(1-제조번호, 2-일련번호, 3-바코드/RFID)")
String fg; // String fg;
//
/** // /**
* // * 조회 페이지
*/ // */
@Schema(requiredMode = REQUIRED, title = "조회 페이지", description = "조회 페이지", example = "1") // @Schema(requiredMode = REQUIRED, title = "조회 페이지", description = "조회 페이지", example = "1")
@Pattern(regexp = "[0-9]{1,}", message = "조회 페이지는 필수 입니다") // @Pattern(regexp = "[0-9]{1,}", message = "조회 페이지는 필수 입니다")
String pg; // String pg;
//
/** // /**
* // * 제품코드
* (like ) // * 제품코드(like 검색)
* (pg) 3 // * 조회범위(pg)가 3인 경우 청구 코드
*/ // */
@Schema(requiredMode = REQUIRED, title = "제품코드", description = "제품코드", example = "8806718050823") // @Schema(requiredMode = REQUIRED, title = "제품코드", description = "제품코드", example = "8806718050823")
@Pattern(regexp = "[0-9]{13}", message = "제품코드는 필수 입니다(13자리)") // @Pattern(regexp = "[0-9]{13}", message = "제품코드는 필수 입니다(13자리)")
String p; // String p;
//
//
/** // /**
* // * 기준일자 이후
* yyyyMMdd // * yyyyMMdd
*/ // */
@Schema(title = "기준일자(yyyyMMdd-이후일자)", description = "기준일자(yyyyMMdd-이후일자)", example = " ") // @Schema(title = "기준일자(yyyyMMdd-이후일자)", description = "기준일자(yyyyMMdd-이후일자)", example = " ")
@Pattern(regexp = "^$|"+Constants.DATE_REGX, message = "기준 일자는 8자리 입니다(yyyyMMdd)") // @Pattern(regexp = "^$|"+Constants.DATE_REGX, message = "기준 일자는 8자리 입니다(yyyyMMdd)")
@Builder.Default // @Builder.Default
String ymd = StringUtils.EMPTY; // String ymd = StringUtils.EMPTY;
//
/** // /**
* : like - -> // * 제품코드 : like 검색 - 오류 -> 사용하지 말것
*/ // */
@Schema(title = "번호일부 검색", description = "번호 일부 검색(like)", example = " ") // @Schema(title = "번호일부 검색", description = "번호 일부 검색(like)", example = " ")
@Pattern(regexp = "^$|[0-9]{5,}", message = "제품코드를 5자이상 입력해주세요(제품코드는 13자리)") // @Pattern(regexp = "^$|[0-9]{5,}", message = "제품코드를 5자이상 입력해주세요(제품코드는 13자리)")
@Builder.Default // @Builder.Default
String t = StringUtils.EMPTY; // String t = StringUtils.EMPTY;
} // }
//
/** // /**
* request // * 관할 허가 관청 정보 조회 request
*/ // */
@Schema(name = "JurisdictionGovInfoRequest", description = "관할 허가 관청 정보 조회 request") // @Schema(name = "JurisdictionGovInfoRequest", description = "관할 허가 관청 정보 조회 request")
@Data // @Data
@NoArgsConstructor // @NoArgsConstructor
@AllArgsConstructor // @AllArgsConstructor
@Builder // @Builder
public static class JurisdictionGovInfoRequest { // public static class JurisdictionGovInfoRequest {
/** // /**
* // * 인증키
*/ // */
@Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "998003699950fa950b798c9edea1b38f3cfbcf3b77e03e419") // @Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "998003699950fa950b798c9edea1b38f3cfbcf3b77e03e419")
@NotEmpty(message = "인증키는 필수 입니다") // @NotEmpty(message = "인증키는 필수 입니다")
String k; // String k;
//
/** // /**
* // * 조회범위
* 1- // * 1-전체
*/ // */
@Schema(requiredMode = REQUIRED, title = "조회범위", description = "조회범위(1-전체)", allowableValues = {"1"}) // @Schema(requiredMode = REQUIRED, title = "조회범위", description = "조회범위(1-전체)", allowableValues = {"1"})
@Pattern(regexp = "1", message = "조회 범위는 필수 입니다(1-전체)") // @Pattern(regexp = "1", message = "조회 범위는 필수 입니다(1-전체)")
String fg; // String fg;
//
/** // /**
* // * 조회 페이지
*/ // */
@Schema(requiredMode = REQUIRED, title = "조회 페이지", description = "조회 페이지", example = "1") // @Schema(requiredMode = REQUIRED, title = "조회 페이지", description = "조회 페이지", example = "1")
@Pattern(regexp = "[0-9]{1,}", message = "조회 페이지는 필수 입니다") // @Pattern(regexp = "[0-9]{1,}", message = "조회 페이지는 필수 입니다")
String pg; // String pg;
//
/** // /**
* // * 기관명
*/ // */
@Schema(title = "기관명", description = "기관명", example = " ") // @Schema(title = "기관명", description = "기관명", example = " ")
@Builder.Default // @Builder.Default
String onm = StringUtils.EMPTY; // String onm = StringUtils.EMPTY;
//
/** // /**
* // * 기관 코드
*/ // */
@Schema(title = "기관 코드", description = "기관 코드", example = " ") // @Schema(title = "기관 코드", description = "기관 코드", example = " ")
@Builder.Default // @Builder.Default
String ocd = StringUtils.EMPTY; // String ocd = StringUtils.EMPTY;
//
/** // /**
* // * 주소
*/ // */
@Schema(title = "주소", description = "주소", example = " ") // @Schema(title = "주소", description = "주소", example = " ")
@Builder.Default // @Builder.Default
String adr = StringUtils.EMPTY; // String adr = StringUtils.EMPTY;
} // }
//
/** // /**
* request // * 저장소 정보 조회 request
*/ // */
@Schema(name = "StorageInfoRequest", description = "저장소 정보 조회 request") // @Schema(name = "StorageInfoRequest", description = "저장소 정보 조회 request")
@Data // @Data
@NoArgsConstructor // @NoArgsConstructor
@AllArgsConstructor // @AllArgsConstructor
@Builder // @Builder
public static class StorageInfoRequest { // public static class StorageInfoRequest {
/** // /**
* // * 인증키
*/ // */
@Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "998003699950fa950b798c9edea1b38f3cfbcf3b77e03e419") // @Schema(requiredMode = REQUIRED, title = "인증키", description = "인증키", example = "998003699950fa950b798c9edea1b38f3cfbcf3b77e03e419")
@NotEmpty(message = "인증키는 필수 입니다") // @NotEmpty(message = "인증키는 필수 입니다")
String k; // String k;
//
/** // /**
* // * 조회범위
* 1- , 2- // * 1-특정 업체, 2-전체
*/ // */
@Schema(requiredMode = REQUIRED, title = "조회범위", description = "조회범위(1-특정업체, 2-전체)", allowableValues = {"1", "2"}) // @Schema(requiredMode = REQUIRED, title = "조회범위", description = "조회범위(1-특정업체, 2-전체)", allowableValues = {"1", "2"})
@Pattern(regexp = "[12]", message = "조회 범위는 필수 입니다(1-특정업체, 2-전체)") // @Pattern(regexp = "[12]", message = "조회 범위는 필수 입니다(1-특정업체, 2-전체)")
String fg; // String fg;
//
/** // /**
* // * 조회 페이지
*/ // */
@Schema(requiredMode = REQUIRED, title = "조회 페이지", description = "조회 페이지", example = "1") // @Schema(requiredMode = REQUIRED, title = "조회 페이지", description = "조회 페이지", example = "1")
@Pattern(regexp = "[0-9]{1,}", message = "조회 페이지는 필수 입니다") // @Pattern(regexp = "[0-9]{1,}", message = "조회 페이지는 필수 입니다")
String pg; // String pg;
//
/** // /**
* // * 취급자식별번호
* 1- // * 조회범위가 1-특정업체인 경우 필수
*/ // */
@Schema(title = "취급자식별번호", description = "취급자식별번호", example = " ") // @Schema(title = "취급자식별번호", description = "취급자식별번호", example = " ")
@Builder.Default // @Builder.Default
String bc = StringUtils.EMPTY; // String bc = StringUtils.EMPTY;
//
/** // /**
* // * 기준일자 이후
* yyyyMMdd // * yyyyMMdd
*/ // */
@Schema(title = "기준일자(yyyyMMdd-이후일자)", description = "기준일자(yyyyMMdd-이후일자)", example = " ") // @Schema(title = "기준일자(yyyyMMdd-이후일자)", description = "기준일자(yyyyMMdd-이후일자)", example = " ")
@Pattern(regexp = "^$|"+Constants.DATE_REGX, message = "기준 일자는 8자리 입니다(yyyyMMdd)") // @Pattern(regexp = "^$|"+Constants.DATE_REGX, message = "기준 일자는 8자리 입니다(yyyyMMdd)")
@Builder.Default // @Builder.Default
String ymd = StringUtils.EMPTY; // String ymd = StringUtils.EMPTY;
} // }
} }

@ -22,13 +22,13 @@ import cokr.xit.adds.inf.nims.model.NimsApiResult;
public interface InfNimsService { public interface InfNimsService {
NimsApiResult.Response<NimsApiDto.BsshInfoSt> getBsshInfoSt(NimsApiRequest.BsshInfoRequest dto); NimsApiResult.Response<NimsApiDto.BsshInfoSt> getBsshInfoSt(NimsApiRequest.BsshInfoRequest dto);
NimsApiResult.Response<NimsApiDto.ProductInfoKd> getProductInfoKd(NimsApiRequest.ProductInfoRequest dto); // NimsApiResult.Response<NimsApiDto.ProductInfoKd> getProductInfoKd(NimsApiRequest.ProductInfoRequest dto);
//
NimsApiResult.Response<NimsApiDto.MnfSeqInfo> getMnfSeqInfo(NimsApiRequest.MnfSeqInfoRequest dto); // NimsApiResult.Response<NimsApiDto.MnfSeqInfo> getMnfSeqInfo(NimsApiRequest.MnfSeqInfoRequest dto);
//
NimsApiResult.Response<NimsApiDto.JurisdictionGovInfo> getJurisdictionGovInfo(NimsApiRequest.JurisdictionGovInfoRequest dto); // NimsApiResult.Response<NimsApiDto.JurisdictionGovInfo> getJurisdictionGovInfo(NimsApiRequest.JurisdictionGovInfoRequest dto);
//
NimsApiResult.Response<NimsApiDto.StorageInfo> getStorageInfo(NimsApiRequest.StorageInfoRequest dto); // NimsApiResult.Response<NimsApiDto.StorageInfo> getStorageInfo(NimsApiRequest.StorageInfoRequest dto);
NimsApiResult.Response<NimsApiDto.DsuseRptInfo> getDsuseRptInfo(NimsApiRequest.DsuseRptInfoRequest dto); NimsApiResult.Response<NimsApiDto.DsuseRptInfo> getDsuseRptInfo(NimsApiRequest.DsuseRptInfoRequest dto);
} }

@ -90,61 +90,61 @@ public class InfNimsServiceBean extends AbstractServiceBean implements InfNimsSe
return result.getResponse(); return result.getResponse();
} }
@Override // @Override
@TraceLogging // @TraceLogging
public NimsApiResult.Response<NimsApiDto.ProductInfoKd> getProductInfoKd(NimsApiRequest.ProductInfoRequest dto) { // public NimsApiResult.Response<NimsApiDto.ProductInfoKd> getProductInfoKd(NimsApiRequest.ProductInfoRequest dto) {
dto.setK(nimsApiKey); // dto.setK(nimsApiKey);
ApiUtil.validate(dto, null, validator); // ApiUtil.validate(dto, null, validator);
if(!isEmpty(dto.getYmd())) ApiUtil.checkYmdError(dto.getYmd(), null); // if(!isEmpty(dto.getYmd())) ApiUtil.checkYmdError(dto.getYmd(), null);
//
String rslt = ApiUtil.callNimsApi(nimsUrl + productinfoKd, dto); // String rslt = ApiUtil.callNimsApi(nimsUrl + productinfoKd, dto);
NimsApiResult<NimsApiDto.ProductInfoKd> result = json.parse(rslt, new TypeReference<NimsApiResult<NimsApiDto.ProductInfoKd>>() {}); // NimsApiResult<NimsApiDto.ProductInfoKd> result = json.parse(rslt, new TypeReference<NimsApiResult<NimsApiDto.ProductInfoKd>>() {});
return result.getResponse(); // return result.getResponse();
} // }
//
@Override // @Override
@TraceLogging // @TraceLogging
public NimsApiResult.Response<NimsApiDto.MnfSeqInfo> getMnfSeqInfo(NimsApiRequest.MnfSeqInfoRequest dto) { // public NimsApiResult.Response<NimsApiDto.MnfSeqInfo> getMnfSeqInfo(NimsApiRequest.MnfSeqInfoRequest dto) {
dto.setK(nimsApiKey); // dto.setK(nimsApiKey);
ApiUtil.validate(dto, null, validator); // ApiUtil.validate(dto, null, validator);
if(!isEmpty(dto.getYmd())) ApiUtil.checkYmdError(dto.getYmd(), null); // if(!isEmpty(dto.getYmd())) ApiUtil.checkYmdError(dto.getYmd(), null);
//
String rslt = ApiUtil.callNimsApi(nimsUrl + seqinfo, dto); // String rslt = ApiUtil.callNimsApi(nimsUrl + seqinfo, dto);
NimsApiResult<NimsApiDto.MnfSeqInfo> result = json.parse(rslt, new TypeReference<NimsApiResult<NimsApiDto.MnfSeqInfo>>() {}); // NimsApiResult<NimsApiDto.MnfSeqInfo> result = json.parse(rslt, new TypeReference<NimsApiResult<NimsApiDto.MnfSeqInfo>>() {});
return result.getResponse(); // return result.getResponse();
} // }
//
@Override // @Override
@TraceLogging // @TraceLogging
public NimsApiResult.Response<NimsApiDto.JurisdictionGovInfo> getJurisdictionGovInfo( // public NimsApiResult.Response<NimsApiDto.JurisdictionGovInfo> getJurisdictionGovInfo(
NimsApiRequest.JurisdictionGovInfoRequest dto) { // NimsApiRequest.JurisdictionGovInfoRequest dto) {
dto.setK(nimsApiKey); // dto.setK(nimsApiKey);
ApiUtil.validate(dto, null, validator); // ApiUtil.validate(dto, null, validator);
if(isEmpty(dto.getOcd()) && isEmpty(dto.getOnm()) && isEmpty(dto.getAdr())) { // if(isEmpty(dto.getOcd()) && isEmpty(dto.getOnm()) && isEmpty(dto.getAdr())) {
throw ApiCustomException.create("필수 파라메터 에러(ocd-기관 코드, onm-기관명, adr-주소 중 하나는 필수)"); // throw ApiCustomException.create("필수 파라메터 에러(ocd-기관 코드, onm-기관명, adr-주소 중 하나는 필수)");
} // }
//
String rslt = ApiUtil.callNimsApi(nimsUrl + officeinfo, dto); // String rslt = ApiUtil.callNimsApi(nimsUrl + officeinfo, dto);
NimsApiResult<NimsApiDto.JurisdictionGovInfo> result = json.parse(rslt, new TypeReference<NimsApiResult<NimsApiDto.JurisdictionGovInfo>>() {}); // NimsApiResult<NimsApiDto.JurisdictionGovInfo> result = json.parse(rslt, new TypeReference<NimsApiResult<NimsApiDto.JurisdictionGovInfo>>() {});
return result.getResponse(); // return result.getResponse();
} // }
//
@Override // @Override
@TraceLogging // @TraceLogging
public NimsApiResult.Response<NimsApiDto.StorageInfo> getStorageInfo(NimsApiRequest.StorageInfoRequest dto) { // public NimsApiResult.Response<NimsApiDto.StorageInfo> getStorageInfo(NimsApiRequest.StorageInfoRequest dto) {
dto.setK(nimsApiKey); // dto.setK(nimsApiKey);
ApiUtil.validate(dto, null, validator); // ApiUtil.validate(dto, null, validator);
if(!isEmpty(dto.getYmd())) ApiUtil.checkYmdError(dto.getYmd(), null); // if(!isEmpty(dto.getYmd())) ApiUtil.checkYmdError(dto.getYmd(), null);
if(!isEmpty(dto.getFg()) && dto.getFg().equals("1")) { // if(!isEmpty(dto.getFg()) && dto.getFg().equals("1")) {
if(isEmpty(dto.getBc())){ // if(isEmpty(dto.getBc())){
throw ApiCustomException.create("조회 범위를 특정업체(fg=1)로 조회할 경우 취급자식별번호(bc)는 필수입니다"); // throw ApiCustomException.create("조회 범위를 특정업체(fg=1)로 조회할 경우 취급자식별번호(bc)는 필수입니다");
} // }
} // }
//
String rslt = ApiUtil.callNimsApi(nimsUrl + placeinfoV1, dto); // String rslt = ApiUtil.callNimsApi(nimsUrl + placeinfoV1, dto);
NimsApiResult<NimsApiDto.StorageInfo> result = json.parse(rslt, new TypeReference<NimsApiResult<NimsApiDto.StorageInfo>>() {}); // NimsApiResult<NimsApiDto.StorageInfo> result = json.parse(rslt, new TypeReference<NimsApiResult<NimsApiDto.StorageInfo>>() {});
return result.getResponse(); // return result.getResponse();
} // }
@Override @Override
public NimsApiResult.Response<NimsApiDto.DsuseRptInfo> getDsuseRptInfo(NimsApiRequest.DsuseRptInfoRequest dto) { public NimsApiResult.Response<NimsApiDto.DsuseRptInfo> getDsuseRptInfo(NimsApiRequest.DsuseRptInfoRequest dto) {

@ -44,37 +44,37 @@ public class InfNimsController {
return ApiBaseResponse.of(infNimsService.getBsshInfoSt(dto)); return ApiBaseResponse.of(infNimsService.getBsshInfoSt(dto));
} }
@Operation(summary = "마약류 상품 정보 조회", description = "마약류 상품정보 조회") // @Operation(summary = "마약류 상품 정보 조회", description = "마약류 상품정보 조회")
@PostMapping("/getProductInfoKd") // @PostMapping("/getProductInfoKd")
public ApiBaseResponse<NimsApiResult.Response<NimsApiDto.ProductInfoKd>> getProductInfoKd( // public ApiBaseResponse<NimsApiResult.Response<NimsApiDto.ProductInfoKd>> getProductInfoKd(
@RequestBody NimsApiRequest.ProductInfoRequest dto // @RequestBody NimsApiRequest.ProductInfoRequest dto
) { // ) {
return ApiBaseResponse.of(infNimsService.getProductInfoKd(dto)); // return ApiBaseResponse.of(infNimsService.getProductInfoKd(dto));
} // }
//
@Operation(summary = "제조 일련 번호 정보 조회", description = "제조 일련 번호 정보 조회") // @Operation(summary = "제조 일련 번호 정보 조회", description = "제조 일련 번호 정보 조회")
@PostMapping("/getMnfSeqInfo") // @PostMapping("/getMnfSeqInfo")
public ApiBaseResponse<NimsApiResult.Response<NimsApiDto.MnfSeqInfo>> getMnfSeqInfo( // public ApiBaseResponse<NimsApiResult.Response<NimsApiDto.MnfSeqInfo>> getMnfSeqInfo(
@RequestBody NimsApiRequest.MnfSeqInfoRequest dto // @RequestBody NimsApiRequest.MnfSeqInfoRequest dto
) { // ) {
return ApiBaseResponse.of(infNimsService.getMnfSeqInfo(dto)); // return ApiBaseResponse.of(infNimsService.getMnfSeqInfo(dto));
} // }
//
@Operation(summary = "관할 허가 관청 정보 조회", description = "관할 허가 관청 정보 조회") // @Operation(summary = "관할 허가 관청 정보 조회", description = "관할 허가 관청 정보 조회")
@PostMapping("/getJurisdictionGovInfo") // @PostMapping("/getJurisdictionGovInfo")
public ApiBaseResponse<NimsApiResult.Response<NimsApiDto.JurisdictionGovInfo>> getJurisdictionGovInfo( // public ApiBaseResponse<NimsApiResult.Response<NimsApiDto.JurisdictionGovInfo>> getJurisdictionGovInfo(
@RequestBody NimsApiRequest.JurisdictionGovInfoRequest dto // @RequestBody NimsApiRequest.JurisdictionGovInfoRequest dto
) { // ) {
return ApiBaseResponse.of(infNimsService.getJurisdictionGovInfo(dto)); // return ApiBaseResponse.of(infNimsService.getJurisdictionGovInfo(dto));
} // }
//
@Operation(summary = "저장소 정보 조회", description = "저장소 정보 조회") // @Operation(summary = "저장소 정보 조회", description = "저장소 정보 조회")
@PostMapping("/getStorageInfo") // @PostMapping("/getStorageInfo")
public ApiBaseResponse<NimsApiResult.Response<NimsApiDto.StorageInfo>> getStorageInfo( // public ApiBaseResponse<NimsApiResult.Response<NimsApiDto.StorageInfo>> getStorageInfo(
@RequestBody NimsApiRequest.StorageInfoRequest dto // @RequestBody NimsApiRequest.StorageInfoRequest dto
) { // ) {
return ApiBaseResponse.of(infNimsService.getStorageInfo(dto)); // return ApiBaseResponse.of(infNimsService.getStorageInfo(dto));
} // }
@Operation(summary = "폐기 보고 정보 조회", description = "폐기 보고 정보 조회") @Operation(summary = "폐기 보고 정보 조회", description = "폐기 보고 정보 조회")
@PostMapping("/getDsuseRptInfo") @PostMapping("/getDsuseRptInfo")

@ -0,0 +1,458 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cokr.xit.adds.biz.nims.dao.BizNimsMapper">
<!-- **************************************************************************** -->
<!-- NIMS API start -->
<!-- **************************************************************************** -->
<insert id="mergeBsshInfoSt" parameterType="cokr.xit.adds.inf.nims.model.NimsApiDto$BsshInfoSt">
/** 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}
</insert>
<insert id="mergeProductInfoKd" parameterType="cokr.xit.adds.inf.nims.model.NimsApiDto$ProductInfoKd">
/** 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}
</insert>
<insert id="mergeStorgeInfo" parameterType="cokr.xit.adds.inf.nims.model.NimsApiDto$StorageInfo">
/** 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}
</insert>
<!-- **************************************************************************** -->
<!-- NIMS API end -->
<!-- **************************************************************************** -->
<!-- **************************************************************************** -->
<!-- ADDS BIZ start -->
<!-- **************************************************************************** -->
<select id="selectDsuseRptInfoByUsrRptIdNo" parameterType="map" resultType="cokr.xit.adds.inf.nims.model.NimsApiDto$DsuseRptInfo">
/** nims-mysql-mapper|selectDsuseRptInfoByUsrRptIdNo-폐기보고정보 데이타 조회|julim */
SELECT usr_rpt_id_no, /* 사용자보고식별번호 */
ref_usr_rpt_id_no, /* 참조사용자식별번호 */
bssh_cd, /* 마약류취급자식별번호 */
bssh_nm, /* 마약류취급자명 */
induty_nm, /* 업종명 */
rpt_ty_cd, /* 보고유형코드 */
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
FROM tb_dsuse_rpt_info
WHERE usr_rpt_id_no = #{usrRptIdNo}
<if test="useYn != null">
AND use_yn = #{useYn}
</if>
<if test="userId != null">
AND userId = #{userId}
</if>
</select>
<insert id="insertDsuseRptInfo" parameterType="cokr.xit.adds.inf.nims.model.NimsApiDto$DsuseRptInfo">
/** 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}
)
</insert>
<insert id="insertDsuseRptInfoDtl" parameterType="cokr.xit.adds.inf.nims.model.NimsApiDto$DsuseRptInfoDtl">
/** 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}
)
</insert>
<update id="updateCancelDsuseRptInfo" parameterType="cokr.xit.adds.inf.nims.model.NimsApiDto$DsuseRptInfo">
/** 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'
</update>
<update id="updateCancelDsuseMgt" parameterType="cokr.xit.adds.inf.nims.model.NimsApiDto$DsuseRptInfo">
/** 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'
</update>
<update id="updateCancelDsuseRptInfoDtl" parameterType="cokr.xit.adds.inf.nims.model.NimsApiDto$DsuseRptInfo">
/** 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'
</update>
<select id="recusiveRefUsrRptIdNo" parameterType="string" resultType="map">
/** nims-mysql-mapper|recusiveRefUsrRptIdNo-참조번호 recurive 조회|julim */
SELECT usr_rpt_id_no as usrRptIdNo
, ref_usr_rpt_id_no as refUsrRptIdNo
, rpt_ty_cd as rptTyCd
FROM tb_dsuse_rpt_info
WHERE usr_rpt_id_no = #{refUsrRptIdNo}
</select>
<insert id="insertDsuseMgt" parameterType="cokr.xit.adds.biz.nims.model.BizNimsRequest$DsuseMgt">
/** nims-mysql-mapper|insertDsuseMgt-폐기관리 생성|julim */
<selectKey keyProperty="dscdmngId" resultType="string" order="BEFORE">
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'), '%');
</selectKey>
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}
)
</insert>
<select id="selectDsuseMgt" parameterType="java.util.List" resultType="cokr.xit.adds.biz.nims.model.BizNimsResponse$DsuseMgtResponse">
/** nims-mysql-mapper|selectDsuseMgt-폐기관리 조회|julim */
SELECT tdm.dscdmng_id /** 폐기관리ID */
, tdm.user_id /** 사용자ID */
, tdm.usr_rpt_id_no /** 사용자보고식별번호 */
, tdm.org_usr_rpt_id_no /** 원사용자보고식별번호 */
, tdri.bssh_cd /** 마약류취급자식별번호 */
, tdri.bssh_nm /** 마약류취급자명 */
, tdri.induty_nm /** 업종명 */
, tdri.rpt_ty_cd /** 보고유형코드 */
, tdri.rnd_dtl_rpt_cnt /** 수불상세보고수 */
, tdri.hdr_de /** 취급일자 */
, tdri.rpt_de /** 보고일자 */
, tdri.dsuse_se_cd /** 폐기구분코드 */
, tdri.dsuse_prv_cd /** 폐기사유코드 */
, tdri.dsuse_mth_cd /** 폐기방법코드 */
, tdri.dsuse_loc /** 폐기장소 */
, tdri.dsuse_de /** 폐기일자 */
, tdri.status /** 상태 */
, tdri.rpt_prg_stts_cd /** 보고진행상태코드 */
, tbi.rprsntv_nm /** 대표자명 */
, tbi.prmisn_no /** 허가번호 */
FROM tb_dsuse_mgt tdm
JOIN tb_dsuse_rpt_info tdri
ON (tdm.org_usr_rpt_id_no = tdri.org_usr_rpt_id_no
AND tdm.usr_rpt_id_no = tdri.usr_rpt_id_no)
LEFT OUTER JOIN tb_bssh_info tbi
ON tdri.bssh_cd = tbi.bssh_cd
WHERE tdm.dscdmng_id IN
<foreach collection="list" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</select>
<!-- **************************************************************************** -->
<!-- ADDS BIZ end -->
<!-- **************************************************************************** -->
<select id="selectTgtAarHeader" parameterType="cokr.xit.adds.biz.nims.model.BizNimsRequest$DsuseMgt" resultType="cokr.xit.adds.biz.nims.model.BizNimsAarDto$AarHeader">
/** nims-mysql-mapper|selectTgtAarHeader-폐기 보고 대상 헤더 조회|julim */
SELECT tdm.dscdmng_id /* 폐기관리ID */
, '' AS uid /* 보고자식별ID */
, '' AS rndRmk /* 수불비고 */
, #{bsshCd} AS bsshCd /* 마약류취급자식별번호 */
-- , '' AS rptSeCd /* 보고구분코드 : AAR-폐기 */
, CONCAT(tdm.dscdmng_id, '_00001') AS usrRptIdNo /* 사용자보고식별번호 */
, '' AS refUsrRptIdNo /* 참조사용자식별번호 */
, '0' AS rptTyCd /* 보고유형코드 : 0-신규, 1-취소, 2-변형 */
, '' AS rmk /* 비고 : 취소 및 변경시 사유 필수 기재 */
, '' AS rptrNm /* 보고자명 : NIMS 등록 */
, tbi.bssh_nm AS rptrEntrpsNm /* 보고업체명 : NIMS 등록 */
, tbi.chrg_nm AS chrgNm /* 담당자명 : 없는 경우 보고자명 */
, '' AS chrgTelNo /* 담당자전화번호 */
, '' AS chrgMpNo /* 담당자휴대폰번호 - 암호화 */
, '' AS rndDtlRptCnt /* 수불상세보고수 */
, '1' AS dsuseSeCd /* 폐기구분코드 */
, '' AS dsusePrvCd /* 폐기사유코드 */
, '3' AS dsuseMthCd /* 폐기방법코드 */
, '' AS dsuseLoc /* 폐기장소 */
, '' AS dsuseDe /* 폐기일자 */
, '' AS dsuseInsttCd /* 폐기관할기관코드 */
, '0' AS atchFileCo /* 첨부파일수 */
, '' AS registerId /* 등록자ID - NIMS 등록 */
, '' AS fileCreatDt /* 파일생성일시 */
, 'Y' AS useYn
, 'nims-api' AS rgtr
FROM tb_dsuse_mgt tdm
JOIN tb_bssh_info tbi
ON tdm.bssh_cd = tbi.bssh_cd
WHERE tdm.dscdmng_id = #{dscdmngId}
AND tdm.use_yn = 'Y'
</select>
<select id="selectTgtAarDetails" parameterType="cokr.xit.adds.biz.nims.model.BizNimsRequest$DsuseMgt" resultType="cokr.xit.adds.biz.nims.model.BizNimsAarDto$AarDetail">
/** nims-mysql-mapper|selectTgtAarDetails-폐기 보고 대상 상세 조회|julim */
SELECT tdm.dscdmng_id /* 폐기관리ID */
, '' AS uid /* 보고자식별ID */
, tdmd.dscdmng_sn /* 폐기관리순번 */
, '' AS usrRptLnIdNo /* 사용자보고라인식별번호 */
, tsi.storge_no AS storgeNo /* 저장소번호 */
, '1102' AS mvmnTyCd /* 이동유형코드 */
, tpi.prduct_cd /* 제품코드 */
, '' AS mnfNo /* 제조번호 */
, '' AS mnfSeq /* 제품일련번호 */
, '' AS minDistbQy /* 제품유통단위수량 */
, '' AS prdMinDistbUnit /* 제품최소유통단위 */
, '' AS pceQy /* 낱개단위수량 */
, '' AS prdPceUnit /* 제품낱개단위 */
, tpi.prduct_nm /* 제품명 */
, '' AS prdSgtin /* 제품바코드(RFID) */
, tpi.prd_min_distb_qy /* 제품최소유통단위수량 */
, tpi.prd_tot_pce_qy /* 제품총낱개단위수량 */
, '' AS prdValidDe /* 제품유효기한일자 */
, '' AS fileCreatDt /* 파일생성일시 */
, 'Y' AS useYn
, 'nims-api' AS rgtr
FROM tb_dsuse_mgt tdm
JOIN tb_dsuse_mgt_dtl tdmd
ON tdm.dscdmng_id = tdmd.dscdmng_id
JOIN tb_prduct_info tpi
ON tdmd.prduct_cd = tpi.prduct_cd
LEFT OUTER JOIN tb_storge_info tsi
ON tdm.bssh_cd = tsi.bssh_cd
WHERE tdm.dscdmng_id = #{dscdmngId}
AND tdm.use_yn = 'Y'
AND tdmd.use_yn = 'Y'
</select>
</mapper>

@ -57,96 +57,6 @@
mdfcn_dt = DATE_FORMAT(now(), '%Y%m%d%H%i%s'), mdfcn_dt = DATE_FORMAT(now(), '%Y%m%d%H%i%s'),
mdfr = #{rgtr} mdfr = #{rgtr}
</insert> </insert>
<insert id="mergeProductInfoKd" parameterType="cokr.xit.adds.inf.nims.model.NimsApiDto$ProductInfoKd">
/** 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}
</insert>
<insert id="mergeStorgeInfo" parameterType="cokr.xit.adds.inf.nims.model.NimsApiDto$StorageInfo">
/** 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}
</insert>
<!-- **************************************************************************** --> <!-- **************************************************************************** -->
<!-- NIMS API end --> <!-- NIMS API end -->
<!-- **************************************************************************** --> <!-- **************************************************************************** -->
@ -374,85 +284,4 @@
<!-- **************************************************************************** --> <!-- **************************************************************************** -->
<!-- ADDS BIZ end --> <!-- ADDS BIZ end -->
<!-- **************************************************************************** --> <!-- **************************************************************************** -->
<select id="selectTgtAarHeader" parameterType="cokr.xit.adds.biz.nims.model.BizNimsRequest$DsuseMgt" resultType="cokr.xit.adds.biz.nims.model.BizNimsAarDto$AarHeader">
/** nims-mysql-mapper|selectTgtAarHeader-폐기 보고 대상 헤더 조회|julim */
SELECT tdm.dscdmng_id /* 폐기관리ID */
, '' AS uid /* 보고자식별ID */
, '' AS rndRmk /* 수불비고 */
, #{bsshCd} AS bsshCd /* 마약류취급자식별번호 */
-- , '' AS rptSeCd /* 보고구분코드 : AAR-폐기 */
, CONCAT(tdm.dscdmng_id, '_00001') AS usrRptIdNo /* 사용자보고식별번호 */
, '' AS refUsrRptIdNo /* 참조사용자식별번호 */
, '0' AS rptTyCd /* 보고유형코드 : 0-신규, 1-취소, 2-변형 */
, '' AS rmk /* 비고 : 취소 및 변경시 사유 필수 기재 */
, '' AS rptrNm /* 보고자명 : NIMS 등록 */
, tbi.bssh_nm AS rptrEntrpsNm /* 보고업체명 : NIMS 등록 */
, tbi.chrg_nm AS chrgNm /* 담당자명 : 없는 경우 보고자명 */
, '' AS chrgTelNo /* 담당자전화번호 */
, '' AS chrgMpNo /* 담당자휴대폰번호 - 암호화 */
, '' AS rndDtlRptCnt /* 수불상세보고수 */
, '1' AS dsuseSeCd /* 폐기구분코드 */
, '' AS dsusePrvCd /* 폐기사유코드 */
, '3' AS dsuseMthCd /* 폐기방법코드 */
, '' AS dsuseLoc /* 폐기장소 */
, '' AS dsuseDe /* 폐기일자 */
, '' AS dsuseInsttCd /* 폐기관할기관코드 */
, '0' AS atchFileCo /* 첨부파일수 */
, '' AS registerId /* 등록자ID - NIMS 등록 */
, '' AS fileCreatDt /* 파일생성일시 */
, 'Y' AS useYn
, 'nims-api' AS rgtr
FROM tb_dsuse_mgt tdm
JOIN tb_bssh_info tbi
ON tdm.bssh_cd = tbi.bssh_cd
WHERE tdm.dscdmng_id = #{dscdmngId}
AND tdm.use_yn = 'Y'
</select>
<select id="selectTgtAarDetails" parameterType="cokr.xit.adds.biz.nims.model.BizNimsRequest$DsuseMgt" resultType="cokr.xit.adds.biz.nims.model.BizNimsAarDto$AarDetail">
/** nims-mysql-mapper|selectTgtAarDetails-폐기 보고 대상 상세 조회|julim */
SELECT tdm.dscdmng_id /* 폐기관리ID */
, '' AS uid /* 보고자식별ID */
, tdmd.dscdmng_sn /* 폐기관리순번 */
, '' AS usrRptLnIdNo /* 사용자보고라인식별번호 */
, tsi.storge_no AS storgeNo /* 저장소번호 */
, '1102' AS mvmnTyCd /* 이동유형코드 */
, tpi.prduct_cd /* 제품코드 */
, '' AS mnfNo /* 제조번호 */
, '' AS mnfSeq /* 제품일련번호 */
, '' AS minDistbQy /* 제품유통단위수량 */
, '' AS prdMinDistbUnit /* 제품최소유통단위 */
, '' AS pceQy /* 낱개단위수량 */
, '' AS prdPceUnit /* 제품낱개단위 */
, tpi.prduct_nm /* 제품명 */
, '' AS prdSgtin /* 제품바코드(RFID) */
, tpi.prd_min_distb_qy /* 제품최소유통단위수량 */
, tpi.prd_tot_pce_qy /* 제품총낱개단위수량 */
, '' AS prdValidDe /* 제품유효기한일자 */
, '' AS fileCreatDt /* 파일생성일시 */
, 'Y' AS useYn
, 'nims-api' AS rgtr
FROM tb_dsuse_mgt tdm
JOIN tb_dsuse_mgt_dtl tdmd
ON tdm.dscdmng_id = tdmd.dscdmng_id
JOIN tb_prduct_info tpi
ON tdmd.prduct_cd = tpi.prduct_cd
LEFT OUTER JOIN tb_storge_info tsi
ON tdm.bssh_cd = tsi.bssh_cd
WHERE tdm.dscdmng_id = #{dscdmngId}
AND tdm.use_yn = 'Y'
AND tdmd.use_yn = 'Y'
</select>
</mapper> </mapper>

Loading…
Cancel
Save