feat : epost 개발중. 파싱후 업데이트 로직 정리중

master
Kurt92 4 months ago
parent cad8887fa7
commit c89fcc8f5a

@ -0,0 +1,56 @@
package com.worker.domain.entity;
import jakarta.persistence.*;
import lombok.*;
@Entity
@Table(
name = "epost_deliv_result",
indexes = {
@Index(name = "EPOST_DELIV_RESULT_IDX1", columnList = "CON_KEY, REGINO, DELIVYMD, DELIVHHMI")
}
)
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class EpostDelivResult {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "SEQ_KEY", nullable = false, updatable = false)
private Long seqKey;
@Column(name = "CON_KEY", nullable = false, length = 30)
private String conKey;
@Column(name = "REGINO", nullable = false, length = 13)
private String regino;
@Column(name = "DELIVYMD", nullable = false, length = 8)
private String delivYmd;
@Column(name = "DELIVHHMI", nullable = false, length = 4)
private String delivHhmi;
@Column(name = "OUTSIDUSERID", length = 13)
private String outsidUserId;
@Column(name = "DELIVRSLTCD", length = 2)
private String delivRsltCd;
@Column(name = "NONDELIVREASNCD", length = 2)
private String nonDelivReasnCd;
@Column(name = "NONDELIVREASNCDNM", length = 60)
private String nonDelivReasnCdNm;
@Column(name = "SUBRECPRSNNM", length = 70)
private String subRecPrsnNm;
@Column(name = "RELRECPRSNCD", length = 2)
private String relRecPrsnCd;
@Column(name = "RELRECPRSNCDNM", length = 100)
private String relRecPrsnCdNm;
}

@ -0,0 +1,34 @@
package com.worker.domain.entity;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Entity
@Table(name = "epost_make_result")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@IdClass(EpostMakeResultId.class)
public class EpostMakeResult {
@Id
@Column(name = "CON_KEY", nullable = false, length = 30)
private String conKey;
@Id
@Column(name = "RGST_NMBR", nullable = false, length = 13)
private String rgstNmbr;
@Column(name = "RELETCDATA", length = 200)
private String reletcData;
@Column(name = "DATA_CD", length = 2)
private String dataCd;
@Column(name = "MAIL_CNT", length = 5)
private String mailCnt;
}

@ -0,0 +1,17 @@
package com.worker.domain.entity;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Getter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
public class EpostMakeResultId implements Serializable {
private String conKey;
private String rgstNmbr;
}

