fix: DTO fix

dev
Jonguk. Lim 6 months ago
parent fdb8ec3bcf
commit 9a9daadc23

@ -256,7 +256,7 @@ public class BizNimsRequest {
@Schema(title = "폐기보고처리상태", example = " ")
private String stts;
@Schema(requiredMode = REQUIRED)
@Schema(requiredMode = REQUIRED, description = "폐기 관리 상세 목록", example = " ")
@Builder.Default
@Valid
List<DsuseMgtDtl> dsuseMgtDtls = new ArrayList<>();
@ -273,68 +273,84 @@ public class BizNimsRequest {
@EqualsAndHashCode(callSuper = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
public static class DsuseMgtDtl extends AuditDto {
// 폐기관리_id
/**
* ID
*/
@Schema(title = "폐기관리ID-업무의필요에의해추가", example = " ")
private String dscdmngId;
// 폐기관리_순번
/**
*
*/
@Schema(title = "폐기관리순번-업무의필요에의해추가", example = " ")
private String dscdmngSn;
/**
* _ - 13
*/
@Schema(title = "제품코드", example = " ")
@Pattern(regexp = "[0-9a-zA-Z]{13}", message = "제품코드는 13자리 입니다")
private String prductCd;
/**
*
*/
@Schema(title = "제품명", example = " ")
@NotEmpty(message = "제품명은 필수 입니다")
private String prductNm;
/**
* : 1 ~
*/
@Schema(title = "최소유통단위수량", example = " ")
@Positive(message="최소유통단위 수량을 입력해 주세요(ex. 1)")
private Integer minDistbQy;
/**
* : 0 ~
*/
@Schema(title = "낱개단위수량", example = " ")
@PositiveOrZero(message = "낱개단위 수량은 필수 입니다(ex. 0)")
private Integer pceQy;
/**
* - 20
*/
@Schema(title = "제품번호", example = " ")
@Pattern(regexp = "[0-9a-zA-Z]{1,20}", message = "제조번호는 필수 입니다")
private String mnfNo;
/**
* - yyyyMMdd
*/
@Schema(title = "제품유효기간", example = " ")
@Pattern(regexp = Constants.DATE_REGX, message = "제품 유효 기간을 정확히 입력해 주세요(yyyyMMdd)")
private String prdValidDe;
/**
* - 20
*/
@Schema(title = "제조일련번호", example = " ")
@Pattern(regexp = "[0-9a-zA-Z]{1,20}", message = "제조 일련번호는 필수 입니다")
private String mnfSeq;
/**
*
*/
@Schema(title = "폐기수량", example = " ")
@Positive(message = "폐기 수량은 0보다 커야 합니다")
private Integer dsuseQy;
/**
*
*/
@Schema(title = "사용자보고식별번호", example = " ")
private String usrRptIdNo;
/**
*
*/
@Schema(title = "사용자보고라인식별번호", example = " ")
private String usrRptLnIdNo;
/**
@ -343,6 +359,7 @@ public class BizNimsRequest {
* -> "Y"
* </pre>
*/
@Schema(title = "데이타유효성체크-업무의필요에의해추가", example = " ")
private String validYn;
}

@ -8,21 +8,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* <pre>
* description : properties
* packageName : cokr.xit.core.spring.config
* fileName : JasyptConfig
* author : julim
* date : 2024-05-08
* ======================================================================
*
* ----------------------------------------------------------------------
* 2024-05-08 julim
*
* </pre>
*/
//FIXME :: properties 암호화시 사용
@Configuration
public class JasyptConfig {
@Value("${app.jasypt.secretKey:none}")

@ -1,311 +0,0 @@
// 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 +0,0 @@
// 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;
// }

@ -393,16 +393,26 @@ public class NimsApiDto {
private String status;
/**
* FIXME:
* (0-,1-,2-)
*
*/
@JsonAlias("RPT_PRG_STTS_CD")
private String rptPrgSttsCd;
private String orgUsrRptIdNo;
/**
*
* <pre>
* return
* : 'Y'
* 1 'Y'
* </pre>
*/
private String orgUsrRptIdNo;
private String useYn;
/**
* <pre>
* return
* ID
* ID - ID
*/
private String dscdmngId;
/**
*

@ -154,7 +154,7 @@ public class ExchangeDtoTest {
String dtd = """
<!DOCTYPE EXCHANGE SYSTEM "exchange.dtd">
""";
// FIXME: 파일명 생성
try (FileWriter w = new FileWriter("exchange.xml")) {
XMLStreamWriter sw = factory.createXMLStreamWriter(w);
sw.writeStartDocument("EUC-KR", "1.0");

@ -192,7 +192,7 @@ public class ExchangeMisDtoTest {
String dtd = """
<!DOCTYPE EXCHANGE SYSTEM "exchange_mis.dtd">
""";
// FIXME: 파일명 생성
try (FileWriter w = new FileWriter("open_exchange_exchange_mis_1.xml")) {
XMLStreamWriter sw = factory.createXMLStreamWriter(w);
sw.writeStartDocument("EUC-KR", "1.0");

@ -106,7 +106,7 @@ public class ExchangepackDtoTest {
String dtd = """
<!DOCTYPE EXCHANGE SYSTEM "exchange.dtd">
""";
// FIXME: 파일명 생성
try (FileOutputStream fos = new FileOutputStream("exchangepack.xml");) {
XML xml = new XML();
xml.write(fos, dto, true);

@ -1,138 +0,0 @@
// package cokr.xit.adds.inf.nims.model;
//
// import static org.junit.jupiter.api.Assertions.*;
//
// import java.io.FileWriter;
// import java.io.IOException;
// import java.nio.file.Files;
// import java.nio.file.Path;
// import java.nio.file.Paths;
// import java.util.List;
//
// import org.apache.commons.lang3.StringUtils;
// import org.junit.jupiter.api.DisplayName;
// import org.junit.jupiter.api.Test;
// import org.junit.jupiter.api.extension.ExtendWith;
// import org.springframework.test.context.junit.jupiter.SpringExtension;
//
// import com.fasterxml.jackson.databind.SerializationFeature;
// import com.fasterxml.jackson.dataformat.xml.JacksonXmlModule;
// import com.fasterxml.jackson.dataformat.xml.XmlMapper;
// import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator;
//
// import lombok.extern.slf4j.Slf4j;
//
// /**
// * <pre>
// * description :
// *
// * packageName : cokr.xit.adds.inf.nims.model
// * fileName : AarDtoTest
// * author : limju
// * date : 2024-03-26
// * ======================================================================
// * 변경일 변경자 변경 내용
// * ----------------------------------------------------------------------
// * 2024-03-26 limju 최초 생성
// *
// * </pre>
// */
// @Slf4j
// @ExtendWith(SpringExtension.class)
// public class AarDtoTest {
//
// @DisplayName("마약류폐기연계 xml read 테스트")
// @Test
// public void aarXmlReadTest() throws IOException {
// String fileName = "/src/test/resources/test_data/123456789AAR20240326120248_0001.XML";
//
// JacksonXmlModule jacksonXmlModule = new JacksonXmlModule();
// jacksonXmlModule.setDefaultUseWrapper(false);
// XmlMapper xmlMapper = new XmlMapper(jacksonXmlModule);
// xmlMapper.enable(SerializationFeature.INDENT_OUTPUT);
//
// Path cur = Paths.get(""); //현재 디렉토리 정보 '상대 경로' 형태로 담긴 인스턴스 생성
// String cdir;
//
// if(cur.isAbsolute()) //절대 경로 일 경우.
// cdir=cur.toString();
// else
// cdir = cur.toAbsolutePath().toString();
//
// Path path = Paths.get(cdir, fileName);
// Aar dto
// = xmlMapper.readValue(Files.readString(path), Aar.class);
//
// assertNotNull(dto);
//
// xmlMapper.writeValue(System.out, dto);
// }
//
// @DisplayName("마약류폐기연계 xml write 테스트")
// @Test
// public void aarXmlWriteTest() throws IOException {
// Aar dto = getAar();
//
// XmlMapper mapper = new XmlMapper();
// mapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);
// mapper.enable(SerializationFeature.INDENT_OUTPUT);
//
// String xmlString = mapper.writeValueAsString(dto);
// xmlString = xmlString.replaceFirst("nims\">", "nims\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">");
// xmlString = xmlString.replaceFirst(" xmlns=\"\"", StringUtils.EMPTY);
// System.out.println(xmlString);
//
// // FIXME: 파일명 생성
// // filename: BSSH_CD + RPT_SE_CD + YYYYMMDDHHMMSS + _ + 0001.XML
// try (FileWriter w = new FileWriter("aar_001.xml")) {
// w.write(xmlString);
// w.flush();
//
// } catch (IOException e) {
// e.printStackTrace();
//
// }
// }
//
// private static Aar getAar() {
// 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();
//
// Aar.Lines lines = Aar.Lines.builder()
// .line(List.of(line, line2))
// .build();
//
// Aar.AtchFiles atchFiles = Aar.AtchFiles.builder()
// .atchFileNm(List.of("file-1.txt","file-2.txt"))
// .build();
//
// Aar.Header header = Aar.Header.builder()
// .hdrDe("20240326")
// .bsshCd("123456789")
// .lines(lines)
// .atchFileCo("2")
// .atchFiles(atchFiles)
// .build();
//
// Aar.ReportSet reportSet = Aar.ReportSet.builder()
// .header(List.of(header))
// .build();
//
// Aar dto = Aar.builder()
// .reportSet(reportSet)
// .build();
// return dto;
// }
// }
Loading…
Cancel
Save