feat : 신문고 디비폴링 추가작업

master
Kurt92 4 months ago
parent 244394d55f
commit 5396c522bf

@ -7,4 +7,7 @@ import java.util.List;
public interface CpAnswerRepository extends JpaRepository<CpAnswer,String> {
List<CpAnswer> findAllByAsState(String number);
boolean existsByAsJsnoM(String civilNoC);
}

@ -7,4 +7,6 @@ import java.util.List;
public interface EpAnswerRepository extends JpaRepository<CpAnswer,String> {
List<CpAnswer> findAllByAsState(String number);
boolean existsByAsJsnoM(String civilNoC);
}

@ -50,7 +50,6 @@ public class SinmungoInOutScheduler {
//deptCode로 cp/ep 대상 분리
// save cp
List<SinmungoDto.SinmungoXml> cpList = parseResult.stream()
.filter(item -> {
try {
int deptCode = Integer.parseInt(item.getPcd_dept_v());

@ -7,6 +7,7 @@ import com.worker.dto.SinmungoDto;
import com.worker.util.common.CommonUtils;
import com.worker.util.common.commEnum.DateTimePatternEnum;
import com.worker.util.common.commEnum.LawGBEnum;
import com.worker.util.common.commEnum.TakeSeCdEnum;
import com.worker.util.fileReader.XmlReader;
import jakarta.transaction.Transactional;
import lombok.RequiredArgsConstructor;
@ -95,6 +96,10 @@ public class DbPolling {
SinmungoDto.SinmungoXml xml = cpList.get(i);
String sgpos = getSgPosByReason(setInfo, xml.getPeti_reason_l());
//getCivil_no_c(<civil_no_c><![CDATA[2AA-2506-0697203]]></civil_no_c>) 기준으로 중복되는건 패스
boolean isExists = cpAnswerRepository.existsByAsJsnoM(xml.getCivil_no_c());
if (isExists) {continue;}
// CpMain
cpMainList.add(CpMain.builder()
.mmCode(String.valueOf(maxMmCode + i))
@ -124,14 +129,20 @@ public class DbPolling {
// CpAnswer
cpAnswerList.add(CpAnswer.builder()
.asMmcode(String.valueOf(maxMmCode + i))
.asBbsNo(xml.getCivil_no_c().substring(xml.getCivil_no_c().lastIndexOf("_") + 1))
.asSggcode(setInfo.getCpSetinfo().getIntValue1().toString())
.asIngb(TakeSeCdEnum.findTakeSeCd(xml.getPeti_anc_code_v()))
.asJsdate(xml.getAnc_reg_d().substring(0, 8))
.asJsno(xml.getPeti_no_c())
.asJsnoM(xml.getCivil_no_c())
.asBbsNo(xml.getCivil_no_c().substring(xml.getCivil_no_c().lastIndexOf("_") + 1))
.asLimitDt(DateTimePatternEnum.DATE_YYYYMMDD.extractFirst(xml.getPeti_end_d()))
.asUser(xml.getPeter_name_v())
.asSysGubunC(xml.getSys_gubun_c())
.asCell(xml.getCel_no_v())
.asTel(xml.getTel_no_v())
.asCell(xml.getCel_no_v())
.asEmail(xml.getEmail_v())
.asStateDt(LocalDateTime.now().format(dtf))
.asSysGubunC(xml.getSys_gubun_c())
.asPetiAncCodeV(xml.getPeti_anc_code_v()) // 컬럼이 있긴한데 안쓰는거같음. 파일 넘어온곳 코드값으로 저장하는데 왜 저장하는지 모르겠음.
.build());
// CpMainEtc1
@ -173,6 +184,9 @@ public class DbPolling {
SinmungoDto.SinmungoXml xml = epList.get(i);
String sgpos = getSgPosByReason(setInfo, xml.getPeti_reason_l());
boolean isExists = epAnswerRepository.existsByAsJsnoM(xml.getCivil_no_c());
if (isExists) {continue;}
cpMainList.add(CpMain.builder()
.mmCode(String.valueOf(maxMmCode + i))
.mmSggcode(setInfo.getCpSetinfo().getIntValue1().toString())

@ -149,8 +149,10 @@ public class WarSyncScheduler {
cmdline = Files.readString(Path.of("/proc/" + pid + "/cmdline"));
} catch (IOException ignored) {}
if (cmdline.contains("cc-server")) {
if (cmdline.contains("clean-parking")) {
killPreviousWar();
log.info("[배포] 기존 프로세스 종료 중...");
Thread.sleep(5000);
log.info("[배포] 기존 프로세스 종료 완료");
} else {
log.warn("[배포] PID 살아있지만 다른 앱. PID 제거");

@ -0,0 +1,29 @@
package com.worker.util.common.commEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum TakeSeCdEnum {
AJSMG("1741000","120"), //안전신문고 (안씀)
GMSMG("1140100","183"), //국민신문고
POLIC("1320000","130"), //경창청
ETC("", "181") //기타
;
private String petiAncCodeV;
private String takeSeCd;
public static String findTakeSeCd(String petiAncCodeV) {
for (TakeSeCdEnum value : TakeSeCdEnum.values()) {
if (value.getPetiAncCodeV().equals(petiAncCodeV)) {
return value.getTakeSeCd();
}
}
return ETC.getTakeSeCd();
}
}
Loading…
Cancel
Save