From 20342cb8539b90586ae6c7da1b5703b73c7bf4ac Mon Sep 17 00:00:00 2001 From: mjkhan21 Date: Wed, 26 Nov 2025 17:39:18 +0900 Subject: [PATCH] =?UTF-8?q?=EC=8B=A4=ED=8C=A8=20=EC=8B=9C=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xit/fims/nxrp/service/bean/SnisBean.java | 31 ++++++++++++++++--- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/src/main/java/cokr/xit/fims/nxrp/service/bean/SnisBean.java b/src/main/java/cokr/xit/fims/nxrp/service/bean/SnisBean.java index 48d3d3d1..35cb12e8 100644 --- a/src/main/java/cokr/xit/fims/nxrp/service/bean/SnisBean.java +++ b/src/main/java/cokr/xit/fims/nxrp/service/bean/SnisBean.java @@ -1,6 +1,8 @@ package cokr.xit.fims.nxrp.service.bean; +import java.util.ArrayList; import java.util.Collections; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -99,8 +101,24 @@ public class SnisBean extends ScheduledBean { private String update(Map results) { log().debug("{} Bu18WebReturnInfoDTOs received", results.size()); + + // 실패 응답 추출 + ArrayList failed = new ArrayList<>(); + LinkedHashMap tmp = new LinkedHashMap<>(results); + for (Map.Entry entry: results.entrySet()) { + Bu18WebReturnInfoDTO dto = entry.getValue(); + if (dto.isSuccess()) continue; + + String k = entry.getKey(); + Bu18WebPreNoticeDTO prenotice = dto.getRequest(); + failed.add(k + "[" + prenotice.getJukbalTarget() + "]" + ": " + dto.getReturnMsg()); + tmp.remove(k); + } + if (tmp.isEmpty()) + return "[F] 작업에 실패했습니다.
" + String.join("
", failed); + // 로컬 발송대상 상세 업데이트 - Set ids = results.keySet(); // 발송대상 상세ID + Set ids = tmp.keySet(); // 발송대상 상세ID SndbQuery req = new SndbQuery().setSndngDtlIds(ids.toArray(new String[ids.size()])); List details = sndngDtlMapper.selectSndngDetails(req).stream() .map(detail -> update( @@ -143,11 +161,14 @@ public class SnisBean extends ScheduledBean { sndngDtlMapper.updateCrdnNxrpAcbKey(crdn); // 과태료대장키 }); - return "[S] 작업이 정상 처리 되었습니다."; + if (failed.isEmpty()) + return "[S] 작업이 정상 처리 되었습니다."; + else + return "[F] 다음 항목을 처리하지 못했습니다.
" + String.join("
", failed); } private SndngDtl update(Bu18WebReturnInfoDTO returned, SndngDtl sndngDtl) { - if (returned == null) return null; + if (returned == null || !returned.isSuccess()) return null; log().debug("returned\n{}", json.stringify(returned, true)); @@ -280,7 +301,7 @@ public class SnisBean extends ScheduledBean { update(notices); return notices; } - + public List lookupPreNotices(String buAk) { Ye22InputDTO input = new Ye22InputDTO(); input.setBuAk(buAk); @@ -288,7 +309,7 @@ public class SnisBean extends ScheduledBean { List notices = sntrisBean.getPreNoticeList(input); update(notices); return notices; - } + } private void update(Ye22NoticeInfoDTO notice, Levy levy) { if (notice == null || levy == null) return;