From a5a93d6ec2781c80df8f48562e0e6aeed1757be5 Mon Sep 17 00:00:00 2001 From: "Jonguk. Lim" Date: Thu, 24 Nov 2022 02:58:21 +0900 Subject: [PATCH] feat: xml parser --- .../biz/cmm/model/AppendFileInfo.java | 99 +++ .../biz/cmm/model/CustomEventHandler.java | 33 + .../biz/cmm/model/NatlNewspaper.java | 107 +++- .../biz/cmm/model/NatlNewspaperXmlDto.java | 12 + .../biz/cmm/model/NatlNewspaperXmlDto2.java | 577 ++++++++++++++++++ 5 files changed, 822 insertions(+), 6 deletions(-) create mode 100644 src/main/java/kr/xit/framework/biz/cmm/model/AppendFileInfo.java create mode 100644 src/main/java/kr/xit/framework/biz/cmm/model/CustomEventHandler.java create mode 100644 src/main/java/kr/xit/framework/biz/cmm/model/NatlNewspaperXmlDto2.java diff --git a/src/main/java/kr/xit/framework/biz/cmm/model/AppendFileInfo.java b/src/main/java/kr/xit/framework/biz/cmm/model/AppendFileInfo.java new file mode 100644 index 00000000..7f8a2c03 --- /dev/null +++ b/src/main/java/kr/xit/framework/biz/cmm/model/AppendFileInfo.java @@ -0,0 +1,99 @@ +package kr.xit.framework.biz.cmm.model; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +import egovframework.rte.fdl.idgnr.impl.Base64; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@Getter +//@Setter +@ToString +@XmlAccessorType(XmlAccessType.FIELD) +@XmlRootElement(name="apndfilinfo") +public class AppendFileInfo { + /** + * 민원 신청 첨부파일명1 + * varchar2(2000) + */ + @XmlElement(name = "peti_file_path1_v") + @Setter + private String petiFilePath1V; + + + + @XmlElement(name = "apndfilcont1") + private String apndfilcont1; + + + /** + * 민원 신청 첨부파일명2 + * varchar2(2000) + */ + @XmlElement(name = "peti_file_path2_v") + @Setter + private String petiFilePath2V; + + @XmlElement(name = "apndfilcont2") + private String apndfilcont2; + + /** + * 민원 신청 첨부파일명3 + * varchar2(2000) + */ + @XmlElement(name = "peti_file_path3_v") + @Setter + private String petiFilePath3V; + + @XmlElement(name = "apndfilcont3") + private String apndfilcont3; + + /** + * 민원 신청 첨부파일명4 + * varchar2(2000) + */ + @XmlElement(name = "peti_file_path4_v") + @Setter + private String petiFilePath4V; + + @XmlElement(name = "apndfilcont4") + private String apndfilcont4; + + /** + * 민원 신청 첨부파일명5 + * varchar2(2000) + */ + @XmlElement(name = "peti_file_path5_v") + @Setter + private String petiFilePath5V; + + @XmlElement(name = "apndfilcont5") + private String apndfilcont5; + + @XmlElement(name = "apndfilcount") + private String apndfilcount; + + public void setApndfilcont1(String apndfilcont1) { + this.apndfilcont1 = Base64.encode(apndfilcont1.getBytes()); + } + + public void setApndfilcont2(String apndfilcont2) { + this.apndfilcont2 = Base64.encode(apndfilcont2.getBytes()); + } + + public void setApndfilcont3(String apndfilcont3) { + this.apndfilcont3 = Base64.encode(apndfilcont3.getBytes()); + } + + public void setApndfilcont4(String apndfilcont4) { + this.apndfilcont4 = Base64.encode(apndfilcont4.getBytes()); + } + + public void setApndfilcont5(String apndfilcont5) { + this.apndfilcont5 = Base64.encode(apndfilcont5.getBytes()); + } +} diff --git a/src/main/java/kr/xit/framework/biz/cmm/model/CustomEventHandler.java b/src/main/java/kr/xit/framework/biz/cmm/model/CustomEventHandler.java new file mode 100644 index 00000000..1c20dec8 --- /dev/null +++ b/src/main/java/kr/xit/framework/biz/cmm/model/CustomEventHandler.java @@ -0,0 +1,33 @@ +package kr.xit.framework.biz.cmm.model; + +import javax.xml.bind.ValidationEvent; +import javax.xml.bind.ValidationEventHandler; +import javax.xml.bind.ValidationEventLocator; + +import lombok.extern.slf4j.Slf4j; + +/** + * JAXB API 에러 핸들러 + * ValidationEvent.WARNING(정수 값 0), + * ValidationEvent.ERROR(정수 값 1), + * ValidationEvent.FATAL_ERROR(정수 값 2) + */ +@Slf4j +public class CustomEventHandler implements ValidationEventHandler { + public boolean handleEvent(ValidationEvent event) { + if (event.getSeverity() == ValidationEvent.FATAL_ERROR + || event.getSeverity() == ValidationEvent.ERROR) { + ValidationEventLocator locator = event.getLocator(); + String message = event.getMessage(); + + log.error("Severity: " + event.getSeverity()); + log.error("Line Number: " + locator.getLineNumber()); + log.error("Column Number: " + locator.getColumnNumber()); + log.error("Event Message: " + message); + //log.error("{}", event); + log.error("{}", locator); + } + // 이벤트 에러 발생시 중단 : true - 계속 진행 + return false; + } +} diff --git a/src/main/java/kr/xit/framework/biz/cmm/model/NatlNewspaper.java b/src/main/java/kr/xit/framework/biz/cmm/model/NatlNewspaper.java index 476be573..64406fa4 100644 --- a/src/main/java/kr/xit/framework/biz/cmm/model/NatlNewspaper.java +++ b/src/main/java/kr/xit/framework/biz/cmm/model/NatlNewspaper.java @@ -1,11 +1,27 @@ package kr.xit.framework.biz.cmm.model; +import java.io.BufferedReader; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStreamReader; import java.io.StringReader; import java.nio.charset.StandardCharsets; - +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.Arrays; +import java.util.List; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; +import javax.xml.bind.Unmarshaller; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; +import org.json.JSONObject; +import org.json.XML; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; @@ -15,6 +31,11 @@ import org.w3c.dom.traversal.NodeFilter; import org.w3c.dom.traversal.NodeIterator; import org.xml.sax.InputSource; +import com.sun.xml.internal.ws.developer.JAXBContextFactory; + +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; + public class NatlNewspaper { private NatlNewspaperXmlDto natlNewspaperXmlDto; @@ -23,7 +44,7 @@ public class NatlNewspaper { public static void main(String[] args) { - // String fileFullPath = "file:///D:/project_data/fims/01. 연계/01. 국민신문고/rcv/202209160959023e60d9$EPOUGA$1140100_2022091609485096255243399.xml"; + // String fileFullPath = "file:///Users/minuk/project_data/fims/01. 연계/01. 국민신문고/rcv/202209160959023e60d9$EPOUGA$1140100_2022091609485096255243399.xml"; // try { // Document doc = XMLFilePath2Doc(fileFullPath); // getNodeList(doc, "dmndinfo"); @@ -36,18 +57,82 @@ public class NatlNewspaper { // e.printStackTrace(); // } - // String fpath = "D:/project_data/fims/01. 연계/01. 국민신문고/rcv/202209160959023e60d9$EPOUGA$1140100_2022091609485096255243399.xml"; - // + String fpath = "/Users/minuk/project_data/fims/01. 연계/01. 국민신문고/rcv/202209160959023e60d9$EPOUGA$1140100_2022091609485096255243399.xml"; + // String jsonStr = null; // try(BufferedReader reader = new BufferedReader(new InputStreamReader(Files.newInputStream(Paths.get(fpath)), // StandardCharsets.UTF_8) , 1024*1024*2)) { - // JSONObject json = XML.toJSONObject(reader); - // String jsonStr = json.toString(4); + // //JSONObject json = XML.toJSONObject(reader); + // jsonStr = XML.toString(reader); // System.out.println(jsonStr); // }catch(IOException fe){ // // } + // + // JAXBContext context = null; + // try { + // context = JAXBContext.newInstance(NatlNewspaperXmlDto.class); + // Unmarshaller unmarshaller = context.createUnmarshaller(); + // NatlNewspaperXmlDto unmarshal = (NatlNewspaperXmlDto)unmarshaller.unmarshal(new StringReader(jsonStr)); + // System.out.println(unmarshal); + // } catch (JAXBException e) { + // throw new RuntimeException(e); + // } + + try { + Person person = new Person("jaxb", "jaxb@hello.com"); + // JAXBContext 생성 & marshaller 생성 + JAXBContext context = JAXBContext.newInstance(Person.class); + Marshaller marshaller = context.createMarshaller(); + // 보기 좋게 출력해주는 옵션 + marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + // 표준 출력으로 결과를 보여준다. + marshaller.marshal(person, System.out); + + //JAXBContext context = JAXBContextFactory.createContext(new Class[]{Person.class}, someProperties); + + List list = Arrays.asList( + "/Users/minuk/project_data/fims/01. 연계/01. 국민신문고/rcv/202209160959023e60d9$EPOUGA$1140100_2022091609485096255243399.xml" + ,"/Users/minuk/project_data/fims/01. 연계/01. 국민신문고/rcv/202209160959269e166c$EPOUGA$1140100_2022091609490868474847710.xml" + ,"/Users/minuk/project_data/fims/01. 연계/01. 국민신문고/rcv/2022091609590430a45c$EPOUGA$1140100_2022091609483801480139449.xml" + ,"/Users/minuk/project_data/fims/01. 연계/01. 국민신문고/rcv/2022091609590685e4d0$EPOUGA$1140100_2022091609483205285052976.xml" + ,"/Users/minuk/project_data/fims/01. 연계/01. 국민신문고/rcv/2022091609591011a94b$EPOUGA$1140100_2022091609484378849086728.xml" + ,"/Users/minuk/project_data/fims/01. 연계/01. 국민신문고/rcv/20220916095908123eab$EPOUGA$1140100_2022091609484239715980892.xml" + ,"/Users/minuk/project_data/fims/01. 연계/01. 국민신문고/rcv/202209160959384350e0$EPOUGA$1140100_2022091609485968983152594.xml" + ,"/Users/minuk/project_data/fims/01. 연계/01. 국민신문고/rcv/20220916095854881357$EPOUGA$1140100_2022091609485673727045043.xml" + ,"/Users/minuk/project_data/fims/01. 연계/01. 국민신문고/rcv/2022091609585009058a$EPOUGA$1140100_2022091609484095150560203.xml" + ,"/Users/minuk/project_data/fims/01. 연계/01. 국민신문고/rcv/2022091609585264580e$EPOUGA$1140100_2022091609485381568241998.xml" + ); + + list.forEach((path) -> { + try{ + // JAXBContext 생성 & marshaller 생성 + FileInputStream fileInputStream = new FileInputStream(path); + JAXBContext jaxbContext = JAXBContext.newInstance(NatlNewspaperXmlDto.class); + Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); + unmarshaller.setEventHandler(new CustomEventHandler()); + + // When + NatlNewspaperXmlDto xmlListTag = (NatlNewspaperXmlDto)unmarshaller.unmarshal(fileInputStream); + System.out.println(xmlListTag.toString()); + // 표준 출력으로 결과를 보여준다. + //unmarshaller.unmarshal(xmlListTag); + + + //AppendFileInfo fileInfo = (AppendFileInfo)unmarshaller.unmarshal(fileInputStream); + //System.out.println(fileInfo.toString()); + + fileInputStream.close(); + }catch(Exception e){ + } + }); + + + + }catch(Exception e){ + + } // try { // Document doc = XMLFilePath2Doc(fileFullPath); // getTraversalNodeList(doc); @@ -173,5 +258,15 @@ public class NatlNewspaper { } } + @NoArgsConstructor + @AllArgsConstructor + @XmlRootElement + private static class Person { + @XmlElement + private String name; + @XmlElement + private String email; + // 생성자, getter, setter 생략 + } } diff --git a/src/main/java/kr/xit/framework/biz/cmm/model/NatlNewspaperXmlDto.java b/src/main/java/kr/xit/framework/biz/cmm/model/NatlNewspaperXmlDto.java index 5e716886..21977eb8 100644 --- a/src/main/java/kr/xit/framework/biz/cmm/model/NatlNewspaperXmlDto.java +++ b/src/main/java/kr/xit/framework/biz/cmm/model/NatlNewspaperXmlDto.java @@ -7,6 +7,7 @@ import javax.xml.bind.annotation.XmlRootElement; import lombok.Getter; import lombok.Setter; +import lombok.ToString; /** *
@@ -25,6 +26,7 @@ import lombok.Setter;
  */
 @Getter
 @Setter
