feat : EPost makeReulst 개발완료

master
Kurt92 3 months ago
parent 97da64f601
commit 3cc8dd1154

@ -0,0 +1,8 @@
package com.worker.domain.repo.cp;
import com.worker.domain.entity.EpostMakeResult;
import org.springframework.data.jpa.repository.JpaRepository;
public interface CpEPostMakeResultRepository extends JpaRepository<EpostMakeResult,Long> {
EpostMakeResult findByConkeyAndRgstNmbr();
}

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

@ -89,6 +89,25 @@ public class EPostDto {
private String jobCd;
private String tgCode;
private String postProcStt;
public void changePostProcStt(String postProcStt) {
switch(postProcStt) {
case "20":
this.postProcStt = "80"; //제작완료
case "21":
this.postProcStt = "21"; //제작불가-매수초과
case "22":
this.postProcStt = "22"; //제작불가-파일오류
case "23":
this.postProcStt = "23"; //제작불가-첨부파일누락
case "24":
this.postProcStt = "24"; //제작불가-제작전취소
case "61":
this.postProcStt = "61"; //제작불가-수취인 건수 오류
case "62":
this.postProcStt = "62"; //제작불가-첨부파일 없음
}
}
}
@Getter

@ -117,7 +117,7 @@ public class EPostQueryDslRepository {
}
public List<EPostDto.SearchRecvTarget> findRceptResult(JPAQueryFactory queryFactory, List<EPostDto.Recv> dtos, Set<String> cpDeptCode) {
public List<EPostDto.SearchRecvTarget> findRecvResult(JPAQueryFactory queryFactory, List<EPostDto.Recv> dtos, Set<String> cpDeptCode) {
List<String> conKeys = dtos.stream()
.map(EPostDto.Recv::getReletcdata)
@ -153,7 +153,7 @@ public class EPostQueryDslRepository {
return results;
}
public void updateRceptResult(JPAQueryFactory queryFactory, List<EPostDto.Recv> dtos, List<EPostDto.SearchRecvTarget> results) {
public void updateRecvResult(JPAQueryFactory queryFactory, List<EPostDto.Recv> dtos, List<EPostDto.SearchRecvTarget> results) {
//gojit tg_post_proc_stt 가 05 미만이면 '05' 로 업데이트
results.forEach(result -> {

@ -38,6 +38,8 @@ public class EPostService {
private final EpEpostRceptResultRepository epEpostRceptResultRepository;
private final CpEpostDelivResultRepository cpEpostDelivResultRepository;
private final EpEpostDelivResultRepository epEpostDelivResultRepository;
private final CpEPostMakeResultRepository cpEPostMakeResultRepository;
private final EpEPostMakeResultRepository epEPostMakeResultRepository;
private final CpEPostSenderDetailRepository cpEPostSenderDetailRepository;
private final EpEPostSenderDetailRepository epEPostSenderDetailRepository;
private final CpEPostSenderRegRepository cpEPostSenderRegRepository;
@ -94,9 +96,9 @@ public class EPostService {
}
case "recv" -> {
if(setInfo.getCpSetinfo() != null)
cpRecvs.addAll(ePostQueryDslRepository.findRceptResult(cpQueryFactory, e.getResult(), cpDeptCode));
cpRecvs.addAll(ePostQueryDslRepository.findRecvResult(cpQueryFactory, e.getResult(), cpDeptCode));
if(setInfo.getEpSetinfo() != null)
epRecvs.addAll(ePostQueryDslRepository.findRceptResult(epQueryFactory, e.getResult(), cpDeptCode));
epRecvs.addAll(ePostQueryDslRepository.findRecvResult(epQueryFactory, e.getResult(), cpDeptCode));
}
case "prt" -> {
if(setInfo.getCpSetinfo() != null)
@ -123,6 +125,12 @@ public class EPostService {
if (epDelivs != null && !epDelivs.isEmpty()) {
insertDelivResults(epDelivs, parseResult, "ep");
}
if(cpPrts != null && !cpPrts.isEmpty()) {
insertPrtResults(cpPrts, parseResult, "cp");
}
if(epPrts != null && !epPrts.isEmpty()) {
insertPrtResults(epPrts, parseResult, "ep");
}
// if (delivs != null && !delivs.isEmpty()) insertDelivResults(delivs);
// if (prts != null && !prts.isEmpty()) insertPrtResults(prts);
@ -132,6 +140,68 @@ public class EPostService {
}
private void insertPrtResults(List<EPostDto.SearchPrtTarget> prts, List<EPostDto.EPostFileRead> parseResults, String dbKind) {
//파싱완료한 파일중 prt만 추출
List<EPostDto.Prt> prtFileResults = parseResults.stream()
.filter(r -> "prt".equalsIgnoreCase(r.getKind()))
.flatMap(r -> ((List<EPostDto.Prt>) r.getResult()).stream())
.collect(Collectors.toList());
//post_proc_stt 업데이트
prtFileResults.forEach(fileResult -> {
for(int i = 0; i < prts.size(); i++) {
// postProcStt 코드 재구성
prts.get(i).changePostProcStt(prts.get(i).getPostProcStt());
//if post_proc_stt가 80보다 작으면 처리상태 변경
if(Integer.parseInt(prts.get(i).getPostProcStt()) < 80) {
// gijit 업데이트
CpGojit cpGojit = CpGojit.builder()
.tgPostProcStt(prts.get(i).getPostProcStt())
.tgCode(Long.valueOf(prts.get(i).getTgCode()))
.build();
if(dbKind.equals("cp")) cpGojitRepository.save(cpGojit);
else epGojitRepository.save(cpGojit);
// EPOST_SENDER_REG 업데이트
EpostSenderReg epostSenderReg = EpostSenderReg.builder()
.postProcStt(prts.get(i).getPostProcStt())
.conKey(prts.get(i).getConKey())
.build();
if(dbKind.equals("cp")) cpEPostSenderRegRepository.save(epostSenderReg);
else epEPostSenderRegRepository.save(epostSenderReg);
}
//EPOST_MAKE_RESULT 의 콘키와 등기번호로 조회한 결과가 없으면
EpostMakeResult epostMakeResult = null;
if(dbKind.equals("cp")) epostMakeResult = cpEPostMakeResultRepository.findByConkeyAndRgstNmbr();
else epostMakeResult = cpEPostMakeResultRepository.findByConkeyAndRgstNmbr();
//EPOST_MAKE_RESULT 인서트
if(epostMakeResult == null) {
EpostMakeResult epostMakeNewResult = EpostMakeResult.builder()
.conKey(fileResult.getConKey())
.rgstNmbr(fileResult.getRestNmbr())
.reletcData(fileResult.getReletcdata())
.dataCd(fileResult.getDataCd())
.mailCnt(fileResult.getMailCnt())
.build();
if (dbKind.equals("cp")) cpEPostMakeResultRepository.save(epostMakeNewResult);
else epEPostMakeResultRepository.save(epostMakeNewResult);
}
}
});
}
private void insertDelivResults(List<EPostDto.SearchDelivTarget> delivs, List<EPostDto.EPostFileRead> parseResults, String dbKind) {
List<CpGojiSendHist> cpGojiSendHists = new ArrayList<>();
@ -251,6 +321,7 @@ public class EPostService {
private void insertReceiveResults(List<EPostDto.Recv> recvs) {
@ -263,8 +334,7 @@ public class EPostService {
private void insertPrtResults(List<EPostDto.Prt> prts) {}
private void insertRecvResults(List<EPostDto.Recv> recvs) {}

Loading…
Cancel
Save