diff --git a/src/main/java/cokr/xit/fims/sndb/Svbtc.java b/src/main/java/cokr/xit/fims/sndb/Svbtc.java index 22ab3073..92884adf 100644 --- a/src/main/java/cokr/xit/fims/sndb/Svbtc.java +++ b/src/main/java/cokr/xit/fims/sndb/Svbtc.java @@ -67,11 +67,6 @@ public class Svbtc extends AbstractEntity { */ private Integer tnocs; - /** - * 총금액 - */ - private Long gramt; - /** * 삭제 여부 */ diff --git a/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java b/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java index 99e8bcf7..fbab3138 100644 --- a/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java +++ b/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java @@ -334,6 +334,25 @@ public interface SndngMapper extends AbstractMapper { return sndngDtl != null && updateSndngDtlSvbtc(params().set("sndngDtl", sndngDtl)) == 1; } + /**지정한 발송 상세을 삭제한다. + * @param params 파라미터 + * + * @return 저장된 정보수 + */ + int deleteSndngDtlSvbtc(Map params); + + /**발송 상세 정보를 삭제한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + * + */ + default boolean deleteSndngDtlSvbtc(SndngDtl sndngDtl) { + return sndngDtl != null && deleteSndngDtlSvbtc(params().set("sndngDtl", sndngDtl)) >= 1; + } } 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 5d165fcc..7bed8621 100644 --- a/src/main/java/cokr/xit/fims/sndb/dao/SvbtcMapper.java +++ b/src/main/java/cokr/xit/fims/sndb/dao/SvbtcMapper.java @@ -41,12 +41,6 @@ public interface SvbtcMapper extends AbstractMapper { */ List selectSvbtcDtls(SndbQuery req); - /**지정한 조건에 따라 새로운 공시송달 ID를 반환한다. - * @param req 공시송달 대장 조회 조건 - * @return 공시송달 대장 객체 목록 - */ - String selectMaxSvbtcId(SndbQuery req); - /**공시송달 대장 정보를 등록한다. * @param params 파라미터 * */ - boolean updateSvbtc(Svbtc svbtc); + String updateSvbtc(Svbtc svbtc); /**공시송달 대장 정보를 삭제한다. * @param svbtc 공시송달 대장 @@ -201,12 +201,16 @@ public interface SndngService { *
  • 그렇지 않으면 false
  • * */ - boolean removeSvbtc(Svbtc svbtc); - - - - + String removeSvbtc(Svbtc svbtc); + /**공시송달 대장 정보를 삭제한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + * + */ + String removeSvbtcList(SndbQuery req); /**지정한 발송상세 ID의 미배달 정보를 반환한다.
    * @param sndngDtlId 발송 상세 ID 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 9c4e3e7a..f085b7f6 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 @@ -1140,8 +1140,6 @@ public class SndngBean extends AbstractComponent { return svbtcMapper.selectSvbtcDtls(req); } - - /**공시송달 대장 정보를 등록한다. * @param svbtc 공시송달 대장 * @return 저장 여부 @@ -1158,12 +1156,12 @@ public class SndngBean extends AbstractComponent { retSuccess = svbtcMapper.insert(svbtc); if (!retSuccess) { // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("공시송달 대장에 등록에 실패하였습니다."); + throw new RuntimeException("공시송달 정보 등록에 실패하였습니다."); } - // 발송상세 대장에 공시송달 정보 수정 + // 발송 상세 대장에 공시송달 정보 수정 for (int iLoop = 0; iLoop < svbtc.getSndngDtlIDs().length; iLoop++) { - // 전자우편 접수 상세 + // 발송 상세 SndngDtl sndngDtl = new SndngDtl(); sndngDtl.setSvbtcId(svbtc.getSvbtcId()); @@ -1172,8 +1170,7 @@ public class SndngBean extends AbstractComponent { retSuccess = sndngMapper.updateSndngDtlSvbtc(sndngDtl); if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); + throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } } @@ -1189,8 +1186,21 @@ public class SndngBean extends AbstractComponent { *
  • 그렇지 않으면 false
  • * */ - public boolean updateSvbtc(Svbtc svbtc) { - return svbtcMapper.update(svbtc); + public String updateSvbtc(Svbtc svbtc) { + // 변수 선언 + boolean retSuccess = false; // DB 처리 결과 + String retMessage = "[F] "; // 처리 결과 메시지 + + // 공시송달(TB_SNDNG_DTL) 대장에 공시송달 정보를 수정 한다. + retSuccess = svbtcMapper.update(svbtc); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("공시송달 정보 수정에 실패하였습니다."); + } + + retMessage = "[S] 작업이 정상 처리 되었습니다."; + + return retMessage; } /**공시송달 대장 정보를 삭제한다. @@ -1200,8 +1210,31 @@ public class SndngBean extends AbstractComponent { *
  • 그렇지 않으면 false
  • * */ - public boolean removeSvbtc(Svbtc svbtc) { - return svbtcMapper.delete(svbtc); + public String removeSvbtc(Svbtc svbtc) { + // 변수 선언 + boolean retSuccess = false; // DB 처리 결과 + String retMessage = "[F] "; // 처리 결과 메시지 + + // 공시송달(TB_SVBTC) 대장을 삭제 한다. + retSuccess = svbtcMapper.delete(svbtc); + if (!retSuccess) { + throw new RuntimeException("공시송달 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + // 발송 상세(TB_SNDNG_DTL) 대장에서 공시송달 정보를 삭제 한다. + SndngDtl sndngDtl = new SndngDtl(); + + sndngDtl.setSvbtcId(svbtc.getSvbtcId()); + sndngDtl.setSndngDtlSttsCd("05"); + + retSuccess = sndngMapper.deleteSndngDtlSvbtc(sndngDtl); + if (!retSuccess) { + throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + retMessage = "[S] 작업이 정상 처리 되었습니다."; + + return retMessage; } } diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngServiceBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngServiceBean.java index 6922ddd2..d15977f4 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngServiceBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngServiceBean.java @@ -6,6 +6,7 @@ import javax.annotation.Resource; import org.springframework.stereotype.Service; +import cokr.xit.fims.excl.LevyExcl; import cokr.xit.fims.sndb.SndbQuery; import cokr.xit.fims.sndb.Sndng; import cokr.xit.fims.sndb.SndngDtl; @@ -164,13 +165,42 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic } @Override - public boolean updateSvbtc(Svbtc svbtc) { + public String updateSvbtc(Svbtc svbtc) { return sndngBean.updateSvbtc(svbtc); } @Override - public boolean removeSvbtc(Svbtc svbtc) { + public String removeSvbtc(Svbtc svbtc) { return sndngBean.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 = sndngBean.removeSvbtc(svbtc); + // 오류가 발생하였으면 종료.. + if (retMessage.contains("[F]")) { + return retMessage; + } + } + + return retMessage; + } + } diff --git a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java index b4580f89..27ef6f0c 100644 --- a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java +++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java @@ -69,7 +69,10 @@ public class Sndb01Controller extends ApplicationController { , serviceByPublicNoticeMain = "/240/main.do" // 공시송달 현황 메인 화면 , getServiceByPublicNoticeList = "/240/list.do" // 공시송달 현황 목록 조회 , createServiceByPublicNotice = "/240/create.do" // 공시송달 등록 + , updateServiceByPublicNotice = "/240/update.do" // 공시송달 수정 + , removeServiceByPublicNoticeList = "/240/removes.do" // 공시송달 삭제 리스트 , getServiceByPublicNoticeInfo = "/250/info.do" // 공시송달 상세 조회 + , removeServiceByPublicNotice = "/250/remove.do" // 공시송달 삭제 ; } @@ -656,8 +659,29 @@ public class Sndb01Controller extends ApplicationController { return setCollectionInfo(new ModelAndView("jsonView"), result, "svbtc"); } - /**발송 상세 정보의 반송 정보를 등록한다. - * @param sndngDtl 발송상세 정보 + /**공시송달 발송 현황 - 세부내용 정보 화면(sndb/sndb01/250-info)을 연다. + * @param svbtcId 공시송달 ID + * @return fims/sndb/sndb01250-info 또는 jsonView + *
    {
    +	 *     "sndngDtls": [발송 상세 목록]
    +	 * }
    + */ + public ModelAndView getServiceByPublicNoticeInfo(SndbQuery req) { + List sndngDtls = sndngService.getSvbtcDtls(req); + + boolean json = jsonResponse(); + + ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sndb/sndb01250-info"); + + return mav.addObject("pageName", "sndb01250") + .addObject("sggCd", req.getSggCd()) + .addObject("taskSeCd", req.getTaskSeCd()) + .addObject("svbtcDtl", json ? sndngDtls : toJson(sndngDtls)) // 계도장 발송 현황 세부내용 + ; + } + + /**공시송달 대장에 공시송달 정보를 등록한다. + * @param svbtc 공시송달 정보 * @return jsonView *
     {
     	 *     "saved": 수정되었으면 true, 그렇지 않으면 false
    @@ -678,29 +702,72 @@ public class Sndb01Controller extends ApplicationController {
     				.addObject("retMessage", retMessage);
     	}
     
    +	/**공시송달 대장에 공시송달 정보를 수정한다.
    +	 * @param svbtc 공시송달 정보
    +	 * @return jsonView
    +	 * 
     {
    +	 *     "saved": 수정되었으면 true, 그렇지 않으면 false
    +	 * }
    + */ + public ModelAndView updateServiceByPublicNotice(Svbtc svbtc) { + boolean saved = false; + String retMessage = sndngService.updateSvbtc(svbtc); + if (retMessage.contains("[S]")) { + saved = true; + } else { + saved = false; + } + return new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("retMessage", retMessage); + } - /**공시송달 발송 현황 - 세부내용 정보 화면(sndb/sndb01/250-info)을 연다. + /**지정한 공시송달 ID에 해당하는 공시송달 대장을 제거한다. * @param svbtcId 공시송달 ID - * @return fims/sndb/sndb01250-info 또는 jsonView - *
    {
    -	 *     "sndngDtls": [발송 상세 목록]
    -	 * }
    + * @return jsonView + *
     {
    +	 *     "affected": 저장된 정보수
    +	 *     "saved": 저장되었으면 true, 그렇지 않으면 false
    +	 * }
    */ - public ModelAndView getServiceByPublicNoticeInfo(SndbQuery req) { - List sndngDtls = sndngService.getSvbtcDtls(req); - - boolean json = jsonResponse(); + public ModelAndView removeServiceByPublicNotice(Svbtc svbtc) { + boolean saved = false; + String retMessage = sndngService.removeSvbtc(svbtc); - ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sndb/sndb01250-info"); + if (retMessage.contains("[S]")) { + saved = true; + } else { + saved = false; + } - return mav.addObject("pageName", "sndb01250") - .addObject("sggCd", req.getSggCd()) - .addObject("taskSeCd", req.getTaskSeCd()) - .addObject("svbtcDtl", json ? sndngDtls : toJson(sndngDtls)) // 계도장 발송 현황 세부내용 - ; + return new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("retMessage", retMessage); } + /**여러 건의 공시송달 ID에 해당하는 공시송달 대장를 제거한다. + * @param svbtcIDs 공시송달 IDs + * @return jsonView + *
     {
    +	 *     "affected": 저장된 정보수
    +	 *     "saved": 저장되었으면 true, 그렇지 않으면 false
    +	 * }
    + */ + public ModelAndView removeServiceByPublicNoticeList(SndbQuery req) { + boolean saved = false; + String retMessage = sndngService.removeSvbtcList(req); + + if (retMessage.contains("[S]")) { + saved = true; + } else { + saved = false; + } + + return new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("retMessage", retMessage); + } } diff --git a/src/main/java/cokr/xit/fims/task/web/DpvController.java b/src/main/java/cokr/xit/fims/task/web/DpvController.java index 8ef1b633..f223dc65 100644 --- a/src/main/java/cokr/xit/fims/task/web/DpvController.java +++ b/src/main/java/cokr/xit/fims/task/web/DpvController.java @@ -581,24 +581,6 @@ public class DpvController { return super.getSendBackList(req); } - @Override - @RequestMapping(name="공시송달 목록 조회", value=METHOD_URL.getServiceByPublicNoticeList) - public ModelAndView getServiceByPublicNoticeList(SndbQuery req) { - return super.getServiceByPublicNoticeList(req); - } - - @Override - @RequestMapping(name="공시송달 등록", value=METHOD_URL.createServiceByPublicNotice) - public ModelAndView createServiceByPublicNotice(Svbtc svbtc) { - return super.createServiceByPublicNotice(svbtc); - } - - @Override - @RequestMapping(name="공시송달 상세 조회", value=METHOD_URL.getServiceByPublicNoticeInfo) - public ModelAndView getServiceByPublicNoticeInfo(SndbQuery req) { - return super.getServiceByPublicNoticeInfo(req); - } - @Override @RequestMapping(name = "고지서 발송 대상", value = METHOD_URL.noticeSheetSendingTargetMain) public ModelAndView noticeSheetSendingTargetMain() { @@ -617,10 +599,6 @@ public class DpvController { return super.createSendingLink(sndng); } - - - - @Override @RequestMapping(name="발송상세의 반송(미배달) 정보 조회", value=METHOD_URL.getSendBackInfo) public ModelAndView getSendBackInfo(SndbQuery req) { @@ -645,6 +623,41 @@ public class DpvController { return super.deleteSendBack(sndngDtl); } + @Override + @RequestMapping(name="공시송달 목록 조회", value=METHOD_URL.getServiceByPublicNoticeList) + public ModelAndView getServiceByPublicNoticeList(SndbQuery req) { + return super.getServiceByPublicNoticeList(req); + } + + @Override + @RequestMapping(name="공시송달 등록", value=METHOD_URL.createServiceByPublicNotice) + public ModelAndView createServiceByPublicNotice(Svbtc svbtc) { + return super.createServiceByPublicNotice(svbtc); + } + + @Override + @RequestMapping(name="공시송달 수정", value=METHOD_URL.updateServiceByPublicNotice) + public ModelAndView updateServiceByPublicNotice(Svbtc svbtc) { + return super.updateServiceByPublicNotice(svbtc); + } + + @Override + @RequestMapping(name="공시송달 삭제", value=METHOD_URL.removeServiceByPublicNotice) + public ModelAndView removeServiceByPublicNotice(Svbtc svbtc) { + return super.removeServiceByPublicNotice(svbtc); + } + + @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); + } } diff --git a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml index 88c2293a..48f5568a 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml @@ -1607,7 +1607,7 @@ AND DEL_YN = 'N' - /* 공시송달 수정(sndngMapper.updateSndngDtlSvbtc) */ + /* 발송 상세의 공시송달 정보를 수정(sndngMapper.updateSndngDtlSvbtc) */ UPDATE TB_SNDNG_DTL SET SVBTC_ID = #{sndngDtl.svbtcId} , BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD @@ -1618,4 +1618,15 @@ AND DEL_YN = 'N' + /* 발송 상세의 공시송달 정보를 삭제(sndngMapper.deleteSndngDtlSvbtc) */ + UPDATE TB_SNDNG_DTL + SET SVBTC_ID = NULL + , BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD + , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} + , MDFCN_DT = + , MDFR = #{sndngDtl.modifiedBy} + WHERE SVBTC_ID = #{sndngDtl.svbtcId} + 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 57fef6c3..a76f4fcb 100644 --- a/src/main/resources/sql/mapper/fims/sndb/svbtc-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/svbtc-mapper.xml @@ -17,7 +17,6 @@ - @@ -40,7 +39,6 @@ , SV.DOC_NO , SV.ETC_CN , SV.TNOCS - , SV.GRAMT , SV.DEL_YN , SV.REG_DT , SV.RGTR @@ -111,7 +109,6 @@ , SV.DOC_NO , SV.ETC_CN , SV.TNOCS - , SV.GRAMT , SV.DEL_YN , SV.REG_DT , SV.RGTR @@ -129,8 +126,13 @@ , SD.LEVY_ID , SD.SNDNG_SE_CD , (SELECT GET_CODE_NM('FIM047', SD.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM + , VHRNO + , CRDN_DT + , CRDN_STDG_NM + , CRDN_PLC , SD.LEV_KEY - , CONCAT(SD.FYR, '-', SD.LEVY_NO) AS GOJI_NO + , SD.FYR + , SD.LEVY_NO , SD.SNDNG_YMD , SD.DUDT_YMD , GET_MASK_DATE(SD.DUDT_YMD, 'K') AS DUDT_YMD_MASK_KOR @@ -138,6 +140,7 @@ , SD.DUDT_AFTR_YMD , GET_MASK_DATE(SD.DUDT_AFTR_YMD, '.') AS DUDT_AFTR_YMD_MASK , SD.FFNLG_AMT + , SD.SUM_AMT , SD.RTPYR_NM , SD.RTPYR_NO , SD.RTPYR_ADDR @@ -187,7 +190,6 @@ , DOC_NO , ETC_CN , TNOCS - , GRAMT , DEL_YN , REG_DT , RGTR @@ -204,7 +206,6 @@ , #{svbtc.docNo} , #{svbtc.etcCn} , #{svbtc.tnocs} - , #{svbtc.gramt} , 'N' , #{svbtc.createdAt} , #{svbtc.createdBy} @@ -220,7 +221,6 @@ , DOC_NO = #{svbtc.docNo} , ETC_CN = #{svbtc.etcCn} , TNOCS = #{svbtc.tnocs} - , GRAMT = #{svbtc.gramt} , MDFCN_DT = #{svbtc.lastModified} , MDFR = #{svbtc.modifiedBy} WHERE SVBTC_ID = #{svbtc.svbtcId} diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp index bb6227c0..df4da55a 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp @@ -378,7 +378,7 @@ // 삭제 callback ${pageName}Control.onRemove = (selected, resp) => { - let btnTitle = $("#btn${infoPrefix}Remove--${pageName}").attr("title"); + let btnTitle = $("#btnLevyExclRemove--${pageName}").attr("title"); let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle); dialog.alert(showMessage); diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp index 53ca8faa..9a3b3952 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp @@ -382,7 +382,7 @@ // 삭제 callback ${pageName}Control.onRemove = (selected, resp) => { - let btnTitle = $("#btn${infoPrefix}Remove--${pageName}").attr("title"); + let btnTitle = $("#btnOpnnRemove--${pageName}").attr("title"); let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle); dialog.alert(showMessage); diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01230-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01230-main.jsp index 70b7cd38..10d02fb9 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01230-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01230-main.jsp @@ -216,7 +216,7 @@ {DLVR_TM} {UNDLVR_RSN_NM} {RCPN_NM} - {SNDNG_SE_NM} + {SNDNG_SE_NM} {SNDNG_YMD} {FFNLG_AMT} {RTPYR_NM} @@ -383,17 +383,17 @@ fn_securityModeToggle($("#securityMode--top").is(":checked")); } - // 공시송달 등록 버튼 callback - callbackSvbtcCreate${pageName} = (obj) => { - // 선택된 자료의 발송 상세 ID 추가 - let selected = ${pageName}Control.dataset.getKeys("selected"); + // 공시송달 callback + callbackSvbtcInfo${pageName} = (obj) => { + let taskSeCd = $("input[name='taskSeCd']:checked").val(); // 업무 구분 코드 + let selected = ${pageName}Control.dataset.getKeys("selected"); // 선택 자료 if (selected.length < 1) return; let params = { sndngDtlIDs : selected.join(",") // 발송 상세 IDs , sggCd : $("#sggCd--${pageName}").val() // 시군구 코드 - , taskSeCd : $("input[name='taskSeCd']:checked").val() // 업무 구분 코드 + , taskSeCd : taskSeCd // 업무 구분 코드 , sndngSeCd : ${pageName}Control.dataset.getValue("SNDNG_SE_CD") // 발송 구분 코드 , svbtcYmd : obj.calYmd // 공시송달 일자 , ttlNm : obj.ttlNm // 제목 명 @@ -573,10 +573,7 @@ // 공시송달 등록 버튼 이벤트 fnSvbtcInfo${pageName} = () => { - // validate 확인 - if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; - - let callbackFuncName = "callbackSvbtcCreate${pageName}"; + let callbackFuncName = "callbackSvbtcInfo${pageName}"; let selected = ${pageName}Control.dataset.getKeys("selected"); let taskSeCd = $("input:radio[name='taskSeCd']:checked").val(); let sndng = $("#schSndngSeCd--${pageName} option:selected").text(); @@ -597,10 +594,12 @@ window.open( wctx.url("/resources/html/inputTtlDocNoDialog.html" + "?callbackFuncName=" + callbackFuncName - + "&CALL_PURPOSE=" + "svbtc" + + "&CALL_PURPOSE=" + "create" + "&TNOCS=" + selected.length + "&CAL_YMD=" + DateUtil.getDateDay().date + "&TTL_NM=" + ttlNm + + "&DOC_NO=" + "" + + "&ETC_CN=" + "" ) , "inputSvbtcDialog" , 'status=no, height=' + popupHeight + ', width=' + popupWidth + ', left='+ popupX + ', top='+ popupY diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01240-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01240-main.jsp index f972044d..fa83ddac 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01240-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01240-main.jsp @@ -139,6 +139,12 @@ + + @@ -182,7 +188,7 @@ {TASK_SE_NM} - {SNDNG_SE_NM} + {SNDNG_SE_NM} {SVBTC_YMD} {TNOCS} {TTL_NM} @@ -288,15 +294,15 @@ $("#btnSvbtcRemoves--${pageName}").prop("disabled", keys.length < 1); }; - // 공시송달 상세 + // 공시송달 상세 Info ${pageName}Control.getInfo = (svbtcId) => { if (typeof svbtcId == "undefined" || svbtcId == null || svbtcId == "") return; let params = { - callPurpose : "view" - , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 - , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 - , svbtcId : svbtcId // 공시송달 ID + callPurpose : "view" + , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 + , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 + , svbtcId : svbtcId // 공시송달 ID }; ajax.get({ @@ -337,6 +343,65 @@ fn_securityModeToggle($("#securityMode--top").is(":checked")); } + // 공시송달 수정 callback + callbackSvbtcInfo${pageName} = (obj) => { + let taskSeCd = $("input[name='taskSeCd']:checked").val(); // 업무 구분 코드 + let svbtcId = ${pageName}Control.dataset.getValue("SVBTC_ID"); // 공시송달 ID + + let params = { + svbtcId : svbtcId // 발송 상세 ID + , svbtcYmd : obj.calYmd // 공시송달 일자 + , ttlNm : obj.ttlNm // 제목 명 + , docNo : obj.docNo // 문서 번호 + , etcCn : obj.etcCn // 기타 내용 + , tnocs : obj.tnocs // 총건수 + } + + ajax.post({ + url : wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/240/update.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(); // 자료 재조회 + } + } + }); + } + + // 공시송달 삭제 callback + callbackSvbtcRemoves${pageName} = (obj) => { + let taskSeCd = $("input[name='taskSeCd']:checked").val(); // 업무 구분 코드 + let selected = ${pageName}Control.dataset.getKeys("selected"); // 선택 자료 + + if (selected.length < 1) return; + + let params = { + svbtcIDs : selected.join(",") // 공시송달 IDs + , delYn : "Y" // 삭제 여부 + , delRsn : obj.reason // 삭제 사유 + } + + 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); + + dialog.alert(showMessage); // 메시지 출력 + + if (resp.saved) { + ${pageName}Control.load(); // 자료 재조회 + } + } + }); + } + /************************************************************************** * 초기 셋팅 **************************************************************************/ @@ -413,6 +478,7 @@ // URL 설정 setURL${pageName} = (taskSeCd) => { ${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/240/list.do"); // 조회 + ${pageName}Control.urls.remove = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/240/removes.do"); // 삭제 ${pageName}Control.urls.getInfo = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/250/info.do"); // 공시송달 세부내용 } @@ -457,6 +523,52 @@ } + // 공시송달 수정 버튼 이벤트 + fnSvbtcInfo${pageName} = () => { + let callbackFuncName = "callbackSvbtcInfo${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 + ); + } + + // 공시송달 삭제 버튼 이벤트 + fnSvbtcRemoves${pageName} = () => { + let callbackFuncName = "callbackSvbtcRemoves${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=" + "delete" + ) + , "inputDelRsnDialog" + , 'status=no, height=' + popupHeight + ', width=' + popupWidth + ', left='+ popupX + ', top='+ popupY + ); + } + /************************************************************************** * script 진입 **************************************************************************/ diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01250-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01250-info.jsp index 2d644283..17755975 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01250-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01250-info.jsp @@ -12,6 +12,7 @@
    +
    @@ -45,6 +46,9 @@ 발송상태 + 공시송달일자 + 회계연도 + 부과번호 등기번호 발송일자 납기일자 @@ -55,8 +59,10 @@ 상세주소 단속일시 차량번호 + 법정동 단속장소 - 단속금액 + 과태료금액 + 합계금액 등록일시 등록사용자 수정일시 @@ -72,6 +78,9 @@ {SNDNG_DTL_STTS_NM} + {SVBTC_YMD} + {FYR} + {LEVY_NO} {RG_NO} {SNDNG_YMD} {DUDT_YMD} @@ -82,8 +91,10 @@ {RTPYR_DTL_ADDR} {CRDN_DT} {VHRNO} + {CRDN_STDG_NM} {CRDN_PLC} {FFNLG_AMT} + {SUM_AMT} {REG_DT} {RGTR_NM} {MDFCN_DT} @@ -93,7 +104,7 @@ @@ -127,9 +138,11 @@ , appendData : true , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , formats : { - SNDNG_YMD : dateFormat + SVBTC_YMD : dateFormat + , SNDNG_YMD : dateFormat , DUDT_YMD : dateFormat , FFNLG_AMT : numberFormat + , SUM_AMT : numberFormat , REG_DT : datetimeFormat , MDFCN_DT : datetimeFormat } @@ -166,6 +179,8 @@ checkbox.prop("checked", keys.includes(checkbox.val())); }); + + $("#btnSvbtcRemove--${pageName}").prop("disabled", keys.length < 1); }; // 개별총정보 dialog @@ -192,6 +207,47 @@ }); } + // 삭제 callback + ${pageName}Control.onRemove = (selected, resp) => { + let taskSeCd = $("#taskSeCd--${pageName}").val(); + let btnTitle = $("#btnSvbtcRemove--${pageName}").attr("title"); + let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle); + + dialog.alert(showMessage); + +// ajax.get({ +// url : wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/250/info.do") +// , headers: { Accept: "application/json; charset=utf-8" } // json +// , data : params || {} +// , success : resp => { +// $("#frmEdit--${pageName}")[0].reset(); + +// if (resp.svbtcDtl) { +// ${pageName}Control.addData(${svbtcDtl}); +// } +// } +// }); + } + + // 삭제 + ${pageName}Control.remove = (params) => { + let selected = ${pageName}Control.dataset.getKeys("selected"); + + if (selected.length < 1) return; + + if (!params) { + params = {}; + params["sndngDtlIDs"] = selected.join(","); + params.svbtcId = ${pageName}Control.dataset.getValue("SVBTC_ID"); + } + + ajax.post({ + url : ${pageName}Control.urls.remove + , data : params + , success : resp => ${pageName}Control.onRemove(selected, resp) + }); + } + /************************************************************************** * **************************************************************************/ @@ -237,15 +293,30 @@ // DataTables width 변경 조정 $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); } + // URL 설정 + setURL${pageName} = (taskSeCd) => { + ${pageName}Control.urls.remove = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/250/remove.do"); // 삭제 + ${pageName}Control.urls.getInfo = wctx.url("/" + taskSeCd + "/sprt/sprt02/010/main.do"); // 개별총정보 + } /************************************************************************** * 버튼 clickEvent **************************************************************************/ - // 엑셀 + // 엑셀 버튼 이벤트 fnExcel${pageName} = () => { } + // 공시송달 삭제 버튼 이벤트 + fnSvbtcRemove${pageName} = () => { + dialog.alert({ + content : "공시송달 내역에서 선택한 정보를 삭제하시겠습니까?" + , onOK : () => { + ${pageName}Control.remove(); + } + }); + } + /************************************************************************** * script 진입 **************************************************************************/ @@ -260,6 +331,9 @@ // 이벤트 설정 setEvent${pageName}(); + // URL 설정 + setURL${pageName}("${taskSeCd}"); + // Dataset 셋팅 - 화면이 열리면서 조회하는 경우 addData 하여 자료를 추가 ${pageName}Control.addData(${svbtcDtl}); }); diff --git a/src/main/webapp/resources/html/inputRsnDialog.html b/src/main/webapp/resources/html/inputRsnDialog.html new file mode 100644 index 00000000..84faab48 --- /dev/null +++ b/src/main/webapp/resources/html/inputRsnDialog.html @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + 사유 입력 + + + +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/resources/html/inputTtlDocNoDialog.html b/src/main/webapp/resources/html/inputTtlDocNoDialog.html index 144997d1..2b17cfa6 100644 --- a/src/main/webapp/resources/html/inputTtlDocNoDialog.html +++ b/src/main/webapp/resources/html/inputTtlDocNoDialog.html @@ -12,14 +12,13 @@ - + - @@ -96,6 +95,8 @@ var tnocs = location.search.split("&")[2].split("=")[1]; var calYmd = location.search.split("&")[3].split("=")[1]; var ttlNm = decodeURI(location.search.split("&")[4].split("=")[1]); + var docNo = decodeURI(location.search.split("&")[5].split("=")[1]); + var etcCn = decodeURI(location.search.split("&")[6].split("=")[1]); // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 $("#frmInput").find(".form-date").each(function() { @@ -127,8 +128,8 @@ obj.tnocs = $("#tnocs").val(); // 총건수 obj.calYmd = inputDateSplit($("#calYmd").val()); // 일자 obj.ttlNm = $("#ttlNm").val(); // 제목 - obj.docNo = $("#docNo").val(); // 문서번호 - obj.etcCn = $("#etcCn").val(); // 기타내용 + obj.docNo = $("#docNo").val(); // 문서 번호 + obj.etcCn = $("#etcCn").val(); // 기타 내용 window.opener[callbackFuncName](obj); window.close(); @@ -141,6 +142,8 @@ $("#tnocs").val(tnocs); $("#ttlNm").val(ttlNm); + $("#docNo").val(docNo); + $("#etcCn").val(etcCn); });