From 20ec46ad6460748e55621083acae488bbbd55df2 Mon Sep 17 00:00:00 2001 From: jjh Date: Fri, 21 Jun 2024 17:19:52 +0900 Subject: [PATCH] =?UTF-8?q?1.=20=EA=B3=B5=EC=8B=9C=EC=86=A1=EB=8B=AC=20?= =?UTF-8?q?=ED=98=84=ED=99=A9=20=EC=88=98=EC=A0=95.=202.=20=EA=B8=B0?= =?UTF-8?q?=ED=83=80=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fims/excl/service/bean/OpnnSbmsnBean.java | 6 +- .../xit/fims/excl/web/Excl01Controller.java | 14 +- .../xit/fims/excl/web/Excl02Controller.java | 11 +- .../java/cokr/xit/fims/sndb/SndbQuery.java | 38 +- src/main/java/cokr/xit/fims/sndb/Svbtc.java | 15 +- .../fims/sndb/service/SndngDtlService.java | 10 - .../xit/fims/sndb/service/SvbtcService.java | 9 + .../xit/fims/sndb/service/bean/SndngBean.java | 18 +- .../fims/sndb/service/bean/SndngDtlBean.java | 4 +- .../service/bean/SndngDtlServiceBean.java | 54 -- .../xit/fims/sndb/service/bean/SvbtcBean.java | 77 ++- .../sndb/service/bean/SvbtcServiceBean.java | 40 +- .../xit/fims/sndb/web/Sndb01Controller.java | 74 ++- .../sql/mapper/fims/sndb/sndngDtl-mapper.xml | 249 ++++----- .../sql/mapper/fims/sndb/svbtc-mapper.xml | 51 +- src/main/resources/template/hwp/svbtcList.hwp | Bin 96768 -> 49152 bytes .../WEB-INF/jsp/fims/epst/epst02020-info.jsp | 4 +- .../WEB-INF/jsp/fims/epst/epst02040-info.jsp | 4 +- .../WEB-INF/jsp/fims/excl/excl01010-main.jsp | 3 +- .../WEB-INF/jsp/fims/excl/excl01020-info.jsp | 10 +- .../WEB-INF/jsp/fims/excl/excl02010-main.jsp | 70 +-- .../WEB-INF/jsp/fims/excl/excl02020-info.jsp | 4 +- .../WEB-INF/jsp/fims/excl/excl02030-info.jsp | 4 +- .../WEB-INF/jsp/fims/excl/excl02040-info.jsp | 4 +- .../WEB-INF/jsp/fims/levy/levy01020-info.jsp | 4 +- .../WEB-INF/jsp/fims/levy/levy02020-info.jsp | 4 +- .../jsp/fims/payer/payer01020-info.jsp | 6 +- .../WEB-INF/jsp/fims/rcvm/rcvm01020-info.jsp | 6 +- .../WEB-INF/jsp/fims/rdca/rdca01020-info.jsp | 6 +- .../WEB-INF/jsp/fims/sndb/sndb01040-info.jsp | 9 +- .../WEB-INF/jsp/fims/sndb/sndb01070-main.jsp | 17 +- .../WEB-INF/jsp/fims/sndb/sndb01080-info.jsp | 16 +- .../WEB-INF/jsp/fims/sndb/sndb01240-main.jsp | 457 +++++++-------- .../WEB-INF/jsp/fims/sndb/sndb01250-info.jsp | 529 +++++++++--------- .../WEB-INF/jsp/fims/sndb/sndb01260-info.jsp | 106 ++-- .../WEB-INF/jsp/fims/sprt/sprt02080-info.jsp | 2 +- .../WEB-INF/jsp/fims/sprt/sprt04020-info.jsp | 4 +- 37 files changed, 968 insertions(+), 971 deletions(-) diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnBean.java b/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnBean.java index 0800b9bf..37083878 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnBean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnBean.java @@ -342,11 +342,7 @@ public class OpnnSbmsnBean extends AbstractBean { String rtnMsg = ""; // 처리 결과 메시지 // 의견제출(TB_OPNN_SBMSN) 정보를 조회한다. - LevyExclQuery req = new LevyExclQuery(); - req.setOpnnId(opnnSbmsn.getOpnnId()); - req.setDelYn("N"); - - DataObject opnnSbmsnInfo = opnnSbmsnMapper.selectOpnnSbmsnInfo(req); + DataObject opnnSbmsnInfo = opnnSbmsnMapper.selectOpnnSbmsnInfo(new LevyExclQuery().setOpnnId(opnnSbmsn.getOpnnId())); // 의견제출 ID가 조회되지 않았다면 종료.. if (opnnSbmsnInfo.string("OPNN_ID").equals("")) { diff --git a/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java b/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java index 5b4c047b..3ac15637 100644 --- a/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java +++ b/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java @@ -276,12 +276,14 @@ public class Excl01Controller extends ApplicationController { if (levyExcl.getLevyExclIds() == null || levyExcl.getLevyExclIds().length < 1) { rtnMsg = levyExclService.removeLevyExcl(levyExcl); } else { - // 부과제외 Ids 만큼 반복.. - for (int iLoop = 0; iLoop < levyExcl.getLevyExclIds().length; iLoop++) { - levyExcl.setLevyExclId(levyExcl.getLevyExclIds()[iLoop]); // 부과제외 ID 설정 - - // 부과제외 삭제 호출 - rtnMsg = levyExclService.removeLevyExcl(levyExcl); + // 부과제외 Ids 만큼 삭제 반복.. + for (String levyExclId : levyExcl.getLevyExclIds()) { + LevyExcl deltLevyExcl = new LevyExcl(); + deltLevyExcl.setLevyExclId(levyExclId); + deltLevyExcl.setDelRsn(levyExcl.getDelRsn()); + + // 공시송달 삭제 호출 + rtnMsg = levyExclService.removeLevyExcl(deltLevyExcl); if (!rtnMsg.contains("[S]")) // 오류가 발생하였으면 종료.. break; } diff --git a/src/main/java/cokr/xit/fims/excl/web/Excl02Controller.java b/src/main/java/cokr/xit/fims/excl/web/Excl02Controller.java index 77ef5507..fcc57863 100644 --- a/src/main/java/cokr/xit/fims/excl/web/Excl02Controller.java +++ b/src/main/java/cokr/xit/fims/excl/web/Excl02Controller.java @@ -31,6 +31,7 @@ import cokr.xit.fims.cmmn.hwp.format.DlbrDecsnList; import cokr.xit.fims.cmmn.service.bean.StngBean; import cokr.xit.fims.cmmn.xls.FormatMaker; import cokr.xit.fims.cmmn.xls.StyleMaker; +import cokr.xit.fims.excl.LevyExcl; import cokr.xit.fims.excl.LevyExclQuery; import cokr.xit.fims.excl.OpnnDlbrMbr; import cokr.xit.fims.excl.OpnnSbmsn; @@ -411,12 +412,14 @@ public class Excl02Controller extends ApplicationController { if (opnnSbmsn.getOpnnIds() == null || opnnSbmsn.getOpnnIds().length < 1) { rtnMsg = opnnSbmsnService.removeOpnnSbmsn(opnnSbmsn); } else { - // 의견제출 Ids 만큼 반복.. - for (int iLoop = 0; iLoop < opnnSbmsn.getOpnnIds().length; iLoop++) { - opnnSbmsn.setOpnnId(opnnSbmsn.getOpnnIds()[iLoop]); // 의견제출 ID 설정 + // 의견제출 Ids 만큼 삭제 반복.. + for (String opnnId : opnnSbmsn.getOpnnIds()) { + OpnnSbmsn deltOpnnSbmsn = new OpnnSbmsn(); + deltOpnnSbmsn.setOpnnId(opnnId); + deltOpnnSbmsn.setDelRsn(opnnSbmsn.getDelRsn()); // 의견제출 삭제 호출 - rtnMsg = opnnSbmsnService.removeOpnnSbmsn(opnnSbmsn); + rtnMsg = opnnSbmsnService.removeOpnnSbmsn(deltOpnnSbmsn); if (!rtnMsg.contains("[S]")) // 오류가 발생하였으면 종료.. break; } diff --git a/src/main/java/cokr/xit/fims/sndb/SndbQuery.java b/src/main/java/cokr/xit/fims/sndb/SndbQuery.java index bcf82bca..177630eb 100644 --- a/src/main/java/cokr/xit/fims/sndb/SndbQuery.java +++ b/src/main/java/cokr/xit/fims/sndb/SndbQuery.java @@ -56,30 +56,30 @@ public class SndbQuery extends CmmnQuery { // 상세 검색 조건 // 동적 검색 조건 - private String levyExclSeCd; // 부과제외_부과 제외 구분 코드 - private String levyExclSeNm; // 부과제외_부과 제외 구분 명 - private String vltnCd; // 위반 코드 - private String vhrno; // 단속(TB_CRDN)_차량번호 - private String rtpyrNm; // 납부자(TB_PAYER)_납부자 명 - private String crdnSttsCd; // 단속(TB_CRDN)_단속 상태 코드 - private String crdnSttsCdFrom; // 단속(TB_CRDN)_단속 상태 코드 시작 - private String crdnSttsCdTo; // 단속(TB_CRDN)_단속 상태 코드 종료 - private String sndngSeCd; // 발송 구분 코드 - private String sndngSeCdFrom; // 발송 구분 코드 시작 - private String sndngSeCdTo; // 발송 구분 코드 종료 - private String sndngDtlSttsCd; // 발송 상세 상태 코드 + private String levyExclSeCd; // 부과제외_부과 제외 구분 코드 + private String levyExclSeNm; // 부과제외_부과 제외 구분 명 + private String vltnCd; // 위반 코드 + private String vhrno; // 단속(TB_CRDN)_차량번호 + private String rtpyrNm; // 납부자(TB_PAYER)_납부자 명 + private String crdnSttsCd; // 단속(TB_CRDN)_단속 상태 코드 + private String crdnSttsCdFrom; // 단속(TB_CRDN)_단속 상태 코드 시작 + private String crdnSttsCdTo; // 단속(TB_CRDN)_단속 상태 코드 종료 + private String sndngSeCd; // 발송 구분 코드 + private String sndngSeCdFrom; // 발송 구분 코드 시작 + private String sndngSeCdTo; // 발송 구분 코드 종료 + private String sndngDtlSttsCd; // 발송 상세 상태 코드 private String rcpnRelNm1; private String rcpnRelNm2; private String rcpnRelNm3; private String rcpnRelNm4; - private String tnocs; // 총건수 - private String printDocNo; // 출력 문서 번호 - private String printTtlNm; // 출력 제목 명 - private String printSvbtcDate; // 출력 공고 기한 + private String tnocs; // 총건수 + private String printDocNo; // 출력 문서 번호 + private String printTtlNm; // 출력 제목 명 + private String printSvbtcDate; // 출력 공고 기한 // ETC - private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회). - private String delRsn; // 삭제 사유 - private String crdnDelYn; // 단속 삭제 여부 + private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회). + private String delRsn; // 삭제 사유 + private String crdnDelYn; // 단속 삭제 여부 public String[] getCrdnIds() { return ifEmpty(crdnIds, () -> null); diff --git a/src/main/java/cokr/xit/fims/sndb/Svbtc.java b/src/main/java/cokr/xit/fims/sndb/Svbtc.java index 3c65201a..af107aed 100644 --- a/src/main/java/cokr/xit/fims/sndb/Svbtc.java +++ b/src/main/java/cokr/xit/fims/sndb/Svbtc.java @@ -17,6 +17,16 @@ public class Svbtc extends AbstractEntity { */ private String svbtcId; + /** + * 시군구 코드 + */ + private String sggCd; + + /** + * 업무 구분 코드 + */ + private String taskSeCd; + /** * 발송 구분 코드 */ @@ -78,9 +88,4 @@ public class Svbtc extends AbstractEntity { */ private String sndngDtlId; - /** - * 시군구 코드 - */ - private String sggCd; - } diff --git a/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java b/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java index 52ea0467..bf35b6d3 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java +++ b/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java @@ -6,7 +6,6 @@ import cokr.xit.foundation.data.DataObject; import cokr.xit.fims.sndb.SndbQuery; import cokr.xit.fims.sndb.SndngDtl; -import cokr.xit.fims.sndb.Svbtc; /**발송 상세 관리 서비스 인터페이스. * @@ -98,13 +97,4 @@ public interface SndngDtlService { */ String removeSndbk(SndngDtl sndngDtl); - /**공시송달 대장 정보를 삭제한다. - * @param svbtc 공시송달 대장 - * @return 저장 여부 - * - */ - String removeSvbtcEach(Svbtc svbtc); - } diff --git a/src/main/java/cokr/xit/fims/sndb/service/SvbtcService.java b/src/main/java/cokr/xit/fims/sndb/service/SvbtcService.java index 5d75af6a..abfc8f74 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/SvbtcService.java +++ b/src/main/java/cokr/xit/fims/sndb/service/SvbtcService.java @@ -75,4 +75,13 @@ public interface SvbtcService { */ String removeSvbtc(Svbtc svbtc); + /**공시송달 정보를 삭제한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + * + */ + String removeSvbtcEach(Svbtc svbtc); + } 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 a4ed2bb0..2aa8e9af 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 @@ -173,9 +173,8 @@ public class SndngBean extends AbstractBean { // 발송 상세 대장을 등록한다. for (int iLoop = 0; iLoop < trgtList.size(); iLoop++) { rtnMsg = createWrngSndngDtl(sndng, trgtList.get(iLoop).string("CRDN_ID")); - // 메시지 확인 - if (!rtnMsg.contains("[S]")) { - throw new RuntimeException(rtnMsg); // 예외를 발생시켜서 DB Rollback + if (!rtnMsg.contains("[S]")) { // 오류가 발생하였으면 종료.. + throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback } } @@ -351,8 +350,8 @@ public class SndngBean extends AbstractBean { for (int iLoop = 0; iLoop < advntceTrgtList.size(); iLoop++) { rtnMsg = createAdvntceSndngDtl(sndng, advntceTrgtList.get(iLoop).string("CRDN_ID")); // 메시지 확인 - if (!rtnMsg.contains("[S]")) { - throw new RuntimeException(rtnMsg.replace("[F]", "사전통지")); // 예외를 발생시켜서 DB Rollback + if (!rtnMsg.contains("[S]")) { // 오류가 발생하였으면 종료.. + throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback } } @@ -449,8 +448,8 @@ public class SndngBean extends AbstractBean { // 부과(TB_LEVY) 대장에 부과일자, 최초납기일자, 납기일자를 수정한다. rtnMsg = levyBean.updateRductLevyYmd(levy); - if (!rtnMsg.contains("[S]")) { - throw new RuntimeException(rtnMsg.replace("[F]", "사전통지 발송상세 등록 작업중 ")); // 예외를 발생시켜서 DB Rollback + if (!rtnMsg.contains("[S]")) { // 오류가 발생하였으면 종료.. + throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback } } } @@ -665,9 +664,8 @@ public class SndngBean extends AbstractBean { // 발송 상세 대장에 등록한다. for (int iLoop = 0; iLoop < nhtTrgtList.size(); iLoop++) { rtnMsg = createNhtSndngDtl(sndng, nhtTrgtList.get(iLoop).string("CRDN_ID")); - // 메시지 확인 - if (!rtnMsg.contains("[S]")) { - throw new RuntimeException(rtnMsg.replace("[F]", "고지서")); // 예외를 발생시켜서 DB Rollback + if (!rtnMsg.contains("[S]")) { // 오류가 발생하였으면 종료.. + throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback } } diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlBean.java index f342d03d..5898eded 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlBean.java @@ -643,7 +643,7 @@ public class SndngDtlBean extends AbstractBean { // 발송상세(TB_SNDNG_DTL)에 반송 정보를 등록한다. int rtnNocs = sndngDtlMapper.createSndbk(sndngDtl); if (rtnNocs != 1) { - throw new RuntimeException("[F] 발송상세의 반송 정보 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + throw new RuntimeException("발송상세의 반송 정보 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } return "[S] 작업이 정상 처리 되었습니다."; @@ -660,7 +660,7 @@ public class SndngDtlBean extends AbstractBean { // 발송상세(TB_SNDNG_DTL)에 반송 정보를 등록한다. int rtnNocs = sndngDtlMapper.updateSndbk(sndngDtl); if (rtnNocs != 1) { - throw new RuntimeException("[F] 발송상세의 반송 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + throw new RuntimeException("발송상세의 반송 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } return "[S] 작업이 정상 처리 되었습니다."; diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlServiceBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlServiceBean.java index eb65c40a..14655f42 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlServiceBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlServiceBean.java @@ -11,7 +11,6 @@ import cokr.xit.foundation.data.DataObject; import cokr.xit.fims.sndb.SndbQuery; import cokr.xit.fims.sndb.SndngDtl; -import cokr.xit.fims.sndb.Svbtc; import cokr.xit.fims.sndb.service.SndngDtlService; /**발송 상세 서비스 구현체. @@ -90,57 +89,4 @@ public class SndngDtlServiceBean extends AbstractServiceBean implements SndngDtl return sndngDtlBean.removeSndbk(sndngDtl); } - @Override - public String removeSvbtcEach(Svbtc svbtc) { - // 변수 선언 - String rtnMsg = ""; // 처리 결과 메시지 - - // 공시송달 Ids 건수를 확인하여 1건이하면.. 종료 - if (svbtc.getSndngDtlIds().length < 1) { - rtnMsg = "작업 중 선택 자료가 존재하지 않습니다."; - return rtnMsg; - } - - // 공시송달 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"); - - rtnMsg = sndngDtlBean.removeSndngDtlSvbtc(sndngDtl); - if (!rtnMsg.contains("[S]")) { - throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } - } - - // 공시송달 총건수 수정 호출 - int svbtcTnocs = sndngDtlBean.selectTnocsSndngDtlSvbtc(svbtc.getSvbtcId()); - - if (svbtcTnocs == 0) { // 총건수가 0건이라면 공시송달 대장에서 삭제 - rtnMsg = svbtcBean.removeSvbtc(svbtc); - } else { // 총건수를 확인하여 공시송달 대장에서 수정 - // 공시송달 정보 호출 - DataObject svbtcInfo = svbtcBean.getSvbtcInfo(new SndbQuery().setSvbtcId(svbtc.getSvbtcId())); - - Svbtc updtSvbtc = new Svbtc(); - updtSvbtc.setSvbtcYmd(svbtcInfo.string("SVBTC_YMD")); - updtSvbtc.setTtlNm(svbtcInfo.string("TTL_NM")); - updtSvbtc.setDocNo(svbtcInfo.string("DOC_NO")); - updtSvbtc.setEtcCn(svbtcInfo.string("ETC_CN")); - updtSvbtc.setTnocs(svbtcTnocs); - updtSvbtc.setSvbtcId(svbtc.getSvbtcId()); - - rtnMsg = svbtcBean.updateSvbtc(updtSvbtc); - } - - // 오류가 발생하였으면 종료.. - if (!rtnMsg.contains("[S]")) { - throw new RuntimeException(rtnMsg); // 예외를 발생시켜서 DB Rollback - } - - return "[S] 작업이 정상 처리 되었습니다."; - } - } diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcBean.java index 95d02f3e..ab26a4c2 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcBean.java @@ -193,6 +193,16 @@ public class SvbtcBean extends AbstractBean { public String removeSvbtc(Svbtc svbtc) { // 변수 선언 int rtnNocs = -1; // 처리 결과 건수 + String rtnMsg = ""; // 처리 결과 메시지 + + // 공시송달(TB_SVBTC) 정보를 조회한다. + DataObject svbtcInfo = svbtcMapper.selectSvbtcInfo(new SndbQuery().setSvbtcId(svbtc.getSvbtcId())); + + // 삭제 대상 자료 ID 확인 + if (svbtcInfo.string("SVBTC_ID").equals("")) { + rtnMsg = "[F] 작업 중 오류가 발생하였습니다.
공시송달 대장 자료가 존재하지 않습니다."; + return rtnMsg; + } // 공시송달(TB_SVBTC) 대장을 삭제한다. rtnNocs = svbtcMapper.deleteSvbtc(svbtc); @@ -200,17 +210,80 @@ public class SvbtcBean extends AbstractBean { throw new RuntimeException("공시송달 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } - // 발송 상세(TB_SNDNG_DTL) 대장에서 공시송달 정보를 삭제한다. SndngDtl sndngDtl = new SndngDtl(); + sndngDtl.setSndngDtlIds(svbtc.getSndngDtlIds()); sndngDtl.setSvbtcId(svbtc.getSvbtcId()); sndngDtl.setSndngDtlSttsCd("05"); + // 발송 상세(TB_SNDNG_DTL) 대장에서 공시송달 정보를 삭제한다. rtnNocs = sndngDtlMapper.deleteSndngDtlSvbtc(sndngDtl); - if (rtnNocs != 1) { + if (rtnNocs < 1) { throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } return "[S] 작업이 정상 처리 되었습니다."; } + /**공시송달 대장 정보를 삭제한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + * + */ + public String removeSvbtcEach(Svbtc svbtc) { + // 변수 선언 + int rtnNocs = -1; // 처리 결과 건수 + String rtnMsg = ""; // 처리 결과 메시지 + + // 공시송달(TB_SVBTC) 정보를 조회한다. + DataObject svbtcInfo = svbtcMapper.selectSvbtcInfo(new SndbQuery().setSvbtcId(svbtc.getSvbtcId())); + + // 삭제 대상 자료 ID 확인 + if (svbtcInfo.string("SVBTC_ID").equals("")) { + rtnMsg = "[F] 작업 중 오류가 발생하였습니다.
공시송달 대장 자료가 존재하지 않습니다."; + return rtnMsg; + } + + // 총건수 + int trgtNocs = svbtcInfo.number("TNOCS").intValue() - svbtc.getSndngDtlIds().length; + + if (trgtNocs == 0) { // 전체 삭제 + rtnMsg = removeSvbtc(svbtc); + if (!rtnMsg.contains("[S]")) { // 오류가 발생하였으면 종료.. + throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback + } + } else if (trgtNocs >= 1) { // 일부 삭제 + SndngDtl sndngDtl = new SndngDtl(); + sndngDtl.setSndngDtlIds(svbtc.getSndngDtlIds()); + sndngDtl.setSvbtcId(svbtc.getSvbtcId()); + sndngDtl.setSndngDtlSttsCd("05"); + + // 발송 상세(TB_SNDNG_DTL) 대장에서 공시송달 정보를 삭제한다. + rtnNocs = sndngDtlMapper.deleteSndngDtlSvbtc(sndngDtl); + if (rtnNocs < 1) { + throw new RuntimeException("발송 상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + Svbtc updtSvbtc = new Svbtc(); + updtSvbtc.setSvbtcYmd(svbtcInfo.string("SVBTC_YMD")); // 공시송달 일자 + updtSvbtc.setSvbtcEndYmd(svbtcInfo.string("SVBTC_END_YMD")); // 공시송달 종료 일자 + updtSvbtc.setTtlNm(svbtcInfo.string("TTL_NM")); // 제목 명 + updtSvbtc.setDocNo(svbtcInfo.string("DOC_NO")); // 문서 번호 + updtSvbtc.setEtcCn(svbtcInfo.string("ETC_CN")); // 기타 내용 + updtSvbtc.setTnocs(trgtNocs); // 총건수 + updtSvbtc.setSvbtcId(svbtc.getSvbtcId()); + + // 공시송달(TB_SVBTC) 정보를 수정한다. + rtnMsg = updateSvbtc(updtSvbtc); + if (!rtnMsg.contains("[S]")) { // 오류가 발생하였으면 종료.. + throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback + } + } else { + throw new RuntimeException("공시송달 총건수 보다 선택건수가 많이 조회됩니다."); + } + + return "[S] 작업이 정상 처리 되었습니다."; + } + } diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcServiceBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcServiceBean.java index 384158fd..4d6e109c 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcServiceBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcServiceBean.java @@ -66,40 +66,12 @@ public class SvbtcServiceBean extends AbstractServiceBean implements SvbtcServic @Override public String removeSvbtc(Svbtc svbtc) { - // 변수 선언 - String rtnMsg = ""; // 처리 결과 메시지 - - // 공시송달 Id 및 공시송달 Ids 확인하여 null이면 종료 - if (svbtc.getSvbtcId() == null && svbtc.getSvbtcIds() == null) { - rtnMsg = "[F] 작업 중 선택 자료가 존재하지 않습니다."; - return rtnMsg; - } - - // 공시송달 삭제 처리 - if (svbtc.getSvbtcId() != null) { - rtnMsg = svbtcBean.removeSvbtc(svbtc); - } else { - // 공시송달 Ids 를 확인하여 건수가 1보다 작다면 종료.. - if (svbtc.getSvbtcIds().length < 1) { - rtnMsg = "[F] 작업 중 선택 자료가 존재하지 않습니다."; - return rtnMsg; - } - - // 공시송달 Ids 만큼 반복.. - for (int iLoop = 0; iLoop < svbtc.getSvbtcIds().length; iLoop++) { - // 부과제외 ID 설정 - svbtc.setSvbtcId(svbtc.getSvbtcIds()[iLoop]); - - // 공시송달 삭제 호출 - rtnMsg = svbtcBean.removeSvbtc(svbtc); - // 오류가 발생하였으면 종료.. - if (!rtnMsg.contains("[S]")) { - return rtnMsg; - } - } - } - - return rtnMsg; + return svbtcBean.removeSvbtc(svbtc); + } + + @Override + public String removeSvbtcEach(Svbtc svbtc) { + return svbtcBean.removeSvbtcEach(svbtc); } } 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 024cdca3..dffd0ed9 100644 --- a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java +++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java @@ -841,6 +841,23 @@ public class Sndb01Controller extends ApplicationController { } } + + + + + + + + + + + + + + + + + /**고지서 발송 대상 자료 메인화면(sndb/sndb01/090-main)을 연다. * @return /sndb/sndb01/090-main */ @@ -1492,6 +1509,7 @@ public class Sndb01Controller extends ApplicationController { return mav.addObject("pageName", "sndb01240") // View(jsp)에서 사용할 id 뒤에 붙일 suffix .addObject("infoPrefix", "svbtc") // prefix + .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) .addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 시군구에서 사용하는 업무 목록 .addObject("FIM047List", commonCodes.get("FIM047")) // 발송 구분 코드(SNDNG_SE_CD) @@ -1564,17 +1582,18 @@ public class Sndb01Controller extends ApplicationController { */ @Task @RequestMapping(name="공시송달 상세 화면", value=METHOD_URL.getServiceByPublicNoticeDetailInfo) - public ModelAndView getServiceByPublicNoticeDetailInfo(SndbQuery req) { - // + public ModelAndView getServiceByPublicNoticeDetailInfo(HttpServletRequest hReq, SndbQuery req) { ModelAndView mav = getServiceByPublicNoticeDetailList(req); mav.setViewName("fims/sndb/sndb01250-info"); return mav - .addObject("pageName", "sndb01250") // View(jsp)에서 사용할 id 뒤에 붙일 suffix - .addObject("infoPrefix", "svbtcDtl") // prefix - .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 - .addObject("mainQuery", toJson(req)) // 검색 조건 + .addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName + .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 + .addObject("pageName", "sndb01250") // View(jsp)에서 사용할 id 뒤에 붙일 suffix + .addObject("infoPrefix", "svbtcDtl") // prefix + .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl + .addObject("mainQuery", toJson(req)) // 검색 조건 .addObject("svbtcDtlList", toJson(mav.getModel().get("svbtcDtlList"))) // 자료 ; } @@ -1660,8 +1679,6 @@ public class Sndb01Controller extends ApplicationController { @Task @RequestMapping(name="공시송달 한글 저장", value=METHOD_URL.makeSvbtcFileFromHwpFormat) public ModelAndView makeSvbtcFileFromHwpFormat(SndbQuery req) { - - UserInfo userInfo = currentUser(); fimsOgdpBean.initUserInfo(userInfo); Print print = new Print(); @@ -1678,6 +1695,7 @@ public class Sndb01Controller extends ApplicationController { HashMap result = hwpFormat.makeFile().andDownload(); ModelAndView mav = new ModelAndView("downloadView"); mav.addAllObjects(result); + return mav; } @@ -1690,18 +1708,17 @@ public class Sndb01Controller extends ApplicationController { */ @Task @RequestMapping(name="공시송달 정보", value=METHOD_URL.getServiceByPublicNoticeInfo) - public ModelAndView getServiceByPublicNoticeInfo(SndbQuery req) { + public ModelAndView getServiceByPublicNoticeInfo(HttpServletRequest hReq, SndbQuery req) { // 공시송달 정보 조회 - DataObject svbtcInfo = svbtcService.getSvbtcInfo(req); + DataObject info = svbtcService.getSvbtcInfo(req); // 등록을 호출하였지만 등록된 공시송달 ID가 있는지 확인. - if (req.getCallPurpose().equals("create") && !svbtcInfo.string("SVBTC_ID").equals("")) { + if (req.getCallPurpose().equals("create") && !info.string("SVBTC_ID").equals("")) { ModelAndView mav = new ModelAndView("jsonView"); return mav.addObject("rtnMsg", "이미 등록된 공시송달 정보가 있습니다."); } else { boolean json = jsonResponse(); - ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sndb/sndb01260-info"); // View(jsp)에서 사용할 공통코드를 조회 @@ -1710,11 +1727,13 @@ public class Sndb01Controller extends ApplicationController { addCodes(commonCodes, mav, "FIM047", "FIM054"); return mav - .addObject("pageName", "sndb01260") // View(jsp)에서 사용할 id 뒤에 붙일 suffix - .addObject("infoPrefix", "svbtc") // prefix - .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 - .addObject("mainQuery", json ? req : toJson(req)) // Query - .addObject("svbtcInfo", json ? svbtcInfo : toJson(svbtcInfo)) // 공시송달 정보 + .addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName + .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 + .addObject("pageName", "sndb01260") // View(jsp)에서 사용할 id 뒤에 붙일 suffix + .addObject("infoPrefix", "svbtc") // prefix + .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl + .addObject("mainQuery", json ? req : toJson(req)) // Query + .addObject("svbtcInfo", json ? info : toJson(info)) // 공시송달 정보 ; } } @@ -1779,7 +1798,23 @@ public class Sndb01Controller extends ApplicationController { @RequestMapping(name="공시송달 삭제", value=METHOD_URL.removeServiceByPublicNotice) public ModelAndView removeServiceByPublicNotice(Svbtc svbtc) { boolean saved = false; - String rtnMsg = svbtcService.removeSvbtc(svbtc); + String rtnMsg = ""; + + if (svbtc.getSvbtcIds() == null || svbtc.getSvbtcIds().length < 1) { + rtnMsg = svbtcService.removeSvbtc(svbtc); + } else { + // 공시송달 Ids 만큼 삭제 반복.. + for (String svbtcId : svbtc.getSvbtcIds()) { + Svbtc deltSvbtc = new Svbtc(); + deltSvbtc.setSvbtcId(svbtcId); + deltSvbtc.setDelRsn(svbtc.getDelRsn()); + + // 공시송달 삭제 호출 + rtnMsg = svbtcService.removeSvbtc(deltSvbtc); + if (!rtnMsg.contains("[S]")) // 오류가 발생하였으면 종료.. + break; + } + } if (rtnMsg.contains("[S]")) { saved = true; @@ -1804,7 +1839,7 @@ public class Sndb01Controller extends ApplicationController { @RequestMapping(name="공시송달 개별 삭제", value=METHOD_URL.removeServiceByPublicNoticeEach) public ModelAndView removeServiceByPublicNoticeEach(Svbtc svbtc) { boolean saved = false; - String rtnMsg = sndngDtlService.removeSvbtcEach(svbtc); + String rtnMsg = svbtcService.removeSvbtcEach(svbtc); if (rtnMsg.contains("[S]")) { saved = true; @@ -1869,7 +1904,6 @@ public class Sndb01Controller extends ApplicationController { } } - Print print = new Print(); UserInfo userInfo = currentUser(); fimsOgdpBean.initUserInfo(userInfo); diff --git a/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml b/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml index 150a7a28..0d574162 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml @@ -103,127 +103,124 @@ - SELECT SD.SNDNG_DTL_ID - , SD.CRDN_ID - , SD.SVBTC_ID - , SD.LINK_TRGT_CD - , SD.LINK_MNG_KEY - , SD.SNDNG_SE_CD - , SD.SNDNG_YMD - , SD.SNDNG_END_YMD - , SD.RCPN_NM - , SD.RCPN_BRDT - , SD.RCPN_ADDR - , SD.RCPN_DTL_ADDR - , SD.RCPN_ZIP - , SD.CON_KEY - , SD.RG_NO - , SD.DLVR_YMD - , SD.DLVR_TM - , SD.UNDLVR_RSN_CD - , SD.UNDLVR_RSN_NM - , SD.ACTL_RCPN_NM - , SD.RCPN_REL_NM - , SD.SNDNG_DTL_STTS_CD - , SD.BFR_SNDNG_DTL_STTS_CD - , SD.BFR_DLVR_YMD - , SD.BFR_DLVR_HR - , SD.SNDNG_RCVMT_CD - , SD.ADDR_CHG_CD - , SD.CRDN_DT - , SD.VHRNO - , SD.CRDN_STDG_NM - , SD.CRDN_PLC - , SD.FYR - , SD.LEVY_NO - , SD.LEVY_YMD - , SD.DUDT_YMD - , SD.DUDT_AFTR_YMD - , SD.FFNLG_AMT - , SD.PCPTAX - , SD.ADAMT - , SD.SUM_AMT - , SD.DUDT_AFTR_AMT - , SD.TAX_NO - , SD.EPAYNO - , SD.BANK_NM - , SD.VR_ACTNO - , SD.BANK_NM2 - , SD.VR_ACTNO2 - , SD.BANK_NM3 - , SD.VR_ACTNO3 - , SD.BANK_NM4 - , SD.VR_ACTNO4 - , SD.BANK_NM5 - , SD.VR_ACTNO5 - , SD.BANK_NM6 - , SD.VR_ACTNO6 - , SD.BANK_NM7 - , SD.VR_ACTNO7 - , SD.BANK_NM8 - , SD.VR_ACTNO8 - , SD.BANK_NM9 - , SD.VR_ACTNO9 - , SD.BANK_NM10 - , SD.VR_ACTNO10 - , SD.BANK_NM11 - , SD.VR_ACTNO11 - , SD.BANK_NM12 - , SD.VR_ACTNO12 - , SD.BANK_NM13 - , SD.VR_ACTNO13 - , SD.BANK_NM14 - , SD.VR_ACTNO14 - , SD.BANK_NM15 - , SD.VR_ACTNO15 - , SD.BANK_NM16 - , SD.VR_ACTNO16 - , SD.BANK_NM17 - , SD.VR_ACTNO17 - , SD.BANK_NM18 - , SD.VR_ACTNO18 - , SD.BANK_NM19 - , SD.VR_ACTNO19 - , SD.BANK_NM20 - , SD.VR_ACTNO20 - , SD.REG_DT - , SD.RGTR - , SD.MDFCN_DT - , SD.MDFR - , SD.DEL_DT - , SD.DLTR - , (GET_BRDT_FORMAT(SD.RCPN_BRDT, '.')) AS RCPN_BRDT_MASK - , (GET_MASK_DATE(SD.SNDNG_YMD, '-')) AS SNDNG_YMD_MASK - , (GET_MASK_DATE(SD.SNDNG_END_YMD, '-')) AS SNDNG_END_YMD_MASK - , (GET_MASK_DATE(SD.LEVY_YMD, '.')) AS LEVY_YMD_MASK - , (GET_MASK_DATE(SD.DUDT_YMD, 'K')) AS DUDT_YMD_MASK_KOR - , (GET_MASK_DATE(SD.DUDT_YMD, '.')) AS DUDT_YMD_MASK - , (GET_MASK_DATE(SD.DUDT_AFTR_YMD, '.')) AS DUDT_AFTR_YMD_MASK - , (GET_MASK_EPAYNO(SD.EPAYNO)) AS EPAYNO_MASK - , (SELECT GET_CODE_NM('FIM047', SD.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM + SELECT SD.SNDNG_DTL_ID + , SD.CRDN_ID + , SD.SVBTC_ID + , SD.LINK_TRGT_CD + , SD.LINK_MNG_KEY + , SD.SNDNG_SE_CD + , (SELECT GET_CODE_NM('FIM047', SD.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM + , SD.SNDNG_YMD + , (SELECT GET_MASK_DATE(SD.SNDNG_YMD, '-') FROM DUAL) AS SNDNG_YMD_MASK + , SD.SNDNG_END_YMD + , (SELECT GET_MASK_DATE(SD.SNDNG_END_YMD, '-') FROM DUAL) AS SNDNG_END_YMD_MASK + , SD.RCPN_NM + , SD.RCPN_BRDT + , (SELECT GET_BRDT_FORMAT(SD.RCPN_BRDT, '.') FROM DUAL) AS RCPN_BRDT_MASK + , SD.RCPN_ADDR + , SD.RCPN_DTL_ADDR + , SD.RCPN_ZIP + , SD.CON_KEY + , SD.RG_NO + , SD.DLVR_YMD + , SD.DLVR_TM + , SD.UNDLVR_RSN_CD + , SD.UNDLVR_RSN_NM + , SD.ACTL_RCPN_NM + , SD.RCPN_REL_NM + , SD.SNDNG_DTL_STTS_CD , (SELECT GET_CODE_NM('FIM050', SD.SNDNG_DTL_STTS_CD) FROM DUAL) AS SNDNG_DTL_STTS_NM - , (SELECT GET_CODE_NM('FIM050', SD.BFR_SNDNG_DTL_STTS_CD) FROM DUAL) AS BFR_SNDNG_DTL_STTS_NM - , (SELECT GET_CODE_NM('FIM051', SD.SNDNG_RCVMT_CD) FROM DUAL) AS SNDNG_RCVMT_NM + , SD.BFR_SNDNG_DTL_STTS_CD + , (SELECT GET_CODE_NM('FIM050', SD.BFR_SNDNG_DTL_STTS_CD) FROM DUAL) AS BFR_SNDNG_DTL_STTS_NM + , SD.BFR_DLVR_YMD + , SD.BFR_DLVR_HR + , SD.SNDNG_RCVMT_CD + , (SELECT GET_CODE_NM('FIM051', SD.SNDNG_RCVMT_CD) FROM DUAL) AS SNDNG_RCVMT_NM + , SD.ADDR_CHG_CD + , SD.CRDN_DT + , SD.VHRNO + , SD.CRDN_STDG_NM + , SD.CRDN_PLC + , SD.FYR + , SD.LEVY_NO + , SD.LEVY_YMD + , (SELECT GET_MASK_DATE(SD.LEVY_YMD, '.') FROM DUAL) AS LEVY_YMD_MASK + , SD.DUDT_YMD + , (SELECT GET_MASK_DATE(SD.DUDT_YMD, '.') FROM DUAL) AS DUDT_YMD_MASK + , (SELECT GET_MASK_DATE(SD.DUDT_YMD, 'K') FROM DUAL) AS DUDT_YMD_MASK_KOR + , SD.DUDT_AFTR_YMD + , (SELECT GET_MASK_DATE(SD.DUDT_AFTR_YMD, '.') FROM DUAL) AS DUDT_AFTR_YMD_MASK + , SD.FFNLG_AMT + , SD.PCPTAX + , SD.ADAMT + , SD.SUM_AMT + , SD.DUDT_AFTR_AMT + , SD.TAX_NO + , SD.EPAYNO + , (SELECT GET_MASK_EPAYNO(SD.EPAYNO) FROM DUAL) AS EPAYNO_MASK + , SD.BANK_NM + , SD.VR_ACTNO + , SD.BANK_NM2 + , SD.VR_ACTNO2 + , SD.BANK_NM3 + , SD.VR_ACTNO3 + , SD.BANK_NM4 + , SD.VR_ACTNO4 + , SD.BANK_NM5 + , SD.VR_ACTNO5 + , SD.BANK_NM6 + , SD.VR_ACTNO6 + , SD.BANK_NM7 + , SD.VR_ACTNO7 + , SD.BANK_NM8 + , SD.VR_ACTNO8 + , SD.BANK_NM9 + , SD.VR_ACTNO9 + , SD.BANK_NM10 + , SD.VR_ACTNO10 + , SD.BANK_NM11 + , SD.VR_ACTNO11 + , SD.BANK_NM12 + , SD.VR_ACTNO12 + , SD.BANK_NM13 + , SD.VR_ACTNO13 + , SD.BANK_NM14 + , SD.VR_ACTNO14 + , SD.BANK_NM15 + , SD.VR_ACTNO15 + , SD.BANK_NM16 + , SD.VR_ACTNO16 + , SD.BANK_NM17 + , SD.VR_ACTNO17 + , SD.BANK_NM18 + , SD.VR_ACTNO18 + , SD.BANK_NM19 + , SD.VR_ACTNO19 + , SD.BANK_NM20 + , SD.VR_ACTNO20 + , SD.REG_DT + , SD.RGTR , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.RGTR) AS RGTR_NM + , SD.MDFCN_DT + , SD.MDFR , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.MDFR) AS MDFR_NM - , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.DLTR) AS DLTR_NM - , S.SNDNG_ID - , S.SGG_CD - , S.DEPT_CD - , S.TASK_SE_CD - , S.SNDNG_REG_SE_CD - , S.LEVY_BGNG_YMD - , S.LEVY_END_YMD - , S.TTL_NM - , S.DOC_NO - , S.ETC_CN - , S.TNOCS - , S.GRAMT - , S.DIV_KB - , S.EPOST_NOTICE_ID - , S.SNDNG_STTS_CD - , S.RESND_YN - , (SELECT GET_CODE_NM('EGP002', S.DIV_KB) FROM DUAL) AS DIV_KB_NM + , S.SNDNG_ID + , S.SGG_CD + , S.DEPT_CD + , S.TASK_SE_CD + , S.SNDNG_REG_SE_CD + , S.LEVY_BGNG_YMD + , S.LEVY_END_YMD + , S.TTL_NM + , S.DOC_NO + , S.ETC_CN + , S.TNOCS + , S.GRAMT + , S.DIV_KB + , (SELECT GET_CODE_NM('EGP002', S.DIV_KB) FROM DUAL) AS DIV_KB_NM + , S.EPOST_NOTICE_ID + , S.SNDNG_STTS_CD + , S.RESND_YN FROM TB_SNDNG_DTL SD LEFT OUTER JOIN TB_SNDNG S ON (SD.SNDNG_ID = S.SNDNG_ID) @@ -233,21 +230,21 @@ - AND SD.SNDNG_ID = #{sndngId} + AND SD.SNDNG_ID = #{sndngId} - AND SD.SNDNG_DTL_ID IN ( + AND SD.SNDNG_DTL_ID IN ( #{sndngDtlId} ) - AND SD.SNDNG_DTL_ID = #{sndngDtlId} + AND SD.SNDNG_DTL_ID = #{sndngDtlId} - AND SD.CRDN_ID = #{crdnId} + AND SD.CRDN_ID = #{crdnId} - AND SD.DEL_YN = #{delYn} + AND SD.DEL_YN = #{delYn} @@ -1044,8 +1041,10 @@ , MDFCN_DT = , MDFR = #{modifiedBy} WHERE SVBTC_ID = #{svbtcId} - - AND SNDNG_DTL_ID = #{sndngDtlId} + + AND SNDNG_DTL_ID IN ( + #{sndngDtlId} + ) AND DEL_YN = 'N' diff --git a/src/main/resources/sql/mapper/fims/sndb/svbtc-mapper.xml b/src/main/resources/sql/mapper/fims/sndb/svbtc-mapper.xml index 59c29ebc..fdce898b 100644 --- a/src/main/resources/sql/mapper/fims/sndb/svbtc-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/svbtc-mapper.xml @@ -8,7 +8,9 @@ ============================ --> - + + + @@ -28,8 +30,11 @@ SELECT SV.SVBTC_ID + , SV.SGG_CD + , SV.TASK_SE_CD + , (GET_CODE_NM('FIM054', SV.TASK_SE_CD)) AS TASK_SE_NM , SV.SNDNG_SE_CD - , (SELECT GET_CODE_NM('FIM047', SV.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM + , (GET_CODE_NM('FIM047', SV.SNDNG_SE_CD)) AS SNDNG_SE_NM , SV.SVBTC_YMD , SV.SVBTC_END_YMD , SV.TTL_NM @@ -43,7 +48,7 @@ , SV.MDFCN_DT , SV.MDFR , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SV.MDFR) AS MDFR_NM - FROM TB_SVBTC SV + FROM TB_SVBTC SV /* 공시송달 상세 객체 가져오기(svbtcMapper.selectSvbtcDtls) */ SELECT SV.SVBTC_ID , SV.SVBTC_YMD - , (SELECT GET_MASK_DATE(SV.SVBTC_YMD, '-') FROM DUAL) AS SVBTC_YMD + , (GET_MASK_DATE(SV.SVBTC_YMD, '-')) AS SVBTC_YMD , SV.SVBTC_END_YMD - , (SELECT GET_MASK_DATE(SV.SVBTC_END_YMD, '-') FROM DUAL) AS SVBTC_END_YMD + , (GET_MASK_DATE(SV.SVBTC_END_YMD, '-')) AS SVBTC_END_YMD , SV.DOC_NO , SV.TTL_NM , SV.ETC_CN @@ -265,13 +272,14 @@ , SD.RCPN_ZIP , SD.RG_NO , SD.DLVR_YMD - , (SELECT GET_MASK_DATE(SD.DLVR_YMD, '-') FROM DUAL) AS DLVR_YMD_MASK + , (GET_MASK_DATE(SD.DLVR_YMD, '-')) AS DLVR_YMD_MASK , SD.DLVR_TM , SD.UNDLVR_RSN_NM , SD.ACTL_RCPN_NM , SD.RCPN_REL_NM - , (SELECT GET_MASK_NAME(SD.RCPN_NM, 'MIDDLE', 2, '*') FROM DUAL) AS RCPN_NM_MASK - , (SELECT GET_INST_LEADER(S.INST_NM, S.INST_SE_CD) FROM DUAL) AS INST_LEADER + , (GET_MASK_NAME(SD.RCPN_NM, 'MIDDLE', 2, '*')) AS RCPN_NM_MASK + , SGG.INST_NM + , (GET_INST_LEADER(SGG.INST_NM, SGG.INST_SE_CD)) AS INST_LEADER , SGG.OFFCS_FILE_PATH , DPT.DEPT_TELNO , (CONCAT(SGG.SGG_NM, ' ', DPT.DEPT_NM)) AS SGG_DEPT_NM @@ -281,14 +289,9 @@ FROM TB_SVBTC SV INNER JOIN TB_SNDNG_DTL SD ON (SV.SVBTC_ID = SD.SVBTC_ID) INNER JOIN TB_SNDNG S ON (SD.SNDNG_ID = S.SNDNG_ID) - INNER JOIN TB_SGG SGG ON (S.SGG_CD = SGG.SGG_CD AND SGG.SGG_CD = #{sggCd}) - INNER JOIN TB_DEPT DPT ON (SGG.SGG_CD = DPT.SGG_CD AND DPT.DEPT_CD = #{deptCd}) + INNER JOIN TB_SGG SGG ON (S.SGG_CD = SGG.SGG_CD) + INNER JOIN TB_DEPT DPT ON (S.SGG_CD = DPT.SGG_CD AND S.DEPT_CD = DPT.DEPT_CD) - - AND SV.SVBTC_ID IN ( - #{svbtcId} - ) - AND SV.SVBTC_ID = #{svbtcId} @@ -332,6 +335,8 @@ INSERT INTO TB_SVBTC ( SVBTC_ID + , SGG_CD + , TASK_SE_CD , SNDNG_SE_CD , SVBTC_YMD , SVBTC_END_YMD @@ -347,6 +352,8 @@ ) VALUES ( #{svbtcId} + , #{sggCd} + , #{taskSeCd} , #{sndngSeCd} , #{svbtcYmd} , #{svbtcEndYmd} diff --git a/src/main/resources/template/hwp/svbtcList.hwp b/src/main/resources/template/hwp/svbtcList.hwp index 8a40b65add5e9a875831758591b11157969442f5..5f3119f5c48ec8dda9e4c2e133109cdf29f9d6fd 100644 GIT binary patch delta 2775 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 Hl>6~NuS=wx delta 5468 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 G>HY?2WGIgS diff --git a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02020-info.jsp index 8aa9e710..5028ac30 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02020-info.jsp @@ -4,7 +4,7 @@ 우편통합 안내문 정보 -

+
@@ -60,7 +60,7 @@
-
+