feat : ESB에이전트 rcv xml파일 읽고 CpMain 엔티티 빌더 생성

master
Kurt92 6 months ago
parent 00bebb4113
commit 47667374a3

@ -0,0 +1,165 @@
package com.worker.entity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Entity
@Table(name = "cp_main")
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CpMain {
@Id
@Column(name = "MM_CODE", length = 16)
private String mmCode;
@Column(name = "MM_SGGCODE", length = 5)
private String mmSggcode;
@Column(name = "MM_DLGB", length = 1)
private String mmDlgb;
@Column(name = "MM_INGB", length = 1)
private String mmIngb;
@Column(name = "MM_DATE", length = 8)
private String mmDate;
@Column(name = "MM_TIME", length = 4)
private String mmTime;
@Column(name = "MM_LAWGB", length = 2)
private String mmLawgb;
@Column(name = "MM_SGNM", length = 500)
private String mmSgnm;
@Column(name = "MM_SGTEL", length = 100)
private String mmSgtel;
@Column(name = "MM_SGCONT", length = 1000)
private String mmSgcont;
@Column(name = "MM_SGPOS", length = 200)
private String mmSgpos;
@Column(name = "MM_BDCODE", length = 10)
private String mmBdcode;
@Column(name = "MM_GPS_X", length = 20)
private String mmGpsX;
@Column(name = "MM_GPS_Y", length = 20)
private String mmGpsY;
@Column(name = "MM_TRAC", length = 1)
private String mmTrac;
@Column(name = "MM_SNO", length = 20)
private String mmSno;
@Column(name = "MM_IMAGECNT")
private Integer mmImagecnt;
@Column(name = "MM_IMAGEGB", length = 1)
private String mmImagegb;
@Column(name = "MM_CARNO", length = 20)
private String mmCarno;
@Column(name = "MM_VHMNO", length = 25)
private String mmVhmno;
@Column(name = "MM_CARGB", length = 1)
private String mmCargb;
@Column(name = "MM_CARKIND", length = 1)
private String mmCarkind;
@Column(name = "MM_OMCODE", length = 13)
private String mmOmcode;
@Column(name = "MM_SDATE", length = 8)
private String mmSdate;
@Column(name = "MM_EDATE", length = 8)
private String mmEdate;
@Column(name = "MM_KEUM1")
private Integer mmKeum1;
@Column(name = "MM_KEUM2")
private Integer mmKeum2;
@Column(name = "MM_SUKEUM")
private Integer mmSukeum;
@Column(name = "MM_MINUS_KEUM")
private Integer mmMinusKeum;
@Column(name = "MM_ADD_KEUM")
private Integer mmAddKeum;
@Column(name = "MM_RECALL", length = 1)
private String mmRecall;
@Column(name = "MM_INUSER")
private Integer mmInuser;
@Column(name = "MM_INDT", length = 14)
private String mmIndt;
@Column(name = "MM_STATE", length = 2)
private String mmState;
@Column(name = "MM_STATE_DT", length = 14)
private String mmStateDt;
@Column(name = "MM_CARCHECK", length = 1)
private String mmCarcheck;
@Column(name = "MM_PRECODE", length = 13)
private String mmPrecode;
@Column(name = "MM_ETC", length = 100)
private String mmEtc;
@Column(name = "MM_VIDEOFILENM", length = 30)
private String mmVideofilenm;
@Column(name = "MM_SAFEZONE", length = 1)
private String mmSafezone;
@Column(name = "MM_VIORCNT", length = 4)
private String mmViorcnt;
@Column(name = "MM_TIME2", length = 4)
private String mmTime2;
@Column(name = "MM_VIOR", length = 3)
private String mmVior;
@Column(name = "MM_CARNAME", length = 100)
private String mmCarname;
@Column(name = "mm_carcolor", length = 20)
private String mmCarcolor;
@Column(name = "mm_carfuel", length = 10)
private String mmCarfuel;
@Column(name = "mm_transmit_sgg", length = 20)
private String mmTransmitSgg;
@Column(name = "mm_transmit_team", length = 50)
private String mmTransmitTeam;
}

@ -0,0 +1,9 @@
package com.worker.entity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface CpMainRepository extends JpaRepository<CpMain,Integer> {
}

@ -1,17 +1,21 @@
package com.worker.scheduler.smg;
import com.worker.entity.CpMain;
import com.worker.entity.CpSetinfo;
import com.worker.entity.CpSetinfoId;
import com.worker.entity.CpSetinfoRepository;
import com.worker.util.fileReader.XmlReader;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Optional;
@Component
@RequiredArgsConstructor
@Slf4j
public class SinmongoInOutScheduler {
private final CpSetinfoRepository cpSetinfoRepository;
@ -38,10 +42,10 @@ public class SinmongoInOutScheduler {
.build()
);
//파일읽기
xmlReader.parseXml(esbXmlDir.get().getStrValue4());
String aaa = null;
//파일읽기
List<CpMain> parseResult = xmlReader.findXml(esbXmlDir.get().getStrValue4());
log.info(parseResult.toString());
//sinmongo 디렉토리로 파일 이동

@ -1,5 +1,7 @@
package com.worker.util.fileReader;
import com.worker.entity.CpMain;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@ -9,42 +11,60 @@ import org.w3c.dom.NodeList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
import java.util.LinkedList;
import java.util.List;
@Component
@Slf4j
public class XmlReader {
public void parseXml(String filePath) {
try {
public List<CpMain> findXml(String dirPath) {
File dir = new File(dirPath);
List<CpMain> cpMainList = new LinkedList<>();
if (!dir.exists() || !dir.isDirectory()) {
System.out.println(" 유효하지 않은 디렉토리 경로: " + dirPath);
return null;
}
File[] xmlFiles = dir.listFiles((d, name) -> name.toLowerCase().endsWith(".xml"));
if (xmlFiles == null || xmlFiles.length == 0) {
System.out.println(" XML 파일 없음: " + dirPath);
return null;
}
File xmlFile = new File(filePath);
for (File xmlFile : xmlFiles) {
System.out.println(" 파일 파싱 중: " + xmlFile.getName());
cpMainList.add(parseXml(xmlFile));
}
log.info(cpMainList.toString());
return cpMainList;
}
private CpMain parseXml(File xmlFile) {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(xmlFile);
doc.getDocumentElement().normalize();
NodeList items = doc.getElementsByTagName("Item");
for (int i = 0; i < items.getLength(); i++) {
Element item = (Element) items.item(i);
Element root = doc.getDocumentElement(); // MINWON
String = getTagValue("신고일자", item);
String = getTagValue("민원번호", item);
String = getTagValue("접수번호", item);
String = getTagValue("신고제목", item);
String = getTagValue("민원내용", item);
CpMain.CpMainBuilder builderCp = CpMain.builder()
.mmSgnm(getTagValue("peter_name_v", root))
.mmSgtel(getTagValue("duty_id_v", root))
.mmCarno(getTagValue("carno", root))
.mmSgcont(getTagValue("text", root));
// 여기에 필요한 다른 필드도 매핑 추가
System.out.println(" 신고일자: " + );
System.out.println(" 민원번호: " + );
System.out.println(" 접수번호: " + );
System.out.println(" 제목: " + );
System.out.println(" 내용: " + );
System.out.println("----------------------------------");
}
return builderCp.build();
} catch (Exception e) {
System.out.println("파싱 실패: " + xmlFile.getName());
e.printStackTrace();
return null;
}
}

Loading…
Cancel
Save