미사용 API 정리

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

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

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

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

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

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

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

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

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

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

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

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

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

Loading…
Cancel
Save