From dc249a3d8e573ca919c428c991b92f15dd880754 Mon Sep 17 00:00:00 2001 From: jjh Date: Mon, 13 Nov 2023 18:45:20 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B3=B5=EC=8B=9C=EC=86=A1=EB=8B=AC=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cokr/xit/fims/sndb/dao/SvbtcMapper.java | 15 +++++ .../xit/fims/sndb/service/SndngService.java | 9 +++ .../xit/fims/sndb/service/bean/SndngBean.java | 56 +++++++++++++++++ .../sndb/service/bean/SndngServiceBean.java | 60 ++++++++++++++++++- .../xit/fims/sndb/web/Sndb01Controller.java | 26 +++++++- .../cokr/xit/fims/task/web/DpvController.java | 8 ++- .../sql/mapper/fims/sndb/sndng-mapper.xml | 3 + 7 files changed, 173 insertions(+), 4 deletions(-) diff --git a/src/main/java/cokr/xit/fims/sndb/dao/SvbtcMapper.java b/src/main/java/cokr/xit/fims/sndb/dao/SvbtcMapper.java index 7bed8621..ee69c8e8 100644 --- a/src/main/java/cokr/xit/fims/sndb/dao/SvbtcMapper.java +++ b/src/main/java/cokr/xit/fims/sndb/dao/SvbtcMapper.java @@ -35,6 +35,21 @@ public interface SvbtcMapper extends AbstractMapper { */ List selectSvbtcs(SndbQuery req); + /**지정한 조건에 따라 공시송달 대장 객체의 마지막 1개를 반환한다. + * @param req 공시송달 대장 조회 조건 + * @return 부과제외 대장 객체 + */ + default DataObject selectSvbtcInfo(SndbQuery req) { + // 기본 정렬 + if (req.getOrderBy() == null) { + req.setOrderBy("SV.SVBTC_ID DESC"); + } + + List svbtcs = selectSvbtcs(req); + + return !svbtcs.isEmpty() ? svbtcs.get(0) : null; + } + /**지정한 조건에 따라 공시송달 상세 객체들을 반환한다. * @param req 공시송달 대장 조회 조건 * @return 공시송달 대장 객체 목록 diff --git a/src/main/java/cokr/xit/fims/sndb/service/SndngService.java b/src/main/java/cokr/xit/fims/sndb/service/SndngService.java index 5bfc3950..dbd4a1e6 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/SndngService.java +++ b/src/main/java/cokr/xit/fims/sndb/service/SndngService.java @@ -212,6 +212,15 @@ public interface SndngService { */ String removeSvbtcList(SndbQuery req); + /**공시송달 대장 정보를 삭제한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + String removeSvbtcEach(Svbtc svbtc); + /**지정한 발송상세 ID의 미배달 정보를 반환한다.
* @param sndngDtlId 발송 상세 ID * @return 발송상세 미배달 정보 diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java index f085b7f6..599be14b 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java @@ -1132,6 +1132,14 @@ public class SndngBean extends AbstractComponent { return svbtcMapper.selectSvbtcs(req); } + /**지정한 조건에 따라 공시송달 대장 객체들을 반환한다. + * @param req 공시송달 대장 조회 조건 + * @return 공시송달 대장 객체 목록 + */ + public DataObject getSvbtcInfo(SndbQuery req) { + return svbtcMapper.selectSvbtcInfo(req); + } + /**지정한 조건에 따라 공시송달 상세 객체들을 반환한다. * @param req 공시송달 대장 조회 조건 * @return 공시송달 대장 객체 목록 @@ -1221,6 +1229,54 @@ public class SndngBean extends AbstractComponent { throw new RuntimeException("공시송달 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } + retMessage = "[S] 작업이 정상 처리 되었습니다."; + + return retMessage; + } + + /**발송 상세 대장의 공시송달 정보를 삭제한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public String removeSndngDtlSvbtc(SndngDtl sndngDtl) { + // 변수 선언 + boolean retSuccess = false; // DB 처리 결과 + String retMessage = "[F] "; // 처리 결과 메시지 + + // 발송 상세(TB_SNDNG_DTL) 대장에 공시송달 정보를 삭제 한다. + retSuccess = sndngMapper.deleteSndngDtlSvbtc(sndngDtl); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("발송상세의 공시송달 정보 삭제에 실패하였습니다."); + } + + retMessage = "[S] 작업이 정상 처리 되었습니다."; + + return retMessage; + } + + + /**공시송달 대장 정보를 삭제하고 발송 상세 대장의 공시송달 정보를 삭제한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public String removeSvbtcSndngDtl(Svbtc svbtc) { + // 변수 선언 + boolean retSuccess = false; // DB 처리 결과 + String retMessage = "[F] "; // 처리 결과 메시지 + + // 공시송달(TB_SVBTC) 대장을 삭제 한다. + retSuccess = svbtcMapper.delete(svbtc); + if (!retSuccess) { + throw new RuntimeException("공시송달 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + // 발송 상세(TB_SNDNG_DTL) 대장에서 공시송달 정보를 삭제 한다. SndngDtl sndngDtl = new SndngDtl(); diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngServiceBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngServiceBean.java index d15977f4..a358b4fa 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngServiceBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngServiceBean.java @@ -7,6 +7,7 @@ import javax.annotation.Resource; import org.springframework.stereotype.Service; import cokr.xit.fims.excl.LevyExcl; +import cokr.xit.fims.excl.LevyExclQuery; import cokr.xit.fims.sndb.SndbQuery; import cokr.xit.fims.sndb.Sndng; import cokr.xit.fims.sndb.SndngDtl; @@ -192,8 +193,8 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic svbtc.setSvbtcId(req.getSvbtcIDs()[iLoop]); // 공시송달 ID svbtc.setDelRsn(req.getDelRsn()); // 삭제 사유 - // 부과제외 삭제 호출 - retMessage = sndngBean.removeSvbtc(svbtc); + // 공시송달 삭제 호출 + retMessage = sndngBean.removeSvbtcSndngDtl(svbtc); // 오류가 발생하였으면 종료.. if (retMessage.contains("[F]")) { return retMessage; @@ -203,4 +204,59 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic return retMessage; } + @Override + public String removeSvbtcEach(Svbtc svbtc) { + // 변수 선언 + String retMessage = ""; // 처리 결과 메시지 + + // 공시송달 IDs 건수를 확인하여 1건이하면.. 종료 + if (svbtc.getSndngDtlIDs().length < 1) { + retMessage = "작업 중 선택 자료가 존재하지 않습니다."; + return retMessage; + } + + // 공시송달 IDs 만큼 반복.. + for (int iLoop = 0; iLoop < svbtc.getSndngDtlIDs().length; iLoop++) { + // 발송 상세(TB_SNDNG_DTL) 대장에서 공시송달 정보를 삭제 한다. + SndngDtl sndngDtl = new SndngDtl(); + + sndngDtl.setSndngDtlId(svbtc.getSndngDtlIDs()[iLoop]); + sndngDtl.setSvbtcId(svbtc.getSvbtcId()); + sndngDtl.setSndngDtlSttsCd("05"); + + retMessage = sndngBean.removeSndngDtlSvbtc(sndngDtl); + if (retMessage.contains("[F]")) { + throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + } + +// // 공시송달 건수 수정 호출 +// DataObject svbtcInfo = sndngBean.getSvbtcInfo(new SndbQuery().setSvbtcId(svbtc.getSvbtcId()) +// .setDelYn("N")); +// +// Svbtc mdfSvbtc = new Svbtc(); +// +// mdfSvbtc.setSvbtcYmd(svbtcInfo.string("SVBTC_YMD")); +// mdfSvbtc.setTtlNm(svbtcInfo.string("TTL_NM")); +// mdfSvbtc.setDocNo(svbtcInfo.string("DOC_NO")); +// mdfSvbtc.setEtcCn(svbtcInfo.string("ETC_CN")); +// mdfSvbtc.setTnocs(); +// mdfSvbtc.setSvbtcId(svbtc.getSvbtcId()); + +// if () { +// retMessage = sndngBean.updateSvbtc(mdfSvbtc); +// } else { + retMessage = sndngBean.removeSvbtc(svbtc); +// } + + // 오류가 발생하였으면 종료.. + if (retMessage.contains("[F]")) { + return retMessage; + } + + retMessage = "[S] 작업이 정상 처리 되었습니다."; + + return retMessage; + } + } diff --git a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java index 27ef6f0c..56a7078a 100644 --- a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java +++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java @@ -70,9 +70,10 @@ public class Sndb01Controller extends ApplicationController { , getServiceByPublicNoticeList = "/240/list.do" // 공시송달 현황 목록 조회 , createServiceByPublicNotice = "/240/create.do" // 공시송달 등록 , updateServiceByPublicNotice = "/240/update.do" // 공시송달 수정 + , removeServiceByPublicNotice = "/240/remove.do" // 공시송달 삭제 , removeServiceByPublicNoticeList = "/240/removes.do" // 공시송달 삭제 리스트 , getServiceByPublicNoticeInfo = "/250/info.do" // 공시송달 상세 조회 - , removeServiceByPublicNotice = "/250/remove.do" // 공시송달 삭제 + , removeServiceByPublicNoticeEach = "/250/remove.do" // 공시송달 삭제 개별 ; } @@ -770,4 +771,27 @@ public class Sndb01Controller extends ApplicationController { .addObject("retMessage", retMessage); } + /**지정한 공시송달 ID에 해당하는 공시송달 대장을 제거한다. + * @param svbtcId 공시송달 ID + * @return jsonView + *
 {
+	 *     "affected": 저장된 정보수
+	 *     "saved": 저장되었으면 true, 그렇지 않으면 false
+	 * }
+ */ + public ModelAndView removeServiceByPublicNoticeEach(Svbtc svbtc) { + boolean saved = false; + String retMessage = sndngService.removeSvbtcEach(svbtc); + + if (retMessage.contains("[S]")) { + saved = true; + } else { + saved = false; + } + + return new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("retMessage", retMessage); + } + } diff --git a/src/main/java/cokr/xit/fims/task/web/DpvController.java b/src/main/java/cokr/xit/fims/task/web/DpvController.java index f223dc65..35321b4a 100644 --- a/src/main/java/cokr/xit/fims/task/web/DpvController.java +++ b/src/main/java/cokr/xit/fims/task/web/DpvController.java @@ -648,7 +648,7 @@ public class DpvController { } @Override - @RequestMapping(name="공시송달 삭제", value=METHOD_URL.removeServiceByPublicNoticeList) + @RequestMapping(name="공시송달 삭제 리스트", value=METHOD_URL.removeServiceByPublicNoticeList) public ModelAndView removeServiceByPublicNoticeList(SndbQuery req) { return super.removeServiceByPublicNoticeList(req); } @@ -659,6 +659,12 @@ public class DpvController { return super.getServiceByPublicNoticeInfo(req); } + @Override + @RequestMapping(name="공시송달 삭제 개별", value=METHOD_URL.removeServiceByPublicNoticeEach) + public ModelAndView removeServiceByPublicNoticeEach(Svbtc svbtc) { + return super.removeServiceByPublicNoticeEach(svbtc); + } + } @Controller diff --git a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml index 48f5568a..b14239c4 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml @@ -1626,6 +1626,9 @@ , MDFCN_DT = , MDFR = #{sndngDtl.modifiedBy} WHERE SVBTC_ID = #{sndngDtl.svbtcId} + + AND SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} + AND DEL_YN = 'N'