From 8be358f5323f28037f1578e4ce2b22d7ba38785f Mon Sep 17 00:00:00 2001 From: jjh Date: Tue, 9 Jan 2024 17:05:18 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B3=B5=EC=8B=9C=EC=86=A1=EB=8B=AC=20?= =?UTF-8?q?=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/cokr/xit/fims/sndb/Svbtc.java | 27 +- .../cokr/xit/fims/sndb/dao/SvbtcMapper.java | 10 + .../fims/sndb/service/SndngDtlService.java | 45 +-- .../xit/fims/sndb/service/SvbtcService.java | 80 +++++ .../fims/sndb/service/bean/SndngDtlBean.java | 110 ------- .../service/bean/SndngDtlServiceBean.java | 62 +--- .../xit/fims/sndb/service/bean/SvbtcBean.java | 193 +++++++++++ .../sndb/service/bean/SvbtcServiceBean.java | 107 ++++++ .../xit/fims/sndb/web/Sndb01Controller.java | 277 ++++++++++------ .../xit/fims/sprt/web/Sprt02Controller.java | 27 +- .../cokr/xit/fims/task/web/DpvController.java | 62 ++-- .../sql/mapper/fims/sndb/svbtc-mapper.xml | 75 ++++- .../WEB-INF/jsp/fims/excl/excl01010-main.jsp | 57 ++-- .../WEB-INF/jsp/fims/excl/excl01020-info.jsp | 41 ++- .../WEB-INF/jsp/fims/sndb/sndb01240-main.jsp | 307 ++++++++---------- .../WEB-INF/jsp/fims/sndb/sndb01260-info.jsp | 207 ++++++++++++ 16 files changed, 1105 insertions(+), 582 deletions(-) create mode 100644 src/main/java/cokr/xit/fims/sndb/service/SvbtcService.java create mode 100644 src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcBean.java create mode 100644 src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcServiceBean.java create mode 100644 src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01260-info.jsp diff --git a/src/main/java/cokr/xit/fims/sndb/Svbtc.java b/src/main/java/cokr/xit/fims/sndb/Svbtc.java index 92884adf..3e2a1ea8 100644 --- a/src/main/java/cokr/xit/fims/sndb/Svbtc.java +++ b/src/main/java/cokr/xit/fims/sndb/Svbtc.java @@ -12,16 +12,6 @@ import lombok.Setter; @Setter public class Svbtc extends AbstractEntity { - /** - * 발송 상세 IDs - */ - private String[] sndngDtlIDs; - - /** - * 발송 상세 ID - */ - private String sndngDtlId; - /** * 공시송달 ID */ @@ -70,11 +60,26 @@ public class Svbtc extends AbstractEntity { /** * 삭제 여부 */ - private String delYn; + private String delYN; /** * 삭제 사유 */ private String delRsn; + /** + * 공시송달 IDs + */ + private String[] svbtcIDs; + + /** + * 발송 상세 IDs + */ + private String[] sndngDtlIDs; + + /** + * 발송 상세 ID + */ + private String sndngDtlId; + } 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 ee69c8e8..ee6261c3 100644 --- a/src/main/java/cokr/xit/fims/sndb/dao/SvbtcMapper.java +++ b/src/main/java/cokr/xit/fims/sndb/dao/SvbtcMapper.java @@ -40,6 +40,10 @@ public interface SvbtcMapper extends AbstractMapper { * @return 부과제외 대장 객체 */ default DataObject selectSvbtcInfo(SndbQuery req) { + // 삭제 여부 확인 + if (req.getDelYN() == null) { + req.setDelYN("N"); + } // 기본 정렬 if (req.getOrderBy() == null) { req.setOrderBy("SV.SVBTC_ID DESC"); @@ -50,6 +54,12 @@ public interface SvbtcMapper extends AbstractMapper { return !svbtcs.isEmpty() ? svbtcs.get(0) : null; } + /**지정한 조건에 따라 공시송달 상세 목록을 조회하여 반환한다.
+ * @param req 공시송달 대장 조회 조건 + * @return 공시송달 대장 목록 + */ + List selectSvbtcDtlList(SndbQuery req); + /**지정한 조건에 따라 공시송달 상세 객체들을 반환한다. * @param req 공시송달 대장 조회 조건 * @return 공시송달 대장 객체 목록 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 0c8f1107..ba4b3294 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java +++ b/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java @@ -121,59 +121,22 @@ public interface SndngDtlService { */ List getSndbkList(SndbQuery req); - /**지정한 조건에 따라 공시송달 대장 목록을 조회하여 반환한다. - * @param req 공시송달 대장 조회 조건 - * @return 공시송달 대장 목록 - */ - List getSvbtcList(SndbQuery req); - /**지정한 조건에 따라 공시송달 대장 객체들을 반환한다. - * @param req 공시송달 대장 조회 조건 - * @return 공시송달 대장 객체 목록 - */ - List getSvbtcs(SndbQuery req); - /**지정한 조건에 따라 공시송달 상세 객체들을 반환한다. - * @param req 공시송달 대장 조회 조건 - * @return 공시송달 대장 객체 목록 - */ - List getSvbtcDtls(SndbQuery req); - /**공시송달 대장 정보를 등록한다. - * @param svbtc 공시송달 대장 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - String createSvbtc(Svbtc svbtc); - /**공시송달 대장 정보를 수정한다. - * @param svbtc 공시송달 대장 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - String updateSvbtc(Svbtc svbtc); - /**공시송달 대장 정보를 삭제한다. - * @param svbtc 공시송달 대장 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - String removeSvbtc(Svbtc svbtc); - /**공시송달 대장 정보를 삭제한다. + + + /**공시송달 대장 정보를 등록한다. * @param svbtc 공시송달 대장 * @return 저장 여부 *
  • 저장됐으면 true
  • *
  • 그렇지 않으면 false
  • *
*/ - String removeSvbtcList(SndbQuery req); + String createSvbtc(Svbtc svbtc); /**공시송달 대장 정보를 삭제한다. * @param 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 new file mode 100644 index 00000000..ba7b8f46 --- /dev/null +++ b/src/main/java/cokr/xit/fims/sndb/service/SvbtcService.java @@ -0,0 +1,80 @@ +package cokr.xit.fims.sndb.service; + +import java.util.List; + +import cokr.xit.foundation.data.DataObject; + +import cokr.xit.fims.sndb.Svbtc; +import cokr.xit.fims.sndb.SndbQuery; + +/**공시송달 대장 관리 서비스 인터페이스. + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-01-09	mjkhan 최초 작성
+ * ================================
+ * 
+ */ +public interface SvbtcService { + + /**지정한 조건에 따라 공시송달 대장 목록을 조회하여 반환한다. + * @param req 공시송달 대장 조회 조건 + * @return 공시송달 대장 목록 + */ + List getSvbtcList(SndbQuery req); + + /**지정한 조건에 따라 공시송달 대장 객체들을 반환한다. + * @param req 공시송달 대장 조회 조건 + * @return 공시송달 대장 객체 목록 + */ + List getSvbtcs(SndbQuery req); + + /**지정한 조건에 따라 공시송달 대장 객체의 마지막 1개를 반환한다. + * @param req 공시송달 대장 조회 조건 + * @return 공시송달 대장 객체 목록 + */ + DataObject getSvbtcInfo(SndbQuery req); + + /**지정한 조건에 따라 공시송달 상세 목록을 조회하여 반환한다. + * @param req 공시송달 대장 조회 조건 + * @return 공시송달 대장 목록 + */ + List getSvbtcDtlList(SndbQuery req); + + /**지정한 조건에 따라 공시송달 상세 객체들을 반환한다. + * @param req 공시송달 대장 조회 조건 + * @return 공시송달 대장 객체 목록 + */ + List getSvbtcDtls(SndbQuery req); + + + /**공시송달 대장 정보를 등록한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + String create(Svbtc svbtc); + + /**공시송달 대장 정보를 수정한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + String update(Svbtc svbtc); + + /**공시송달 대장 정보를 삭제한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + String removeSvbtc(Svbtc svbtc); + +} 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 6b33997b..d384b7bb 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 @@ -313,37 +313,7 @@ public class SndngDtlBean extends AbstractComponent { - /**지정한 조건에 따라 공시송달 대장 목록을 조회하여 반환한다. - * @param req 공시송달 대장 조회 조건 - * @return 공시송달 대장 목록 - */ - public List getSvbtcList(SndbQuery req) { - return svbtcMapper.selectSvbtcList(req); - } - - /**지정한 조건에 따라 공시송달 대장 객체들을 반환한다. - * @param req 공시송달 대장 조회 조건 - * @return 공시송달 대장 객체 목록 - */ - public List getSvbtcs(SndbQuery req) { - return svbtcMapper.selectSvbtcs(req); - } - /**지정한 조건에 따라 공시송달 대장 객체들을 반환한다. - * @param req 공시송달 대장 조회 조건 - * @return 공시송달 대장 객체 목록 - */ - public DataObject getSvbtcInfo(SndbQuery req) { - return svbtcMapper.selectSvbtcInfo(req); - } - - /**지정한 조건에 따라 공시송달 상세 객체들을 반환한다. - * @param req 공시송달 대장 조회 조건 - * @return 공시송달 대장 객체 목록 - */ - public List getSvbtcDtls(SndbQuery req) { - return svbtcMapper.selectSvbtcDtls(req); - } /**공시송달 대장 정보를 등록한다. * @param svbtc 공시송달 대장 @@ -384,52 +354,7 @@ public class SndngDtlBean extends AbstractComponent { return rtnMsg; } - /**공시송달 대장 정보를 수정한다. - * @param svbtc 공시송달 대장 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - public String updateSvbtc(Svbtc svbtc) { - // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 - - // 공시송달(TB_SNDNG_DTL) 대장에 공시송달 정보를 수정 한다. - rtnScs = svbtcMapper.update(svbtc); - if (!rtnScs) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("공시송달 정보 수정에 실패하였습니다."); - } - - rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - - return rtnMsg; - } - - /**공시송달 대장 정보를 삭제한다. - * @param svbtc 공시송달 대장 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - public String removeSvbtc(Svbtc svbtc) { - // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 - - // 공시송달(TB_SVBTC) 대장을 삭제 한다. - rtnScs = svbtcMapper.delete(svbtc); - if (!rtnScs) { - throw new RuntimeException("공시송달 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } - - rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - return rtnMsg; - } /**공시송달ID 조건에 따라 발송상세 대장의 총 건수를 조회한다. * @param req 발송 대장 조회 조건 @@ -463,39 +388,4 @@ public class SndngDtlBean extends AbstractComponent { return rtnMsg; } - - /**공시송달 대장 정보를 삭제하고 발송 상세 대장의 공시송달 정보를 삭제한다. - * @param svbtc 공시송달 대장 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - public String removeSvbtcSndngDtl(Svbtc svbtc) { - // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 - - // 공시송달(TB_SVBTC) 대장을 삭제 한다. - rtnScs = svbtcMapper.delete(svbtc); - if (!rtnScs) { - throw new RuntimeException("공시송달 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } - - // 발송 상세(TB_SNDNG_DTL) 대장에서 공시송달 정보를 삭제 한다. - SndngDtl sndngDtl = new SndngDtl(); - - sndngDtl.setSvbtcId(svbtc.getSvbtcId()); - sndngDtl.setSndngDtlSttsCd("05"); - - rtnScs = sndngDtlMapper.deleteSndngDtlSvbtc(sndngDtl); - if (!rtnScs) { - throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } - - rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - - return rtnMsg; - } - } 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 e3540201..03d2ea9a 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 @@ -31,6 +31,10 @@ public class SndngDtlServiceBean extends AbstractServiceBean implements SndngDtl @Resource(name = "sndngDtlBean") private SndngDtlBean sndngDtlBean; + /** 공시송달 대장 정보 Bean */ + @Resource(name = "svbtcBean") + private SvbtcBean svbtcBean; + @Override public List getSndngDtlList(SndbQuery req) { return sndngDtlBean.getSndngDtlList(req); @@ -100,65 +104,14 @@ public class SndngDtlServiceBean extends AbstractServiceBean implements SndngDtl - @Override - public List getSvbtcList(SndbQuery req) { - return sndngDtlBean.getSvbtcList(req); - } - @Override - public List getSvbtcs(SndbQuery req) { - return sndngDtlBean.getSvbtcs(req); - } - @Override - public List getSvbtcDtls(SndbQuery req) { - return sndngDtlBean.getSvbtcDtls(req); - } @Override public String createSvbtc(Svbtc svbtc) { return sndngDtlBean.createSvbtc(svbtc); } - @Override - public String updateSvbtc(Svbtc svbtc) { - return sndngDtlBean.updateSvbtc(svbtc); - } - - @Override - public String removeSvbtc(Svbtc svbtc) { - return sndngDtlBean.removeSvbtc(svbtc); - } - - @Override - public String removeSvbtcList(SndbQuery req) { - // 변수 선언 - String retMessage = ""; // 처리 결과 메시지 - - // 공시송달 IDs 건수를 확인하여 1건이하면.. 종료 - if (req.getSvbtcIDs().length < 1) { - retMessage = "작업 중 선택 자료가 존재하지 않습니다."; - return retMessage; - } - - // 공시송달 IDs 만큼 반복.. - for (int iLoop = 0; iLoop < req.getSvbtcIDs().length; iLoop++) { - Svbtc svbtc = new Svbtc(); - - svbtc.setSvbtcId(req.getSvbtcIDs()[iLoop]); // 공시송달 ID - svbtc.setDelRsn(req.getDelRsn()); // 삭제 사유 - - // 공시송달 삭제 호출 - retMessage = sndngDtlBean.removeSvbtcSndngDtl(svbtc); - // 오류가 발생하였으면 종료.. - if (retMessage.contains("[F]")) { - return retMessage; - } - } - - return retMessage; - } - @Override public String removeSvbtcEach(Svbtc svbtc) { // 변수 선언 @@ -189,11 +142,10 @@ public class SndngDtlServiceBean extends AbstractServiceBean implements SndngDtl int svbtcTnocs = sndngDtlBean.selectTnocsSndngDtlSvbtc(svbtc.getSvbtcId()); if (svbtcTnocs == 0) { // 총건수가 0건이라면 공시송달 대장에서 삭제 - retMessage = sndngDtlBean.removeSvbtc(svbtc); + retMessage = svbtcBean.removeSvbtc(svbtc); } else { // 총건수를 확인하여 공시송달 대장에서 수정 // 공시송달 정보 호출 - DataObject svbtcInfo = sndngDtlBean.getSvbtcInfo(new SndbQuery().setSvbtcId(svbtc.getSvbtcId()) - .setDelYN("N")); + DataObject svbtcInfo = svbtcBean.getSvbtcInfo(new SndbQuery().setSvbtcId(svbtc.getSvbtcId())); Svbtc mdfSvbtc = new Svbtc(); @@ -204,7 +156,7 @@ public class SndngDtlServiceBean extends AbstractServiceBean implements SndngDtl mdfSvbtc.setTnocs(svbtcTnocs); mdfSvbtc.setSvbtcId(svbtc.getSvbtcId()); - retMessage = sndngDtlBean.updateSvbtc(mdfSvbtc); + retMessage = svbtcBean.update(mdfSvbtc); } // 오류가 발생하였으면 종료.. 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 new file mode 100644 index 00000000..3e9e30fd --- /dev/null +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcBean.java @@ -0,0 +1,193 @@ +package cokr.xit.fims.sndb.service.bean; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Component; + +import cokr.xit.foundation.AbstractComponent; +import cokr.xit.foundation.data.DataObject; + +import cokr.xit.fims.sndb.Svbtc; +import cokr.xit.fims.cmmn.CmmnUtil; +import cokr.xit.fims.sndb.SndbQuery; +import cokr.xit.fims.sndb.SndngDtl; +import cokr.xit.fims.sndb.dao.SndngDtlMapper; +import cokr.xit.fims.sndb.dao.SvbtcMapper; + +/**공시송달 대장 정보 관리 Bean + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-01-09	JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Component("svbtcBean") +public class SvbtcBean extends AbstractComponent { + + /** 공시송달 대장 정보 DAO */ + @Resource(name = "svbtcMapper") + private SvbtcMapper svbtcMapper; + + /** 발송 상세 정보 DAO */ + @Resource(name = "sndngDtlMapper") + private SndngDtlMapper sndngDtlMapper; + + /**지정한 조건에 따라 공시송달 대장 목록을 조회하여 반환한다. + * @param req 공시송달 대장 조회 조건 + * @return 공시송달 대장 목록 + */ + public List getSvbtcList(SndbQuery req) { + // 삭제 여부 확인 + if (req.getDelYN() == null) { + req.setDelYN("N"); + } + // 정렬 확인 + if (req.getOrderBy() == null) { + if (req.getBy() == null) { + req.setOrderBy("REG_DT"); + } else { + req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy())); + } + } + + return svbtcMapper.selectSvbtcList(req); + } + + /**지정한 조건에 따라 공시송달 대장 객체들을 반환한다. + * @param req 공시송달 대장 조회 조건 + * @return 공시송달 대장 객체 목록 + */ + public List getSvbtcs(SndbQuery req) { + // 삭제 여부 확인 + if (req.getDelYN() == null) { + req.setDelYN("N"); + } + if (req.getOrderBy() == null) { + req.setOrderBy("SV.SVBTC_ID"); + } + + return svbtcMapper.selectSvbtcs(req); + } + + /**지정한 조건에 따라 공시송달 대장 객체의 마지막 1개를 반환한다. + * @param req 공시송달 대장 조회 조건 + * @return 공시송달 대장 객체 목록 + */ + public DataObject getSvbtcInfo(SndbQuery req) { + DataObject svbtcInfo = new DataObject(); + + if (req.getCallPurpose().equals("create")) { + svbtcInfo.set("SGG_CD", req.getSggCd()); // 시군구 코드 + svbtcInfo.set("TASK_SE_CD", req.getTaskSeCd()); // 업무 구분 코드 + svbtcInfo.set("SNDNG_SE_CD", req.getSndngSeCd()); // 발송 구분 코드 + } else { + svbtcInfo = svbtcMapper.selectSvbtcInfo(req); + } + + return svbtcInfo; + } + + /**지정한 조건에 따라 공시송달 상세 목록을 조회하여 반환한다. + * @param req 공시송달 대장 조회 조건 + * @return 공시송달 대장 객체 목록 + */ + public List getSvbtcDtlList(SndbQuery req) { + return svbtcMapper.selectSvbtcDtlList(req); + } + + /**지정한 조건에 따라 공시송달 상세 객체들을 반환한다. + * @param req 공시송달 대장 조회 조건 + * @return 공시송달 대장 객체 목록 + */ + public List getSvbtcDtls(SndbQuery req) { + return svbtcMapper.selectSvbtcDtls(req); + } + + /**공시송달 대장 정보를 등록한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public String create(Svbtc svbtc) { + // 변수 선언 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + // 공시송달(TB_SVBTC) 정보를 등록 한다. + rtnScs = svbtcMapper.insert(svbtc); + if (!rtnScs) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("공시송달 정보 등록에 실패하였습니다."); + } + + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; + + return rtnMsg; + } + + /**공시송달 대장 정보를 수정한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public String update(Svbtc svbtc) { + // 변수 선언 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + // 공시송달(TB_SVBTC) 정보를 수정 한다. + rtnScs = svbtcMapper.update(svbtc); + if (!rtnScs) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("공시송달 정보 수정에 실패하였습니다."); + } + + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; + + return rtnMsg; + } + + /**공시송달 대장 정보를 삭제한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public String removeSvbtc(Svbtc svbtc) { + // 변수 선언 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + // 공시송달(TB_SVBTC) 대장을 삭제 한다. + rtnScs = svbtcMapper.delete(svbtc); + if (!rtnScs) { + throw new RuntimeException("공시송달 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + // 발송 상세(TB_SNDNG_DTL) 대장에서 공시송달 정보를 삭제 한다. + SndngDtl sndngDtl = new SndngDtl(); + + sndngDtl.setSvbtcId(svbtc.getSvbtcId()); + sndngDtl.setSndngDtlSttsCd("05"); + + rtnScs = sndngDtlMapper.deleteSndngDtlSvbtc(sndngDtl); + if (!rtnScs) { + throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; + + return rtnMsg; + } + +} 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 new file mode 100644 index 00000000..eeaca1a7 --- /dev/null +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcServiceBean.java @@ -0,0 +1,107 @@ +package cokr.xit.fims.sndb.service.bean; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import cokr.xit.foundation.component.AbstractServiceBean; +import cokr.xit.foundation.data.DataObject; + +import cokr.xit.fims.sndb.Svbtc; +import cokr.xit.fims.sndb.SndbQuery; +import cokr.xit.fims.sndb.SndngDtl; +import cokr.xit.fims.sndb.service.SvbtcService; + +/**공시송달 대장 서비스 구현체. + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-01-09	JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Service("svbtcService") +public class SvbtcServiceBean extends AbstractServiceBean implements SvbtcService { + + /** 공시송달 대장 정보 Bean */ + @Resource(name = "svbtcBean") + private SvbtcBean svbtcBean; + + @Override + public List getSvbtcList(SndbQuery req) { + return svbtcBean.getSvbtcList(req); + } + + @Override + public List getSvbtcs(SndbQuery req) { + return svbtcBean.getSvbtcs(req); + } + + @Override + public DataObject getSvbtcInfo(SndbQuery req) { + return svbtcBean.getSvbtcInfo(req); + } + + @Override + public List getSvbtcDtlList(SndbQuery req) { + return svbtcBean.getSvbtcDtlList(req); + } + + @Override + public List getSvbtcDtls(SndbQuery req) { + return svbtcBean.getSvbtcDtls(req); + } + + @Override + public String create(Svbtc svbtc) { + return svbtcBean.create(svbtc); + } + + @Override + public String update(Svbtc svbtc) { + return svbtcBean.update(svbtc); + } + + @Override + public String removeSvbtc(Svbtc svbtc) { + // 변수 선언 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + // 공시송달 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("[F]")) { + return rtnMsg; + } + } + } + + return rtnMsg; + } + +} 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 be3a4516..f88aa755 100644 --- a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java +++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java @@ -28,6 +28,7 @@ import cokr.xit.fims.sndb.SndngDtl; import cokr.xit.fims.sndb.Svbtc; import cokr.xit.fims.sndb.service.SndngDtlService; import cokr.xit.fims.sndb.service.SndngService; +import cokr.xit.fims.sndb.service.SvbtcService; import cokr.xit.foundation.data.DataObject; /**발송 대장 서비스의 웹 컨트롤러 @@ -46,49 +47,52 @@ public class Sndb01Controller extends ApplicationController { public class METHOD_URL { public static final String - warningTargetMain = "/010/main.do" // 계고장발송 대상 메인 화면 - , getWarningTargetList = "/010/list.do" // 계고장발송 대상 목록 조회 - , getWarningTargetInfo = "/020/info.do" // 계고장발송 대상 조회 - , createWarningSendingList = "/020/createList.do" // 계고장발송 대상 목록의 발송 등록 - , warningSendingMain = "/030/main.do" // 계고장발송 현황 메인 화면 - , getWarningSendingList = "/030/list.do" // 계고장발송 현황 목록 조회 - , getWarningSendingInfo = "/040/info.do" // 계고장발송 현황 상세 화면 - , getWarningSendingDetailsList = "/040/list.do" // 계고장발송 현황 상세 목록 조회 - , advanceNoticeTargetMain = "/050/main.do" // 사전통지발송 대상 메인 화면 - , getAdvanceNoticeTargetList = "/050/list.do" // 사전통지발송 대상 목록 조회 - , getAdvanceNoticeTargetInfo = "/060/info.do" // 사전통지발송 대상 조회 - , createAdvanceNoticeSendingList = "/060/createList.do" // 사전통지발송 대상 목록의 발송 등록 - , advanceNoticeSendingMain = "/070/main.do" // 사전통지발송 현황 메인 화면 - , getAdvanceNoticeSendingList = "/070/list.do" // 사전통지발송 대상 목록 조회 - , getAdvanceNoticeSendingInfo = "/080/info.do" // 사전통지발송 현황 상세 화면 - , getAdvanceNoticeSendingDetailsList= "/080/list.do" // 사전통지발송 현황 상세 목록 조회 - , createSendingLink = "/080/createSndngLink.do" // 발송상세 목록의 우편통합 발송 연계 등록 - , createSendBackList = "/080/createSndbkList.do" // 발송상세 목록의 반송 확인(등록) - , noticeSheetSendingMain = "/090/main.do" // 고지서발송 현황 메인 화면 - , getNoticeSheetSendingList = "/090/list.do" // 고지서발송 대상 목록 조회 - , getNoticeSheetSendingInfo = "/100/info.do" // 고지서발송 현황 상세 화면 - , getNoticeSheetSendingDetailsList = "/100/list.do" // 고지서발송 현황 상세 목록 조회 - , noticeSheetSendingTargetInfo = "/110/info.do" // 고지서발송 대상 화면 - - , sendBackMain = "/230/main.do" // 반송 현황 메인 화면 - , getSendBackList = "/230/list.do" // 반송 현황 목록 조회 - , serviceByPublicNoticeMain = "/240/main.do" // 공시송달 현황 메인 화면 - , getServiceByPublicNoticeList = "/240/list.do" // 공시송달 현황 목록 조회 - - - - , unitySendBackTargetMain = "/210/main.do" // 통합 반송 등록 메인 - , getSendBackInfo = "/220/info.do" // 반송 정보 조회 - , createSendBack = "/220/create.do" // 반송 등록 - , updateSendBack = "/220/update.do" // 반송 수정 - , deleteSendBack = "/210/delete.do" // 반송 삭제 - - , createServiceByPublicNotice = "/240/create.do" // 공시송달 등록 - , updateServiceByPublicNotice = "/240/update.do" // 공시송달 수정 - , removeServiceByPublicNotice = "/240/remove.do" // 공시송달 삭제 - , removeServiceByPublicNoticeList = "/240/removes.do" // 공시송달 삭제 리스트 - , getServiceByPublicNoticeInfo = "/250/info.do" // 공시송달 상세 조회 - , removeServiceByPublicNoticeEach = "/250/remove.do" // 공시송달 삭제 개별 + warningTargetMain = "/010/main.do" // 계고장발송 대상 메인 화면 + , getWarningTargetList = "/010/list.do" // 계고장발송 대상 목록 조회 + , getWarningTargetInfo = "/020/info.do" // 계고장발송 대상 조회 + , createWarningSendingList = "/020/createList.do" // 계고장발송 대상 목록의 발송 등록 + , warningSendingMain = "/030/main.do" // 계고장발송 현황 메인 화면 + , getWarningSendingList = "/030/list.do" // 계고장발송 현황 목록 조회 + , getWarningSendingDetailInfo = "/040/info.do" // 계고장발송 현황 상세 화면 + , getWarningSendingDetailList = "/040/list.do" // 계고장발송 현황 상세 목록 조회 + , advanceNoticeTargetMain = "/050/main.do" // 사전통지발송 대상 메인 화면 + , getAdvanceNoticeTargetList = "/050/list.do" // 사전통지발송 대상 목록 조회 + , getAdvanceNoticeTargetInfo = "/060/info.do" // 사전통지발송 대상 조회 + , createAdvanceNoticeSendingList = "/060/createList.do" // 사전통지발송 대상 목록의 발송 등록 + , advanceNoticeSendingMain = "/070/main.do" // 사전통지발송 현황 메인 화면 + , getAdvanceNoticeSendingList = "/070/list.do" // 사전통지발송 대상 목록 조회 + , getAdvanceNoticeSendingDetailInfo = "/080/info.do" // 사전통지발송 현황 상세 화면 + , getAdvanceNoticeSendingDetailList = "/080/list.do" // 사전통지발송 현황 상세 목록 조회 + , createSendingLink = "/080/createSndngLink.do" // 발송상세 목록의 우편통합 발송 연계 등록 + , createSendBackList = "/080/createSndbkList.do" // 발송상세 목록의 반송 확인(등록) + , noticeSheetSendingMain = "/090/main.do" // 고지서발송 현황 메인 화면 + , getNoticeSheetSendingList = "/090/list.do" // 고지서발송 대상 목록 조회 + , getNoticeSheetSendingDetailInfo = "/100/info.do" // 고지서발송 현황 상세 화면 + , getNoticeSheetSendingDetailList = "/100/list.do" // 고지서발송 현황 상세 목록 조회 + , noticeSheetSendingTargetInfo = "/110/info.do" // 고지서발송 대상 화면 + + , sendBackMain = "/230/main.do" // 반송 현황 메인 화면 + , getSendBackList = "/230/list.do" // 반송 현황 목록 조회 + , serviceByPublicNoticeMain = "/240/main.do" // 공시송달 현황 메인 화면 + , getServiceByPublicNoticeList = "/240/list.do" // 공시송달 현황 목록 조회 + , removeServiceByPublicNotice = "/240/remove.do" // 공시송달 삭제 + , getServiceByPublicNoticeDetailInfo = "/250/info.do" // 공시송달 상세 목록 조회 + , getServiceByPublicNoticeDetailList = "/250/list.do" // 공시송달 상세 목록 조회 + , getServiceByPublicNoticeInfo = "/260/info.do" // 공시송달 정보 + , createServiceByPublicNotice = "/260/create.do" // 공시송달 등록 + , updateServiceByPublicNotice = "/260/update.do" // 공시송달 수정 + + + + + , unitySendBackTargetMain = "/210/main.do" // 통합 반송 등록 메인 + , getSendBackInfo = "/220/info.do" // 반송 정보 조회 + , createSendBack = "/220/create.do" // 반송 등록 + , updateSendBack = "/220/update.do" // 반송 수정 + , deleteSendBack = "/210/delete.do" // 반송 삭제 + + + , removeServiceByPublicNoticeEach = "/250/remove.do" // 공시송달 개별 삭제 ; } @@ -100,6 +104,10 @@ public class Sndb01Controller extends ApplicationController { @Resource(name = "sndngDtlService") private SndngDtlService sndngDtlService; + /**공시송달 대장 서비스*/ + @Resource(name = "svbtcService") + private SvbtcService svbtcService; + /**업무 정보 서비스*/ @Resource(name = "taskService") private TaskService taskService; @@ -353,9 +361,9 @@ public class Sndb01Controller extends ApplicationController { * "sndngDtls": [계도장 발송 상세 목록] * } */ - public ModelAndView getWarningSendingInfo(SndbQuery req) { + public ModelAndView getWarningSendingDetailInfo(SndbQuery req) { // - ModelAndView mav = getWarningSendingDetailsList(req); + ModelAndView mav = getWarningSendingDetailList(req); mav.setViewName("fims/sndb/sndb01040-info"); @@ -377,7 +385,7 @@ public class Sndb01Controller extends ApplicationController { * "sndngDtlTotal": 조회 결과 찾은 전체 발송상세 수 * } */ - public ModelAndView getWarningSendingDetailsList(SndbQuery req) { + public ModelAndView getWarningSendingDetailList(SndbQuery req) { if (!"xls".equals(req.getDownload())) { List result = sndngDtlService.getSndngDtlList(setFetchSize(req)); return setCollectionInfo(new ModelAndView("jsonView"), result, "wrngSndngDtl"); @@ -689,9 +697,9 @@ public class Sndb01Controller extends ApplicationController { * "sndngDtls": [사전통지 발송 상세 목록] * } */ - public ModelAndView getAdvanceNoticeSendingInfo(SndbQuery req) { + public ModelAndView getAdvanceNoticeSendingDetailInfo(SndbQuery req) { // - ModelAndView mav = getAdvanceNoticeSendingDetailsList(req); + ModelAndView mav = getAdvanceNoticeSendingDetailList(req); mav.setViewName("fims/sndb/sndb01080-info"); @@ -713,7 +721,7 @@ public class Sndb01Controller extends ApplicationController { * "sndngDtlTotal": 조회 결과 찾은 전체 발송상세 수 * } */ - public ModelAndView getAdvanceNoticeSendingDetailsList(SndbQuery req) { + public ModelAndView getAdvanceNoticeSendingDetailList(SndbQuery req) { if (!"xls".equals(req.getDownload())) { List result = sndngDtlService.getSndngDtlList(setFetchSize(req)); return setCollectionInfo(new ModelAndView("jsonView"), result, "advntceSndngDtl"); @@ -875,9 +883,9 @@ public class Sndb01Controller extends ApplicationController { * "sndngDtls": [고지서 발송 상세 목록] * } */ - public ModelAndView getNoticeSheetSendingInfo(SndbQuery req) { + public ModelAndView getNoticeSheetSendingDetailInfo(SndbQuery req) { // - ModelAndView mav = getNoticeSheetSendingDetailsList(req); + ModelAndView mav = getNoticeSheetSendingDetailList(req); mav.setViewName("fims/sndb/sndb01100-info"); @@ -899,7 +907,7 @@ public class Sndb01Controller extends ApplicationController { * "sndngDtlTotal": 조회 결과 찾은 전체 발송상세 수 * } */ - public ModelAndView getNoticeSheetSendingDetailsList(SndbQuery req) { + public ModelAndView getNoticeSheetSendingDetailList(SndbQuery req) { if (!"xls".equals(req.getDownload())) { List result = sndngDtlService.getSndngDtlList(setFetchSize(req)); return setCollectionInfo(new ModelAndView("jsonView"), result, "nhtSndngDtl"); @@ -995,12 +1003,6 @@ public class Sndb01Controller extends ApplicationController { ; } - - - - - - /**우편통합 발송 대상을 등록한다. * @param sndng 발송 정보 * @return jsonView @@ -1269,7 +1271,6 @@ public class Sndb01Controller extends ApplicationController { .addObject("infoPrefix", "svbtc") // prefix .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) .addObject("TaskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 시군구에서 사용하는 업무 목록 - .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) .addObject("FIM047List", commonCodes.get("FIM047")) // 발송 구분 코드(SNDNG_SE_CD) ; } @@ -1287,7 +1288,7 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView getServiceByPublicNoticeList(SndbQuery req) { if (!"xls".equals(req.getDownload())) { - List result = sndngDtlService.getSvbtcList(setFetchSize(req)); + List result = svbtcService.getSvbtcList(setFetchSize(req)); return setCollectionInfo(new ModelAndView("jsonView"), result, "svbtc"); } else { // 현재 날짜 구하기 @@ -1306,7 +1307,7 @@ public class Sndb01Controller extends ApplicationController { CellStyle dateYMD = xlsx.yyyy_mm_dd(); // 연월일 CellStyle dateDT = xlsx.yyyy_mm_dd_hh_mm_ss(); // 연월일+시간 - List list = sndngDtlService.getSvbtcList(req.setFetchSize(0)); + List list = svbtcService.getSvbtcList(req.setFetchSize(0)); CellDef.setValues(cellDefs, Map.ofEntries( Map.entry("업무구분", xlsx.style("TASK_SE_NM", center)) @@ -1336,25 +1337,134 @@ public class Sndb01Controller extends ApplicationController { } } - /**공시송달 발송 현황 - 세부내용 정보 화면(sndb/sndb01/250-info)을 연다. + /**공시송달 발송 현황 - 공시송달 상세 정보 화면(sndb/sndb01/250-info)을 연다. * @param svbtcId 공시송달 ID * @return fims/sndb/sndb01250-info 또는 jsonView *
{
 	 *     "sndngDtls": [발송 상세 목록]
 	 * }
*/ + public ModelAndView getServiceByPublicNoticeDetailInfo(SndbQuery req) { + // + ModelAndView mav = getServiceByPublicNoticeDetailList(req); + + mav.setViewName("fims/sndb/sndb01250-info"); + + return mav + .addObject("pageName", "sndb01250") + .addObject("query", toJson(req)) + .addObject("svbtcDtl", toJson(mav.getModel().get("svbtcDtlList"))) + ; + } + + /**공시송달 발송 현황 - 공시송달 상세 목록을 조회하여 반환한다. + * {@link SndngService#getSndngList(SndngQuery)} 참고 + * @param req 발송 대장 조회 조건 + * @return jsonView + *
 {
+	 *     "sndngDtlList": [공시송달 상세 목록]
+	 *     "sndngDtlStart": 공시송달 상세 목록 시작 인덱스
+	 *     "sndngDtlFetch": 한 번에 가져오는 공시송달 상세 목록 수
+	 *     "sndngDtlTotal": 조회 결과 찾은 전체 공시송달 상세 수
+	 * }
+ */ + public ModelAndView getServiceByPublicNoticeDetailList(SndbQuery req) { + if (!"xls".equals(req.getDownload())) { + List result = svbtcService.getSvbtcDtlList(setFetchSize(req)); + return setCollectionInfo(new ModelAndView("jsonView"), result, "svbtcDtl"); + } else { + // 현재 날짜 구하기 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String dateTime = dateFormat.format(System.currentTimeMillis()); + + ArrayList cellDefs = fromJson(req.getCellDefs(), new TypeReference>() {}); + + XLSWriter xlsx = new XLSWriter() + .setFilename("고지서발송상세" + "_목록_" + dateTime + ".xlsx") + .worksheet(0); + + // CellStyle 지정은 여기에서.. + CellStyle center = xlsx.cellStyle(Styler.CENTER); // 가운데 정렬 + CellStyle numeric = xlsx.n_nn0(); // 숫자 3자리 콤마(,) + CellStyle dateYMD = xlsx.yyyy_mm_dd(); // 연월일 + CellStyle dateDT = xlsx.yyyy_mm_dd_hh_mm_ss(); // 연월일+시간 + + List list = svbtcService.getSvbtcDtlList(req.setFetchSize(0)); + + CellDef.setValues(cellDefs, Map.ofEntries( + Map.entry("발송상태", xlsx.style("SNDNG_DTL_STTS_NM", center)) + , Map.entry("등기번호", xlsx.style("RG_NO", center)) + , Map.entry("발송일자", xlsx.format(o -> xlsx.str2date(o.get("SNDNG_YMD"))).style(dateYMD)) + , Map.entry("발송종료일자", xlsx.format(o -> xlsx.str2date(o.get("SNDNG_END_YMD"))).style(dateYMD)) + , Map.entry("납부자명", "RTPYR_NM") + , Map.entry("납부자생일", xlsx.style("RTPYR_BRDT_MASK", center)) + , Map.entry("우편번호", xlsx.style("RTPYR_ZIP", center)) + , Map.entry("주소", "RTPYR_ADDR") + , Map.entry("상세주소", "RTPYR_DTL_ADDR") + , Map.entry("배달일자", xlsx.format(o -> xlsx.str2date(o.get("DLVR_YMD"))).style(dateYMD)) + , Map.entry("배달시각", xlsx.style("DLVR_TM", center)) + , Map.entry("미배달사유", "UNDLVR_RSN_NM") + , Map.entry("수령인", "RCPN_NM") + , Map.entry("수령인관계", "RCPN_REL_NM") + , Map.entry("단속일시", xlsx.style("CRDN_DT", center)) + , Map.entry("차량번호", "VHRNO") + , Map.entry("단속법정동", "CRDN_STDG_NM") + , Map.entry("단속장소", "CRDN_PLC") + , Map.entry("회계연도", xlsx.style("FYR", center)) + , Map.entry("부과번호", xlsx.style("LEVY_NO", center)) + , Map.entry("부과일자", xlsx.format(o -> xlsx.str2date(o.get("LEVY_YMD"))).style(dateYMD)) + , Map.entry("납기일자", xlsx.format(o -> xlsx.str2date(o.get("DUDT_YMD"))).style(dateYMD)) + , Map.entry("과태료금액", xlsx.style("FFNLG_AMT", numeric)) + , Map.entry("본세", xlsx.style("PCPTAX", numeric)) + , Map.entry("가산금", xlsx.style("ADAMT", numeric)) + , Map.entry("합계금액", xlsx.style("SUM_AMT", numeric)) + , Map.entry("등록일시", xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT)) + , Map.entry("등록사용자", xlsx.style("RGTR_NM", center)) + , Map.entry("수정일시", xlsx.format(o -> xlsx.str2datetime(o.get("MDFCN_DT"))).style(dateDT)) + , Map.entry("수정사용자", xlsx.style("MDFR_NM", center)) + ) + ); + + xlsx.cell(0, 0) + .value("고지서 발송 상세", center) + .merge(0, cellDefs.size() - 1) + .cell(3, 0) + .rowValues(CellDef.header(cellDefs, () -> CmmnUtil.headerStyle(xlsx))) + .cell(4, 0) + .values(list, CellDef.values(cellDefs)); + + return new ModelAndView("xlsView") + .addObject("xls", xlsx); + } + } + + /**지정한 ID의 공시송달 정보를 반환한다. + * @param svbtcId 공시송달 ID + * @return fims/sndb/sndb01260-info 또는 jsonView + *
{
+	 *     "svbtcInfo": 공시송달 정보
+	 * }
+ */ public ModelAndView getServiceByPublicNoticeInfo(SndbQuery req) { - List sndngDtls = sndngDtlService.getSvbtcDtls(req); + // 공시송달 정보 조회 + DataObject svbtcInfo = svbtcService.getSvbtcInfo(req); - boolean json = jsonResponse(); + // 등록을 호출하였지만 등록된 공시송달 ID가 있는지 확인. + if (req.getCallPurpose().equals("create") && !svbtcInfo.string("SVBTC_ID").equals("")) { + ModelAndView mav = new ModelAndView("jsonView"); - ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sndb/sndb01250-info"); + return mav.addObject("rtnMsg", "이미 등록된 공시송달 정보가 있습니다."); + } else { + boolean json = jsonResponse(); - return mav.addObject("pageName", "sndb01250") - .addObject("sggCd", req.getSggCd()) - .addObject("taskSeCd", req.getTaskSeCd()) - .addObject("svbtcDtl", json ? sndngDtls : toJson(sndngDtls)) // 계도장 발송 현황 세부내용 - ; + ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sndb/sndb01260-info"); + + return mav + .addObject("pageName", "sndb01260") + .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 + .addObject("svbtcInfo", json ? svbtcInfo : toJson(svbtcInfo)) // 공시송달 정보 + ; + } } /**공시송달 대장에 공시송달 정보를 등록한다. @@ -1388,7 +1498,7 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView updateServiceByPublicNotice(Svbtc svbtc) { boolean saved = false; - String rtnMsg = sndngDtlService.updateSvbtc(svbtc); + String rtnMsg = svbtcService.update(svbtc); if (rtnMsg.contains("[S]")) { saved = true; @@ -1411,30 +1521,7 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView removeServiceByPublicNotice(Svbtc svbtc) { boolean saved = false; - String rtnMsg = sndngDtlService.removeSvbtc(svbtc); - - if (rtnMsg.contains("[S]")) { - saved = true; - } else { - saved = false; - } - - return new ModelAndView("jsonView") - .addObject("saved", saved) - .addObject("rtnMsg", rtnMsg); - } - - /**여러 건의 공시송달 ID에 해당하는 공시송달 대장를 제거한다. - * @param svbtcIDs 공시송달 IDs - * @return jsonView - *
 {
-	 *     "affected": 저장된 정보수
-	 *     "saved": 저장되었으면 true, 그렇지 않으면 false
-	 * }
- */ - public ModelAndView removeServiceByPublicNoticeList(SndbQuery req) { - boolean saved = false; - String rtnMsg = sndngDtlService.removeSvbtcList(req); + String rtnMsg = svbtcService.removeSvbtc(svbtc); if (rtnMsg.contains("[S]")) { saved = true; diff --git a/src/main/java/cokr/xit/fims/sprt/web/Sprt02Controller.java b/src/main/java/cokr/xit/fims/sprt/web/Sprt02Controller.java index 89e514da..267b605b 100644 --- a/src/main/java/cokr/xit/fims/sprt/web/Sprt02Controller.java +++ b/src/main/java/cokr/xit/fims/sprt/web/Sprt02Controller.java @@ -28,6 +28,7 @@ import cokr.xit.fims.rcvm.service.RcvmtService; import cokr.xit.fims.sndb.SndbQuery; import cokr.xit.fims.sndb.service.SndngDtlService; import cokr.xit.fims.sndb.service.SndngService; +import cokr.xit.fims.sndb.service.SvbtcService; import cokr.xit.fims.sprt.CvlcptDscsnQuery; import cokr.xit.fims.sprt.SprtQuery; import cokr.xit.fims.sprt.service.Sprt02Service; @@ -83,6 +84,10 @@ public class Sprt02Controller extends ApplicationController { @Resource(name = "sndngDtlService") protected SndngDtlService sndngDtlService; + /**공시송달 대장 서비스*/ + @Resource(name = "svbtcService") + private SvbtcService svbtcService; + /** 부과 대장 서비스*/ @Resource(name = "levyService") protected LevyService levyService; @@ -286,25 +291,25 @@ public class Sprt02Controller extends ApplicationController { */ public ModelAndView getSndngInfo(SprtQuery req) { // 발송반송 정보 - SndbQuery sndb01Query = new SndbQuery(); + SndbQuery sndbQuery = new SndbQuery(); if (req.getCallPurpose() == null) { - sndb01Query.setCallPurpose("view"); + sndbQuery.setCallPurpose("view"); } else { - sndb01Query.setCallPurpose(req.getCallPurpose()); + sndbQuery.setCallPurpose(req.getCallPurpose()); } - sndb01Query.setCrdnId(req.getCrdnId()); - sndb01Query.setDelYN(req.getDelYN()); - sndb01Query.setOrderBy("SD.REG_DT, SD.SNDNG_DTL_ID DESC"); + sndbQuery.setCrdnId(req.getCrdnId()); + sndbQuery.setDelYN(req.getDelYN()); + sndbQuery.setOrderBy("SD.REG_DT, SD.SNDNG_DTL_ID DESC"); - List sndngDtl = sndngDtlService.getSndngDtls(sndb01Query); + List sndngDtl = sndngDtlService.getSndngDtls(sndbQuery); // 공시송달 정보 - sndb01Query.setCrdnId(req.getCrdnId()); - sndb01Query.setDelYN(req.getDelYN()); - sndb01Query.setOrderBy("SV.REG_DT DESC, SV.SVBTC_ID DESC"); + sndbQuery.setCrdnId(req.getCrdnId()); + sndbQuery.setDelYN(req.getDelYN()); + sndbQuery.setOrderBy("SV.REG_DT DESC, SV.SVBTC_ID DESC"); - List svbtc = sndngDtlService.getSvbtcDtls(sndb01Query); + List svbtc = svbtcService.getSvbtcDtls(sndbQuery); boolean json = jsonResponse(); 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 fa485e75..22f1316d 100644 --- a/src/main/java/cokr/xit/fims/task/web/DpvController.java +++ b/src/main/java/cokr/xit/fims/task/web/DpvController.java @@ -554,15 +554,15 @@ public class DpvController { } @Override - @RequestMapping(name="계고장 발송 현황 상세 화면", value=METHOD_URL.getWarningSendingInfo) - public ModelAndView getWarningSendingInfo(SndbQuery req) { - return super.getWarningSendingInfo(req); + @RequestMapping(name="계고장 발송 현황 상세 화면", value=METHOD_URL.getWarningSendingDetailInfo) + public ModelAndView getWarningSendingDetailInfo(SndbQuery req) { + return super.getWarningSendingDetailInfo(req); } @Override - @RequestMapping(name="계고장 발송 현황 상세 목록 조회", value=METHOD_URL.getWarningSendingDetailsList) - public ModelAndView getWarningSendingDetailsList(SndbQuery req) { - return super.getWarningSendingDetailsList(req); + @RequestMapping(name="계고장 발송 현황 상세 목록 조회", value=METHOD_URL.getWarningSendingDetailList) + public ModelAndView getWarningSendingDetailList(SndbQuery req) { + return super.getWarningSendingDetailList(req); } @Override @@ -590,15 +590,15 @@ public class DpvController { } @Override - @RequestMapping(name="사전통지 발송 현황 상세 화면", value=METHOD_URL.getAdvanceNoticeSendingInfo) - public ModelAndView getAdvanceNoticeSendingInfo(SndbQuery req) { - return super.getAdvanceNoticeSendingInfo(req); + @RequestMapping(name="사전통지 발송 현황 상세 화면", value=METHOD_URL.getAdvanceNoticeSendingDetailInfo) + public ModelAndView getAdvanceNoticeSendingDetailInfo(SndbQuery req) { + return super.getAdvanceNoticeSendingDetailInfo(req); } @Override - @RequestMapping(name="사전통지 발송 현황 상세 목록 조회", value=METHOD_URL.getAdvanceNoticeSendingDetailsList) - public ModelAndView getAdvanceNoticeSendingDetailsList(SndbQuery req) { - return super.getAdvanceNoticeSendingDetailsList(req); + @RequestMapping(name="사전통지 발송 현황 상세 목록 조회", value=METHOD_URL.getAdvanceNoticeSendingDetailList) + public ModelAndView getAdvanceNoticeSendingDetailList(SndbQuery req) { + return super.getAdvanceNoticeSendingDetailList(req); } @Override @@ -608,15 +608,15 @@ public class DpvController { } @Override - @RequestMapping(name="고지서 발송 현황 상세 화면", value=METHOD_URL.getNoticeSheetSendingInfo) - public ModelAndView getNoticeSheetSendingInfo(SndbQuery req) { - return super.getNoticeSheetSendingInfo(req); + @RequestMapping(name="고지서 발송 현황 상세 화면", value=METHOD_URL.getNoticeSheetSendingDetailInfo) + public ModelAndView getNoticeSheetSendingDetailInfo(SndbQuery req) { + return super.getNoticeSheetSendingDetailInfo(req); } @Override - @RequestMapping(name="고지서 발송 현황 상세 목록 조회", value=METHOD_URL.getNoticeSheetSendingDetailsList) - public ModelAndView getNoticeSheetSendingDetailsList(SndbQuery req) { - return super.getNoticeSheetSendingDetailsList(req); + @RequestMapping(name="고지서 발송 현황 상세 목록 조회", value=METHOD_URL.getNoticeSheetSendingDetailList) + public ModelAndView getNoticeSheetSendingDetailList(SndbQuery req) { + return super.getNoticeSheetSendingDetailList(req); } @Override @@ -673,6 +673,18 @@ public class DpvController { return super.getServiceByPublicNoticeList(req); } + @Override + @RequestMapping(name="공시송달 상세 조회", value=METHOD_URL.getServiceByPublicNoticeDetailInfo) + public ModelAndView getServiceByPublicNoticeDetailInfo(SndbQuery req) { + return super.getServiceByPublicNoticeDetailInfo(req); + } + + @Override + @RequestMapping(name="공시송달 정보", value=METHOD_URL.getServiceByPublicNoticeInfo) + public ModelAndView getServiceByPublicNoticeInfo(SndbQuery req) { + return super.getServiceByPublicNoticeInfo(req); + } + @Override @RequestMapping(name="공시송달 등록", value=METHOD_URL.createServiceByPublicNotice) public ModelAndView createServiceByPublicNotice(Svbtc svbtc) { @@ -692,19 +704,7 @@ public class DpvController { } @Override - @RequestMapping(name="공시송달 삭제 리스트", value=METHOD_URL.removeServiceByPublicNoticeList) - public ModelAndView removeServiceByPublicNoticeList(SndbQuery req) { - return super.removeServiceByPublicNoticeList(req); - } - - @Override - @RequestMapping(name="공시송달 상세 조회", value=METHOD_URL.getServiceByPublicNoticeInfo) - public ModelAndView getServiceByPublicNoticeInfo(SndbQuery req) { - return super.getServiceByPublicNoticeInfo(req); - } - - @Override - @RequestMapping(name="공시송달 삭제 개별", value=METHOD_URL.removeServiceByPublicNoticeEach) + @RequestMapping(name="공시송달 개별 삭제", value=METHOD_URL.removeServiceByPublicNoticeEach) public ModelAndView removeServiceByPublicNoticeEach(Svbtc svbtc) { return super.removeServiceByPublicNoticeEach(svbtc); } 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 dc38275b..5379a4ac 100644 --- a/src/main/resources/sql/mapper/fims/sndb/svbtc-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/svbtc-mapper.xml @@ -66,11 +66,60 @@ AND SV.SNDNG_SE_CD = #{schSndngSeCd} - - - AND SV.VLTN_CD = #{schVltnCd} AND SV.DEL_YN = 'N' + + + + AND SV.REG_DT =]]> CONCAT(#{schRegDateFrom},'000000') /* 등록 일자 시작 */ + + + AND SV.REG_DT CONCAT(#{schRegDateTo},'235959') /* 등록 일자 종료 */ + + + + + AND SV.MDFCN_DT =]]> CONCAT(#{schRegDateFrom},'000000') /* 수정 일자 시작 */ + + + AND SV.MDFCN_DT CONCAT(#{schRegDateTo},'235959') /* 수정 일자 종료 */ + + + + + + + + + AND SV.RGTR = #{schRgtrCd} /* 등록자 코드 */ + + + + + AND SV.MDFR = #{schRgtrCd} /* 수정자 코드 */ + + + + + + + + + + + SV.SNDNG_SE_CD + SV.SVBTC_YMD + SV.DOC_NO + SV.TTL_NM + SV.ETC_CN + SV.TNOCS + + #{term} + + + + + @@ -120,7 +169,6 @@ , SD.SNDNG_DTL_ID , SD.SNDNG_ID , SD.CRDN_ID - , SD.SNDNG_SE_CD , SD.VHRNO , SD.CRDN_DT , SD.CRDN_STDG_NM @@ -150,7 +198,6 @@ , 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 - , (SELECT GET_CODE_NM('FIM047', SD.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM , (SELECT GET_CODE('EGP010', SD.UNDLVR_RSN_NM) FROM DUAL) AS UNDLVR_RSN_CD , (SELECT GET_CODE_NM('FIM050', SD.SNDNG_DTL_STTS_CD) FROM DUAL) AS SNDNG_DTL_STTS_NM , (SELECT GET_CODE_NM('FIM051', SD.SNDNG_RCVMT_CD) FROM DUAL) AS SNDNG_RCVMT_NM @@ -158,6 +205,24 @@ INNER JOIN TB_SNDNG_DTL SD ON (SV.SVBTC_ID = SD.SVBTC_ID) + + @@ -145,10 +145,10 @@ - - @@ -164,27 +164,24 @@ + NO. + + 업무구분 + 발송구분 + 공시송달일자 + 총건수 + 문서번호 + 제목 + 기타내용 + 등록일시 + 등록사용자 + 수정일시 + 수정사용자 + - - @@ -306,7 +291,7 @@ checkbox.prop("checked", keys.includes(checkbox.val())); }); - $("#btnSvbtcRemove--${pageName}").prop("disabled", keys.length < 1); + $("#btnRemove--${pageName}").prop("disabled", keys.length < 1); }; // 공시송달 상세 Info @@ -334,6 +319,29 @@ }); } + // 삭제 callback + ${pageName}Control.onRemove = (resp) => { + let btnTitle = $("#btnRemove--${pageName}").attr("title"); + let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle); + + dialog.alert(showMessage); // 메시지 출력 + + if (resp.saved) { + refreshList${pageName}(); // 자료 재조회 + } + } + + // 삭제 + ${pageName}Control.remove = (params) => { + if (!params) return; + + ajax.post({ + url : ${pageName}Control.urls.remove + , data : params + , success : resp => ${pageName}Control.onRemove(resp) + }); + } + /************************************************************************** * DataTables 이벤트 **************************************************************************/ @@ -341,24 +349,15 @@ renderList${pageName} = (totalSize) => { let ${infoPrefix}List = ${pageName}Control.dataset; let empty = ${infoPrefix}List.empty; - let clsForTask = $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val().toLowerCase(); // 소문자 - - // 업무별 DataTables(그리드) tr, td - let foundContent = document.getElementById("${infoPrefix}Row--${pageName}").content; - let foundTr = $(foundContent).find("tr")[0].cloneNode(false); - let foundTds = $(foundContent).find("." + clsForTask + ",.cmn"); - - foundTds.each(function() { - foundTr.appendChild(this.cloneNode(true)); - }); - // - let replacer = (str, dataItem) => str - .replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("LEVY_EXCL_ID") + "');") - .replace(/{ondblclick}/gi, "getTotalInfo${pageName}('" + dataItem.getValue("CRDN_ID") + "');"); - - let trs = empty ? [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML] - : ${infoPrefix}List.inStrings(foundTr.outerHTML, replacer); + let trs = empty ? + [document.getElementById("${infoPrefix}NotFound--${pageName}").innerHTML] <%-- from template#${infoPrefix}NotFound --%> + : ${infoPrefix}List.inStrings( + document.getElementById("${infoPrefix}Row--${pageName}").innerHTML <%-- from template#${infoPrefix}Row --%> + , (str, dataItem) => str + .replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("SVBTC_ID") + "');") + .replace(/{ondblclick}/gi, "${pageName}Control.getInfo('" + dataItem.getValue("SVBTC_ID") + "');") + ); let noMore = (totalSize == ${infoPrefix}List.length); let initScroll = (${pageName}Control.query.pageNum < 2) && (${pageName}Control.untilPageNum == 0); @@ -371,9 +370,6 @@ ${pageName}Control.untilPageNum = 0; } - // checkbox 체크 해제 - $("th input[type='checkbox']").prop("checked", false); - // 보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); } @@ -442,60 +438,46 @@ } // 공시송달 수정 callback - getSvbtcInfo${pageName} = (obj) => { - let taskSeCd = $("input[name='taskSeCd']:checked").val(); // 업무 구분 코드 - let svbtcId = ${pageName}Control.dataset.getValue("SVBTC_ID"); // 공시송달 ID + getSvbtcInfo${pageName} = (params) => { + if (!params) return; - let params = { - svbtcId : svbtcId // 발송 상세 ID - , svbtcYmd : obj.calYmd // 공시송달 일자 - , ttlNm : obj.ttlNm // 제목 명 - , docNo : obj.docNo // 문서 번호 - , etcCn : obj.etcCn // 기타 내용 - , tnocs : obj.tnocs // 총건수 + let dialogTitle = ""; + + if (params.callPurpose == "create") { + dialogTitle = ${pageName}Control.prefixName + " 등록"; + } else if (params.callPurpose == "update") { + dialogTitle = ${pageName}Control.prefixName + " 수정"; + } else { + dialogTitle = ${pageName}Control.prefixName + " 정보"; } - ajax.post({ - url : wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/240/update.do") - , data : params + ajax.get({ + url : wctx.url(params.taskSeCd + ${pageName}PrefixUrl + "/260/info.do") // 수정 + , data : params || {} , success : resp => { - let btnTitle = $("#btnSvbtcInfo--${pageName}").attr("title"); - let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle); - - dialog.alert(showMessage); // 메시지 출력 - - if (resp.saved) { - ${pageName}Control.load(); // 자료 재조회 - } + dialog.open({ + id : ${pageName}Control.prefixed("Dialog") + , title : dialogTitle + , content : resp + , size : "md" + , onClose : () => { refreshList${pageName}(); } // 자료 재조회 + }); } }); } - // 공시송달 삭제 callback - removeSvbtcs${pageName} = (obj) => { - let taskSeCd = $("input[name='taskSeCd']:checked").val(); // 업무 구분 코드 - let selected = ${pageName}Control.dataset.getKeys("selected"); // 선택 자료 - - let params = { - svbtcIDs : selected.join(",") // 공시송달 IDs - , delYn : "Y" // 삭제 여부 - , delRsn : obj.reason // 삭제 사유 - } + // 삭제 callback + callbackRemove${pageName} = (obj) => { + let selected = ${pageName}Control.dataset.getKeys("selected"); - ajax.post({ - url : ${pageName}Control.urls.remove - , data : params - , success : resp => { - let btnTitle = $("#btnSvbtcRemoves--${pageName}").attr("title"); - let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle); + if (selected.length < 1) return; - dialog.alert(showMessage); // 메시지 출력 + // 서버에 전송할 data(파라미터) 생성 + let params = {}; + params[${pageName}Control.prefixed("IDs")] = selected.join(","); // IDs + params.delRsn = obj.reason; // 삭제 사유 - if (resp.saved) { - ${pageName}Control.load(); // 자료 재조회 - } - } - }); + ${pageName}Control.remove(params); } // 검색 자료 재조회 @@ -516,15 +498,11 @@ taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); } - // 화면 초기화 - $("#frmSearch--${pageName}")[0].reset(); - // 초기 기본 설정 - initFormData${pageName}(taskSeCd); - // 업무 구분별 설정 - setTask${pageName}(taskSeCd); + initForm${pageName}(); + // 기본 데이터 설정 - setFormData${pageName}(taskSeCd); + initData${pageName}(taskSeCd); // dataset 초기화 ${pageName}Control.dataset.clear(); @@ -565,53 +543,52 @@ getFindUser${pageName}(); } - // 공시송달 수정 버튼 이벤트 - fnSvbtcInfo${pageName} = () => { - let callbackFuncName = "getSvbtcInfo${pageName}"; - let taskSeCd = $("input:radio[name='taskSeCd']:checked").val(); - - let popupWidth = 640; - let popupHeight = 360; - - let popupX = (window.screen.width / 2) - (popupWidth / 2); - let popupY= (window.screen.height / 2) - (popupHeight / 2); - - window.open( - wctx.url("/resources/html/inputTtlDocNoDialog.html" - + "?callbackFuncName=" + callbackFuncName - + "&CALL_PURPOSE=" + "modify" - + "&TNOCS=" + ${pageName}Control.dataset.getValue("TNOCS") - + "&CAL_YMD=" + ${pageName}Control.dataset.getValue("SVBTC_YMD") - + "&TTL_NM=" + ${pageName}Control.dataset.getValue("TTL_NM") - + "&DOC_NO=" + ${pageName}Control.dataset.getValue("DOC_NO") - + "&ETC_CN=" + ${pageName}Control.dataset.getValue("ETC_CN") - ) - , "inputSvbtcDialog" - , 'status=no, height=' + popupHeight + ', width=' + popupWidth + ', left='+ popupX + ', top='+ popupY - ); + // 수정 버튼 이벤트 + fnUpdate${pageName} = () => { + let svbtcId = ${pageName}Control.dataset.getValue("SVBTC_ID"); + + // 공시송달 ID 가 없다면.. return + if (typeof svbtcId == "undefined" || svbtcId == null || svbtcId == "") return; + + let params = { + callPurpose : "update" + , svbtcId : svbtcId // 공시송달 ID + , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 + , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 + , sndngSeCd : ${pageName}Control.dataset.getValue("SNDNG_SE_CD") // 발송 구분 코드 + }; + + getSvbtcInfo${pageName}(params); } - // 공시송달 삭제 버튼 이벤트 - fnSvbtcRemove${pageName} = () => { + // 삭제 버튼 이벤트 + fnRemove${pageName} = () => { // 선택 자료 let selected = ${pageName}Control.dataset.getKeys("selected"); if (selected.length < 1) return; - let callbackFuncName = "removeSvbtcs${pageName}"; - let popupWidth = 640; - let popupHeight = 360; - let popupX = (window.screen.width / 2) - (popupWidth / 2); - let popupY= (window.screen.height / 2) - (popupHeight / 2); - - window.open( - wctx.url("/resources/html/inputRsnDialog.html" - + "?callbackFuncName=" + callbackFuncName - + "&CALL_PURPOSE=" + "remove" - ) - , "inputDelRsnDialog" - , 'status=no, height=' + popupHeight + ', width=' + popupWidth + ', left='+ popupX + ', top='+ popupY - ); + // 삭제 메세지 확인 + dialog.alert({ + content : "선택하신 " + ${pageName}Control.prefixName + " 정보를 삭제하시겠습니까?" + , onOK : () => { + // 삭제 사유 입력 + let callbackFuncName = "callbackRemove${pageName}"; + let popupWidth = 640; + let popupHeight = 240; + let popupX = (window.screen.width / 2) - (popupWidth / 2); + let popupY= (window.screen.height / 2) - (popupHeight / 2); + + window.open( + wctx.url("/resources/html/inputRsnDialog.html" + + "?callbackFuncName=" + callbackFuncName + + "&USE_PURPOSE=" + "삭제" + ) + , "inputDelRsnDialog" + , 'status=no, height=' + popupHeight + ', width=' + popupWidth + ', left='+ popupX + ', top='+ popupY + ); + } + }); } /************************************************************************** @@ -647,11 +624,9 @@ } // 화면 초기 설정 - initFormData${pageName} = (taskSeCd) => { - // 초기 데이터 설정 - if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { - clsForTask = $("#layout-navbar input[name='taskSeCd']:checked").val(); - } + initForm${pageName} = () => { + // 화면 초기화 + $("#frmSearch--${pageName}")[0].reset(); // input, select 초기화 let searchForm = $("#frmSearch--${pageName}"); @@ -661,10 +636,6 @@ searchForm.find("input[type='hidden']").val(""); searchForm.find("select").each(function() { $(this).find("option:eq(0)").prop("selected", true); }); - // 시군구 코드 - $("#sggCd--${pageName}").val("${sggCd}"); - // 업무 구분 - $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { $(this).prop("disabled", "true"); @@ -682,33 +653,15 @@ $("#schRgtrNm--${pageName}").prop("readonly", true); } - // 업무 구분별 설정 - setTask${pageName} = (taskSeCd) => { - let clsForTask = taskSeCd.toLowerCase(); - - // 업무별 조회조건 - renderForTask("frmSearch--${pageName}", clsForTask); - - // 업무별 그리드 th - $("#DataTables_Table_0--${pageName}").find("th").resizable( "destroy" ); - - let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content; - let cols = $(colContent).find("." + clsForTask + ",.cmn"); - let colsOuterHTML = ""; - - cols.each(function() { - colsOuterHTML += this.outerHTML; - }); - - $("#theadTr--${pageName}").html(colsOuterHTML); - $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); - } - // 기본 데이터 설정 - setFormData${pageName} = (taskSeCd) => { + initData${pageName} = (taskSeCd) => { // ${pageName}Control 설정 ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 + // 시군구 코드 + $("#sggCd--${pageName}").val("${sggCd}"); + // 업무 구분 코드 + $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 일자 $("#schSvbtcYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); $("#schSvbtcYmdTo--${pageName}").datepicker("setDate", new Date()); diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01260-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01260-info.jsp new file mode 100644 index 00000000..0b74af33 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01260-info.jsp @@ -0,0 +1,207 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%> +<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%> + + +
+ +
+ 공시송달 정보 + + +
+ +
+ + + + + +
+ +
+ + +
+ +
+ + + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+
+
+ + +
+ + + + + + +
+ + +
+
+ +