@ -1,14 +1,18 @@
package com.worker.domain.entity;
import jakarta.persistence.Column;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Entity
@Table(
name = "epost_rcept_result",
indexes = {
@Index(name = "EPOST_RCEPT_RESULT_IDX2", columnList = "RELETCDATA, DIV_KB, EXTRI_REGYMD")
}
)
@Getter
@NoArgsConstructor
@AllArgsConstructor
@ -18,19 +22,19 @@ public class EpostRceptResult {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "RR_CODE", nullable = false, updatable = false)
private Integer rrCode;
private Long rrCode;
@Column(name = "CON_ORG", length = 13, nullable = false)
@Column(name = "CON_ORG", nullable = false, length = 13)
private String conOrg;
@Column(name = "RELORSECT_CD", length = 15, nullable = false)
private String relOrsectCd;
@Column(name = "RELORSECT_CD", nullable = false, length = 15)
private String relOrSectCd;
@Column(name = "RELETCDATA", length = 200, nullable = false)
@Column(name = "RELETCDATA", nullable = false, length = 200)
private String reletcData;
@Column(name = "EXTRI_REGYMD", length = 8, nullable = false)
private String extriRegymd;
@Column(name = "EXTRI_REGYMD", nullable = false, length = 8)
private String extriRegYmd;
@Column(name = "RCEPT_YMD", length = 8)
private String rceptYmd;
@ -38,7 +42,7 @@ public class EpostRceptResult {
@Column(name = "RCEPT_ID", length = 5)
private String rceptId;
@Column(name = "DIV_KB", length = 3, nullable = false)
@Column(name = "DIV_KB", nullable = false, length = 3)
private String divKb;
@Column(name = "RCEPT_CNT", nullable = false)

@ -0,0 +1,7 @@
package com.worker.domain.repo.cp;
import com.worker.domain.entity.EpostDelivResult;
import org.springframework.data.jpa.repository.JpaRepository;
public interface CpEpostDelivResultRepository extends JpaRepository<EpostDelivResult, Long> {
}

@ -0,0 +1,7 @@
package com.worker.domain.repo.cp;
import com.worker.domain.entity.EpostRceptResult;
import org.springframework.data.jpa.repository.JpaRepository;
public interface CpEpostRceptResultRepository extends JpaRepository<EpostRceptResult, Long> {
}

@ -0,0 +1,7 @@
package com.worker.domain.repo.ep;
import com.worker.domain.entity.EpostDelivResult;
import org.springframework.data.jpa.repository.JpaRepository;
public interface EpEpostDelivResultRepository extends JpaRepository<EpostDelivResult, Long> {
}

@ -0,0 +1,7 @@
package com.worker.domain.repo.ep;
import com.worker.domain.entity.EpostRceptResult;
import org.springframework.data.jpa.repository.JpaRepository;
public interface EpEpostRceptResultRepository extends JpaRepository<EpostRceptResult, Long> {
}

@ -86,8 +86,8 @@ public class EPostDto {
public static class Deliv {
private String conKey;
private String regiNo;
private String delivYmd;
private String delivHhmd;
private String delivYm;
private String delivHhmi;
private String delivRsltCd;
private String sendDate;

@ -1,19 +1,81 @@
package com.worker.scheduler.epost.repository;
import com.querydsl.core.types.Projections;
import com.querydsl.jpa.impl.JPAQueryFactory;
import com.worker.scheduler.epost.dto.EPostDto;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Repository;
import java.util.List;
import static com.worker.domain.entity.QEpostDelivResult.epostDelivResult;
import static com.worker.domain.entity.QEpostRceptResult.epostRceptResult;
@Slf4j
@Repository
@RequiredArgsConstructor
public class EPostQueryDslRepository {
private final JPAQueryFactory queryFactory;
public List<EPostDto.Deliv> findDelivResult(List<EPostDto.Deliv> dtos) {
List<String> conKeys = dtos.stream()
.map(EPostDto.Deliv::getConKey)
.toList();
List<String> reginos = dtos.stream()
.map(EPostDto.Deliv::getRegiNo)
.toList();
return queryFactory
.select(
Projections.fields(
EPostDto.Deliv.class,
epostDelivResult.conKey
)
)
.from(epostDelivResult)
.where(
epostDelivResult.conKey.in(conKeys),
epostDelivResult.regino.in(reginos)
)
.fetch();
}
public List<EPostDto.Prt> findMakeResult(List<EPostDto.Prt> dtos) {
return null;
}
public List<EPostDto.Deliv> findRceptResult(List<EPostDto.Deliv> dtos) {
return null;
}
public void updateAAATable() {
public void updateDelivResult(EPostDto.Deliv dto) {
queryFactory
.update(epostDelivResult)
.set(epostDelivResult.delivRsltCd, dto.getResultCd())
.where(
epostDelivResult.conKey.eq(dto.getConKey())
)
.execute();
}
public void updateMakeResult(List<EPostDto.Deliv> dtos) {
}
public void updateRceptResult(List<EPostDto.Deliv> dtos) {
}
}

@ -2,10 +2,17 @@ package com.worker.scheduler.epost.service;
import com.worker.domain.entity.CpSetinfo;
import com.worker.domain.entity.CpSetinfoId;
import com.worker.domain.entity.EpostDelivResult;
import com.worker.domain.repo.cp.CpEpostDelivResultRepository;
import com.worker.domain.repo.cp.CpEpostRceptResultRepository;
import com.worker.domain.repo.cp.CpSetinfoRepository;
import com.worker.domain.repo.ep.EpEpostDelivResultRepository;
import com.worker.domain.repo.ep.EpEpostRceptResultRepository;
import com.worker.domain.repo.ep.EpSetinfoRepository;
import com.worker.scheduler.epost.dto.EPostDto;
import com.worker.scheduler.epost.repository.EPostQueryDslRepository;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Service;
@ -14,14 +21,21 @@ import java.util.List;
@Service
@RequiredArgsConstructor
@Slf4j
public class EPostService {
private final Environment env;
private final CpSetinfoRepository cpSetinfoRepository;
private final EpSetinfoRepository epSetinfoRepository;
private final CpEpostRceptResultRepository cpEpostRceptResultRepository;
private final EpEpostRceptResultRepository epEpostRceptResultRepository;
private final CpEpostDelivResultRepository cpEpostDelivResultRepository;
private final EpEpostDelivResultRepository epEpostDelivResultRepository;
private final EPostQueryDslRepository ePostQueryDslRepository;
public EPostDto.SetInfo findSetInfo() {
// 필요한 값들
@ -86,12 +100,60 @@ public class EPostService {
public void saveEpostResult(List<EPostDto.EPostFileRead> parseResult) {
// 파싱 리절트 cp ep 분리해서 넣기
// rcept , make , deliv 세개가 있음.
// 다 같은 폴더로 불규칙하게 들어오니까 일단 파싱 리절트안에 전부 해당키로 나눠서 담아놨음.
// parseResult가 리스트니까 하나씩 돌면서 키값에 맞는 매서드 호출
List<EPostDto.Deliv> delivs = new ArrayList<>();
List<EPostDto.Prt> prts = new ArrayList<>();
List<EPostDto.Recv> recvs = new ArrayList<>();
parseResult.forEach(e -> {
switch(e.getKind()) {
case "deliv" -> delivs.addAll(ePostQueryDslRepository.findDelivResult(e.getResult()));
// case "rcept" ->
// case "make" ->
}
});
log.info(delivs.toString());
log.info(prts.toString());
log.info(recvs.toString());
if (delivs != null && !delivs.isEmpty()) insertDelivResults(delivs);
if (prts != null && !prts.isEmpty()) insertPrtResults(prts);
if (recvs != null && !recvs.isEmpty()) insertRecvResults(recvs);
}
private void insertDelivResults(List<EPostDto.Deliv> delivs) {
List<EpostDelivResult> entities = delivs.stream()
.map(item -> EpostDelivResult.builder()
.conKey(item.getConKey())
.regino(item.getRegiNo())
.delivYmd(item.getDelivYm())
.delivHhmi(item.getDelivHhmi())
.delivRsltCd(item.getDelivRsltCd())
.nonDelivReasnCd(null) // 값 없으면 null 권장
.nonDelivReasnCdNm(null)
.subRecPrsnNm(null)
.relRecPrsnCd(null)
.relRecPrsnCdNm(null)
.build())
.toList();
cpEpostDelivResultRepository.saveAll(entities);
}
private void insertPrtResults(List<EPostDto.Prt> prts) {}
private void insertRecvResults(List<EPostDto.Recv> recvs) {}
private EPostDto.EPostInfo buildEPostInfo(CpSetinfo ePostInfo, CpSetinfo ePostDocInfo) {

@ -109,8 +109,8 @@ public class EpostTextFileParser implements FileParserInterface<EPostDto.EPostFi
return EPostDto.Deliv.builder()
.conKey(item[0])
.regiNo(item[1])
.delivYmd(item[2])
.delivHhmd(item[3])
.delivYm(item[2])
.delivHhmi(item[3])
.delivRsltCd(item[4])
.sendDate(item[5])
.sendTime(item[6])

Loading…
Cancel
Save