+@ToString
 @XmlRootElement(name = "dmndinfo")
 @XmlAccessorType(XmlAccessType.FIELD)
 public class NatlNewspaperXmlDto {
@@ -229,6 +231,11 @@ public class NatlNewspaperXmlDto {
   */
 
 
+
+
+
+
+
     /**
      * 접수 일자
      * date
@@ -360,6 +367,11 @@ public class NatlNewspaperXmlDto {
     private String tgtorgcd;
 
 
+    @XmlElement(name = "peti_path_gubun_c")
+    private String petiPathGubunC;
+
+    @XmlElement(name = "apndfilinfo")
+    private AppendFileInfo appendFileInfo;
 
 
 
diff --git a/src/main/java/kr/xit/framework/biz/cmm/model/NatlNewspaperXmlDto2.java b/src/main/java/kr/xit/framework/biz/cmm/model/NatlNewspaperXmlDto2.java
new file mode 100644
index 00000000..dda47b0e
--- /dev/null
+++ b/src/main/java/kr/xit/framework/biz/cmm/model/NatlNewspaperXmlDto2.java
@@ -0,0 +1,577 @@
+package kr.xit.framework.biz.cmm.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+/**
+ * 
+ * 공공기관 interface
+ * XmlRootElement
+ *     JAXBContext에 등록
+ * XmlAccessorType
+ *     FIELD - 클래스의 모든 필드(static이 아니고 transient가 아닌)를 모두 XML에 바인딩
+ *     NONE - 어노테이션으로 지정하지 않는한 모든 필드는 XML에 바운딩되지 않는다.
+ *     PROPERTY - getter/setter를 가진 모든 필드들은 자동으로 XML에 바운드된다.
+ *     PUBLIC_MEMBER - 모든 public getter/setter들은 자동으로 XML에 바운드된다.
+ *
+ * 각 필드 comment중 이관 / 처리결과 / 반송에 따른 값이 차이가 있는경우
+ * 이관 / 처리결과 / 반송 순서로 각각 내용 표시
+ * 
+ */ +@Getter +@Setter +@ToString +@XmlRootElement(name = "dmndinfo") +@XmlAccessorType(XmlAccessType.FIELD) +public class NatlNewspaperXmlDto2 { + + /** + * 인터페이스 키: 필수 + * PK : number(30) - YYYYMMDDHH24MISSFF+random(9) + */ + @XmlElement(name = "interface_seq_n") + private String interfaceSeqN; + + /** + * 시스템 구분: 필수 + * char(88) + * EC010008 과태료시스템 + */ + @XmlElement(name = "sys_gubun_c") + private String sysGubunC; + + /** + * 송신 기관 코드: 필수 + * varchar2(7) + * 1140100 / 신청기관코드 / 신청기관코드 + * ex)경기도 - 641000 + */ + @XmlElement(name = "anc_code_v") + private String ancCodeV; + + /** + * 민원 구분: 필수 + * char(3) + * 140:민원이송(기관코드-신문고) / 180: 답변 / 140: 반송(기관코드-연계기관) + */ + @XmlElement(name = "peti_gubun_c") + private String petiGubunC; + + /** + * 민원 기관 코드: 필수 + * varchar2(7) + * 최초 신청기관코드 그대로 사용(절대변경불가) + */ + @XmlElement(name = "peti_anc_code_v") + private String petiAncCodeV; + + /** + * 민원 신청 번호: 필수 + * varchar2(16) + * 국민신문고에서 생성(국민신문고의 민원 번호), 최초 이송이첩시는 null값 임. + * (신문고에서 생성된 데이터가 있을 경우는 넣어줌) + */ + @XmlElement(name = "peti_no_c") + private String petiNoC; + + /** + * 민원 접수 번호: 필수 + * varchar2(16) + * 국민신문고에서 생성(국민신문고의 접수 번호), 최초 이송이첩시는 null값 임. + * (신문고에서 생성된 데이터가 있을 경우는 넣어줌)" + */ + @XmlElement(name = "civil_no_c") + private String civilNoC; + + /** + * 민원 신청인 명: 이관 / 반송시 필수 + * varchar2(128) + */ + @XmlElement(name = "peter_name_v") + private String peterNameV; + + /** + * 민원 신청인 우편번호: 이관 / 반송시 필수 + * varchar2(7) + */ + @XmlElement(name = "zip_code_c") + private String zipCodeC; + + /** + * 민원 신청인 주소: 이관 / 반송시 필수 + * varchar2(400) + */ + @XmlElement(name = "address_v") + private String addressV; + + /** + * 민원 신청인 이메일 + * varchar2(64) + */ + @XmlElement(name = "email_v") + private String emailV; + + /** + * 민원 신청인 핸드폰 번호 + * varchar2(20) + */ + @XmlElement(name = "cel_no_v") + private String celNoV; + + /** + * 민원 신청인 전화 번호 + * varchar2(20) + */ + @XmlElement(name = "tel_no_v") + private String telNoV; + + /** + * 민원 신청 제목: 이관 / 반송시 필수 + * varchar2(500) + */ + @XmlElement(name = "peti_title_v") + private String petiTitleV; + + /** + * 민원 신청 내용: 이관 / 반송시 필수 + * clob + */ + @XmlElement(name = "peti_reason_l") + private String petiReasonL; + + /** + * 민원 공개 여부: 이관 / 반송시 필수 + * char(1) + * Y = 공개, N = 비공개 (default N) + * Y로 수신 시에도 내부적용 시에는 비공개로 적용 요함(개인정보보호지침) + * 송신 시는 모두 N으로 송신 + */ + @XmlElement(name = "open_yn_c") + private String openYnC; + + /** + * 민원 신청일: 이관 / 반송시 필수 + * date : YYYYMMDDHH24MISS + */ + @XmlElement(name = "peti_reg_d") + private String petiRegD; + + /** + * 민원 신청 내용 첨부 여부: 이관시 필수 + * char(1) + * Y = 첨부, N = 미첨부(default) + */ + @XmlElement(name = "peti_reason_attach_yn_c") + private String petiReasonAttachYnC; + + /** + * 민원 신청 첨부파일 크기: 이관시 필수 + * number(10) + */ + @XmlElement(name = "peti_file_size_n") + private String petiFileSizeN; + + @XmlElement(name = "apndfilinfo") + private AppendFileInfo appendFileInfo; + //------------------------------------------------------------- + // /** + // * 민원 신청 첨부파일명1 + // * varchar2(2000) + // */ + // @XmlElement(name = "peti_file_path1_v") + // private String petiFilePath1V; + // + // /** + // * 민원 신청 첨부파일명2 + // * varchar2(2000) + // */ + // @XmlElement(name = "peti_file_path2_v") + // private String petiFilePath2V; + // + // /** + // * 민원 신청 첨부파일명3 + // * varchar2(2000) + // */ + // @XmlElement(name = "peti_file_path3_v") + // private String petiFilePath3V; + // + // /** + // * 민원 신청 첨부파일명4 + // * varchar2(2000) + // */ + // @XmlElement(name = "peti_file_path4_v") + // private String petiFilePath4V; + // + // /** + // * 민원 신청 첨부파일명5 + // * varchar2(2000) + // */ + // @XmlElement(name = "peti_file_path5_v") + // private String petiFilePath5V; + //----------------------------------------------------------------------------- +/* + @Getter + @Setter + @XmlRootElement(name="petiFilePaths") + private static class PetiFilePaths{ + private List petiFilePath; + + + @Getter + @Setter + @XmlRootElement(name="petiFilePath") + public static class PetiFilePath { + private String petiFilePath; + } + } + */ + + + + + + + + /** + * 접수 일자 + * date + */ + @XmlElement(name = "anc_reg_d") + private String ancRegD; + + /** + * 한마디 더 + * varchar2(4000) + */ + @XmlElement(name = "more_again_v") + private String moreAgainV; + + //------------------------------------------------------------------------------ + /** + * 만족도 항목1 + * char(8) + */ + @XmlElement(name = "satisfy_c") + private String satisfyC; + + /** + * 만족도 항목2 + * char(8) + */ + @XmlElement(name = "satisfy2_c") + private String satisfy2C; + + /** + * 만족도 항목3 + * char(8) + */ + @XmlElement(name = "satisfy3_c") + private String satisfy3C; + //------------------------------------------------------------------------------ + + /** + * 만족도 입력일 + * date + */ + @XmlElement(name = "satisfy_reg_d") + private String satisfyRegD; + + /** + * 등록 일자: 필수 + * date + * 반영시에 sysdate(YYYYMMDDHH24MISS)로 생성 + */ + @XmlElement(name = "reg_d") + private String regD; + + /** + * 송신 여부: 필수 + * char(1) + * 1:송신 / 2:수신 / 1:송신 + */ + @XmlElement(name = "send_yn_c") + private String sendYnC; + + /** + * 송신 일자 + * date : YYYYMMDDHH24MISS + */ + @XmlElement(name = "send_d") + private String sendD; + + /** + * 적용 일자: 필수 + * date + * interface DB->XML로 적용 시 sysdate(YYYYMMDDHH24MISS)로 생성 + */ + @XmlElement(name = "apply_d") + private String applyD; + + /** + * 완료 구분: 필수 + * char(1) + * 적용완료:Y OR N (default:N , 각 기관의 실 민원 DB에 반영 후 Y로 변경) + */ + @XmlElement(name = "apply_gubun_c") + private String applyGubunC; + + //------------------------------------------------------------------------------------ + /** + * 처리 구분1: 필수 + * varchar2(400) + * 0 / / 0 + */ + @XmlElement(name = "pcd_gubun_v") + private String pcdGubunV; + + /** + * 처리 구분2: 필수 + * varchar2(400) + */ + @XmlElement(name = "pcd_gubun2_v") + private String pcdGubun2V; + + /** + * 처리 구분3: 처리 결과시 필수 + * varchar2(400) + */ + @XmlElement(name = "pcd_gubun3_v") + private String pcdGubun3V; + //------------------------------------------------------------------------------------- + + /** + * xml 인터페이스 아이디: 필수 + * varchar2(10) + */ + @XmlElement(name = "ifid") + private String ifid; + + /** + * 소스 기관 코드: 필수 + * varchar2(7) + * 해당 연계 기관 코드 + */ + @XmlElement(name = "srcorgcd") + private String srcorgcd; + + /** + * 타겟 기관 코드: 필수 + * varchar2(7) + * 연계 기관에서 insert시 무조건 1140100 값을 넣어 준다 + */ + @XmlElement(name = "tgtorgcd") + private String tgtorgcd; + + + + + + + //---------------------------------------------------------------------------------------------------- + // 결과(응답) 처리 + //---------------------------------------------------------------------------------------------------- + /** + * 민원 요지: 결과 처리시 필수 + * varchar2(512) + * 민원요지를 입력하면 민원제목대신 민원요지를 표출 + */ + @XmlElement(name = "civil_gist_v") + private String civilGistV; + + /** + * 민원 처리 요약: 결과 처리시 필수 + * clob + * 처리를 요약하여 표시 + */ + @XmlElement(name = "civil_abstract_l") + private String civilAbstractL; + + /** + * 처리 부서 코드: 결과 처리시 필수 + * varchar2(7) + */ + @XmlElement(name = "pcd_dept_v") + private String pcdDeptV; + + /** + * 민원 처리 부서명: 결과 처리시 필수 + * varchar2(50) + */ + @XmlElement(name = "pcd_dept_nm_v") + private String pcdDeptNmV; + + /** + * 민원 처리 담당자 명: 결과 처리시 필수 + * varchar2(50) + */ + @XmlElement(name = "duty_id_v") + private String dutyIdV; + + /** + * 담당자 이메일: 결과 처리시 필수 + * varchar2(64) + */ + @XmlElement(name = "pcd_email_v") + private String pcdEmailV; + + /** + * 담당자 전화 번호: 결과 처리시 필수 + * varchar2(20) + */ + @XmlElement(name = "pcd_tel_v") + private String pcdTelV; + + /** + * 민원 처리 결과: 결과 처리시 필수 + * clob + */ + @XmlElement(name = "pcd_rst_cont_l") + private String pcdRstContL; + + /** + * 민원 처리 완료 일자: 결과 처리시 필수 + * varchar2(14) : YYYYMMDDHH24MISS + */ + @XmlElement(name = "do_reg_d") + private String doRegD; + + /** + * 민원 처리 결과 첨부 여부: 결과 처리시 필수 + * char(1) + * Y = 첨부, N = 미첨부(default) + */ + @XmlElement(name = "pcd_rst_cont_attach_yn_c") + private String pcdRstContAttachYnC; + + /** + * 민원 처리 첨부 파일 크기 + * number(10) + */ + @XmlElement(name = "pcd_file_size_n") + private String pcdFileSizeN; + + //------------------------------------------------------------------------ + /** + * 민원 처리 첨부 파일명1 + * varchar2(2000) + */ + @XmlElement(name = "pcd_file_path1_v") + private String pcdFilePath1V; + + /** + * 민원 처리 첨부 파일명2 + * varchar2(2000) + */ + @XmlElement(name = "pcd_file_path2_v") + private String pcdFilePath2V; + + /** + * 민원 처리 첨부 파일명3 + * varchar2(2000) + */ + @XmlElement(name = "pcd_file_path3_v") + private String pcdFilePath3V; + + /** + * 민원 처리 첨부 파일명4 + * varchar2(2000) + */ + @XmlElement(name = "pcd_file_path4_v") + private String pcdFilePath4V; + + /** + * 민원 처리 첨부 파일명5 + * varchar2(2000) + */ + @XmlElement(name = "pcd_file_path5_v") + private String pcdFilePath5V; + //---------------------------------------------------------------------- + + /** + * 민원 실 처리 기관 코드: 처리 결과시 필수 + * varchar2(7) + * ex)경기도 6410000 + */ + @XmlElement(name = "pcd_anc_code_v") + private String pcdAncCodeV; + + /** + * 민원 처리 기간 + * number(5) + */ + @XmlElement(name = "peti_proc_dur_n") + private String petiProcDurN; + + /** + * 처리 예정일 + * date + */ + @XmlElement(name = "peti_end_d") + private String petiEndD; + + + + @Getter + @Setter + @XmlAccessorType(XmlAccessType.FIELD) + private static class AppendFileInfo { + /** + * 민원 신청 첨부파일명1 + * varchar2(2000) + */ + @XmlElement(name = "peti_file_path1_v") + private String petiFilePath1V; + + @XmlElement(name = "apndfilcont1") + private String apndfilcont1; + + /** + * 민원 신청 첨부파일명2 + * varchar2(2000) + */ + @XmlElement(name = "peti_file_path2_v") + private String petiFilePath2V; + + @XmlElement(name = "apndfilcont2") + private String apndfilcont2; + + /** + * 민원 신청 첨부파일명3 + * varchar2(2000) + */ + @XmlElement(name = "peti_file_path3_v") + private String petiFilePath3V; + + @XmlElement(name = "apndfilcont3") + private String apndfilcont3; + + /** + * 민원 신청 첨부파일명4 + * varchar2(2000) + */ + @XmlElement(name = "peti_file_path4_v") + private String petiFilePath4V; + + @XmlElement(name = "apndfilcont4") + private String apndfilcont4; + + /** + * 민원 신청 첨부파일명5 + * varchar2(2000) + */ + @XmlElement(name = "peti_file_path5_v") + private String petiFilePath5V; + + @XmlElement(name = "apndfilcont5") + private String apndfilcont5; + + } +} + +