diff --git a/src/main/java/cokr/xit/fims/levy/service/bean/LevyBean.java b/src/main/java/cokr/xit/fims/levy/service/bean/LevyBean.java index 179dbcc2..f809e07b 100644 --- a/src/main/java/cokr/xit/fims/levy/service/bean/LevyBean.java +++ b/src/main/java/cokr/xit/fims/levy/service/bean/LevyBean.java @@ -253,7 +253,7 @@ public class LevyBean extends AbstractComponent { // 조회 건수와 등록 대상 건수 확인 if (!req.getTnocs().equals(rductLevyTrgtList.get(0).string("TNOCS"))) { - rtnMsg = "[F] 조회된 총건수와 감경부과 등록 대상건수가 다릅니다."; + rtnMsg = "[F] 조회된 총 건수와 대상 건수가 다릅니다."; return rtnMsg; } diff --git a/src/main/java/cokr/xit/fims/nxrp/service/bean/NxrpMtchgBean.java b/src/main/java/cokr/xit/fims/nxrp/service/bean/NxrpMtchgBean.java index 65f13d69..b986e80a 100644 --- a/src/main/java/cokr/xit/fims/nxrp/service/bean/NxrpMtchgBean.java +++ b/src/main/java/cokr/xit/fims/nxrp/service/bean/NxrpMtchgBean.java @@ -12,6 +12,7 @@ import cokr.xit.fims.nxrp.dao.NxrpMtchgMapper; import cokr.xit.fims.nxrp.NxrpMtchg; import cokr.xit.fims.nxrp.NxrpMtchgQuery; import cokr.xit.fims.sndb.SndngDtl; +import cokr.xit.fims.sndb.dao.SndngDtlMapper; import cokr.xit.fims.sndb.dao.SndngMapper; /**세외수입 매칭 내역 정보 관리 Bean @@ -35,6 +36,10 @@ public class NxrpMtchgBean extends AbstractComponent { @Resource(name = "sndngMapper") private SndngMapper sndngMapper; + /** 발송 대장 정보 DAO */ + @Resource(name = "sndngDtlMapper") + private SndngDtlMapper sndngDtlMapper; + /**지정한 조건에 따라 세외수입 매칭 내역 목록을 조회하여 반환한다. * @param req 세외수입 매칭 내역 조회 조건 * @return 세외수입 매칭 내역 목록 @@ -124,7 +129,7 @@ public class NxrpMtchgBean extends AbstractComponent { sndngDtl.setSndngDtlSttsCd("01"); // FIM050(발송 상세 상태 코드) - 01 세외수입부과 sndngDtl.setSndngDtlId(req.getSndngDtlIDs()[iLoop]); - retSuccess = sndngMapper.updateSndngDtlSttsCd(sndngDtl); + retSuccess = sndngDtlMapper.updateSndngDtlSttsCd(sndngDtl); if (!retSuccess) { throw new RuntimeException("세외수입 매칭 정보를 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } diff --git a/src/main/java/cokr/xit/fims/sndb/SndbQuery.java b/src/main/java/cokr/xit/fims/sndb/SndbQuery.java index 5bbd7c2b..c9e19ff7 100644 --- a/src/main/java/cokr/xit/fims/sndb/SndbQuery.java +++ b/src/main/java/cokr/xit/fims/sndb/SndbQuery.java @@ -61,9 +61,8 @@ public class SndbQuery extends CmmnQuery { private String rcpnRelNm4; // ETC private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회). - private String delYn; // 삭제 여부 private String delRsn; // 삭제 사유 - private String crdnDelYn; // 단속 삭제 여부 + private String crdnDelYN; // 단속 삭제 여부 public String[] getCrdnIDs() { return ifEmpty(crdnIDs, () -> null); @@ -427,15 +426,6 @@ public class SndbQuery extends CmmnQuery { return self(); } - public String getDelYn() { - return ifEmpty(delYn, () -> null); - } - - public T setDelYn(String delYn) { - this.delYn = delYn; - return self(); - } - public String getDelRsn() { return ifEmpty(delRsn, () -> null); } @@ -445,12 +435,12 @@ public class SndbQuery extends CmmnQuery { return self(); } - public String getCrdnDelYn() { - return ifEmpty(crdnDelYn, () -> null); + public String getCrdnDelYN() { + return ifEmpty(crdnDelYN, () -> null); } - public T setCrdnDelYn(String crdnDelYn) { - this.crdnDelYn = crdnDelYn; + public T setCrdnDelYN(String crdnDelYN) { + this.crdnDelYN = crdnDelYN; return self(); } // ETC ///////////////////////////////////////////////////////////////////// diff --git a/src/main/java/cokr/xit/fims/sndb/Sndng.java b/src/main/java/cokr/xit/fims/sndb/Sndng.java index c2c64a73..9fd499f2 100644 --- a/src/main/java/cokr/xit/fims/sndb/Sndng.java +++ b/src/main/java/cokr/xit/fims/sndb/Sndng.java @@ -120,12 +120,12 @@ public class Sndng extends AbstractEntity { /** * 재발송 여부 */ - private String resndYn; + private String resndYN; /** * 삭제 여부 */ - private String delYn; + private String delYN; /** * 삭제 사유 diff --git a/src/main/java/cokr/xit/fims/sndb/SndngDtl.java b/src/main/java/cokr/xit/fims/sndb/SndngDtl.java index 0b47a0ca..ffb3b060 100644 --- a/src/main/java/cokr/xit/fims/sndb/SndngDtl.java +++ b/src/main/java/cokr/xit/fims/sndb/SndngDtl.java @@ -340,7 +340,7 @@ public class SndngDtl extends AbstractEntity { /** * 삭제 여부 */ - private String delYn; + private String delYN; /** * 삭제 사유 diff --git a/src/main/java/cokr/xit/fims/sndb/dao/SndngDtlMapper.java b/src/main/java/cokr/xit/fims/sndb/dao/SndngDtlMapper.java new file mode 100644 index 00000000..04f9fd4d --- /dev/null +++ b/src/main/java/cokr/xit/fims/sndb/dao/SndngDtlMapper.java @@ -0,0 +1,138 @@ +package cokr.xit.fims.sndb.dao; + +import java.util.List; +import java.util.Map; + +import org.egovframe.rte.psl.dataaccess.mapper.Mapper; + +import cokr.xit.foundation.component.AbstractMapper; +import cokr.xit.foundation.data.DataObject; + +import cokr.xit.fims.sndb.SndngDtl; +import cokr.xit.fims.sndb.SndbQuery; + +/** 발송 상세 정보 DAO + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2023-12-27	mjkhan 최초 작성
+ * ================================
+ * 
+ */ +@Mapper("sndngDtlMapper") +public interface SndngDtlMapper extends AbstractMapper { + /**지정한 조건에 따라 발송 상세 목록을 조회하여 반환한다.
+ * @param req 발송 상세 조회 조건 + * @return 발송 상세 목록 + */ + List selectSndngDtlList(SndbQuery req); + + /**지정한 조건에 따라 발송 상세 객체들을 반환한다. + * @param req 발송 상세 조회 조건 + * @return 발송 상세 객체 목록 + */ + List selectSndngDtls(SndbQuery req); + + default DataObject selectSndngDtlInfo(String sndngDtlId) { + List sndngDtlInfo = selectSndngDtls(new SndbQuery().setSndngDtlId(sndngDtlId) + .setDelYN("N") + .setOrderBy("SD.SNDNG_DTL_ID DESC")); + + return !sndngDtlInfo.isEmpty() ? sndngDtlInfo.get(0) : null; + } + + /** + * @param req 발송 상세 조회 조건 + * @return 발송 상세 객체 목록 + */ + DataObject selectSndngDtlLevyInfo(String sndngDtlId); + + /**발송 상세 정보를 등록한다. + * @param params 파라미터 + *
  • "sndngDtl" - 발송 상세
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int insertSndngDtl(Map params); + + /**발송 상세 정보를 등록한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean insert(SndngDtl sndngDtl) { + return sndngDtl != null && insertSndngDtl(params().set("sndngDtl", sndngDtl)) == 1; + } + + /**발송 상세 정보를 수정한다. + * @param params 파라미터 + *
  • "sndngDtl" - 발송 상세
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int updateSndngDtl(Map params); + + /**발송 상세 정보를 수정한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean update(SndngDtl sndngDtl) { + return sndngDtl != null && updateSndngDtl(params().set("sndngDtl", sndngDtl)) == 1; + } + + /**발송 상세 정보의 발송 상세 상태 코드를 수정한다. + * @param params 파라미터 + *
  • "sndngDtl" - 발송 상세
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int updateSndngDtlSttsCd(Map params); + + default boolean updateSndngDtlSttsCd(SndngDtl sndngDtl) { + return sndngDtl != null && updateSndngDtlSttsCd(params().set("sndngDtl", sndngDtl)) == 1; + } + + /**전자우편 발송상세 내역을 수정한다. + * @param params 파라미터 + *
  • "sndngDtl" - 발송 상세
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int updateSndngDtlEPost(Map params); + + default boolean updateSndngDtlEPost(SndngDtl sndngDtl) { + return sndngDtl != null && updateSndngDtlEPost(params().set("sndngDtl", sndngDtl)) == 1; + } + + /**지정한 발송 상세을 삭제한다. + * @param params 파라미터 + *
  • "sndngDtl" - 발송 상세
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int deleteSndngDtl(Map params); + + /**발송 상세 정보를 삭제한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean delete(SndngDtl sndngDtl) { + return sndngDtl != null && deleteSndngDtl(params().set("sndngDtl", sndngDtl)) == 1; + } + +} 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 467c1fcc..0ae45331 100644 --- a/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java +++ b/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java @@ -43,6 +43,24 @@ public interface SndngMapper extends AbstractMapper { return !wrngTrgtInfo.isEmpty() ? wrngTrgtInfo.get(0) : null; } + /**지정한 조건에 따라 사전통지 발송 대상 목록을 조회하여 반환한다.
+ * @param req 발송 대장 조회 조건 + * @return 발송 대장 목록 + */ + List selectAdvntceTrgtList(SndbQuery req); + + /**지정한 조건에 따라 사전 통보 발송 대상 객체들을 반환한다. + * @param req 발송 대장 조회 조건 + * @return 발송 대장 객체 목록 + */ + List selectAdvntceTrgts(SndbQuery req); + + default DataObject selectAdvntceTrgtInfo(String crdnId) { + List InfoSndngTrgt = selectAdvntceTrgts(new SndbQuery().setCrdnId(crdnId)); + + return !InfoSndngTrgt.isEmpty() ? InfoSndngTrgt.get(0) : null; + } + /**지정한 조건에 따라 발송 대장 목록을 조회하여 반환한다.
* @param req 발송 대장 조회 조건 * @return 발송 대장 목록 @@ -57,50 +75,95 @@ public interface SndngMapper extends AbstractMapper { default DataObject selectSndngInfo(String sndngId) { List InfoSndng = selectSndngs(new SndbQuery().setSndngId(sndngId) - .setDelYn("N") + .setDelYN("N") .setOrderBy("S.SNDNG_ID DESC")); return !InfoSndng.isEmpty() ? InfoSndng.get(0) : null; } - /**지정한 조건에 따라 발송 상세 목록을 조회하여 반환한다.
- * @param req 발송 상세 조회 조건 - * @return 발송 상세 목록 + /**발송 대장 정보를 등록한다. + * @param params 파라미터 + *
  • "sndng" - 발송 대장
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 */ - List selectSndngDtlList(SndbQuery req); + int insertSndng(Map params); - /**지정한 조건에 따라 발송 상세 객체들을 반환한다. - * @param req 발송 상세 조회 조건 - * @return 발송 상세 객체 목록 + /**발송 대장 정보를 등록한다. + * @param sndng 발송 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
*/ - List selectSndngDtls(SndbQuery req); + default boolean insert(Sndng sndng) { + return sndng != null && insertSndng(params().set("sndng", sndng)) == 1; + } - default DataObject selectSndngDtlInfo(String sndngDtlId) { - List sndngDtlInfo = selectSndngDtls(new SndbQuery().setSndngDtlId(sndngDtlId) - .setDelYn("N") - .setOrderBy("SD.SNDNG_DTL_ID DESC")); + /**발송 대장 정보를 수정한다. + * @param params 파라미터 + *
  • "sndng" - 발송 대장
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int updateSndng(Map params); - return !sndngDtlInfo.isEmpty() ? sndngDtlInfo.get(0) : null; + /**발송 대장 정보를 수정한다. + * @param sndng 발송 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean update(Sndng sndng) { + return sndng != null && updateSndng(params().set("sndng", sndng)) == 1; } - /**지정한 조건에 따라 사전통지 발송 대상 목록을 조회하여 반환한다.
- * @param req 발송 대장 조회 조건 - * @return 발송 대장 목록 + /**지정한 발송 대장을 삭제한다. + * @param params 파라미터 + *
  • "sndng" - 발송 대장
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 */ - List selectAdvntceTrgtList(SndbQuery req); + int deleteSndng(Map params); - /**지정한 조건에 따라 사전 통보 발송 대상 객체들을 반환한다. - * @param req 발송 대장 조회 조건 - * @return 발송 대장 객체 목록 + /**발송 대장 정보를 삭제한다. + * @param sndng 발송 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
*/ - List selectAdvntceTrgts(SndbQuery req); + default boolean delete(Sndng sndng) { + return sndng != null && deleteSndng(params().set("sndng", sndng)) == 1; + } - default DataObject selectAdvntceTrgtInfo(String crdnId) { - List InfoSndngTrgt = selectAdvntceTrgts(new SndbQuery().setCrdnId(crdnId)); + /**발송 대장 정보의 발송 상태 코드를 수정한다. + * @param params 파라미터 + *
  • "sndng" - 발송 대장
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int updateSndngSttsCd(Map params); - return !InfoSndngTrgt.isEmpty() ? InfoSndngTrgt.get(0) : null; + default boolean updateSndngSttsCd(Sndng sndng) { + return sndng != null && updateSndngSttsCd(params().set("sndng", sndng)) == 1; } + + + + + + + + + + /**지정한 발송 ID에 따라 발송 대상 객체들을 반환한다. * @param req 발송 대장 조회 조건 * @return 발송 대상 객체 목록 @@ -121,11 +184,6 @@ public interface SndngMapper extends AbstractMapper { - /** - * @param req 발송 상세 조회 조건 - * @return 발송 상세 객체 목록 - */ - DataObject selectSndngDtlLevyInfo(String sndngDtlId); @@ -189,142 +247,7 @@ public interface SndngMapper extends AbstractMapper { - /**발송 대장 정보를 등록한다. - * @param params 파라미터 - *
  • "sndng" - 발송 대장
  • - *
  • "currentUser" - 현재 접속한 사용자
  • - *
- * @return 저장된 정보수 - */ - int insertSndng(Map params); - /**발송 대장 정보를 등록한다. - * @param sndng 발송 대장 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - default boolean insertSndng(Sndng sndng) { - return sndng != null && insertSndng(params().set("sndng", sndng)) == 1; - } - - /**발송 대장 정보를 수정한다. - * @param params 파라미터 - *
  • "sndng" - 발송 대장
  • - *
  • "currentUser" - 현재 접속한 사용자
  • - *
- * @return 저장된 정보수 - */ - int updateSndng(Map params); - - /**발송 대장 정보를 수정한다. - * @param sndng 발송 대장 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - default boolean updateSndng(Sndng sndng) { - return sndng != null && updateSndng(params().set("sndng", sndng)) == 1; - } - - /**발송 대장 정보의 발송 상태 코드를 수정한다. - * @param params 파라미터 - *
  • "sndng" - 발송 대장
  • - *
  • "currentUser" - 현재 접속한 사용자
  • - *
- * @return 저장된 정보수 - */ - int updateSndngSttsCd(Map params); - - default boolean updateSndngSttsCd(Sndng sndng) { - return sndng != null && updateSndngSttsCd(params().set("sndng", sndng)) == 1; - } - - /**지정한 발송 대장을 삭제한다. - * @param params 파라미터 - *
  • "sndng" - 발송 대장
  • - *
  • "currentUser" - 현재 접속한 사용자
  • - *
- * @return 저장된 정보수 - */ - int deleteSndng(Map params); - - /**발송 대장 정보를 삭제한다. - * @param sndng 발송 대장 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - default boolean deleteSndng(Sndng sndng) { - return sndng != null && deleteSndng(params().set("sndng", sndng)) == 1; - } - - - - - - /**발송 상세 정보를 등록한다. - * @param params 파라미터 - *
  • "sndngDtl" - 발송 상세
  • - *
  • "currentUser" - 현재 접속한 사용자
  • - *
- * @return 저장된 정보수 - */ - int insertSndngDtl(Map params); - - /**발송 상세 정보를 등록한다. - * @param sndngDtl 발송 상세 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - default boolean insertSndngDtl(SndngDtl sndngDtl) { - return sndngDtl != null && insertSndngDtl(params().set("sndngDtl", sndngDtl)) == 1; - } - - /**발송 상세 정보를 수정한다. - * @param params 파라미터 - *
  • "sndngDtl" - 발송 상세
  • - *
  • "currentUser" - 현재 접속한 사용자
  • - *
- * @return 저장된 정보수 - */ - int updateSndngDtl(Map params); - - /**발송 상세 정보를 수정한다. - * @param sndngDtl 발송 상세 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - default boolean updateSndngDtl(SndngDtl sndngDtl) { - return sndngDtl != null && updateSndngDtl(params().set("sndngDtl", sndngDtl)) == 1; - } - - /**지정한 발송 상세을 삭제한다. - * @param params 파라미터 - *
  • "sndngDtl" - 발송 상세
  • - *
  • "currentUser" - 현재 접속한 사용자
  • - *
- * @return 저장된 정보수 - */ - int deleteSndngDtl(Map params); - - /**발송 상세 정보를 삭제한다. - * @param sndngDtl 발송 상세 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - default boolean deleteSndngDtl(SndngDtl sndngDtl) { - return sndngDtl != null && deleteSndngDtl(params().set("sndngDtl", sndngDtl)) == 1; - } /**발송상세 대장에 공시송달ID에 해당하는 총건수 가져오기 * @param svbtcId 공시송달 ID @@ -345,31 +268,6 @@ public interface SndngMapper extends AbstractMapper { return sndng != null && updateEPostSndng(params().set("sndng", sndng)) == 1; } - /**전자우편 발송상세 내역을 수정한다. - * @param params 파라미터 - *
  • "sndngDtl" - 발송 상세
  • - *
  • "currentUser" - 현재 접속한 사용자
  • - *
- * @return 저장된 정보수 - */ - int updateEPostSndngDtl(Map params); - - default boolean updateEPostSndngDtl(SndngDtl sndngDtl) { - return sndngDtl != null && updateEPostSndngDtl(params().set("sndngDtl", sndngDtl)) == 1; - } - - /**발송 상세 정보의 발송 상세 상태 코드를 수정한다. - * @param params 파라미터 - *
  • "sndngDtl" - 발송 상세
  • - *
  • "currentUser" - 현재 접속한 사용자
  • - *
- * @return 저장된 정보수 - */ - int updateSndngDtlSttsCd(Map params); - - default boolean updateSndngDtlSttsCd(SndngDtl sndngDtl) { - return sndngDtl != null && updateSndngDtlSttsCd(params().set("sndngDtl", sndngDtl)) == 1; - } /**발송 상세 정보의 반송 정보를 수정한다. * @param params 파라미터 diff --git a/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java b/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java new file mode 100644 index 00000000..67c9ead5 --- /dev/null +++ b/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java @@ -0,0 +1,61 @@ +package cokr.xit.fims.sndb.service; + +import java.util.List; + +import cokr.xit.foundation.data.DataObject; + +import cokr.xit.fims.sndb.SndngDtl; +import cokr.xit.fims.sndb.SndbQuery; + +/**발송 상세 관리 서비스 인터페이스. + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2023-12-27	JoJH 최초 작성
+ * ================================
+ * 
+ */ +public interface SndngDtlService { + + /**지정한 조건에 따라 발송 상세 목록을 조회하여 반환한다. + * @param req 발송 상세 조회 조건 + * @return 발송 상세 목록 + */ + List getSndngDtlList(SndbQuery req); + + /**지정한 조건에 따라 발송 상세 객체들을 반환한다. + * @param req 발송 상세 조회 조건 + * @return 발송 상세 객체 목록 + */ + List getSndngDtls(SndbQuery req); + + /**발송 상세 정보를 등록한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + boolean create(SndngDtl sndngDtl); + + /**발송 상세 정보를 수정한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + boolean update(SndngDtl sndngDtl); + + /**발송 상세 정보를 삭제한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + boolean remove(SndngDtl sndngDtl); + +} diff --git a/src/main/java/cokr/xit/fims/sndb/service/SndngService.java b/src/main/java/cokr/xit/fims/sndb/service/SndngService.java index ebf570b2..860c6cfe 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/SndngService.java +++ b/src/main/java/cokr/xit/fims/sndb/service/SndngService.java @@ -32,14 +32,14 @@ public interface SndngService { */ List getWrngTrgts(SndbQuery req); - /**계도장 발송 대장 정보를 등록한다. - * @param sndng 발송 대장 + /**계도장 발송 대상을 조회하여 발송 대장에 등록한다. + * @param req 계도장 발송 대상 조회, sndng 발송 대장 * @return 저장 여부 *
  • 저장됐으면 true
  • *
  • 그렇지 않으면 false
  • *
*/ - String createWrngSndng(Sndng sndng); + String createWrngSndngList(SndbQuery req, Sndng sndng); /**지정한 조건에 따라 계도장 발송 대장 목록을 조회하여 반환한다. * @param req 발송 대장 조회 조건 @@ -51,7 +51,7 @@ public interface SndngService { * @param req 발송 상세 조회 조건 * @return 발송 상세 객체 목록 */ - List getWrngSndngDtls(SndbQuery req); + List getWrngSndngDtls(SndbQuery req); /**지정한 조건에 따라 사전통지 발송 대상 목록을 조회하여 반환한다. * @param req 발송 대장 조회 조건 @@ -80,15 +80,11 @@ public interface SndngService { */ List getAdvntceSndngList(SndbQuery req); - /**지정한 조건에 따라 사전통지 발송 상세 객체들을 반환한다. - * @param req 발송 상세 조회 조건 - * @return 발송 상세 객체 목록 - */ - List getAdvntceSndngDtls(SndbQuery req); - - - - + /**지정한 조건에 따라 사전통지 발송 상세 객체들을 반환한다. + * @param req 발송 상세 조회 조건 + * @return 발송 상세 객체 목록 + */ + List getAdvntceSndngDtls(SndbQuery req); /**발송 대장 정보를 등록한다. * @param sndng 발송 대장 @@ -153,11 +149,6 @@ public interface SndngService { */ List getSndngList(SndbQuery req); - /**지정한 조건에 따라 발송 상세 객체들을 반환한다. - * @param req 발송 상세 조회 조건 - * @return 발송 상세 객체 목록 - */ - List getSndngDtls(SndbQuery req); /**지정한 조건에 따라 반송 목록을 조회하여 반환한다. * @param req 발송 대장 조회 조건 @@ -183,33 +174,6 @@ public interface SndngService { */ List getSvbtcDtls(SndbQuery req); - /**발송 상세 정보를 등록한다. - * @param sndngDtl 발송 상세 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - boolean createSndngDtl(SndngDtl sndngDtl); - - /**발송 상세 정보를 수정한다. - * @param sndngDtl 발송 상세 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - boolean updateSndngDtl(SndngDtl sndngDtl); - - /**발송 상세 정보를 삭제한다. - * @param sndngDtl 발송 상세 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - boolean removeSndngDtl(SndngDtl sndngDtl); - /**발송 상세 정보의 반송 정보를 등록한다. * @param sndngDtl 발송 상세 * @return 저장 여부 @@ -294,9 +258,4 @@ public interface SndngService { */ List getSndngs(SndbQuery req); - /**지정한 조건에 따라 발송 상세 목록을 조회하여 반환한다. - * @param req 발송 상세 조회 조건 - * @return 발송 상세 목록 - */ - List getSndngDtlList(SndbQuery req); } 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 564c4ebc..6e6b9415 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 @@ -9,6 +9,7 @@ import org.springframework.stereotype.Component; import cokr.xit.base.file.service.FileQuery; import cokr.xit.base.file.service.bean.FileBean; import cokr.xit.base.user.service.bean.UserBean; +import cokr.xit.fims.cmmn.CmmnUtil; import cokr.xit.fims.cmmn.CrdnSttsHstry; import cokr.xit.fims.cmmn.VltnQuery; import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean; @@ -25,6 +26,7 @@ import cokr.xit.fims.sndb.SndbQuery; import cokr.xit.fims.sndb.Sndng; import cokr.xit.fims.sndb.SndngDtl; import cokr.xit.fims.sndb.Svbtc; +import cokr.xit.fims.sndb.dao.SndngDtlMapper; import cokr.xit.fims.sndb.dao.SndngMapper; import cokr.xit.fims.sndb.dao.SvbtcMapper; import cokr.xit.foundation.AbstractComponent; @@ -47,6 +49,10 @@ public class SndngBean extends AbstractComponent { @Resource(name = "sndngMapper") private SndngMapper sndngMapper; + /** 발송 상세 정보 DAO */ + @Resource(name = "sndngDtlMapper") + private SndngDtlMapper sndngDtlMapper; + /** 공시송달 대장 정보 DAO */ @Resource(name = "svbtcMapper") private SvbtcMapper svbtcMapper; @@ -88,6 +94,19 @@ public class SndngBean extends AbstractComponent { * @return 계도장 발송 대상 목록 */ public List getWrngTrgtList(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 sndngMapper.selectWrngTrgtList(req); } @@ -96,6 +115,10 @@ public class SndngBean extends AbstractComponent { * @return 계도장 발송 대상 객체 목록 */ public List getWrngTrgts(SndbQuery req) { + // 삭제 여부 확인 + if (req.getDelYN() == null) { + req.setDelYN("N"); + } if (req.getOrderBy() == null) { req.setOrderBy("CRDN_YMD_TM"); } @@ -103,27 +126,361 @@ public class SndngBean extends AbstractComponent { return sndngMapper.selectWrngTrgts(req); } - /**지정한 조건에 따라 발송 대장 목록을 조회하여 반환한다. - * @param req 발송 대장 조회 조건 - * @return 발송 대장 목록 + /**계도장 발송 대상을 조회하여 발송 대장에 등록한다. + * @param req 계도장 발송 대상 조회, sndng 발송 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
*/ - public List getSndngList(SndbQuery req) { - return sndngMapper.selectSndngList(req); + public String createWrngSndngList(SndbQuery req, Sndng sndng) { + // 변수 선언 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + // 첫번째 페이지 확인 + req.setPageNum(1); + + List wrngTrgtList = sndngMapper.selectWrngTrgtList(req); + + // 조회 건수 확인 + if (wrngTrgtList == null || wrngTrgtList.size() < 1) { + rtnMsg = "[F] 작업 중 대상 자료가 존재하지 않습니다."; + return rtnMsg; + } + if (sndng.getTnocs() != wrngTrgtList.get(0).number("TOT_CNT").intValue()) { + rtnMsg = "[F] 조회된 총 건수와 대상 건수가 다릅니다."; + return rtnMsg; + } + + // 총 페이지 건수 확인 + int totalPageCnt = wrngTrgtList.get(0).number("TOT_CNT").intValue() / req.getFetchSize() + ((wrngTrgtList.get(0).number("TOT_CNT").intValue() % req.getFetchSize() == 0) ? 0 : 1); + + // 페이지 건수 + 1 만큼 반복문 실행.. + for (int iLoop = 1; iLoop <= totalPageCnt; iLoop++) { + if (iLoop == 1) { + // 발송(TB_SNDNG) 대장에 등록한다. + sndng.setLevyBgngYmd(null); // 부과 시작 일자 + sndng.setLevyEndYmd(null); // 부과 종료 일자 + sndng.setSndngEndYmd(null); // 발송 종료 일자 + if (sndng.getTnocs() == 1) { + sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드 - 개별 + } else { + sndng.setSndngRegSeCd("01"); // 발송 등록 구분 코드 - 일괄 + } + if (sndng.getResndYN() == null) { + sndng.setResndYN("N"); // 재발송 여부 + } + if (sndng.getDelYN() == null) { + sndng.setDelYN("N"); // 삭제 여부 + } + sndng.setSndngSttsCd("00"); // 발송 상태 코드(FIM049) - 00 발송 준비 + + // 발송 등록 + rtnScs = sndngMapper.insert(sndng); + if (!rtnScs) { + throw new RuntimeException("계도장 발송 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + } else { + req.setPageNum(iLoop); + + wrngTrgtList = sndngMapper.selectWrngTrgtList(req); + // 조회 건수 확인 + if (wrngTrgtList == null || wrngTrgtList.size() < 1) { + throw new RuntimeException("계도장 발송 등록 작업 중 대상 자료가 존재하지 않습니다."); // 예외를 발생시켜서 DB Rollback + } + } + + // 발송 상세(TB_SNDNG_DTL) 대장에 등록한다. + for (int jLoop = 0; jLoop < wrngTrgtList.size(); jLoop++) { + String newCrdnSttsCd = "84"; // 단속 상태 코드 - 84 계고장 출력 완료 + Integer ffnlgAmt = wrngTrgtList.get(jLoop).number("FFNLG_CRDN_AMT").intValue(); // 과태료 최초 단속 금액 + Integer pcptax = wrngTrgtList.get(jLoop).number("FFNLG_CRDN_AMT").intValue(); // 과태료 최초 단속 금액 + Integer adamt = 0; + Integer sumAmt = 0; + + SndngDtl sndngDtl = new SndngDtl(); + + sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID + sndngDtl.setCrdnId(wrngTrgtList.get(jLoop).string("CRDN_ID")); // 단속 ID + sndngDtl.setSndngSeCd(sndng.getSndngSeCd()); // 발송 구분 코드 + sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자 + sndngDtl.setSndngEndYmd(sndng.getSndngEndYmd()); // 발송 종료 일자 + sndngDtl.setRtpyrNm(wrngTrgtList.get(jLoop).string("RTPYR_NM")); // 납부자 명 + sndngDtl.setRtpyrBrdt(wrngTrgtList.get(jLoop).string("RTPYR_BRDT")); // 납부자 생년월일 + sndngDtl.setRtpyrAddr(wrngTrgtList.get(jLoop).string("ADDR")); // 납부자 주소 + sndngDtl.setRtpyrDtlAddr(wrngTrgtList.get(jLoop).string("DTL_ADDR")); // 납부자 상세 주소 + sndngDtl.setRtpyrZip(wrngTrgtList.get(jLoop).string("ZIP")); // 납부자 우편번호 + sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 처리전 + sndngDtl.setVhrno(wrngTrgtList.get(jLoop).string("VHRNO")); // 차량번호 + sndngDtl.setCrdnDt(wrngTrgtList.get(jLoop).string("CRDN_YMD_TM_MASK")); // 단속 일시 + sndngDtl.setCrdnStdgNm(wrngTrgtList.get(jLoop).string("CRDN_STDG_NM")); // 단속 법정동 명 + sndngDtl.setCrdnPlc(wrngTrgtList.get(jLoop).string("CRDN_PLC")); // 단속 장소 + sndngDtl.setFfnlgAmt(ffnlgAmt); // 과태료 금액 + sndngDtl.setPcptax(pcptax); // 본세 + sndngDtl.setAdamt(adamt); // 가산금 + sndngDtl.setSumAmt(sumAmt); // 합계 금액 + sndngDtl.setDudtAftrAmt(0); // 납기 후 금액 + sndngDtl.setDelYN("N"); // 삭제 여부 + + rtnScs = sndngDtlMapper.insert(sndngDtl); // 발송 상세 등록 + if (!rtnScs) { + throw new RuntimeException("발송 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + // 단속 상태 코드를 수정한다. + if (!newCrdnSttsCd.equals("")) { + CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); + + crdnSttsHstry.setCrdnId(wrngTrgtList.get(jLoop).string("CRDN_ID")); + crdnSttsHstry.setBfrSttsCd(wrngTrgtList.get(jLoop).string("CRDN_STTS_CD")); + crdnSttsHstry.setBfrSttsChgDt(wrngTrgtList.get(jLoop).string("CRDN_STTS_CHG_DT")); + crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd); + crdnSttsHstry.setTaskDtlId(sndngDtl.getSndngDtlId()); + + // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다. + rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); + if (!rtnScs) { + throw new RuntimeException("발송 상세 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + } + } + } + + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; + + return rtnMsg; } - /**지정한 조건에 따라 발송 상세 객체들을 반환한다. - * @param req 발송 상세 조회 조건 - * @return 발송 상세 객체 목록 + /**계도장 발송 상세 정보를 등록한다. + * @param sndng 발송 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
*/ - public List getSndngDtls(SndbQuery req) { - return sndngMapper.selectSndngDtls(req); + public String createWrngSndngDtl(Sndng sndng) { + // 변수 선언 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + String newCrdnSttsCd = ""; // 단속 상태 코드 + int ffnlgAmt = 0; // 과태료 금액 + int pcptax = 0; // 본세 + int adamt = 0; // 가산금 + int sumAmt = 0; // 합계 금액 + + // 사용자 정보 + DataObject userInfo = userBean.getUserInfo(currentUser().getId()); + + sndng.setDeptCd(userInfo.string("DEPT_CD")); // 부서 코드 + sndng.setVltnId(sndng.getVltnId()); // 위반 ID + + if (sndng.getSndngSeCd().equals("11") || sndng.getSndngSeCd().equals("12")) { // 계고장 + sndng.setLevyBgngYmd(null); // 부과 시작 일자 + sndng.setLevyEndYmd(null); // 부과 종료 일자 + sndng.setSndngEndYmd(null); // 발송 종료 일자 + newCrdnSttsCd = "84"; // 단속 상태 코드 - 84 계고장 출력 완료 + } else if (sndng.getSndngSeCd().equals("01") || sndng.getSndngSeCd().equals("02")) { // 사전통지 + sndng.setLevyBgngYmd(null); // 부과 시작 일자 + sndng.setLevyEndYmd(null); // 부과 종료 일자 + newCrdnSttsCd = "42"; // 단속 상태 코드 - 42 사전통지 발송 + } else { + newCrdnSttsCd = ""; + } + + if (sndng.getTnocs() == 1) { + sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드 - 개별 + } else { + sndng.setSndngRegSeCd("01"); // 발송 등록 구분 코드 - 일괄 + } + + if (sndng.getResndYN() == null) { + sndng.setResndYN("N"); // 재발송 여부 + } + + if (sndng.getDelYN() == null) { + sndng.setDelYN("N"); // 삭제 여부 + } + + sndng.setSndngSttsCd("00"); // 발송 상태 코드(FIM049) - 00 발송 준비 + + // 발송 등록 + rtnScs = sndngMapper.insert(sndng); + if (!rtnScs) { + throw new RuntimeException("발송 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + for (int iLoop = 0; iLoop < sndng.getCrdnIDs().length; iLoop++) { + // 단속, 납부자 정보 조회 + DataObject crdnPayerInfo = sndngMapper.selectCrdnPayerTrgtInfo(sndng.getCrdnIDs()[iLoop]); + + if (crdnPayerInfo == null) { + throw new RuntimeException("발송상세 등록 작업중 단속 정보가 확인되지 않았습니다." + "

단속ID : " + sndng.getCrdnIDs()[iLoop]); // 예외를 발생시켜서 DB Rollback + } + if (crdnPayerInfo.string("RTPYR_ID").equals("")) { + throw new RuntimeException("발송상세 등록 작업중 납부자 정보가 확인되지 않았습니다." + "

차량번호 : " + crdnPayerInfo.string("VHRNO")); // 예외를 발생시켜서 DB Rollback + } + + if (sndng.getSndngSeCd().equals("11") || sndng.getSndngSeCd().equals("12")) { // 계고장 + ffnlgAmt = crdnPayerInfo.number("FFNLG_CRDN_AMT").intValue(); // 과태료 최초 단속 금액 + pcptax = crdnPayerInfo.number("FFNLG_CRDN_AMT").intValue(); // 과태료 최초 단속 금액 + adamt = 0; + sumAmt = 0; + } else if (sndng.getSndngSeCd().equals("01") || sndng.getSndngSeCd().equals("02")) { // 사전통지 + // 부과 ID가 없다면 부과대장 등록 + if (crdnPayerInfo.string("LEVY_ID").equals("")) { + Levy levy = new Levy(); + + levy.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID + levy.setLevyYmd(sndng.getSndngYmd()); // 부과 일자 + levy.setFrstDudtYmd(sndng.getSndngEndYmd()); // 최초 납기 일자 + levy.setDudtYmd(sndng.getSndngEndYmd()); // 납기 일자 + + rtnMsg = levyBean.createRductLevy(levy); + if (rtnMsg.contains("[F]")) { + throw new RuntimeException("발송 상세 등록 작업중 부과대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + // 단속, 납부자 정보 재조회 ///////////////////////////////////////// + crdnPayerInfo = sndngMapper.selectCrdnPayerTrgtInfo(sndng.getCrdnIDs()[iLoop]); + } else { + if ("BPV,PVS".contains(crdnPayerInfo.string("TASK_SE_CD"))) { + // 부과일자, 최초납기일자, 납기일자를 변경한다. + Levy levy = new Levy(); + + levy.setLevyId(crdnPayerInfo.string("LEVY_ID")); // 부과 ID + levy.setLevyYmd(sndng.getSndngYmd()); // 부과 일자 + levy.setFrstDudtYmd(sndng.getSndngEndYmd()); // 최초 납기 일자 + levy.setDudtYmd(sndng.getSndngEndYmd()); // 납기 일자 + levy.setFfnlgAmt(crdnPayerInfo.number("FFNLG_AMT").intValue()); // 과태료 금액 + levy.setLevyPcptax(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 본세 금액 + levy.setSumAmt(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 합계 금액 + + rtnMsg = levyBean.updateRductLevyYmd(levy); + if (rtnMsg.contains("[F]")) { + throw new RuntimeException("발송 상세 등록 작업중 부과대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + } + } + + ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액 + pcptax = crdnPayerInfo.number("PCPTAX").intValue(); // 부과 본세 + adamt = 0; // 부과 가산금 + sumAmt = crdnPayerInfo.number("SUM_AMT").intValue(); // 부과 합계 금액 + } else { + ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액 + pcptax = crdnPayerInfo.number("PCPTAX").intValue(); // 부과본세 - 수납본세 - 감액본세 + adamt = crdnPayerInfo.number("ADAMT").intValue(); // 부과가산금 - 수납가산금 - 감액가산금 + sumAmt = crdnPayerInfo.number("SUM_AMT").intValue(); // 합계 금액 + } + + // 발송 상세(TB_SNDNG_DTL) 대장에 등록한다. + SndngDtl sndngDtl = new SndngDtl(); + + sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID + sndngDtl.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID + sndngDtl.setSndngSeCd(sndng.getSndngSeCd()); // 발송 구분 코드 + sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자 + sndngDtl.setSndngEndYmd(sndng.getSndngEndYmd()); // 발송 종료 일자 + sndngDtl.setRtpyrNm(crdnPayerInfo.string("RTPYR_NM")); // 납부자 명 + sndngDtl.setRtpyrBrdt(crdnPayerInfo.string("RTPYR_BRDT")); // 납부자 생년월일 + sndngDtl.setRtpyrAddr(crdnPayerInfo.string("ADDR")); // 납부자 주소 + sndngDtl.setRtpyrDtlAddr(crdnPayerInfo.string("DTL_ADDR")); // 납부자 상세 주소 + sndngDtl.setRtpyrZip(crdnPayerInfo.string("ZIP")); // 납부자 우편번호 + sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 처리전 + sndngDtl.setVhrno(crdnPayerInfo.string("VHRNO")); // 차량번호 + sndngDtl.setCrdnDt(crdnPayerInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시 + sndngDtl.setCrdnStdgNm(crdnPayerInfo.string("CRDN_STDG_NM")); // 단속 법정동 명 + sndngDtl.setCrdnPlc(crdnPayerInfo.string("CRDN_PLC")); // 단속 장소 + sndngDtl.setFyr(crdnPayerInfo.string("FYR")); // 회계연도 + sndngDtl.setLevyNo(crdnPayerInfo.string("LEVY_NO")); // 부과 번호 + sndngDtl.setLevyYmd(crdnPayerInfo.string("LEVY_YMD")); // 부과 일자 + sndngDtl.setDudtYmd(crdnPayerInfo.string("DUDT_YMD")); // 납기 일자 + sndngDtl.setFfnlgAmt(ffnlgAmt); // 과태료 금액 + sndngDtl.setPcptax(pcptax); // 본세 + sndngDtl.setAdamt(adamt); // 가산금 + sndngDtl.setSumAmt(sumAmt); // 합계 금액 + sndngDtl.setDudtAftrAmt(crdnPayerInfo.number("DUDT_AFTR_AMT").intValue()); // 납기 후 금액 + sndngDtl.setEpayno(crdnPayerInfo.string("TAX_NO")); // 납세 번호 + sndngDtl.setEpayno(crdnPayerInfo.string("EPAYNO")); // 전자납부번호 + sndngDtl.setBankNm(crdnPayerInfo.string("BANK_NM")); // 은행 명 + sndngDtl.setVrActno(crdnPayerInfo.string("VR_ACTNO")); // 가상 계좌번호 + sndngDtl.setBankNm2(crdnPayerInfo.string("BANK_NM2")); // 은행 명2 + sndngDtl.setVrActno2(crdnPayerInfo.string("VR_ACTNO2")); // 가상 계좌번호2 + sndngDtl.setBankNm3(crdnPayerInfo.string("BANK_NM3")); // 은행 명3 + sndngDtl.setVrActno3(crdnPayerInfo.string("VR_ACTNO3")); // 가상 계좌번호3 + sndngDtl.setBankNm4(crdnPayerInfo.string("BANK_NM4")); // 은행 명4 + sndngDtl.setVrActno4(crdnPayerInfo.string("VR_ACTNO4")); // 가상 계좌번호4 + sndngDtl.setBankNm5(crdnPayerInfo.string("BANK_NM5")); // 은행 명5 + sndngDtl.setVrActno5(crdnPayerInfo.string("VR_ACTNO5")); // 가상 계좌번호5 + sndngDtl.setBankNm6(crdnPayerInfo.string("BANK_NM6")); // 은행 명6 + sndngDtl.setVrActno6(crdnPayerInfo.string("VR_ACTNO6")); // 가상 계좌번호6 + sndngDtl.setBankNm7(crdnPayerInfo.string("BANK_NM7")); // 은행 명7 + sndngDtl.setVrActno7(crdnPayerInfo.string("VR_ACTNO7")); // 가상 계좌번호7 + sndngDtl.setBankNm8(crdnPayerInfo.string("BANK_NM8")); // 은행 명8 + sndngDtl.setVrActno8(crdnPayerInfo.string("VR_ACTNO8")); // 가상 계좌번호8 + sndngDtl.setBankNm9(crdnPayerInfo.string("BANK_NM9")); // 은행 명9 + sndngDtl.setVrActno9(crdnPayerInfo.string("VR_ACTNO9")); // 가상 계좌번호9 + sndngDtl.setBankNm10(crdnPayerInfo.string("BANK_NM10")); // 은행 명10 + sndngDtl.setVrActno10(crdnPayerInfo.string("VR_ACTNO10")); // 가상 계좌번호10 + sndngDtl.setBankNm11(crdnPayerInfo.string("BANK_NM11")); // 은행 명11 + sndngDtl.setVrActno11(crdnPayerInfo.string("VR_ACTNO11")); // 가상 계좌번호11 + sndngDtl.setDelYN("N"); // 삭제 여부 + + rtnScs = sndngDtlMapper.insert(sndngDtl); // 발송 상세 등록 + if (!rtnScs) { + throw new RuntimeException("발송 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + // 단속 상태 코드를 수정한다. + if (!newCrdnSttsCd.equals("")) { + CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); + + crdnSttsHstry.setCrdnId(crdnPayerInfo.string("CRDN_ID")); + crdnSttsHstry.setBfrSttsCd(crdnPayerInfo.string("CRDN_STTS_CD")); + crdnSttsHstry.setBfrSttsChgDt(crdnPayerInfo.string("CRDN_STTS_CHG_DT")); + crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd); + crdnSttsHstry.setTaskDtlId(sndngDtl.getSndngDtlId()); + + // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다. + rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); + if (!rtnScs) { + throw new RuntimeException("발송 상세 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + } + } + + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; + + return rtnMsg; } + + + + + + + /**지정한 조건에 따라 사전 통보 발송 대상 목록을 조회하여 반환한다. * @param req 발송 대장 조회 조건 * @return 계도장 발송 대상 목록 */ public List getAdvntceTrgtList(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 sndngMapper.selectAdvntceTrgtList(req); } @@ -132,6 +489,10 @@ public class SndngBean extends AbstractComponent { * @return 계도장 발송 대상 객체 목록 */ public List getAdvntceTrgts(SndbQuery req) { + // 삭제 여부 확인 + if (req.getDelYN() == null) { + req.setDelYN("N"); + } if (req.getOrderBy() == null) { req.setOrderBy("CRDN_YMD_TM"); } @@ -139,6 +500,34 @@ public class SndngBean extends AbstractComponent { return sndngMapper.selectAdvntceTrgts(req); } + + + + /**지정한 조건에 따라 발송 대장 목록을 조회하여 반환한다. + * @param req 발송 대장 조회 조건 + * @return 발송 대장 목록 + */ + public List getSndngList(SndbQuery req) { + return sndngMapper.selectSndngList(req); + } + + /**지정한 조건에 따라 발송 대장 객체들을 반환한다. + * @param req 발송 대장 조회 조건 + * @return 발송 대장 객체 목록 + */ + public List getSndngs(SndbQuery req) { + return sndngMapper.selectSndngs(req); + } + + + + + + + + + + /**지정한 조건에 따라 반송 목록을 조회하여 반환한다. * @param req 발송 대장 조회 조건 * @return 반송 목록 @@ -156,14 +545,14 @@ public class SndngBean extends AbstractComponent { */ public String createSndng(Sndng sndng) { // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String retMessage = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 - String newCrdnSttsCd = ""; // 단속 상태 코드 - int ffnlgAmt = 0; // 과태료 금액 - int pcptax = 0; // 본세 - int adamt = 0; // 가산금 - int sumAmt = 0; // 합계 금액 + String newCrdnSttsCd = ""; // 단속 상태 코드 + int ffnlgAmt = 0; // 과태료 금액 + int pcptax = 0; // 본세 + int adamt = 0; // 가산금 + int sumAmt = 0; // 합계 금액 // 사용자 정보 DataObject userInfo = userBean.getUserInfo(currentUser().getId()); @@ -190,19 +579,19 @@ public class SndngBean extends AbstractComponent { sndng.setSndngRegSeCd("01"); // 발송 등록 구분 코드 - 일괄 } - if (sndng.getResndYn() == null) { - sndng.setResndYn("N"); // 재발송 여부 + if (sndng.getResndYN() == null) { + sndng.setResndYN("N"); // 재발송 여부 } - if (sndng.getDelYn() == null) { - sndng.setDelYn("N"); // 삭제 여부 + if (sndng.getDelYN() == null) { + sndng.setDelYN("N"); // 삭제 여부 } sndng.setSndngSttsCd("00"); // 발송 상태 코드(FIM049) - 00 발송 준비 // 발송 등록 - retSuccess = sndngMapper.insertSndng(sndng); - if (!retSuccess) { + rtnScs = sndngMapper.insert(sndng); + if (!rtnScs) { throw new RuntimeException("발송 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } @@ -232,8 +621,8 @@ public class SndngBean extends AbstractComponent { levy.setFrstDudtYmd(sndng.getSndngEndYmd()); // 최초 납기 일자 levy.setDudtYmd(sndng.getSndngEndYmd()); // 납기 일자 - retMessage = levyBean.createRductLevy(levy); - if (retMessage.contains("[F]")) { + rtnMsg = levyBean.createRductLevy(levy); + if (rtnMsg.contains("[F]")) { throw new RuntimeException("발송 상세 등록 작업중 부과대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } @@ -252,8 +641,8 @@ public class SndngBean extends AbstractComponent { levy.setLevyPcptax(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 본세 금액 levy.setSumAmt(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 합계 금액 - retMessage = levyBean.updateRductLevyYmd(levy); - if (retMessage.contains("[F]")) { + rtnMsg = levyBean.updateRductLevyYmd(levy); + if (rtnMsg.contains("[F]")) { throw new RuntimeException("발송 상세 등록 작업중 부과대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } } @@ -321,10 +710,10 @@ public class SndngBean extends AbstractComponent { sndngDtl.setVrActno10(crdnPayerInfo.string("VR_ACTNO10")); // 가상 계좌번호10 sndngDtl.setBankNm11(crdnPayerInfo.string("BANK_NM11")); // 은행 명11 sndngDtl.setVrActno11(crdnPayerInfo.string("VR_ACTNO11")); // 가상 계좌번호11 - sndngDtl.setDelYn("N"); // 삭제 여부 + sndngDtl.setDelYN("N"); // 삭제 여부 - retSuccess = sndngMapper.insertSndngDtl(sndngDtl); // 발송 상세 등록 - if (!retSuccess) { + rtnScs = sndngDtlMapper.insert(sndngDtl); // 발송 상세 등록 + if (!rtnScs) { throw new RuntimeException("발송 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } @@ -339,38 +728,38 @@ public class SndngBean extends AbstractComponent { crdnSttsHstry.setTaskDtlId(sndngDtl.getSndngDtlId()); // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다. - retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); - if (!retSuccess) { + rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); + if (!rtnScs) { throw new RuntimeException("발송 상세 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } } } - retMessage = "[S] 작업이 정상 처리 되었습니다."; + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - return retMessage; + return rtnMsg; } - /**발송 대장 정보를 수정한다. + /**발송 대장 정보를 등록한다. * @param sndng 발송 대장 * @return 저장 여부 *

  • 저장됐으면 true
  • *
  • 그렇지 않으면 false
  • *
*/ - public boolean updateSndng(Sndng sndng) { - return sndngMapper.updateSndng(sndng); + public boolean create(Sndng sndng) { + return sndngMapper.insert(sndng); } - /**발송 대장 정보의 발송 상태 코드를 수정한다. + /**발송 대장 정보를 수정한다. * @param sndng 발송 대장 * @return 저장 여부 *
  • 저장됐으면 true
  • *
  • 그렇지 않으면 false
  • *
*/ - public boolean updateSndngSttsCd(Sndng sndng) { - return sndngMapper.updateSndngSttsCd(sndng); + public boolean updateSndng(Sndng sndng) { + return sndngMapper.update(sndng); } /**발송 대장 정보를 삭제한다. @@ -381,9 +770,31 @@ public class SndngBean extends AbstractComponent { * */ public boolean removeSndng(Sndng sndng) { - return sndngMapper.deleteSndng(sndng); + return sndngMapper.delete(sndng); + } + + /**발송 대장 정보의 발송 상태 코드를 수정한다. + * @param sndng 발송 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean updateSndngSttsCd(Sndng sndng) { + return sndngMapper.updateSndngSttsCd(sndng); } + + + + + + + + + + + /**전자우편 발송 대장 정보를 등록한다. * @param sndng 발송 대장 * @return 저장 여부 @@ -393,8 +804,8 @@ public class SndngBean extends AbstractComponent { */ public String createEPost(Sndng sndng) { // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String retMessage = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 String ctpvCode = ""; // 시도 코드 String sealCd3 = ""; // 내용문 상세 종류 3번째(마지막) 자리 @@ -575,8 +986,8 @@ public class SndngBean extends AbstractComponent { sealCd3 = "M"; // M:전기차충전구역과태료고지서 } } else { - retMessage = "[F] 작업중 지정되지 않았습니다."; - return retMessage; + rtnMsg = "[F] 작업중 지정되지 않았습니다."; + return rtnMsg; } // 발송 구분 @@ -595,8 +1006,8 @@ public class SndngBean extends AbstractComponent { } else if (sndngInfo.string("SNDNG_SE_CD").equals("09")) { // 체납분 jobCd = vltnInfo.string("VLTN_CD") + "09"; } else { - retMessage = "[F] 작업중 발송 구분이 지정되지 않았습니다."; - return retMessage; + rtnMsg = "[F] 작업중 발송 구분이 지정되지 않았습니다."; + return rtnMsg; } String epostSenderRegSeq = epostRcptRegBean.getEpostSenderRegSeq(sndngInfo.string("TODAY"), sndngInfo.string("DEPT_CD")); @@ -698,8 +1109,8 @@ public class SndngBean extends AbstractComponent { epostRcptReg.setSndngId(sndngInfo.string("SNDNG_ID")); // 발송 ID // 6. 전자우편 접수 등록 - retSuccess = epostRcptRegBean.create(epostRcptReg); - if (!retSuccess) { + rtnScs = epostRcptRegBean.create(epostRcptReg); + if (!rtnScs) { // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback throw new RuntimeException("우편통합 발송 작업중 전자우편 접수 등록에 실패하였습니다."); } @@ -713,8 +1124,8 @@ public class SndngBean extends AbstractComponent { mdfcnSndng.setSndngSttsCd("01"); // 발송 상태 코드(FIM049) - 01 발송 대기 mdfcnSndng.setSndngId(sndng.getSndngId()); // 발송 ID - retSuccess = sndngMapper.updateEPostSndng(mdfcnSndng); // 전자우편 발송 내역 수정 - if (!retSuccess) { + rtnScs = sndngMapper.updateEPostSndng(mdfcnSndng); // 전자우편 발송 내역 수정 + if (!rtnScs) { throw new RuntimeException("우편통합 발송 작업중 발송 내역 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } @@ -783,10 +1194,10 @@ public class SndngBean extends AbstractComponent { EpostRcptDtl epostRcptDtl = new EpostRcptDtl(); // 발송 상세 및 단속, 납부자, 부과 정보 조회 - DataObject sndngDtlInfo = sndngMapper.selectSndngDtlLevyInfo(sndngTrgts.get(iLoop).string("SNDNG_DTL_ID")); + DataObject sndngDtlInfo = sndngDtlMapper.selectSndngDtlLevyInfo(sndngTrgts.get(iLoop).string("SNDNG_DTL_ID")); if (!sndngDtlInfo.string("SNDNG_DTL_STTS_CD").equals("02")) { - if (!retSuccess) { + if (!rtnScs) { throw new RuntimeException("우편통합 발송 작업중 발송상세 상태코드가 가상계좌취득이 아닌 자료를 발견되었습니다."); // 예외를 발생시켜서 DB Rollback } } @@ -1114,8 +1525,8 @@ public class SndngBean extends AbstractComponent { } // 10. 전자우편 접수 상세 - retSuccess = epostRcptDtlBean.create(epostRcptDtl); - if (!retSuccess) { + rtnScs = epostRcptDtlBean.create(epostRcptDtl); + if (!rtnScs) { throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } @@ -1171,15 +1582,15 @@ public class SndngBean extends AbstractComponent { sndngDtl.setVrActno11(sndngDtlInfo.string("VR_ACTNO11")); sndngDtl.setSndngDtlId(sndngDtlInfo.string("SNDNG_DTL_ID")); - retSuccess = sndngMapper.updateEPostSndngDtl(sndngDtl); // 전자우편 발송상세 내역 수정 - if (!retSuccess) { + rtnScs = sndngDtlMapper.updateSndngDtlEPost(sndngDtl); // 전자우편 발송상세 내역 수정 + if (!rtnScs) { throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } } - retMessage = "[S] 작업이 정상 처리 되었습니다."; + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - return retMessage; + return rtnMsg; } /**OCR 밴드의 검을 반환한다. @@ -1224,12 +1635,12 @@ public class SndngBean extends AbstractComponent { */ public String createSndbk(SndngDtl sndngDtl) { // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String retMessage = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 // 반송 내역 조회 DataObject sndbkInfo = sndngMapper.selectSndbkInfo(new SndbQuery().setSndngDtlId(sndngDtl.getSndngDtlId()) - .setDelYn("N")); + .setDelYN("N")); // 반송 등록이 가능한지 확인. @@ -1238,15 +1649,15 @@ public class SndngBean extends AbstractComponent { sndngDtl.setSndngDtlSttsCd("05"); // 발송 상세 상태 코드 FIM050 - 05:반송 // 발송 상세(TB_SNDNG_DTL) 대장에 반송 정보를 등록 한다. - retSuccess = sndngMapper.createSndbk(sndngDtl); - if (!retSuccess) { + rtnScs = sndngMapper.createSndbk(sndngDtl); + if (!rtnScs) { // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback throw new RuntimeException("발송상세의 반송 정보 등록에 실패하였습니다."); } - retMessage = "[S] 작업이 정상 처리 되었습니다."; + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - return retMessage; + return rtnMsg; } /**발송 상세의 반송 정보를 수정한다. @@ -1258,19 +1669,19 @@ public class SndngBean extends AbstractComponent { */ public String updateSndbk(SndngDtl sndngDtl) { // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String retMessage = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 // 발송 상세(TB_SNDNG_DTL) 대장에 반송 정보를 등록 한다. - retSuccess = sndngMapper.updateSndbk(sndngDtl); - if (!retSuccess) { + rtnScs = sndngMapper.updateSndbk(sndngDtl); + if (!rtnScs) { // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback throw new RuntimeException("발송상세의 반송 정보 수정에 실패하였습니다."); } - retMessage = "[S] 작업이 정상 처리 되었습니다."; + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - return retMessage; + return rtnMsg; } /**발송 상세의 반송 정보를 삭제한다. @@ -1282,12 +1693,12 @@ public class SndngBean extends AbstractComponent { */ public String deleteSndbk(SndngDtl sndngDtl) { // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String retMessage = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 // 반송 내역 조회 DataObject sndbkInfo = sndngMapper.selectSndbkInfo(new SndbQuery().setSndngDtlId(sndngDtl.getSndngDtlId()) - .setDelYn("N")); + .setDelYN("N")); // 반송 삭제가 가능한지 확인. @@ -1296,69 +1707,20 @@ public class SndngBean extends AbstractComponent { sndngDtl.setSndngDtlSttsCd(sndbkInfo.string("BFR_SNDNG_DTL_STTS_CD")); // 발송 상세 상태 코드 <- 전 발송 상세 상태 코드 // 발송 상세(TB_SNDNG_DTL) 대장에 반송 정보를 등록 한다. - retSuccess = sndngMapper.deleteSndbk(sndngDtl); - if (!retSuccess) { + rtnScs = sndngMapper.deleteSndbk(sndngDtl); + if (!rtnScs) { // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback throw new RuntimeException("발송상세의 반송 정보 삭제에 실패하였습니다."); } - retMessage = "[S] 작업이 정상 처리 되었습니다."; + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - return retMessage; + return rtnMsg; } - /**지정한 조건에 따라 발송 대장 객체들을 반환한다. - * @param req 발송 대장 조회 조건 - * @return 발송 대장 객체 목록 - */ - public List getSndngs(SndbQuery req) { - return sndngMapper.selectSndngs(req); - } - - /**지정한 조건에 따라 발송 상세 목록을 조회하여 반환한다. - * @param req 발송 상세 조회 조건 - * @return 발송 상세 목록 - */ - public List getSndngDtlList(SndbQuery req) { - return sndngMapper.selectSndngDtlList(req); - } - - /**발송 상세 정보를 등록한다. - * @param sndngDtl 발송 상세 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - public boolean createSndngDtl(SndngDtl sndngDtl) { - return sndngMapper.insertSndngDtl(sndngDtl); - } - - /**발송 상세 정보를 수정한다. - * @param sndngDtl 발송 상세 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - public boolean updateSndngDtl(SndngDtl sndngDtl) { - return sndngMapper.updateSndngDtl(sndngDtl); - } - - /**발송 상세 정보를 삭제한다. - * @param sndngDtl 발송 상세 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - public boolean removeSndngDtl(SndngDtl sndngDtl) { - return sndngMapper.deleteSndngDtl(sndngDtl); - } - /**지정한 조건에 따라 공시송달 대장 목록을 조회하여 반환한다. * @param req 공시송달 대장 조회 조건 * @return 공시송달 대장 목록 @@ -1400,12 +1762,12 @@ public class SndngBean extends AbstractComponent { */ public String createSvbtc(Svbtc svbtc) { // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String retMessage = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 // 공시송달(TB_SNDNG_DTL) 대장에 공시송달 정보를 등록 한다. - retSuccess = svbtcMapper.insert(svbtc); - if (!retSuccess) { + rtnScs = svbtcMapper.insert(svbtc); + if (!rtnScs) { // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback throw new RuntimeException("공시송달 정보 등록에 실패하였습니다."); } @@ -1419,15 +1781,15 @@ public class SndngBean extends AbstractComponent { sndngDtl.setSndngDtlSttsCd("06"); sndngDtl.setSndngDtlId(svbtc.getSndngDtlIDs()[iLoop]); - retSuccess = sndngMapper.updateSndngDtlSvbtc(sndngDtl); - if (!retSuccess) { + rtnScs = sndngMapper.updateSndngDtlSvbtc(sndngDtl); + if (!rtnScs) { throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } } - retMessage = "[S] 작업이 정상 처리 되었습니다."; + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - return retMessage; + return rtnMsg; } /**공시송달 대장 정보를 수정한다. @@ -1439,19 +1801,19 @@ public class SndngBean extends AbstractComponent { */ public String updateSvbtc(Svbtc svbtc) { // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String retMessage = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 // 공시송달(TB_SNDNG_DTL) 대장에 공시송달 정보를 수정 한다. - retSuccess = svbtcMapper.update(svbtc); - if (!retSuccess) { + rtnScs = svbtcMapper.update(svbtc); + if (!rtnScs) { // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback throw new RuntimeException("공시송달 정보 수정에 실패하였습니다."); } - retMessage = "[S] 작업이 정상 처리 되었습니다."; + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - return retMessage; + return rtnMsg; } /**공시송달 대장 정보를 삭제한다. @@ -1463,18 +1825,18 @@ public class SndngBean extends AbstractComponent { */ public String removeSvbtc(Svbtc svbtc) { // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String retMessage = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 // 공시송달(TB_SVBTC) 대장을 삭제 한다. - retSuccess = svbtcMapper.delete(svbtc); - if (!retSuccess) { + rtnScs = svbtcMapper.delete(svbtc); + if (!rtnScs) { throw new RuntimeException("공시송달 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } - retMessage = "[S] 작업이 정상 처리 되었습니다."; + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - return retMessage; + return rtnMsg; } /**공시송달ID 조건에 따라 발송상세 대장의 총 건수를 조회한다. @@ -1494,19 +1856,19 @@ public class SndngBean extends AbstractComponent { */ public String removeSndngDtlSvbtc(SndngDtl sndngDtl) { // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String retMessage = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 // 발송 상세(TB_SNDNG_DTL) 대장에 공시송달 정보를 삭제 한다. - retSuccess = sndngMapper.deleteSndngDtlSvbtc(sndngDtl); - if (!retSuccess) { + rtnScs = sndngMapper.deleteSndngDtlSvbtc(sndngDtl); + if (!rtnScs) { // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback throw new RuntimeException("발송상세의 공시송달 정보 삭제에 실패하였습니다."); } - retMessage = "[S] 작업이 정상 처리 되었습니다."; + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - return retMessage; + return rtnMsg; } @@ -1519,12 +1881,12 @@ public class SndngBean extends AbstractComponent { */ public String removeSvbtcSndngDtl(Svbtc svbtc) { // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String retMessage = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 // 공시송달(TB_SVBTC) 대장을 삭제 한다. - retSuccess = svbtcMapper.delete(svbtc); - if (!retSuccess) { + rtnScs = svbtcMapper.delete(svbtc); + if (!rtnScs) { throw new RuntimeException("공시송달 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } @@ -1534,14 +1896,14 @@ public class SndngBean extends AbstractComponent { sndngDtl.setSvbtcId(svbtc.getSvbtcId()); sndngDtl.setSndngDtlSttsCd("05"); - retSuccess = sndngMapper.deleteSndngDtlSvbtc(sndngDtl); - if (!retSuccess) { + rtnScs = sndngMapper.deleteSndngDtlSvbtc(sndngDtl); + if (!rtnScs) { throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } - retMessage = "[S] 작업이 정상 처리 되었습니다."; + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - return retMessage; + return rtnMsg; } } 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 new file mode 100644 index 00000000..d2cc180d --- /dev/null +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlBean.java @@ -0,0 +1,82 @@ +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.SndngDtl; +import cokr.xit.fims.sndb.SndbQuery; +import cokr.xit.fims.sndb.dao.SndngDtlMapper; + +/**발송 상세 정보 관리 Bean + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2023-12-27	JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Component("sndngDtlBean") +public class SndngDtlBean extends AbstractComponent { + + /** 발송 상세 정보 DAO */ + @Resource(name = "sndngDtlMapper") + private SndngDtlMapper sndngDtlMapper; + + /**지정한 조건에 따라 발송 상세 목록을 조회하여 반환한다. + * @param req 발송 상세 조회 조건 + * @return 발송 상세 목록 + */ + public List getSndngDtlList(SndbQuery req) { + return sndngDtlMapper.selectSndngDtlList(req); + } + + /**지정한 조건에 따라 발송 상세 객체들을 반환한다. + * @param req 발송 상세 조회 조건 + * @return 발송 상세 객체 목록 + */ + public List getSndngDtls(SndbQuery req) { + return sndngDtlMapper.selectSndngDtls(req); + } + + /**발송 상세 정보를 등록한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean create(SndngDtl sndngDtl) { + return sndngDtlMapper.insert(sndngDtl); + } + + /**발송 상세 정보를 수정한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean update(SndngDtl sndngDtl) { + return sndngDtlMapper.update(sndngDtl); + } + + /**발송 상세 정보를 삭제한다. + * @param sndngDtl 발송 상세 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean remove(SndngDtl sndngDtl) { + return sndngDtlMapper.delete(sndngDtl); + } + +} 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 new file mode 100644 index 00000000..38a2ecd8 --- /dev/null +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlServiceBean.java @@ -0,0 +1,58 @@ +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.SndngDtl; +import cokr.xit.fims.sndb.SndbQuery; +import cokr.xit.fims.sndb.service.SndngDtlService; + +/**발송 상세 서비스 구현체. + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2023-12-27	JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Service("sndngDtlService") +public class SndngDtlServiceBean extends AbstractServiceBean implements SndngDtlService { + + /** 발송 상세 정보 Bean */ + @Resource(name = "sndngDtlBean") + private SndngDtlBean sndngDtlBean; + + @Override + public List getSndngDtlList(SndbQuery req) { + return sndngDtlBean.getSndngDtlList(req); + } + + @Override + public List getSndngDtls(SndbQuery req) { + return sndngDtlBean.getSndngDtls(req); + } + + @Override + public boolean create(SndngDtl sndngDtl) { + return sndngDtlBean.create(sndngDtl); + } + + @Override + public boolean update(SndngDtl sndngDtl) { + return sndngDtlBean.update(sndngDtl); + } + + @Override + public boolean remove(SndngDtl sndngDtl) { + return sndngDtlBean.remove(sndngDtl); + } + +} diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngServiceBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngServiceBean.java index 3bf143ab..c1004253 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 @@ -31,6 +31,10 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic @Resource(name = "sndngBean") private SndngBean sndngBean; + /** 발송 상세 정보 Bean */ + @Resource(name = "sndngDtlBean") + private SndngDtlBean sndngDtlBean; + @Override public List getWrngTrgtList(SndbQuery req) { return sndngBean.getWrngTrgtList(req); @@ -42,8 +46,8 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic } @Override - public String createWrngSndng(Sndng sndng) { - return sndngBean.createSndng(sndng); + public String createWrngSndngList(SndbQuery req, Sndng sndng) { + return sndngBean.createWrngSndngList(req, sndng); } @Override @@ -53,7 +57,7 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic @Override public List getWrngSndngDtls(SndbQuery req) { - return sndngBean.getSndngDtls(req); + return sndngDtlBean.getSndngDtls(req); } @Override @@ -78,7 +82,7 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic @Override public List getAdvntceSndngDtls(SndbQuery req) { - return sndngBean.getSndngDtls(req); + return sndngDtlBean.getSndngDtls(req); } @@ -86,15 +90,6 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic - - - - - - - - - @Override public List getSndbkList(SndbQuery req) { return sndngBean.getSndbkList(req); @@ -105,11 +100,6 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic return sndngBean.getSndngList(req); } - @Override - public List getSndngDtls(SndbQuery req) { - return sndngBean.getSndngDtls(req); - } - @Override public String createSndng(Sndng sndng) { return sndngBean.createSndng(sndng); @@ -169,26 +159,6 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic return sndngBean.getSndngs(req); } - @Override - public List getSndngDtlList(SndbQuery req) { - return sndngBean.getSndngDtlList(req); - } - - @Override - public boolean createSndngDtl(SndngDtl sndngDtl) { - return sndngBean.createSndngDtl(sndngDtl); - } - - @Override - public boolean updateSndngDtl(SndngDtl sndngDtl) { - return sndngBean.updateSndngDtl(sndngDtl); - } - - @Override - public boolean removeSndngDtl(SndngDtl sndngDtl) { - return sndngBean.removeSndngDtl(sndngDtl); - } - @Override public List getSvbtcList(SndbQuery req) { return sndngBean.getSvbtcList(req); @@ -282,7 +252,7 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic } else { // 총건수를 확인하여 공시송달 대장에서 수정 // 공시송달 정보 호출 DataObject svbtcInfo = sndngBean.getSvbtcInfo(new SndbQuery().setSvbtcId(svbtc.getSvbtcId()) - .setDelYn("N")); + .setDelYN("N")); Svbtc mdfSvbtc = new 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 5f0302f4..ee724af1 100644 --- a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java +++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java @@ -1,21 +1,32 @@ package cokr.xit.fims.sndb.web; +import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import org.apache.poi.ss.usermodel.CellStyle; import org.springframework.web.servlet.ModelAndView; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; + import cokr.xit.base.code.CommonCode; +import cokr.xit.base.file.xls.XLSWriter; +import cokr.xit.base.file.xls.XLSWriter.CellDef; +import cokr.xit.base.file.xls.XLSWriter.Styler; import cokr.xit.base.user.ManagedUser; import cokr.xit.base.web.ApplicationController; import cokr.xit.fims.cmmn.CmmnQuery; +import cokr.xit.fims.cmmn.CmmnUtil; import cokr.xit.fims.cmmn.service.TaskService; import cokr.xit.fims.sndb.SndbQuery; import cokr.xit.fims.sndb.Sndng; 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.foundation.data.DataObject; @@ -38,10 +49,14 @@ public class Sndb01Controller extends ApplicationController { warningTargetMain = "/010/main.do" // 계고장 발송 대상 메인 화면 , getWarningTargetList = "/010/list.do" // 계고장 발송 대상 목록 조회 , getWarningTargetInfo = "/020/info.do" // 계고장 발송 대상 조회 - , createWarningSndng = "/020/create.do" // 계고장 발송 등록 + , createWarningSendingList = "/020/createWrngSndngList.do" // 계고장 발송 등록 , warningSendingMain = "/030/main.do" // 계고장 발송 현황 메인 화면 , getWarningSendingList = "/030/list.do" // 계고장 발송 현황 목록 조회 , getWarningSendingInfo = "/040/info.do" // 계고장 발송 상세 대장 조회 + + + + , advanceNoticeTargetMain = "/050/main.do" // 사전통지 발송 대상 메인 화면 , getAdvanceNoticeTargetList = "/050/list.do" // 사전통지 발송 대상 목록 조회 , getAdvanceNoticeTargetInfo = "/060/info.do" // 사전통지 발송 대상 조회 @@ -84,6 +99,10 @@ public class Sndb01Controller extends ApplicationController { @Resource(name = "sndngService") private SndngService sndngService; + /**발송 상세 서비스*/ + @Resource(name = "sndngDtlService") + private SndngDtlService sndngDtlService; + /** 업무 정보 서비스 */ @Resource(name = "taskService") private TaskService taskService; @@ -102,7 +121,8 @@ public class Sndb01Controller extends ApplicationController { addCodes(commonCodes, mav, "FIM004", "FIM005", "FIM006", "FIM061", "FIM064"); - return mav.addObject("pageName", "sndb01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix + return mav + .addObject("pageName", "sndb01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix .addObject("infoPrefix", "wrngTrgt") // prefix .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) @@ -126,9 +146,67 @@ public class Sndb01Controller extends ApplicationController { * } */ public ModelAndView getWarningTargetList(SndbQuery req) { - List result = sndngService.getWrngTrgtList(setFetchSize(req)); - - return setCollectionInfo(new ModelAndView("jsonView"), result, "wrngTrgt"); + if (!"xls".equals(req.getDownload())) { + List result = sndngService.getWrngTrgtList(setFetchSize(req)); + return setCollectionInfo(new ModelAndView("jsonView"), result, "wrngTrgt"); + } else { + ArrayList cellDefs = fromJson(req.getCellDefs(), new TypeReference>() {}); + + XLSWriter xlsx = new XLSWriter() + .setFilename("계고장 발송 대상 목록.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 = sndngService.getWrngTrgtList(req.setFetchSize(0)); + + CellDef.setValues(cellDefs, Map.ofEntries( + Map.entry("업무구분", xlsx.style("TASK_SE_NM", center)) + , Map.entry("계고일자", xlsx.format(o -> xlsx.str2date(o.get("LEVY_EXCL_YMD"))).style(dateYMD)) + , Map.entry("계고사유", "LEVY_EXCL_RSN_NM") + , Map.entry("기타내용", "ETC_CN") + , Map.entry("민원신청번호", xlsx.style("CVLCPT_APLY_NO", center)) + , Map.entry("민원접수번호", xlsx.style("CVLCPT_RCPT_NO", center)) + , Map.entry("민원접수일자", xlsx.format(o -> xlsx.str2date(o.get("CVLCPT_RCPT_YMD"))).style(dateYMD)) + , Map.entry("민원처리담당자", xlsx.style("CVLCPT_PRCS_PIC_NM", center)) + , Map.entry("민원처리결과", xlsx.style("CVLCPT_PRCS_NM", center)) + , Map.entry("단속일시", xlsx.format(o -> xlsx.str2datetime(o.get("CRDN_YMD_TM"))).style(dateDT)) + , Map.entry("차량번호", "VHRNO") + , Map.entry("단속법정동", "CRDN_STDG_NM") + , Map.entry("단속장소", "CRDN_PLC") + , Map.entry("위반항목", "VLTN_ARTCL") + , Map.entry("최초단속금액", xlsx.style("FFNLG_CRDN_AMT", numeric)) + , Map.entry("처리상태", "CRDN_STTS_NM") + , Map.entry("납부자명", "RTPYR_NM") + , Map.entry("납부자생일", xlsx.style("RTPYR_BRDT_MASK", center)) + , Map.entry("우편번호", xlsx.style("ZIP", center)) + , Map.entry("주소", "ADDR") + , Map.entry("상세주소", "DTL_ADDR") + , Map.entry("단속특별구역", xlsx.style("CRDN_SPAREA_NM", center)) + , Map.entry("사용연료", xlsx.style("USE_FUEL_NM", center)) + , Map.entry("주차가능여부", xlsx.style("PARKNG_PSBLTY_RSLT_NM", center)) + , 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); + } } /**계고장 발송 대상 정보 화면(sndb/sndb01/020-info)을 연다. @@ -145,27 +223,28 @@ public class Sndb01Controller extends ApplicationController { ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sndb/sndb01020-info"); - return mav.addObject("pageName", "sndb01020") - .addObject("sggCd", req.getSggCd()) - .addObject("taskSeCd", req.getTaskSeCd()) - .addObject("sndngSeCd", req.getSndngSeCd()) // 발송 구분 코드 - .addObject("vltnCd", req.getVltnCd()) // 위반 코드 - .addObject("wrngTrgtDtl", json ? wrngTrgts : toJson(wrngTrgts)) // 계고장 발송 대상 정보 + return mav + .addObject("pageName", "sndb01020") + .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 + .addObject("wrngTrgtQuery", json ? req : toJson(req)) // Query + .addObject("wrngTrgt", json ? wrngTrgts : toJson(wrngTrgts)) // 계고장 발송 대상 정보 ; } - /**계고장 발송 대상을 등록한다. - * @param sndng 발송 정보 + /**계도장 발송 대상을 조회하여 발송 대장에 등록한다. + * @param req 계도장 발송 대상 조회, sndng 발송 대장 * @return jsonView *
 {
 	 *     "saved": 등록되었으면 true, 그렇지 않으면 false
 	 * }
*/ - public ModelAndView createWarningSndng(Sndng sndng) { + public ModelAndView createWarningSendingList(SndbQuery req, Sndng sndng) { boolean saved = false; - String retMessage = sndngService.createWrngSndng(sndng); + String rtnMsg = "[F] "; + + rtnMsg = sndngService.createWrngSndngList(req, sndng); - if (retMessage.contains("[S]")) { + if (rtnMsg.contains("[S]")) { saved = true; } else { saved = false; @@ -173,7 +252,7 @@ public class Sndb01Controller extends ApplicationController { return new ModelAndView("jsonView") .addObject("saved", saved) - .addObject("retMessage", retMessage); + .addObject("rtnMsg", rtnMsg); } /**계도장 발송 현황 메인화면(sndb/sndb01/030-main)을 연다. @@ -316,9 +395,9 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView createAdvanceNoticeSndng(Sndng sndng) { boolean saved = false; - String retMessage = sndngService.createAdvntceSndng(sndng); + String rtnMsg = sndngService.createAdvntceSndng(sndng); - if (retMessage.contains("[S]")) { + if (rtnMsg.contains("[S]")) { saved = true; } else { saved = false; @@ -326,7 +405,7 @@ public class Sndb01Controller extends ApplicationController { return new ModelAndView("jsonView") .addObject("saved", saved) - .addObject("retMessage", retMessage); + .addObject("rtnMsg", rtnMsg); } /**사전통지 발송 현황 메인화면(sndb/sndb01/070-main)을 연다. @@ -443,7 +522,7 @@ public class Sndb01Controller extends ApplicationController { * } */ public ModelAndView getNoticeSheetSendingInfo(SndbQuery req) { - List sndngDtls = sndngService.getSndngDtls(req); + List sndngDtls = sndngDtlService.getSndngDtls(req); boolean json = jsonResponse(); @@ -497,9 +576,9 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView createSending(Sndng sndng) { boolean saved = false; - String retMessage = sndngService.createSndng(sndng); + String rtnMsg = sndngService.createSndng(sndng); - if (retMessage.contains("[S]")) { + if (rtnMsg.contains("[S]")) { saved = true; } else { saved = false; @@ -507,7 +586,7 @@ public class Sndb01Controller extends ApplicationController { return new ModelAndView("jsonView") .addObject("saved", saved) - .addObject("retMessage", retMessage); + .addObject("rtnMsg", rtnMsg); } /**우편통합 발송 대상을 등록한다. @@ -519,9 +598,9 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView createSendingLink(Sndng sndng) { boolean saved = false; - String retMessage = sndngService.createSndngLink(sndng); + String rtnMsg = sndngService.createSndngLink(sndng); - if (retMessage.contains("[S]")) { + if (rtnMsg.contains("[S]")) { saved = true; } else { saved = false; @@ -529,7 +608,7 @@ public class Sndb01Controller extends ApplicationController { return new ModelAndView("jsonView") .addObject("saved", saved) - .addObject("retMessage", retMessage); + .addObject("rtnMsg", rtnMsg); } /**반송등록 (sndb/sndb01/220-info)을 연다. @@ -547,7 +626,7 @@ public class Sndb01Controller extends ApplicationController { ModelAndView mav = new ModelAndView("jsonView"); return mav.addObject("pageName", "sndb01220") - .addObject("retMessage", "이미 등록된 미배달 사유가 있습니다.") + .addObject("rtnMsg", "이미 등록된 미배달 사유가 있습니다.") ; } else { boolean json = jsonResponse(); @@ -575,9 +654,9 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView createSendBack(SndngDtl sndngDtl) { boolean saved = false; - String retMessage = sndngService.createSndbk(sndngDtl); + String rtnMsg = sndngService.createSndbk(sndngDtl); - if (retMessage.contains("[S]")) { + if (rtnMsg.contains("[S]")) { saved = true; } else { saved = false; @@ -585,7 +664,7 @@ public class Sndb01Controller extends ApplicationController { return new ModelAndView("jsonView") .addObject("saved", saved) - .addObject("retMessage", retMessage); + .addObject("rtnMsg", rtnMsg); } /**발송 상세 정보의 반송 정보를 수정한다. @@ -597,9 +676,9 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView updateSendBack(SndngDtl sndngDtl) { boolean saved = false; - String retMessage = sndngService.updateSndbk(sndngDtl); + String rtnMsg = sndngService.updateSndbk(sndngDtl); - if (retMessage.contains("[S]")) { + if (rtnMsg.contains("[S]")) { saved = true; } else { saved = false; @@ -607,7 +686,7 @@ public class Sndb01Controller extends ApplicationController { return new ModelAndView("jsonView") .addObject("saved", saved) - .addObject("retMessage", retMessage); + .addObject("rtnMsg", rtnMsg); } /**발송 상세 정보의 반송 정보를 삭제한다. @@ -619,9 +698,9 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView deleteSendBack(SndngDtl sndngDtl) { boolean saved = false; - String retMessage = sndngService.deleteSndbk(sndngDtl); + String rtnMsg = sndngService.deleteSndbk(sndngDtl); - if (retMessage.contains("[S]")) { + if (rtnMsg.contains("[S]")) { saved = true; } else { saved = false; @@ -629,7 +708,7 @@ public class Sndb01Controller extends ApplicationController { return new ModelAndView("jsonView") .addObject("saved", saved) - .addObject("retMessage", retMessage); + .addObject("rtnMsg", rtnMsg); } /**반송 현황 메인화면(sndb/sndb01/230-main)을 연다. @@ -745,9 +824,9 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView createServiceByPublicNotice(Svbtc svbtc) { boolean saved = false; - String retMessage = sndngService.createSvbtc(svbtc); + String rtnMsg = sndngService.createSvbtc(svbtc); - if (retMessage.contains("[S]")) { + if (rtnMsg.contains("[S]")) { saved = true; } else { saved = false; @@ -755,7 +834,7 @@ public class Sndb01Controller extends ApplicationController { return new ModelAndView("jsonView") .addObject("saved", saved) - .addObject("retMessage", retMessage); + .addObject("rtnMsg", rtnMsg); } /**공시송달 대장에 공시송달 정보를 수정한다. @@ -767,9 +846,9 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView updateServiceByPublicNotice(Svbtc svbtc) { boolean saved = false; - String retMessage = sndngService.updateSvbtc(svbtc); + String rtnMsg = sndngService.updateSvbtc(svbtc); - if (retMessage.contains("[S]")) { + if (rtnMsg.contains("[S]")) { saved = true; } else { saved = false; @@ -777,7 +856,7 @@ public class Sndb01Controller extends ApplicationController { return new ModelAndView("jsonView") .addObject("saved", saved) - .addObject("retMessage", retMessage); + .addObject("rtnMsg", rtnMsg); } /**지정한 공시송달 ID에 해당하는 공시송달 대장을 제거한다. @@ -790,9 +869,9 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView removeServiceByPublicNotice(Svbtc svbtc) { boolean saved = false; - String retMessage = sndngService.removeSvbtc(svbtc); + String rtnMsg = sndngService.removeSvbtc(svbtc); - if (retMessage.contains("[S]")) { + if (rtnMsg.contains("[S]")) { saved = true; } else { saved = false; @@ -800,7 +879,7 @@ public class Sndb01Controller extends ApplicationController { return new ModelAndView("jsonView") .addObject("saved", saved) - .addObject("retMessage", retMessage); + .addObject("rtnMsg", rtnMsg); } /**여러 건의 공시송달 ID에 해당하는 공시송달 대장를 제거한다. @@ -813,9 +892,9 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView removeServiceByPublicNoticeList(SndbQuery req) { boolean saved = false; - String retMessage = sndngService.removeSvbtcList(req); + String rtnMsg = sndngService.removeSvbtcList(req); - if (retMessage.contains("[S]")) { + if (rtnMsg.contains("[S]")) { saved = true; } else { saved = false; @@ -823,7 +902,7 @@ public class Sndb01Controller extends ApplicationController { return new ModelAndView("jsonView") .addObject("saved", saved) - .addObject("retMessage", retMessage); + .addObject("rtnMsg", rtnMsg); } /**지정한 공시송달 ID에 해당하는 공시송달 대장을 제거한다. @@ -836,9 +915,9 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView removeServiceByPublicNoticeEach(Svbtc svbtc) { boolean saved = false; - String retMessage = sndngService.removeSvbtcEach(svbtc); + String rtnMsg = sndngService.removeSvbtcEach(svbtc); - if (retMessage.contains("[S]")) { + if (rtnMsg.contains("[S]")) { saved = true; } else { saved = false; @@ -846,7 +925,7 @@ public class Sndb01Controller extends ApplicationController { return new ModelAndView("jsonView") .addObject("saved", saved) - .addObject("retMessage", retMessage); + .addObject("rtnMsg", rtnMsg); } } 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 adf49e20..60799eae 100644 --- a/src/main/java/cokr/xit/fims/sprt/web/Sprt02Controller.java +++ b/src/main/java/cokr/xit/fims/sprt/web/Sprt02Controller.java @@ -26,6 +26,7 @@ import cokr.xit.fims.payer.service.PayerService; import cokr.xit.fims.rcvm.RcvmtQuery; 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.sprt.CvlcptDscsnQuery; import cokr.xit.fims.sprt.SprtQuery; @@ -78,6 +79,10 @@ public class Sprt02Controller extends ApplicationController { @Resource(name = "sndngService") protected SndngService sndngService; + /** 발송 상세 대장 서비스*/ + @Resource(name = "sndngDtlService") + protected SndngDtlService sndngDtlService; + /** 부과 대장 서비스*/ @Resource(name = "levyService") protected LevyService levyService; @@ -249,7 +254,7 @@ public class Sprt02Controller extends ApplicationController { exclQuery.setCallPurpose(req.getCallPurpose()); } exclQuery.setCrdnId(req.getCrdnId()); - exclQuery.setDelYN(req.getDelYn()); + exclQuery.setDelYN(req.getDelYN()); // 의견 제출(TB_OPNN_SBMSN) 대장 조회 DataObject opnnSbmsn = opnnSbmsnService.getOpnnSbmsnInfo(exclQuery); @@ -289,14 +294,14 @@ public class Sprt02Controller extends ApplicationController { sndb01Query.setCallPurpose(req.getCallPurpose()); } sndb01Query.setCrdnId(req.getCrdnId()); - sndb01Query.setDelYn(req.getDelYn()); + sndb01Query.setDelYN(req.getDelYN()); sndb01Query.setOrderBy("SD.REG_DT, SD.SNDNG_DTL_ID DESC"); - List sndngDtl = sndngService.getSndngDtls(sndb01Query); + List sndngDtl = sndngDtlService.getSndngDtls(sndb01Query); // 공시송달 정보 sndb01Query.setCrdnId(req.getCrdnId()); - sndb01Query.setDelYn(req.getDelYn()); + sndb01Query.setDelYN(req.getDelYN()); sndb01Query.setOrderBy("SV.REG_DT DESC, SV.SVBTC_ID DESC"); List svbtc = sndngService.getSvbtcDtls(sndb01Query); @@ -339,7 +344,7 @@ public class Sprt02Controller extends ApplicationController { levyQuery.setCallPurpose(req.getCallPurpose()); } levyQuery.setCrdnId(req.getCrdnId()); - levyQuery.setDelYN(req.getDelYn()); + levyQuery.setDelYN(req.getDelYN()); levyQuery.setOrderBy("RDUCT_ID DESC"); // 정렬 DataObject rduct = rductService.getRductInfo(levyQuery); @@ -353,7 +358,7 @@ public class Sprt02Controller extends ApplicationController { exclQuery.setCallPurpose(req.getCallPurpose()); } exclQuery.setCrdnId(req.getCrdnId()); - exclQuery.setDelYN(req.getDelYn()); + exclQuery.setDelYN(req.getDelYN()); exclQuery.setOrderBy("LEVY_EXCL_ID DESC"); // 정렬 DataObject levyExcl = levyExclService.getLevyExclInfo(exclQuery); @@ -414,7 +419,7 @@ public class Sprt02Controller extends ApplicationController { levyQuery.setCallPurpose(req.getCallPurpose()); } levyQuery.setCrdnId(req.getCrdnId()); - levyQuery.setDelYN(req.getDelYn()); + levyQuery.setDelYN(req.getDelYN()); levyQuery.setOrderBy("LEVY_ID DESC"); // 정렬 DataObject levy = levyService.getLevyInfo(levyQuery); @@ -448,7 +453,7 @@ public class Sprt02Controller extends ApplicationController { // List rcvmt = rcvmtService.getRcvmts(new RcvmtQuery().setCallPurpose(req.getCallPurpose()) .setCrdnId(req.getCrdnId()) - .setDelYN(req.getDelYn()) + .setDelYN(req.getDelYN()) .setOrderBy("R.RCVMT_ID DESC")); 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 902c81f8..a2147eb7 100644 --- a/src/main/java/cokr/xit/fims/task/web/DpvController.java +++ b/src/main/java/cokr/xit/fims/task/web/DpvController.java @@ -1,9 +1,12 @@ package cokr.xit.fims.task.web; +import java.util.Map; + import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; @@ -542,9 +545,9 @@ public class DpvController { } @Override - @RequestMapping(name="계고장 발송 등록", value=METHOD_URL.createWarningSndng) - public ModelAndView createWarningSndng(Sndng sndng) { - return super.createWarningSndng(sndng); + @RequestMapping(name="계고장 발송 등록", value=METHOD_URL.createWarningSendingList) + public ModelAndView createWarningSendingList(SndbQuery req, Sndng sndng) { + return super.createWarningSendingList(req, sndng); } @Override 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 fdb36e72..4de4c571 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml @@ -28,8 +28,8 @@ - - + + @@ -39,82 +39,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - , C.SGG_CD /* 시군구 코드 */ , C.TASK_SE_CD /* 업무 구분 코드 */ @@ -129,10 +53,12 @@ , C.FFNLG_CRDN_AMT /* 과태료 단속 금액 */ , C.CRDN_STTS_CD /* 단속 상태 코드 */ , C.CRDN_STTS_CHG_DT /* 단속 상태 변경 일시 */ - , C.REG_DT /* 등록 일시 */ - , C.RGTR /* 등록자 */ - , C.MDFCN_DT /* 수정 일시 */ - , C.MDFR /* 수정자 */ + , (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */ + , (SELECT GET_MASK_DATETIME(C.CRDN_YMD,'-',C.CRDN_TM,':') FROM DUAL) AS CRDN_YMD_TM_MASK /* 단속 일시 마스크 */ + , (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */ + , (SELECT GET_CODE_NM('FIM026', C.CRDN_REG_SE_CD) FROM DUAL) AS CRDN_REG_SE_NM /* 단속 등록 구분 명 */ + , (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */ + , (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */ , CA.CRDN_SE_CD /* 단속 구분 코드 */ , CA.DTL_CRDN_PLC /* 상세 단속 장소 */ , CA.CRDN_SPAREA_CD /* 단속 특별구역 코드 */ @@ -144,6 +70,11 @@ , CA.PARKNG_PSBLTY_RSLT_CD /* 주차 가능 결과 코드 */ , CA.VLTN_NMTM /* 위반 횟수 */ , CA.OVTIME_YN /* 시간외 여부 */ + , (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */ + , (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM /* 단속 특별구역 명 */ + , (SELECT GET_CODE_NM('LVS005', CA.USE_FUEL_CD) FROM DUAL) AS USE_FUEL_NM /* 사용 연료 명 */ + , (SELECT GET_CODE_NM('FIM009', CA.FFNLG_CARMDL_CD) FROM DUAL) AS FFNLG_CARMDL_NM /* 과태료 차종 명 */ + , (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM /* 주차 가능 결과 명 */ , V.VLTN_ID /* 위반 ID */ , V.VLTN_CD /* 위반 코드 */ , V.VLTN_ARTCL /* 위반 항목 */ @@ -156,6 +87,7 @@ , CC.CVLCPT_PRCS_PIC_NM /* 민원 처리 담당자 명 */ , CC.CVLCPT_PRCS_CD /* 민원 처리 코드 */ , CC.CVLCPT_PRCS_CMPTN_DT /* 민원 처리 완료 일시 */ + , (SELECT GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD) FROM DUAL) AS CVLCPT_PRCS_NM /* 민원 처리 명 */ , P.RTPYR_ID /* 납부자 ID */ , P.RTPYR_SE_CD /* 납부자 구분 코드 */ , P.RTPYR_NO /* 납부자 번호 */ @@ -164,40 +96,35 @@ , P.ZIP /* 우편번호 */ , P.ADDR /* 주소 */ , P.DTL_ADDR /* 상세 주소 */ + , (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */ + , (SELECT GET_BRDT_FORMAT(P.RTPYR_BRDT, '.') FROM DUAL) AS RTPYR_BRDT_MASK /* 납부자 생년월일 마스크 */ , LE.LEVY_EXCL_ID /* 부과 제외 ID */ , LE.LEVY_EXCL_YMD /* 부과 제외 일자 */ , LE.LEVY_EXCL_RSN_CD /* 부과 제외 사유 코드 */ - , (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */ - , (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */ - , (SELECT GET_CODE_NM('FIM026', C.CRDN_REG_SE_CD) FROM DUAL) AS CRDN_REG_SE_NM /* 단속 등록 구분 명 */ - , (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */ - , (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */ - , (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */ - , (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM /* 단속 특별구역 명 */ - , (SELECT GET_CODE_NM('LVS005', CA.USE_FUEL_CD) FROM DUAL) AS USE_FUEL_NM /* 사용 연료 명 */ - , (SELECT GET_CODE_NM('FIM009', CA.FFNLG_CARMDL_CD) FROM DUAL) AS FFNLG_CARMDL_NM /* 과태료 차종 명 */ - , (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM /* 주차 가능 결과 명 */ - , (SELECT GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD) FROM DUAL) AS CVLCPT_PRCS_NM /* 민원 처리 명 */ - , (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */ - , (SELECT GET_CODE_NM('FIM022', LE.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM /* 부과 제외 사유 명 */ - , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.RGTR) AS RGTR_NM /* 등록자 명 */ - , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.MDFR) AS MDFR_NM /* 수정자 명 */ + , LE.ETC_CN /* 기타 내용 */ + , LE.REG_DT /* 등록 일시 */ + , LE.RGTR /* 등록자 */ + , LE.MDFCN_DT /* 수정 일시 */ + , LE.MDFR /* 수정자 */ + , (SELECT GET_CODE_NM('FIM022', LE.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM /* 부과 제외 사유 명 */ + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.RGTR) AS RGTR_NM /* 등록자 명 */ + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.MDFR) AS MDFR_NM /* 수정자 명 */ FROM TB_CRDN C - INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) - INNER JOIN TB_VLTN V ON (C.VLTN_ID = V.VLTN_ID) - LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N') - LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) - LEFT OUTER JOIN TB_LEVY_EXCL LE ON (C.CRDN_ID = LE.CRDN_ID AND LE.DEL_YN = 'N') - WHERE C.SGG_CD = #{sggCd} /* 시군구 코드 */ - AND C.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */ - AND C.CRDN_STTS_CD = '83' /* 단속 상태 코드 */ + INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) + INNER JOIN TB_VLTN V ON (C.VLTN_ID = V.VLTN_ID) + LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N') + LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) + LEFT OUTER JOIN TB_LEVY_EXCL LE ON (C.CRDN_ID = LE.CRDN_ID AND LE.DEL_YN = 'N') + WHERE C.SGG_CD = #{sggCd} /* 시군구 코드 */ + AND C.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */ + AND C.CRDN_STTS_CD = '83' /* 단속 상태 코드 */ - AND C.CRDN_ID IN ( + AND C.CRDN_ID IN ( #{crdnId} /* 단속 IDs */ ) - AND C.CRDN_ID = #{crdnId} /* 단속 ID */ + AND C.CRDN_ID = #{crdnId} /* 단속 ID */ AND LE.LEVY_EXCL_YMD =]]> #{schLevyExclYmdFrom} /* 부과제외 일자 시작 */ @@ -212,12 +139,12 @@ AND C.CRDN_YMD #{schCrdnYmdTo} /* 단속 일자 종료 */ - AND C.VHRNO = #{schVhrno} /* 차량번호 */ + AND C.VHRNO = #{schVhrno} /* 차량번호 */ - AND P.RTPYR_NM = #{schRtpyrNm} /* 납부자 명 */ + AND P.RTPYR_NM = #{schRtpyrNm} /* 납부자 명 */ - AND C.DEL_YN = 'N' /* 삭제 여부 */ + AND C.DEL_YN = 'N' /* 삭제 여부 */ @@ -312,297 +239,9 @@ - - SELECT S.SNDNG_ID /* 발송 ID */ - , S.SGG_CD /* 시군구 코드 */ - , S.DEPT_CD /* 부서 코드 */ - , S.TASK_SE_CD /* 업무 구분 코드 */ - , S.SNDNG_REG_SE_CD /* 발송 등록 구분 코드 */ - , S.SNDNG_SE_CD /* 발송 구분 코드 */ - , V.VLTN_ID /* 위반 ID */ - , V.VLTN_CD /* 위반 코드 */ - , V.VLTN_ARTCL /* 위반 항목 */ - , S.LEVY_BGNG_YMD /* 부과 시작 일자 */ - , S.LEVY_END_YMD /* 부과 종료 일자 */ - , S.SNDNG_YMD /* 발송 일자 */ - , S.SNDNG_END_YMD /* 발송 종료 일자 */ - , S.TTL_NM /* 제목 명 */ - , S.DOC_NO /* 문서 번호 */ - , S.ETC_CN /* 기타 내용 */ - , S.TNOCS /* 총건수 */ - , S.GRAMT /* 총금액 */ - , S.CON_KEY /* 외부연계식별키 */ - , S.DIV_KB /* 취급 구분 */ - , S.EPOST_NOTICE_ID /* 전자우편 안내문 ID */ - , S.SNDNG_STTS_CD /* 발송 상태 코드 */ - , S.RESND_YN /* 재발송 여부 */ - , S.REG_DT /* 등록 일시 */ - , S.RGTR /* 등록자 */ - , S.MDFCN_DT /* 수정 일시 */ - , S.MDFR /* 수정자 */ - , AS TODAY /* 오늘 일자 */ - , GET_MASK_DATE(, 'K') AS TODAY_MASK /* 오늘 일자 한글 마스크 */ - , AS NOW /* 현재 일시 */ - , (SELECT GET_CODE_NM('FIM054', S.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */ - , (SELECT GET_CODE_NM('FIM067', S.SNDNG_REG_SE_CD) FROM DUAL) AS SNDNG_REG_SE_NM /* 발송 등록 구분 명 */ - , (SELECT GET_CODE_NM('FIM047', S.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM /* 발송 구분 명 */ - , (SELECT GET_CODE_NM('FIM049', S.SNDNG_STTS_CD) FROM DUAL) AS SNDNG_STTS_NM /* 발송 상태 명 */ - , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = S.RGTR) AS RGTR_NM /* 등록자 명 */ - , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = S.MDFR) AS MDFR_NM /* 수정자 명 */ - FROM TB_SNDNG S - LEFT OUTER JOIN TB_VLTN V ON (S.VLTN_ID = V.VLTN_ID AND S.SGG_CD = V.SGG_CD AND S.TASK_SE_CD = V.TASK_SE_CD) - - - - - - - SELECT SD.SNDNG_DTL_ID /* 발송 상세 ID */ - , SD.SVBTC_ID /* 공시송달 ID */ - , SD.CRDN_ID /* 단속 ID */ - , SD.SVBTC_ID /* 공시송달 ID */ - , SD.MTCHG_ID /* 매칭 ID */ - , SD.SNDNG_SE_CD /* 발송 구분 코드 */ - , SD.SNDNG_YMD /* 발송 일자 */ - , SD.SNDNG_END_YMD /* 발송 종료 일자 */ - , SD.RTPYR_NM /* 납부자 명 */ - , SD.RTPYR_BRDT /* 납부자 생년월일 */ - , SD.RTPYR_ADDR /* 납부자 주소 */ - , SD.RTPYR_DTL_ADDR /* 납부자 상세 주소 */ - , SD.RTPYR_ZIP /* 납부자 우편번호 */ - , SD.CON_KEY /* 외부연계식별키 */ - , SD.RG_NO /* 등기 번호 */ - , SD.DLVR_YMD /* 배달 일자 */ - , SD.DLVR_TM /* 배달 시각 */ - , SD.UNDLVR_RSN_CD /* 미배달 사유 코드 */ - , SD.UNDLVR_RSN_NM /* 미배달 사유 명 */ - , SD.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 /* 은행 명 2 */ - , SD.VR_ACTNO2 /* 가상 계좌번호 2 */ - , SD.BANK_NM3 /* 은행 명 3 */ - , SD.VR_ACTNO3 /* 가상 계좌번호 3 */ - , SD.BANK_NM4 /* 은행 명 4 */ - , SD.VR_ACTNO4 /* 가상 계좌번호 4 */ - , SD.BANK_NM5 /* 은행 명 5 */ - , SD.VR_ACTNO5 /* 가상 계좌번호 5 */ - , SD.BANK_NM6 /* 은행 명 6 */ - , SD.VR_ACTNO6 /* 가상 계좌번호 6 */ - , SD.BANK_NM7 /* 은행 명 7 */ - , SD.VR_ACTNO7 /* 가상 계좌번호 7 */ - , SD.BANK_NM8 /* 은행 명 8 */ - , SD.VR_ACTNO8 /* 가상 계좌번호 8 */ - , SD.BANK_NM9 /* 은행 명 9 */ - , SD.VR_ACTNO9 /* 가상 계좌번호 9 */ - , SD.BANK_NM10 /* 은행 명 10 */ - , SD.VR_ACTNO10 /* 가상 계좌번호 10 */ - , SD.BANK_NM11 /* 은행 명 11 */ - , SD.VR_ACTNO11 /* 가상 계좌번호 11 */ - , SD.REG_DT /* 등록 일시 */ - , SD.RGTR /* 등록자 */ - , SD.MDFCN_DT /* 수정 일시 */ - , SD.MDFR /* 수정자 */ - , SD.DEL_DT /* 삭제 일시 */ - , SD.DLTR /* 삭제자 */ - , SD.DEL_RSN /* 삭제 사유 */ - , S.SNDNG_ID /* 발송 ID */ - , S.SGG_CD /* 시군구 코드 */ - , S.DEPT_CD /* 부서 코드 */ - , S.TASK_SE_CD /* 업무 구분 코드 */ - , S.SNDNG_REG_SE_CD /* 발송 등록 구분 코드 */ - , S.SNDNG_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 /* 전자우편 안내문 ID */ - , S.SNDNG_STTS_CD /* 발송 상태 코드 */ - , S.RESND_YN /* 재발송 여부 */ - , 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('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 /* 발송 수납 명 */ - , GET_MASK_EPAYNO(SD.EPAYNO) AS EPAYNO_MASK /* 전자납부번호 */ - , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.RGTR) AS RGTR_NM /* 등록자 명 */ - , (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 /* 삭제자 명 */ - , (SELECT GET_CODE_NM('FIM047', S.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM /* 발송 구분 명 */ - FROM TB_SNDNG_DTL SD - LEFT OUTER JOIN TB_SNDNG S ON (SD.SNDNG_ID = S.SNDNG_ID) - - - - - , C.SGG_CD /* 시군구 코드 */ @@ -798,6 +437,161 @@ + + SELECT S.SNDNG_ID /* 발송 ID */ + , S.SGG_CD /* 시군구 코드 */ + , S.DEPT_CD /* 부서 코드 */ + , S.TASK_SE_CD /* 업무 구분 코드 */ + , S.SNDNG_REG_SE_CD /* 발송 등록 구분 코드 */ + , S.SNDNG_SE_CD /* 발송 구분 코드 */ + , V.VLTN_ID /* 위반 ID */ + , V.VLTN_CD /* 위반 코드 */ + , V.VLTN_ARTCL /* 위반 항목 */ + , S.LEVY_BGNG_YMD /* 부과 시작 일자 */ + , S.LEVY_END_YMD /* 부과 종료 일자 */ + , S.SNDNG_YMD /* 발송 일자 */ + , S.SNDNG_END_YMD /* 발송 종료 일자 */ + , S.TTL_NM /* 제목 명 */ + , S.DOC_NO /* 문서 번호 */ + , S.ETC_CN /* 기타 내용 */ + , S.TNOCS /* 총건수 */ + , S.GRAMT /* 총금액 */ + , S.CON_KEY /* 외부연계식별키 */ + , S.DIV_KB /* 취급 구분 */ + , S.EPOST_NOTICE_ID /* 전자우편 안내문 ID */ + , S.SNDNG_STTS_CD /* 발송 상태 코드 */ + , S.RESND_YN /* 재발송 여부 */ + , S.REG_DT /* 등록 일시 */ + , S.RGTR /* 등록자 */ + , S.MDFCN_DT /* 수정 일시 */ + , S.MDFR /* 수정자 */ + , AS TODAY /* 오늘 일자 */ + , GET_MASK_DATE(, 'K') AS TODAY_MASK /* 오늘 일자 한글 마스크 */ + , AS NOW /* 현재 일시 */ + , (SELECT GET_CODE_NM('FIM054', S.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */ + , (SELECT GET_CODE_NM('FIM067', S.SNDNG_REG_SE_CD) FROM DUAL) AS SNDNG_REG_SE_NM /* 발송 등록 구분 명 */ + , (SELECT GET_CODE_NM('FIM047', S.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM /* 발송 구분 명 */ + , (SELECT GET_CODE_NM('FIM049', S.SNDNG_STTS_CD) FROM DUAL) AS SNDNG_STTS_NM /* 발송 상태 명 */ + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = S.RGTR) AS RGTR_NM /* 등록자 명 */ + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = S.MDFR) AS MDFR_NM /* 수정자 명 */ + FROM TB_SNDNG S + LEFT OUTER JOIN TB_VLTN V ON (S.VLTN_ID = V.VLTN_ID AND S.SGG_CD = V.SGG_CD AND S.TASK_SE_CD = V.TASK_SE_CD) + + + + + + SELECT C.CRDN_ID /* 단속 ID */ , C.SGG_CD /* 시군구 코드 */ @@ -934,95 +728,6 @@ - /* 발송 대장 등록(sndngMapper.insertSndng) */ @@ -1083,8 +788,8 @@ , #{sndng.divKb} /* 취급 구분 */ , #{sndng.epostNoticeId} /* 전자우편 안내문 ID */ , #{sndng.sndngSttsCd} /* 발송 상태 코드 */ - , #{sndng.resndYn} /* 재발송 여부 */ - , #{sndng.delYn} /* 삭제 여부 */ + , #{sndng.resndYN} /* 재발송 여부 */ + , #{sndng.delYN} /* 삭제 여부 */ , /* 등록 일시 */ , #{sndng.createdBy} /* 등록자 */ , /* 수정 일시 */ @@ -1109,7 +814,7 @@ , DIV_KB = #{sndng.divKb} /* 취급 구분 */ , EPOST_NOTICE_ID = #{sndng.epostNoticeId} /* 전자우편 안내문 ID */ , SNDNG_STTS_CD = #{sndng.sndngSttsCd} /* 발송 상태 코드 */ - , RESND_YN = #{sndng.resndYn} /* 재발송 여부 */ + , RESND_YN = #{sndng.resndYN} /* 재발송 여부 */ , MDFCN_DT = /* 수정 일시 */ , MDFR = #{sndng.modifiedBy} /* 수정자 */ WHERE SNDNG_ID = #{sndng.sndngId} /* 발송 ID */ @@ -1135,241 +840,6 @@ AND DEL_YN = 'N' - /* 발송 상세 등록(sndngMapper.insertSndngDtl) */ - - SELECT LPAD(CAST(IFNULL(MAX(SNDNG_DTL_ID) + 1, 1) AS INT), 10, '0') AS NEW_ID - FROM TB_SNDNG_DTL - - INSERT - INTO TB_SNDNG_DTL ( - SNDNG_DTL_ID /* 발송 상세 ID */ - , SNDNG_ID /* 발송 ID */ - , CRDN_ID /* 단속 ID */ - , SVBTC_ID /* 공시송달 ID */ - , MTCHG_ID /* 매칭 ID */ - , SNDNG_SE_CD /* 발송 구분 코드 */ - , SNDNG_YMD /* 발송 일자 */ - , SNDNG_END_YMD /* 발송 종료 일자 */ - , RTPYR_NM /* 납부자 명 */ - , RTPYR_BRDT /* 납부자 생년월일 */ - , RTPYR_ADDR /* 납부자 주소 */ - , RTPYR_DTL_ADDR /* 납부자 상세 주소 */ - , RTPYR_ZIP /* 납부자 우편번호 */ - , CON_KEY /* 외부연계식별키 */ - , RG_NO /* 등기 번호 */ - , DLVR_YMD /* 배달 일자 */ - , DLVR_TM /* 배달 시각 */ - , UNDLVR_RSN_CD /* 미배달 사유 코드 */ - , UNDLVR_RSN_NM /* 미배달 사유 명 */ - , RCPN_NM /* 수령인 명 */ - , RCPN_REL_NM /* 수령인 관계 명 */ - , SNDNG_DTL_STTS_CD /* 발송 상세 상태 코드 */ - , BFR_SNDNG_DTL_STTS_CD /* 전 발송 상세 상태 코드 */ - , BFR_DLVR_YMD /* 전 배달 일자 */ - , BFR_DLVR_HR /* 전 배달 시간 */ - , SNDNG_RCVMT_CD /* 발송 수납 코드 */ - , ADDR_CHG_CD /* 주소 변경 코드 */ - , CRDN_DT /* 단속 일시 */ - , VHRNO /* 차량번호 */ - , CRDN_STDG_NM /* 단속 법정동 명 */ - , CRDN_PLC /* 단속 장소 */ - , FYR /* 회계연도 */ - , LEVY_NO /* 부과 번호 */ - , LEVY_YMD /* 부과 일자 */ - , DUDT_YMD /* 납기 일자 */ - , DUDT_AFTR_YMD /* 납기 후 일자 */ - , FFNLG_AMT /* 과태료 금액 */ - , PCPTAX /* 본세 */ - , ADAMT /* 가산금 */ - , SUM_AMT /* 합계 금액 */ - , DUDT_AFTR_AMT /* 납기 후 금액 */ - , TAX_NO /* 납세 번호 */ - , EPAYNO /* 전자납부번호 */ - , BANK_NM /* 은행 명 */ - , VR_ACTNO /* 가상 계좌번호 */ - , BANK_NM2 /* 은행 명 2 */ - , VR_ACTNO2 /* 가상 계좌번호 2 */ - , BANK_NM3 /* 은행 명 3 */ - , VR_ACTNO3 /* 가상 계좌번호 3 */ - , BANK_NM4 /* 은행 명 4 */ - , VR_ACTNO4 /* 가상 계좌번호 4 */ - , BANK_NM5 /* 은행 명 5 */ - , VR_ACTNO5 /* 가상 계좌번호 5 */ - , BANK_NM6 /* 은행 명 6 */ - , VR_ACTNO6 /* 가상 계좌번호 6 */ - , BANK_NM7 /* 은행 명 7 */ - , VR_ACTNO7 /* 가상 계좌번호 7 */ - , BANK_NM8 /* 은행 명 8 */ - , VR_ACTNO8 /* 가상 계좌번호 8 */ - , BANK_NM9 /* 은행 명 9 */ - , VR_ACTNO9 /* 가상 계좌번호 9 */ - , BANK_NM10 /* 은행 명 10 */ - , VR_ACTNO10 /* 가상 계좌번호 10 */ - , BANK_NM11 /* 은행 명 11 */ - , VR_ACTNO11 /* 가상 계좌번호 11 */ - , DEL_YN /* 삭제 여부 */ - , REG_DT /* 등록 일시 */ - , RGTR /* 등록자 */ - , MDFCN_DT /* 수정 일시 */ - , MDFR /* 수정자 */ - ) - VALUES ( - #{sndngDtl.sndngDtlId} /* 발송 상세 ID */ - , #{sndngDtl.sndngId} /* 발송 ID */ - , #{sndngDtl.crdnId} /* 단속 ID */ - , #{sndngDtl.svbtcId} /* 공시송달 ID */ - , #{sndngDtl.mtchgId} /* 매칭 ID */ - , #{sndngDtl.sndngSeCd} /* 발송 구분 코드 */ - , #{sndngDtl.sndngYmd} /* 발송 일자 */ - , #{sndngDtl.sndngEndYmd} /* 발송 종료 일자 */ - , #{sndngDtl.rtpyrNm} /* 납부자 명 */ - , #{sndngDtl.rtpyrBrdt} /* 납부자 생년월일 */ - , #{sndngDtl.rtpyrAddr} /* 납부자 주소 */ - , #{sndngDtl.rtpyrDtlAddr} /* 납부자 상세 주소 */ - , #{sndngDtl.rtpyrZip} /* 납부자 우편번호 */ - , #{sndngDtl.conKey} /* 외부연계식별키 */ - , #{sndngDtl.rgNo} /* 등기 번호 */ - , #{sndngDtl.dlvrYmd} /* 배달 일자 */ - , #{sndngDtl.dlvrTm} /* 배달 시각 */ - , #{sndngDtl.undlvrRsnCd} /* 미배달 사유 코드 */ - , #{sndngDtl.undlvrRsnNm} /* 미배달 사유 명 */ - , #{sndngDtl.rcpnNm} /* 수령인 명 */ - , #{sndngDtl.rcpnRelNm} /* 수령인 관계 명 */ - , #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */ - , #{sndngDtl.bfrSndngDtlSttsCd} /* 전 발송 상세 상태 코드 */ - , #{sndngDtl.bfrDlvrYmd} /* 전 배달 일자 */ - , #{sndngDtl.bfrDlvrHr} /* 전 배달 시간 */ - , #{sndngDtl.sndngRcvmtCd} /* 발송 수납 코드 */ - , #{sndngDtl.addrChgCd} /* 주소 변경 코드 */ - , #{sndngDtl.crdnDt} /* 단속 일시 */ - , #{sndngDtl.vhrno} /* 차량번호 */ - , #{sndngDtl.crdnStdgNm} /* 단속 법정동 명 */ - , #{sndngDtl.crdnPlc} /* 단속 장소 */ - , #{sndngDtl.fyr} /* 회계연도 */ - , #{sndngDtl.levyNo} /* 부과 번호 */ - , #{sndngDtl.levyYmd} /* 부과 일자 */ - , #{sndngDtl.dudtYmd} /* 납기 일자 */ - , #{sndngDtl.dudtAftrYmd} /* 납기 후 일자 */ - , #{sndngDtl.ffnlgAmt} /* 과태료 금액 */ - , #{sndngDtl.pcptax} /* 본세 */ - , #{sndngDtl.adamt} /* 가산금 */ - , #{sndngDtl.sumAmt} /* 합계 금액 */ - , #{sndngDtl.dudtAftrAmt} /* 납기 후 금액 */ - , #{sndngDtl.taxNo} /* 납세 번호 */ - , #{sndngDtl.epayno} /* 전자납부번호 */ - , #{sndngDtl.bankNm} /* 은행 명 */ - , #{sndngDtl.vrActno} /* 가상 계좌번호 */ - , #{sndngDtl.bankNm2} /* 은행 명 2 */ - , #{sndngDtl.vrActno2} /* 가상 계좌번호 2 */ - , #{sndngDtl.bankNm3} /* 은행 명 3 */ - , #{sndngDtl.vrActno3} /* 가상 계좌번호 3 */ - , #{sndngDtl.bankNm4} /* 은행 명 4 */ - , #{sndngDtl.vrActno4} /* 가상 계좌번호 4 */ - , #{sndngDtl.bankNm5} /* 은행 명 5 */ - , #{sndngDtl.vrActno5} /* 가상 계좌번호 5 */ - , #{sndngDtl.bankNm6} /* 은행 명 6 */ - , #{sndngDtl.vrActno6} /* 가상 계좌번호 6 */ - , #{sndngDtl.bankNm7} /* 은행 명 7 */ - , #{sndngDtl.vrActno7} /* 가상 계좌번호 7 */ - , #{sndngDtl.bankNm8} /* 은행 명 8 */ - , #{sndngDtl.vrActno8} /* 가상 계좌번호 8 */ - , #{sndngDtl.bankNm9} /* 은행 명 9 */ - , #{sndngDtl.vrActno9} /* 가상 계좌번호 9 */ - , #{sndngDtl.bankNm10} /* 은행 명 10 */ - , #{sndngDtl.vrActno10} /* 가상 계좌번호 10 */ - , #{sndngDtl.bankNm11} /* 은행 명 11 */ - , #{sndngDtl.vrActno11} /* 가상 계좌번호 11 */ - , 'N' /* 삭제 여부 */ - , /* 등록 일시 */ - , #{sndngDtl.createdBy} /* 등록자 */ - , /* 수정 일시 */ - , #{sndngDtl.modifiedBy} /* 수정자 */ - ) - - - /* 발송 상세 수정(sndngMapper.updateSndngDtl) */ - UPDATE TB_SNDNG_DTL - SET SVBTC_ID = #{sndngDtl.svbtcId} /* 공시송달 ID */ - , MTCHG_ID = #{sndngDtl.mtchgId} /* 매칭 ID */ - , SNDNG_SE_CD = #{sndngDtl.sndngSeCd} /* 발송 구분 코드 */ - , SNDNG_YMD = #{sndngDtl.sndngYmd} /* 발송 일자 */ - , SNDNG_END_YMD = #{sndngDtl.sndngEndYmd} /* 발송 종료 일자 */ - , RTPYR_NM = #{sndngDtl.rtpyrNm} /* 납부자 명 */ - , RTPYR_BRDT = #{sndngDtl.rtpyrBrdt} /* 납부자 생년월일 */ - , RTPYR_ADDR = #{sndngDtl.rtpyrAddr} /* 납부자 주소 */ - , RTPYR_DTL_ADDR = #{sndngDtl.rtpyrDtlAddr} /* 납부자 상세 주소 */ - , RTPYR_ZIP = #{sndngDtl.rtpyrZip} /* 납부자 우편번호 */ - , CON_KEY = #{sndngDtl.conKey} /* 외부연계식별키 */ - , RG_NO = #{sndngDtl.rgNo} /* 등기 번호 */ - , DLVR_YMD = #{sndngDtl.dlvrYmd} /* 배달 일자 */ - , DLVR_TM = #{sndngDtl.dlvrTm} /* 배달 시각 */ - , UNDLVR_RSN_CD = #{sndngDtl.undlvrRsnCd} /* 미배달 사유 코드 */ - , UNDLVR_RSN_NM = #{sndngDtl.undlvrRsnNm} /* 미배달 사유 명 */ - , RCPN_NM = #{sndngDtl.rcpnNm} /* 수령인 명 */ - , RCPN_REL_NM = #{sndngDtl.rcpnRelNm} /* 수령인 관계 명 */ - , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */ - , BFR_SNDNG_DTL_STTS_CD = #{sndngDtl.bfrSndngDtlSttsCd} /* 전 발송 상세 상태 코드 */ - , BFR_DLVR_YMD = #{sndngDtl.bfrDlvrYmd} /* 전 배달 일자 */ - , BFR_DLVR_HR = #{sndngDtl.bfrDlvrHr} /* 전 배달 시간 */ - , SNDNG_RCVMT_CD = #{sndngDtl.sndngRcvmtCd} /* 발송 수납 코드 */ - , ADDR_CHG_CD = #{sndngDtl.addrChgCd} /* 주소 변경 코드 */ - , CRDN_DT = #{sndngDtl.crdnDt} /* 단속 일시 */ - , VHRNO = #{sndngDtl.vhrno} /* 차량번호 */ - , CRDN_STDG_NM = #{sndngDtl.crdnStdgNm} /* 단속 법정동 명 */ - , CRDN_PLC = #{sndngDtl.crdnPlc} /* 단속 장소 */ - , FYR = #{sndngDtl.fyr} /* 회계연도 */ - , LEVY_NO = #{sndngDtl.levyNo} /* 부과 번호 */ - , LEVY_YMD = #{sndngDtl.levyYmd} /* 부과 일자 */ - , DUDT_YMD = #{sndngDtl.dudtYmd} /* 납기 일자 */ - , DUDT_AFTR_YMD = #{sndngDtl.dudtAftrYmd} /* 납기 후 일자 */ - , FFNLG_AMT = #{sndngDtl.ffnlgAmt} /* 과태료 금액 */ - , PCPTAX = #{sndngDtl.pcptax} /* 본세 */ - , ADAMT = #{sndngDtl.adamt} /* 가산금 */ - , SUM_AMT = #{sndngDtl.sumAmt} /* 합계 금액 */ - , DUDT_AFTR_AMT = #{sndngDtl.dudtAftrAmt} /* 납기 후 금액 */ - , TAX_NO = #{sndngDtl.taxNo} /* 납세 번호 */ - , EPAYNO = #{sndngDtl.epayno} /* 전자납부번호 */ - , BANK_NM = #{sndngDtl.bankNm} /* 은행 명 */ - , VR_ACTNO = #{sndngDtl.vrActno} /* 가상 계좌번호 */ - , BANK_NM2 = #{sndngDtl.bankNm2} /* 은행 명 2 */ - , VR_ACTNO2 = #{sndngDtl.vrActno2} /* 가상 계좌번호 2 */ - , BANK_NM3 = #{sndngDtl.bankNm3} /* 은행 명 3 */ - , VR_ACTNO3 = #{sndngDtl.vrActno3} /* 가상 계좌번호 3 */ - , BANK_NM4 = #{sndngDtl.bankNm4} /* 은행 명 4 */ - , VR_ACTNO4 = #{sndngDtl.vrActno4} /* 가상 계좌번호 4 */ - , BANK_NM5 = #{sndngDtl.bankNm5} /* 은행 명 5 */ - , VR_ACTNO5 = #{sndngDtl.vrActno5} /* 가상 계좌번호 5 */ - , BANK_NM6 = #{sndngDtl.bankNm6} /* 은행 명 6 */ - , VR_ACTNO6 = #{sndngDtl.vrActno6} /* 가상 계좌번호 6 */ - , BANK_NM7 = #{sndngDtl.bankNm7} /* 은행 명 7 */ - , VR_ACTNO7 = #{sndngDtl.vrActno7} /* 가상 계좌번호 7 */ - , BANK_NM8 = #{sndngDtl.bankNm8} /* 은행 명 8 */ - , VR_ACTNO8 = #{sndngDtl.vrActno8} /* 가상 계좌번호 8 */ - , BANK_NM9 = #{sndngDtl.bankNm9} /* 은행 명 9 */ - , VR_ACTNO9 = #{sndngDtl.vrActno9} /* 가상 계좌번호 9 */ - , BANK_NM10 = #{sndngDtl.bankNm10} /* 은행 명 10 */ - , VR_ACTNO10 = #{sndngDtl.vrActno10} /* 가상 계좌번호 10 */ - , BANK_NM11 = #{sndngDtl.bankNm11} /* 은행 명 11 */ - , VR_ACTNO11 = #{sndngDtl.vrActno11} /* 가상 계좌번호 11 */ - , MDFCN_DT = /* 수정 일시 */ - , MDFR = #{sndngDtl.modifiedBy} /* 수정자 */ - WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} /* 발송 상세 ID */ - AND DEL_YN = 'N' - - - /* 발송 상세 상태 코드 수정(sndngMapper.updateSndngDtlSttsCd) */ - UPDATE TB_SNDNG_DTL - SET BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD /* 이전 발송 상세 상태 코드 */ - , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */ - - , MTCHG_ID = #{sndngDtl.mtchgId} /* 매칭 ID */ - - , MDFCN_DT = /* 수정 일시 */ - , MDFR = #{sndngDtl.modifiedBy} /* 수정자 */ - WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} - AND DEL_YN = 'N' - - /* 발송 상세의 공시송달 정보를 수정(sndngMapper.updateSndngDtlSvbtc) */ UPDATE TB_SNDNG_DTL SET SVBTC_ID = #{sndngDtl.svbtcId} /* 공시송달 ID */ @@ -1395,16 +865,6 @@ AND DEL_YN = 'N' - /* 발송 상세 삭제(sndngMapper.deleteSndngDtl) */ - UPDATE TB_SNDNG_DTL - SET DEL_YN = 'Y' /* 삭제 여부 */ - , DEL_DT = /* 삭제 일시 */ - , DLTR = #{sndngDtl.modifiedBy} /* 삭제자 */ - , DEL_RSN = #{sndngDtl.delRsn} /* 삭제 사유 */ - WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} - AND DEL_YN = 'N' - - /* 전자우편 발송 내역 수정(sndngMapper.updateEPostSndng) */ UPDATE TB_SNDNG SET CON_KEY = #{sndng.conKey} /* 외부연계식별키 */ @@ -1414,61 +874,6 @@ AND DEL_YN = 'N' - /* 전자우편 발송상세 내역 수정(sndngMapper.updateEPostSndngDtl) */ - UPDATE TB_SNDNG_DTL - SET CON_KEY = #{sndngDtl.conKey} /* 외부연계식별키 */ - , RG_NO = #{sndngDtl.rgNo} /* 공시송달 ID */ - , BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD /* 이전 발송 상세 상태 코드 */ - , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */ - , RTPYR_NM = #{sndngDtl.rtpyrNm} /* 납부자 명 */ - , RTPYR_BRDT = #{sndngDtl.rtpyrBrdt} /* 납부자 생년월일 */ - , RTPYR_ADDR = #{sndngDtl.rtpyrAddr} /* 납부자 주소 */ - , RTPYR_DTL_ADDR = #{sndngDtl.rtpyrDtlAddr} /* 납부자 상세 주소 */ - , RTPYR_ZIP = #{sndngDtl.rtpyrZip} /* 납부자 우편번호 */ - , CRDN_DT = #{sndngDtl.crdnDt} /* 단속 일시 */ - , VHRNO = #{sndngDtl.vhrno} /* 차량번호 */ - , CRDN_STDG_NM = #{sndngDtl.crdnStdgNm} /* 단속 법정동 명 */ - , CRDN_PLC = #{sndngDtl.crdnPlc} /* 단속 장소 */ - , FYR = #{sndngDtl.fyr} /* 회계연도 */ - , LEVY_NO = #{sndngDtl.levyNo} /* 부과 번호 */ - , LEVY_YMD = #{sndngDtl.levyYmd} /* 부과 일자 */ - , DUDT_YMD = #{sndngDtl.dudtYmd} /* 납기 일자 */ - , DUDT_AFTR_YMD = #{sndngDtl.dudtAftrYmd} /* 납기 후 일자 */ - , FFNLG_AMT = #{sndngDtl.ffnlgAmt} /* 과태료 금액 */ - , PCPTAX = #{sndngDtl.pcptax} /* 본세 */ - , ADAMT = #{sndngDtl.adamt} /* 가산금 */ - , SUM_AMT = #{sndngDtl.sumAmt} /* 합계 금액 */ - , DUDT_AFTR_AMT = #{sndngDtl.dudtAftrAmt} /* 납기 후 금액 */ - , TAX_NO = #{sndngDtl.taxNo} /* 납세 번호 */ - , EPAYNO = #{sndngDtl.epayno} /* 전자납부번호 */ - , BANK_NM = #{sndngDtl.bankNm} /* 은행 명 */ - , VR_ACTNO = #{sndngDtl.vrActno} /* 가상 계좌번호 */ - , BANK_NM2 = #{sndngDtl.bankNm2} /* 은행 명2 */ - , VR_ACTNO2 = #{sndngDtl.vrActno2} /* 가상 계좌번호2 */ - , BANK_NM3 = #{sndngDtl.bankNm3} /* 은행 명3 */ - , VR_ACTNO3 = #{sndngDtl.vrActno3} /* 가상 계좌번호3 */ - , BANK_NM4 = #{sndngDtl.bankNm4} /* 은행 명4 */ - , VR_ACTNO4 = #{sndngDtl.vrActno4} /* 가상 계좌번호4 */ - , BANK_NM5 = #{sndngDtl.bankNm5} /* 은행 명5 */ - , VR_ACTNO5 = #{sndngDtl.vrActno5} /* 가상 계좌번호5 */ - , BANK_NM6 = #{sndngDtl.bankNm6} /* 은행 명6 */ - , VR_ACTNO6 = #{sndngDtl.vrActno6} /* 가상 계좌번호6 */ - , BANK_NM7 = #{sndngDtl.bankNm7} /* 은행 명7 */ - , VR_ACTNO7 = #{sndngDtl.vrActno7} /* 가상 계좌번호7 */ - , BANK_NM8 = #{sndngDtl.bankNm8} /* 은행 명8 */ - , VR_ACTNO8 = #{sndngDtl.vrActno8} /* 가상 계좌번호8 */ - , BANK_NM9 = #{sndngDtl.bankNm9} /* 은행 명9 */ - , VR_ACTNO9 = #{sndngDtl.vrActno9} /* 가상 계좌번호9 */ - , BANK_NM10 = #{sndngDtl.bankNm10} /* 은행 명10 */ - , VR_ACTNO10 = #{sndngDtl.vrActno10} /* 가상 계좌번호10 */ - , BANK_NM11 = #{sndngDtl.bankNm11} /* 은행 명11 */ - , VR_ACTNO11 = #{sndngDtl.vrActno11} /* 가상 계좌번호11 */ - , MDFCN_DT = /* 수정 일시 */ - , MDFR = #{sndngDtl.modifiedBy} /* 수정자 */ - WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} - AND DEL_YN = 'N' - - /* 발송 대상 ID로 발송상세 객체 가져오기(sndngDtlMapper.selectSndngTrgts) */ + SELECT SNDNG_DTL_ID /* 발송 상세 ID */ + FROM TB_SNDNG_DTL + WHERE SNDNG_ID = #{sndngId} /* 발송 ID */ + AND DEL_YN = 'N' + ORDER BY SNDNG_DTL_ID + + + + SELECT SD.SNDNG_DTL_ID /* 발송 상세 ID */ + , SD.SVBTC_ID /* 공시송달 ID */ + , SD.CRDN_ID /* 단속 ID */ + , SD.SVBTC_ID /* 공시송달 ID */ + , SD.MTCHG_ID /* 매칭 ID */ + , SD.SNDNG_SE_CD /* 발송 구분 코드 */ + , SD.SNDNG_YMD /* 발송 일자 */ + , SD.SNDNG_END_YMD /* 발송 종료 일자 */ + , SD.RTPYR_NM /* 납부자 명 */ + , SD.RTPYR_BRDT /* 납부자 생년월일 */ + , SD.RTPYR_ADDR /* 납부자 주소 */ + , SD.RTPYR_DTL_ADDR /* 납부자 상세 주소 */ + , SD.RTPYR_ZIP /* 납부자 우편번호 */ + , SD.CON_KEY /* 외부연계식별키 */ + , SD.RG_NO /* 등기 번호 */ + , SD.DLVR_YMD /* 배달 일자 */ + , SD.DLVR_TM /* 배달 시각 */ + , SD.UNDLVR_RSN_CD /* 미배달 사유 코드 */ + , SD.UNDLVR_RSN_NM /* 미배달 사유 명 */ + , SD.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 /* 은행 명 2 */ + , SD.VR_ACTNO2 /* 가상 계좌번호 2 */ + , SD.BANK_NM3 /* 은행 명 3 */ + , SD.VR_ACTNO3 /* 가상 계좌번호 3 */ + , SD.BANK_NM4 /* 은행 명 4 */ + , SD.VR_ACTNO4 /* 가상 계좌번호 4 */ + , SD.BANK_NM5 /* 은행 명 5 */ + , SD.VR_ACTNO5 /* 가상 계좌번호 5 */ + , SD.BANK_NM6 /* 은행 명 6 */ + , SD.VR_ACTNO6 /* 가상 계좌번호 6 */ + , SD.BANK_NM7 /* 은행 명 7 */ + , SD.VR_ACTNO7 /* 가상 계좌번호 7 */ + , SD.BANK_NM8 /* 은행 명 8 */ + , SD.VR_ACTNO8 /* 가상 계좌번호 8 */ + , SD.BANK_NM9 /* 은행 명 9 */ + , SD.VR_ACTNO9 /* 가상 계좌번호 9 */ + , SD.BANK_NM10 /* 은행 명 10 */ + , SD.VR_ACTNO10 /* 가상 계좌번호 10 */ + , SD.BANK_NM11 /* 은행 명 11 */ + , SD.VR_ACTNO11 /* 가상 계좌번호 11 */ + , SD.REG_DT /* 등록 일시 */ + , SD.RGTR /* 등록자 */ + , SD.MDFCN_DT /* 수정 일시 */ + , SD.MDFR /* 수정자 */ + , SD.DEL_DT /* 삭제 일시 */ + , SD.DLTR /* 삭제자 */ + , SD.DEL_RSN /* 삭제 사유 */ + , S.SNDNG_ID /* 발송 ID */ + , S.SGG_CD /* 시군구 코드 */ + , S.DEPT_CD /* 부서 코드 */ + , S.TASK_SE_CD /* 업무 구분 코드 */ + , S.SNDNG_REG_SE_CD /* 발송 등록 구분 코드 */ + , S.SNDNG_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 /* 전자우편 안내문 ID */ + , S.SNDNG_STTS_CD /* 발송 상태 코드 */ + , S.RESND_YN /* 재발송 여부 */ + , 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('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 /* 발송 수납 명 */ + , GET_MASK_EPAYNO(SD.EPAYNO) AS EPAYNO_MASK /* 전자납부번호 */ + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.RGTR) AS RGTR_NM /* 등록자 명 */ + , (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 /* 삭제자 명 */ + , (SELECT GET_CODE_NM('FIM047', S.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM /* 발송 구분 명 */ + FROM TB_SNDNG_DTL SD + LEFT OUTER JOIN TB_SNDNG S ON (SD.SNDNG_ID = S.SNDNG_ID) + + + + + + + + + /* 발송 상세 등록(sndngDtlMapper.insertSndngDtl) */ + + SELECT LPAD(CAST(IFNULL(MAX(SNDNG_DTL_ID) + 1, 1) AS INT), 10, '0') AS NEW_ID + FROM TB_SNDNG_DTL + + INSERT + INTO TB_SNDNG_DTL ( + SNDNG_DTL_ID /* 발송 상세 ID */ + , SNDNG_ID /* 발송 ID */ + , CRDN_ID /* 단속 ID */ + , SVBTC_ID /* 공시송달 ID */ + , MTCHG_ID /* 매칭 ID */ + , SNDNG_SE_CD /* 발송 구분 코드 */ + , SNDNG_YMD /* 발송 일자 */ + , SNDNG_END_YMD /* 발송 종료 일자 */ + , RTPYR_NM /* 납부자 명 */ + , RTPYR_BRDT /* 납부자 생년월일 */ + , RTPYR_ADDR /* 납부자 주소 */ + , RTPYR_DTL_ADDR /* 납부자 상세 주소 */ + , RTPYR_ZIP /* 납부자 우편번호 */ + , CON_KEY /* 외부연계식별키 */ + , RG_NO /* 등기 번호 */ + , DLVR_YMD /* 배달 일자 */ + , DLVR_TM /* 배달 시각 */ + , UNDLVR_RSN_CD /* 미배달 사유 코드 */ + , UNDLVR_RSN_NM /* 미배달 사유 명 */ + , RCPN_NM /* 수령인 명 */ + , RCPN_REL_NM /* 수령인 관계 명 */ + , SNDNG_DTL_STTS_CD /* 발송 상세 상태 코드 */ + , BFR_SNDNG_DTL_STTS_CD /* 전 발송 상세 상태 코드 */ + , BFR_DLVR_YMD /* 전 배달 일자 */ + , BFR_DLVR_HR /* 전 배달 시간 */ + , SNDNG_RCVMT_CD /* 발송 수납 코드 */ + , ADDR_CHG_CD /* 주소 변경 코드 */ + , CRDN_DT /* 단속 일시 */ + , VHRNO /* 차량번호 */ + , CRDN_STDG_NM /* 단속 법정동 명 */ + , CRDN_PLC /* 단속 장소 */ + , FYR /* 회계연도 */ + , LEVY_NO /* 부과 번호 */ + , LEVY_YMD /* 부과 일자 */ + , DUDT_YMD /* 납기 일자 */ + , DUDT_AFTR_YMD /* 납기 후 일자 */ + , FFNLG_AMT /* 과태료 금액 */ + , PCPTAX /* 본세 */ + , ADAMT /* 가산금 */ + , SUM_AMT /* 합계 금액 */ + , DUDT_AFTR_AMT /* 납기 후 금액 */ + , TAX_NO /* 납세 번호 */ + , EPAYNO /* 전자납부번호 */ + , BANK_NM /* 은행 명 */ + , VR_ACTNO /* 가상 계좌번호 */ + , BANK_NM2 /* 은행 명 2 */ + , VR_ACTNO2 /* 가상 계좌번호 2 */ + , BANK_NM3 /* 은행 명 3 */ + , VR_ACTNO3 /* 가상 계좌번호 3 */ + , BANK_NM4 /* 은행 명 4 */ + , VR_ACTNO4 /* 가상 계좌번호 4 */ + , BANK_NM5 /* 은행 명 5 */ + , VR_ACTNO5 /* 가상 계좌번호 5 */ + , BANK_NM6 /* 은행 명 6 */ + , VR_ACTNO6 /* 가상 계좌번호 6 */ + , BANK_NM7 /* 은행 명 7 */ + , VR_ACTNO7 /* 가상 계좌번호 7 */ + , BANK_NM8 /* 은행 명 8 */ + , VR_ACTNO8 /* 가상 계좌번호 8 */ + , BANK_NM9 /* 은행 명 9 */ + , VR_ACTNO9 /* 가상 계좌번호 9 */ + , BANK_NM10 /* 은행 명 10 */ + , VR_ACTNO10 /* 가상 계좌번호 10 */ + , BANK_NM11 /* 은행 명 11 */ + , VR_ACTNO11 /* 가상 계좌번호 11 */ + , DEL_YN /* 삭제 여부 */ + , REG_DT /* 등록 일시 */ + , RGTR /* 등록자 */ + , MDFCN_DT /* 수정 일시 */ + , MDFR /* 수정자 */ + ) + VALUES ( + #{sndngDtl.sndngDtlId} /* 발송 상세 ID */ + , #{sndngDtl.sndngId} /* 발송 ID */ + , #{sndngDtl.crdnId} /* 단속 ID */ + , #{sndngDtl.svbtcId} /* 공시송달 ID */ + , #{sndngDtl.mtchgId} /* 매칭 ID */ + , #{sndngDtl.sndngSeCd} /* 발송 구분 코드 */ + , #{sndngDtl.sndngYmd} /* 발송 일자 */ + , #{sndngDtl.sndngEndYmd} /* 발송 종료 일자 */ + , #{sndngDtl.rtpyrNm} /* 납부자 명 */ + , #{sndngDtl.rtpyrBrdt} /* 납부자 생년월일 */ + , #{sndngDtl.rtpyrAddr} /* 납부자 주소 */ + , #{sndngDtl.rtpyrDtlAddr} /* 납부자 상세 주소 */ + , #{sndngDtl.rtpyrZip} /* 납부자 우편번호 */ + , #{sndngDtl.conKey} /* 외부연계식별키 */ + , #{sndngDtl.rgNo} /* 등기 번호 */ + , #{sndngDtl.dlvrYmd} /* 배달 일자 */ + , #{sndngDtl.dlvrTm} /* 배달 시각 */ + , #{sndngDtl.undlvrRsnCd} /* 미배달 사유 코드 */ + , #{sndngDtl.undlvrRsnNm} /* 미배달 사유 명 */ + , #{sndngDtl.rcpnNm} /* 수령인 명 */ + , #{sndngDtl.rcpnRelNm} /* 수령인 관계 명 */ + , #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */ + , #{sndngDtl.bfrSndngDtlSttsCd} /* 전 발송 상세 상태 코드 */ + , #{sndngDtl.bfrDlvrYmd} /* 전 배달 일자 */ + , #{sndngDtl.bfrDlvrHr} /* 전 배달 시간 */ + , #{sndngDtl.sndngRcvmtCd} /* 발송 수납 코드 */ + , #{sndngDtl.addrChgCd} /* 주소 변경 코드 */ + , #{sndngDtl.crdnDt} /* 단속 일시 */ + , #{sndngDtl.vhrno} /* 차량번호 */ + , #{sndngDtl.crdnStdgNm} /* 단속 법정동 명 */ + , #{sndngDtl.crdnPlc} /* 단속 장소 */ + , #{sndngDtl.fyr} /* 회계연도 */ + , #{sndngDtl.levyNo} /* 부과 번호 */ + , #{sndngDtl.levyYmd} /* 부과 일자 */ + , #{sndngDtl.dudtYmd} /* 납기 일자 */ + , #{sndngDtl.dudtAftrYmd} /* 납기 후 일자 */ + , #{sndngDtl.ffnlgAmt} /* 과태료 금액 */ + , #{sndngDtl.pcptax} /* 본세 */ + , #{sndngDtl.adamt} /* 가산금 */ + , #{sndngDtl.sumAmt} /* 합계 금액 */ + , #{sndngDtl.dudtAftrAmt} /* 납기 후 금액 */ + , #{sndngDtl.taxNo} /* 납세 번호 */ + , #{sndngDtl.epayno} /* 전자납부번호 */ + , #{sndngDtl.bankNm} /* 은행 명 */ + , #{sndngDtl.vrActno} /* 가상 계좌번호 */ + , #{sndngDtl.bankNm2} /* 은행 명 2 */ + , #{sndngDtl.vrActno2} /* 가상 계좌번호 2 */ + , #{sndngDtl.bankNm3} /* 은행 명 3 */ + , #{sndngDtl.vrActno3} /* 가상 계좌번호 3 */ + , #{sndngDtl.bankNm4} /* 은행 명 4 */ + , #{sndngDtl.vrActno4} /* 가상 계좌번호 4 */ + , #{sndngDtl.bankNm5} /* 은행 명 5 */ + , #{sndngDtl.vrActno5} /* 가상 계좌번호 5 */ + , #{sndngDtl.bankNm6} /* 은행 명 6 */ + , #{sndngDtl.vrActno6} /* 가상 계좌번호 6 */ + , #{sndngDtl.bankNm7} /* 은행 명 7 */ + , #{sndngDtl.vrActno7} /* 가상 계좌번호 7 */ + , #{sndngDtl.bankNm8} /* 은행 명 8 */ + , #{sndngDtl.vrActno8} /* 가상 계좌번호 8 */ + , #{sndngDtl.bankNm9} /* 은행 명 9 */ + , #{sndngDtl.vrActno9} /* 가상 계좌번호 9 */ + , #{sndngDtl.bankNm10} /* 은행 명 10 */ + , #{sndngDtl.vrActno10} /* 가상 계좌번호 10 */ + , #{sndngDtl.bankNm11} /* 은행 명 11 */ + , #{sndngDtl.vrActno11} /* 가상 계좌번호 11 */ + , 'N' /* 삭제 여부 */ + , /* 등록 일시 */ + , #{sndngDtl.createdBy} /* 등록자 */ + , /* 수정 일시 */ + , #{sndngDtl.modifiedBy} /* 수정자 */ + ) + + + /* 발송 상세 수정(sndngDtlMapper.updateSndngDtl) */ + UPDATE TB_SNDNG_DTL + SET SVBTC_ID = #{sndngDtl.svbtcId} /* 공시송달 ID */ + , MTCHG_ID = #{sndngDtl.mtchgId} /* 매칭 ID */ + , SNDNG_SE_CD = #{sndngDtl.sndngSeCd} /* 발송 구분 코드 */ + , SNDNG_YMD = #{sndngDtl.sndngYmd} /* 발송 일자 */ + , SNDNG_END_YMD = #{sndngDtl.sndngEndYmd} /* 발송 종료 일자 */ + , RTPYR_NM = #{sndngDtl.rtpyrNm} /* 납부자 명 */ + , RTPYR_BRDT = #{sndngDtl.rtpyrBrdt} /* 납부자 생년월일 */ + , RTPYR_ADDR = #{sndngDtl.rtpyrAddr} /* 납부자 주소 */ + , RTPYR_DTL_ADDR = #{sndngDtl.rtpyrDtlAddr} /* 납부자 상세 주소 */ + , RTPYR_ZIP = #{sndngDtl.rtpyrZip} /* 납부자 우편번호 */ + , CON_KEY = #{sndngDtl.conKey} /* 외부연계식별키 */ + , RG_NO = #{sndngDtl.rgNo} /* 등기 번호 */ + , DLVR_YMD = #{sndngDtl.dlvrYmd} /* 배달 일자 */ + , DLVR_TM = #{sndngDtl.dlvrTm} /* 배달 시각 */ + , UNDLVR_RSN_CD = #{sndngDtl.undlvrRsnCd} /* 미배달 사유 코드 */ + , UNDLVR_RSN_NM = #{sndngDtl.undlvrRsnNm} /* 미배달 사유 명 */ + , RCPN_NM = #{sndngDtl.rcpnNm} /* 수령인 명 */ + , RCPN_REL_NM = #{sndngDtl.rcpnRelNm} /* 수령인 관계 명 */ + , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */ + , BFR_SNDNG_DTL_STTS_CD = #{sndngDtl.bfrSndngDtlSttsCd} /* 전 발송 상세 상태 코드 */ + , BFR_DLVR_YMD = #{sndngDtl.bfrDlvrYmd} /* 전 배달 일자 */ + , BFR_DLVR_HR = #{sndngDtl.bfrDlvrHr} /* 전 배달 시간 */ + , SNDNG_RCVMT_CD = #{sndngDtl.sndngRcvmtCd} /* 발송 수납 코드 */ + , ADDR_CHG_CD = #{sndngDtl.addrChgCd} /* 주소 변경 코드 */ + , CRDN_DT = #{sndngDtl.crdnDt} /* 단속 일시 */ + , VHRNO = #{sndngDtl.vhrno} /* 차량번호 */ + , CRDN_STDG_NM = #{sndngDtl.crdnStdgNm} /* 단속 법정동 명 */ + , CRDN_PLC = #{sndngDtl.crdnPlc} /* 단속 장소 */ + , FYR = #{sndngDtl.fyr} /* 회계연도 */ + , LEVY_NO = #{sndngDtl.levyNo} /* 부과 번호 */ + , LEVY_YMD = #{sndngDtl.levyYmd} /* 부과 일자 */ + , DUDT_YMD = #{sndngDtl.dudtYmd} /* 납기 일자 */ + , DUDT_AFTR_YMD = #{sndngDtl.dudtAftrYmd} /* 납기 후 일자 */ + , FFNLG_AMT = #{sndngDtl.ffnlgAmt} /* 과태료 금액 */ + , PCPTAX = #{sndngDtl.pcptax} /* 본세 */ + , ADAMT = #{sndngDtl.adamt} /* 가산금 */ + , SUM_AMT = #{sndngDtl.sumAmt} /* 합계 금액 */ + , DUDT_AFTR_AMT = #{sndngDtl.dudtAftrAmt} /* 납기 후 금액 */ + , TAX_NO = #{sndngDtl.taxNo} /* 납세 번호 */ + , EPAYNO = #{sndngDtl.epayno} /* 전자납부번호 */ + , BANK_NM = #{sndngDtl.bankNm} /* 은행 명 */ + , VR_ACTNO = #{sndngDtl.vrActno} /* 가상 계좌번호 */ + , BANK_NM2 = #{sndngDtl.bankNm2} /* 은행 명 2 */ + , VR_ACTNO2 = #{sndngDtl.vrActno2} /* 가상 계좌번호 2 */ + , BANK_NM3 = #{sndngDtl.bankNm3} /* 은행 명 3 */ + , VR_ACTNO3 = #{sndngDtl.vrActno3} /* 가상 계좌번호 3 */ + , BANK_NM4 = #{sndngDtl.bankNm4} /* 은행 명 4 */ + , VR_ACTNO4 = #{sndngDtl.vrActno4} /* 가상 계좌번호 4 */ + , BANK_NM5 = #{sndngDtl.bankNm5} /* 은행 명 5 */ + , VR_ACTNO5 = #{sndngDtl.vrActno5} /* 가상 계좌번호 5 */ + , BANK_NM6 = #{sndngDtl.bankNm6} /* 은행 명 6 */ + , VR_ACTNO6 = #{sndngDtl.vrActno6} /* 가상 계좌번호 6 */ + , BANK_NM7 = #{sndngDtl.bankNm7} /* 은행 명 7 */ + , VR_ACTNO7 = #{sndngDtl.vrActno7} /* 가상 계좌번호 7 */ + , BANK_NM8 = #{sndngDtl.bankNm8} /* 은행 명 8 */ + , VR_ACTNO8 = #{sndngDtl.vrActno8} /* 가상 계좌번호 8 */ + , BANK_NM9 = #{sndngDtl.bankNm9} /* 은행 명 9 */ + , VR_ACTNO9 = #{sndngDtl.vrActno9} /* 가상 계좌번호 9 */ + , BANK_NM10 = #{sndngDtl.bankNm10} /* 은행 명 10 */ + , VR_ACTNO10 = #{sndngDtl.vrActno10} /* 가상 계좌번호 10 */ + , BANK_NM11 = #{sndngDtl.bankNm11} /* 은행 명 11 */ + , VR_ACTNO11 = #{sndngDtl.vrActno11} /* 가상 계좌번호 11 */ + , MDFCN_DT = /* 수정 일시 */ + , MDFR = #{sndngDtl.modifiedBy} /* 수정자 */ + WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} /* 발송 상세 ID */ + AND DEL_YN = 'N' + + + /* 발송 상세 상태 코드 수정(sndngDtlMapper.updateSndngDtlSttsCd) */ + UPDATE TB_SNDNG_DTL + SET BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD /* 이전 발송 상세 상태 코드 */ + , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */ + + , MTCHG_ID = #{sndngDtl.mtchgId} /* 매칭 ID */ + + , MDFCN_DT = /* 수정 일시 */ + , MDFR = #{sndngDtl.modifiedBy} /* 수정자 */ + WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} + AND DEL_YN = 'N' + + + /* 전자우편 발송상세 내역 수정(sndngDtlMapper.updateSndngDtlEPost) */ + UPDATE TB_SNDNG_DTL + SET CON_KEY = #{sndngDtl.conKey} /* 외부연계식별키 */ + , RG_NO = #{sndngDtl.rgNo} /* 공시송달 ID */ + , BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD /* 이전 발송 상세 상태 코드 */ + , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */ + , RTPYR_NM = #{sndngDtl.rtpyrNm} /* 납부자 명 */ + , RTPYR_BRDT = #{sndngDtl.rtpyrBrdt} /* 납부자 생년월일 */ + , RTPYR_ADDR = #{sndngDtl.rtpyrAddr} /* 납부자 주소 */ + , RTPYR_DTL_ADDR = #{sndngDtl.rtpyrDtlAddr} /* 납부자 상세 주소 */ + , RTPYR_ZIP = #{sndngDtl.rtpyrZip} /* 납부자 우편번호 */ + , CRDN_DT = #{sndngDtl.crdnDt} /* 단속 일시 */ + , VHRNO = #{sndngDtl.vhrno} /* 차량번호 */ + , CRDN_STDG_NM = #{sndngDtl.crdnStdgNm} /* 단속 법정동 명 */ + , CRDN_PLC = #{sndngDtl.crdnPlc} /* 단속 장소 */ + , FYR = #{sndngDtl.fyr} /* 회계연도 */ + , LEVY_NO = #{sndngDtl.levyNo} /* 부과 번호 */ + , LEVY_YMD = #{sndngDtl.levyYmd} /* 부과 일자 */ + , DUDT_YMD = #{sndngDtl.dudtYmd} /* 납기 일자 */ + , DUDT_AFTR_YMD = #{sndngDtl.dudtAftrYmd} /* 납기 후 일자 */ + , FFNLG_AMT = #{sndngDtl.ffnlgAmt} /* 과태료 금액 */ + , PCPTAX = #{sndngDtl.pcptax} /* 본세 */ + , ADAMT = #{sndngDtl.adamt} /* 가산금 */ + , SUM_AMT = #{sndngDtl.sumAmt} /* 합계 금액 */ + , DUDT_AFTR_AMT = #{sndngDtl.dudtAftrAmt} /* 납기 후 금액 */ + , TAX_NO = #{sndngDtl.taxNo} /* 납세 번호 */ + , EPAYNO = #{sndngDtl.epayno} /* 전자납부번호 */ + , BANK_NM = #{sndngDtl.bankNm} /* 은행 명 */ + , VR_ACTNO = #{sndngDtl.vrActno} /* 가상 계좌번호 */ + , BANK_NM2 = #{sndngDtl.bankNm2} /* 은행 명2 */ + , VR_ACTNO2 = #{sndngDtl.vrActno2} /* 가상 계좌번호2 */ + , BANK_NM3 = #{sndngDtl.bankNm3} /* 은행 명3 */ + , VR_ACTNO3 = #{sndngDtl.vrActno3} /* 가상 계좌번호3 */ + , BANK_NM4 = #{sndngDtl.bankNm4} /* 은행 명4 */ + , VR_ACTNO4 = #{sndngDtl.vrActno4} /* 가상 계좌번호4 */ + , BANK_NM5 = #{sndngDtl.bankNm5} /* 은행 명5 */ + , VR_ACTNO5 = #{sndngDtl.vrActno5} /* 가상 계좌번호5 */ + , BANK_NM6 = #{sndngDtl.bankNm6} /* 은행 명6 */ + , VR_ACTNO6 = #{sndngDtl.vrActno6} /* 가상 계좌번호6 */ + , BANK_NM7 = #{sndngDtl.bankNm7} /* 은행 명7 */ + , VR_ACTNO7 = #{sndngDtl.vrActno7} /* 가상 계좌번호7 */ + , BANK_NM8 = #{sndngDtl.bankNm8} /* 은행 명8 */ + , VR_ACTNO8 = #{sndngDtl.vrActno8} /* 가상 계좌번호8 */ + , BANK_NM9 = #{sndngDtl.bankNm9} /* 은행 명9 */ + , VR_ACTNO9 = #{sndngDtl.vrActno9} /* 가상 계좌번호9 */ + , BANK_NM10 = #{sndngDtl.bankNm10} /* 은행 명10 */ + , VR_ACTNO10 = #{sndngDtl.vrActno10} /* 가상 계좌번호10 */ + , BANK_NM11 = #{sndngDtl.bankNm11} /* 은행 명11 */ + , VR_ACTNO11 = #{sndngDtl.vrActno11} /* 가상 계좌번호11 */ + , MDFCN_DT = /* 수정 일시 */ + , MDFR = #{sndngDtl.modifiedBy} /* 수정자 */ + WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} + AND DEL_YN = 'N' + + + /* 발송 상세 삭제(sndngDtlMapper.deleteSndngDtl) */ + UPDATE TB_SNDNG_DTL + SET DEL_YN = 'Y' + , DEL_DT = /* 삭제 일시 */ + , DLTR = #{sndngDtl.modifiedBy} /* 삭제자 */ + , DEL_RSN = #{sndngDtl.delRsn} /* 삭제사유 */ + WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} + AND DEL_YN = 'N' + + + diff --git a/src/main/webapp/WEB-INF/jsp/fims/levy/levy01020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/levy/levy01020-info.jsp index ccea75ab..67ff72ab 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/levy/levy01020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/levy/levy01020-info.jsp @@ -101,7 +101,7 @@ // 업무구분에 따른 url 변경 ${pageName}Control.urls.create = wctx.url(item.data.TASK_SE_CD + ${pageName}PrefixUrl + "/020/createRductLevyList.do"); -// ${pageName}Control.urls.update = wctx.url(item.data.TASK_SE_CD + ${pageName}PrefixUrl + "/020/updateRductLevyList.do"); + ${pageName}Control.urls.update = wctx.url(item.data.TASK_SE_CD + ${pageName}PrefixUrl + "/020/updateRductLevyList.do"); } /************************************************************************** @@ -123,8 +123,8 @@ ${pageName}Control.save = (info) => { if (!info) return; - let params = $.extend({}, ${pageName}Query, info); // 객체를 합친다. let create = (${pageName}CallPurpose == "create"); + let params = $.extend({}, ${pageName}Query, info); // 객체를 합친다. ajax.post({ url : !create ? ${pageName}Control.urls.update : ${pageName}Control.urls.create diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01010-main.jsp index 14e98128..59e0718b 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01010-main.jsp @@ -158,8 +158,8 @@ - @@ -183,6 +183,7 @@ 업무구분 계고일자 계고사유 + 기타내용 민원신청번호 민원접수번호 민원접수일자 @@ -191,14 +192,17 @@ 단속일시 차량번호 위반항목 - 법정동 + 단속법정동 단속장소 + 위반항목 상세단속장소 - 단속금액 + 최초단속금액 처리상태 납부자명 납부자생일 우편번호 + 주소 + 상세주소 단속특별구역 사용연료 주차가능여부 @@ -214,6 +218,7 @@ {TASK_SE_NM} {LEVY_EXCL_YMD} {LEVY_EXCL_RSN_NM} + {ETC_CN} {CVLCPT_APLY_NO} {CVLCPT_RCPT_NO} {CVLCPT_RCPT_YMD} @@ -224,12 +229,15 @@ {VLTN_ARTCL} {CRDN_STDG_NM} {CRDN_PLC} + {VLTN_ARTCL} {DTL_CRDN_PLC} {FFNLG_CRDN_AMT} - {CRDN_STTS_NM} + {CRDN_STTS_NM} {RTPYR_NM} - {RTPYR_BRDT} + {RTPYR_BRDT_MASK} {ZIP} + {ADDR} + {DTL_ADDR} {CRDN_SPAREA_NM} {USE_FUEL_NM} {PARKNG_PSBLTY_RSLT_NM} @@ -242,19 +250,19 @@ @@ -299,9 +307,6 @@ , dataGetter : obj => obj.wrngTrgtList , appendData : true , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 - , urls : { - getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보 - } , formats : { CVLCPT_RCPT_YMD : dateFormat , LEVY_EXCL_YMD : dateFormat @@ -317,7 +322,7 @@ **************************************************************************/ // Dataset 변경 이벤트 ${pageName}Control.onDatasetChange = obj => { - renderList${pageName}(); + renderList${pageName}(obj.${infoPrefix}Total); $("#paging--${pageName}").setPagingInfo({ list : ${pageName}Control.dataset @@ -328,7 +333,7 @@ , func : "${pageName}Control.load({index})" }); - ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 + ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 }; // 현재 선택 자료 변경 이벤트 @@ -340,34 +345,41 @@ $("#tbody--${pageName}").setCurrentRow(key); }; - // 개별총정보 dialog - ${pageName}Control.getInfo = (crdnId) => { - if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; - let params = { - callControlName : "${pageName}Control" - , crdnId : crdnId + // 계고장 발송 등록 dialog -> callback 추가 + ${pageName}Control.getInfo = (params) => { + if (!params) return; + + 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.get({ - url : ${pageName}Control.urls.getInfo - , data : params + url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/020/info.do") + , data : params || {} , success : resp => { dialog.open({ - id : "totalInfoMainDialog" - , title : "개별총정보" + id : "wrngTrgtDtlDialog" + , title : dialogTitle , content : resp - , size : "xxl" + , size : "xl" + , onClose : () => { refreshList${pageName}(); } // callback }); } }); } /************************************************************************** - * + * DataTables 이벤트 **************************************************************************/ // DataTables에 click, dbclick 이벤트 - renderList${pageName} = () => { + renderList${pageName} = (totalSize) => { let ${infoPrefix}List = ${pageName}Control.dataset; let empty = ${infoPrefix}List.empty; let clsForTask = $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val(); @@ -388,34 +400,88 @@ }); let trs = empty ? - [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML] - : ${infoPrefix}List.inStrings(foundTr.outerHTML - , (str, dataItem) => str - .replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("CRDN_ID") + "');") - .replace(/{ondblclick}/gi, "${pageName}Control.getInfo('" + dataItem.getValue("CRDN_ID") + "');") - ); - - $("#tbody--${pageName}").html(trs.join()); + [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML] : + ${infoPrefix}List.inStrings( + foundTr.outerHTML, + (str, dataItem) => str + .replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("CRDN_ID") + "');") + .replace(/{ondblclick}/gi, "getTotalInfo${pageName}('" + dataItem.getValue("CRDN_ID") + "');") + ); + + let noMore = (totalSize == ${infoPrefix}List.length); + let initScroll = (${pageName}Control.query.pageNum < 2) && (${pageName}Control.untilPageNum == 0); + + $("#table-responsive--${pageName}")[0].changeContent(trs.join(), initScroll, noMore); + + if (${pageName}Control.untilPageNum != 0) { + ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; + ${pageName}Control.query.pageNum = ${pageName}Control.untilPageNum; + ${pageName}Control.untilPageNum = 0; + } + + // checkbox 체크 해제 $("th input[type='checkbox']").prop("checked", false); //보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); } - // 계고장 발송 등록 dialog -> callback 추가 - getWrngTrgtInfo${pageName} = (params) => { - if (!params) return; + // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 + scrollDataList${pageName} = () => { + ${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 false + + ${pageName}Control.load(${pageName}Control.query.pageNum + 1); + } + + /************************************************************************** + * 사용자 함수(function) + **************************************************************************/ + // callback 사용자 검색 + callbackFindUser${pageName} = (userId, userNm) => { + $("#schRgtrCd--${pageName}").val(userId); // 사용자 ID + $("#schRgtrNm--${pageName}").val(userNm); // 사용자 명 + } + + // 사용자 검색 + getFindUser${pageName} = () => { + let params = { + callbackFuncName : "callbackFindUser${pageName}" + } ajax.get({ - url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/020/info.do") + url : wctx.url("/user/user02/010/main.do") , data : params || {} , success : resp => { dialog.open({ - id : "wrngTrgtDtlDialog" - , title : ${pageName}Control.prefixName + " 정보" + id : "userDialog" + , title : "사용자 검색" , content : resp - , size : "xl" - , onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback + , size : "lg" + }); + } + }); + } + + // 개별총정보 dialog + getTotalInfo${pageName} = (crdnId) => { + if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; + + let params = { + callControlName : "${pageName}Control" + , sggCd : $("#sggCd--${pageName}").val() + , taskSeCd : $("input[name=taskSeCd]:checked").val() + , crdnId : crdnId + } + + ajax.get({ + url : wctx.url(params.taskSeCd + "/sprt/sprt02/010/main.do") + , data : params + , success : resp => { + dialog.open({ + id : "totalInfoMainDialog" + , title : "개별총정보" + , content : resp + , size : "xxl" }); } }); @@ -426,34 +492,128 @@ if (!params) return; ajax.get({ - url : wctx.url("/" + params.taskSeCd + "/excl/excl01/020/info.do?openerPageName=${pageName}") + url : wctx.url(params.taskSeCd + "/excl/excl01/020/info.do?openerPageName=${pageName}") , data : params || {} , success : resp => { dialog.open({ id : "levyExclDialog" , title : "부과제외 정보" , content : resp - , size : "lg" - , onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback + , size : "md" + , onClose : () => { refreshList${pageName}(); } // callback }); } }); } + // 검색 자료 재조회 + refreshList${pageName} = () => { + ${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum; + ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum; + + ${pageName}Control.load(1); + } + /************************************************************************** - * 초기 셋팅 + * 버튼 clickEvent **************************************************************************/ - // 초기화 - initForm${pageName} = () => { - // 화면 초기화 - $("#frmSearch--${pageName}")[0].reset(); + // 업무 구분 변경 + fnResetAndChangeBiz${pageName} = (taskSeCd) => { + // 업무 구분 코드 + if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { + taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); + } - // dataset 초기화 - ${pageName}Control.dataset.clear(); + // 초기 기본 설정 + initForm${pageName}(); + + // URL 설정 + setURL${pageName}(taskSeCd); + + // 기본 데이터 설정 + setFormData${pageName}(taskSeCd); + } + + // 검색 버튼 이벤트 + fnSearchList${pageName} = () => { + // 검색조건 + ${pageName}Control.query = ${pageName}Fields.get(); + + ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 한번에 조회되는 자료 건수 + ${pageName}Control.query.delYN = "N"; // 삭제 여부 + + ${pageName}Control.load(1); + } + + // 엑셀 버튼 이벤트 + fnExcel${pageName} = () => { + if (${pageName}Control.dataset.empty) { + dialog.alert({ + content : "검색된 자료가 없습니다." + , onOK : () => { } + }); + + return; + } + + // DataTables(그리드) + let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)") + , $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)")); + ${pageName}Control.query.cellDefs = cellDefs; + + ${pageName}Control.download(); + } + + // 사용자 조회 버튼 이벤트 + fnFindUser${pageName} = () => { + getFindUser${pageName}(); + } + + // 계고장 발송 대상 등록 버튼 이벤트 + fnWrngTrgtInfo${pageName} = () => { + let params = ${pageName}Control.query; + + params.callPurpose = "create"; + if (params.taskSeCd == "DPV" && params.schVltnId == "05") { + params.sndngSeCd = "12"; // 발송 구분 코드 - 12 계고장 구형표지 + } else { + params.sndngSeCd = "11"; // 발송 구분 코드 - 11 계고장 + } + + ${pageName}Control.getInfo(params); + } + + // 계고 수정 버튼 이벤트 + fnUpdateWrng${pageName} = () => { + let levyExclId = ${pageName}Control.dataset.getValue("LEVY_EXCL_ID"); + let levyExclSeCd = ${pageName}Control.dataset.getValue("LEVY_EXCL_SE_CD"); + + // 부과제외ID 가 없다면.. return + if (!levyExclId) return; + + let params = { + callPurpose : "update" + , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 + , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 + , levyExclId : levyExclId + , levyExclSeCd : levyExclSeCd + }; + + getLevyExclInfo${pageName}(params); } + /************************************************************************** + * 초기 셋팅 + **************************************************************************/ // 이벤트 setEvent${pageName} = () => { + // 동적검색에서 엔터(Enter) 키를 누르면 검색한다. + $("#term--${pageName}").keypress(function(e) { + if (e.keyCode == 13) { + fnSearchList${pageName}();    + }     + }); + // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 $("#frmSearch--${pageName}").find(".form-date").each(function() { $(this).on("input", function() { @@ -470,41 +630,48 @@ // DataTables width 변경 조정 $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); - // DataTables 스크롤 이벤트 - $("#table-responsive--${pageName}").scroll(function() { - let el = $(this); + // DataTables 스크롤 이벤트 생성 + fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName}); + } - if (el.scrollTop() == 0) { - return; - } - if (!${pageName}Control.tableRenderComplete) { - return; - } + // 화면 초기 설정 + initForm${pageName} = () => { + // 화면 초기화 + $("#frmSearch--${pageName}")[0].reset(); - let itemsCnt = ${pageName}Control.dataset._items.length; - let totCnt = ${pageName}Control.dataset.getValue("TOT_CNT"); + // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. + $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { + $(this).prop("disabled", "true"); + }); - if (itemsCnt >= totCnt) { - return; - } + // 달력 초기화 + initDatepicker("frmSearch--${pageName}"); - if ((el[0].scrollHeight - el.scrollTop() + VERTICAL_SCROLL_HEIGHT) <= el.outerHeight()) { - ${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 + $("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date); + $("#schLevyExclYmdTo--${pageName}").datepicker("setDate", new Date()); - ${pageName}Control.load(${pageName}Control.query.pageNum + 1); - } - }); + // 사용자 이름 + $("#schRgtrNm--${pageName}").prop("readonly", true); + + // dataset 초기화 + ${pageName}Control.dataset.clear(); } - // 화면 초기값 셋팅 - setForm${pageName} = (taskSeCd) => { - // 업무 구분 코드 - $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); + // URL 설정 + setURL${pageName} = (taskSeCd) => { + ${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회 + } - // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. - $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { - $(this).prop("disabled", "true"); - }); + // 기본 데이터 설정 + setFormData${pageName} = (taskSeCd) => { + // ${pageName}Control 설정 +// ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 + + ${pageName}Control.defaultFetchSize = 1; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 + + // 화면 데이터 설정 + $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 + $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 // 업무에 따른 위반 내용 let vltnIdCode = []; @@ -530,12 +697,6 @@ $("#schVltnId--${pageName}").append(""); }); - // 달력 초기화 - initDatepicker("frmSearch--${pageName}"); - - $("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date); - $("#schLevyExclYmdTo--${pageName}").datepicker("setDate", new Date()); - // 업무별 조회조건 let clsForTask = taskSeCd.toLowerCase(); @@ -556,103 +717,18 @@ $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); } - // URL 설정 - setURL${pageName} = (taskSeCd) => { - ${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회 - } - - /************************************************************************** - * 버튼 clickEvent - **************************************************************************/ - // 업무 구분 변경 - fnResetAndChangeBiz${pageName} = (taskSeCd) => { - // 초기화 - initForm${pageName}(); - - // 업무 구분 코드 - if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { - taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); - } - - // 화면 초기값 설정 - setForm${pageName}(taskSeCd); - - // URL 설정 - setURL${pageName}(taskSeCd); - } - - // 초기화 버튼 이벤트 - fnReset${pageName} = () => { - fnResetAndChangeBiz${pageName}(); - } - - // 검색 버튼 이벤트 - fnSearchList${pageName} = () => { - // 검색조건 - ${pageName}Control.query = ${pageName}Fields.get(); - ${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30 - - ${pageName}Control.load(); - } - - // 엑셀 버튼 이벤트 - fnExcel${pageName} = () => { - - } - - // 계고장 발송 대상 등록 버튼 이벤트 - fnWrngTrgtInfo${pageName} = () => { - let params = ${pageName}Fields.get(); - - params.callPurpose = "create"; - - if (params.taskSeCd == "DPV" && params.schVltnId == "05") { - params.sndngSeCd = "12"; // 발송 구분 코드 - 12 계고장 구형표지 - } else { - params.sndngSeCd = "11"; // 발송 구분 코드 - 11 계고장 - } - - getWrngTrgtInfo${pageName}(params); - } - - // 계고 수정 버튼 이벤트 - fnLevyExclInfo${pageName} = () => { - let levyExclId = ${pageName}Control.dataset.getValue("LEVY_EXCL_ID"); - let levyExclSeCd = ${pageName}Control.dataset.getValue("LEVY_EXCL_SE_CD"); - - // 부과제외ID 가 없다면.. return - if (!levyExclId) return; - - let params = { - callPurpose : "update" - , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 - , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 - , levyExclId : levyExclId - , levyExclSeCd : levyExclSeCd - }; - - getLevyExclInfo${pageName}(params); - } - /************************************************************************** * script 진입 **************************************************************************/ $(document).ready(function() { - // 기본 데이터 설정 - $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 - // 이벤트 설정 setEvent${pageName}(); // 보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); - // 업무 구분 설정 - let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val(); - $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true); - // 화면 초기 설정 및 업무 구분 변경 - fnResetAndChangeBiz${pageName}(defaultBizValue); + fnResetAndChangeBiz${pageName}($("#layout-navbar input[name='taskSeCd']:checked").val()); }); diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01020-info.jsp index bb5b421a..a12f0086 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01020-info.jsp @@ -19,8 +19,8 @@
- - + +
@@ -59,9 +59,6 @@ - @@ -86,11 +83,11 @@ 민원신청번호 민원접수번호 민원접수일자 - 민원처리결과 + 민원처리결과 단속일시 차량번호 위반항목 - 법정동 + 단속법정동 단속장소 단속금액 처리상태 @@ -127,7 +124,7 @@ {FFNLG_CRDN_AMT} {CRDN_STTS_NM} {RTPYR_NM} - {RTPYR_BRDT} + {RTPYR_BRDT_MASK} {ZIP} {ADDR} {DTL_ADDR} @@ -160,22 +157,23 @@ **************************************************************************/ // URL var ${pageName}PrefixUrl = "/sndb/sndb01"; + // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) + var ${pageName}CallPurpose = "${callPurpose}"; // FormFields var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}"); + // main 의 검색 조건을 그대로 유지 + var ${pageName}Query = ${wrngTrgtQuery}; /************************************************************************** * DatasetControl **************************************************************************/ var ${pageName}Control = new DatasetControl({ - prefix : "wrngTrgtDtl" + prefix : "wrngTrgt" , prefixName : "계고장 발송 대상" , keymapper : info => info ? info.CRDN_ID : "" - , dataGetter : obj => obj.wrngTrgtDtlList + , dataGetter : obj => obj.wrngTrgtList , appendData : true - , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 - , urls : { - getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보 - } + , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , formats : { TNOCS : numberFormat , GRAMT : numberFormat @@ -195,9 +193,7 @@ ${pageName}Control.onDatasetChange = obj => { renderList${pageName}(); - ${pageName}Control.select(true); // 전체 선택 되도록.. - - ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 + ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 }; // 현재 선택 자료 변경 이벤트 @@ -221,34 +217,10 @@ }); }; - // 개별총정보 dialog - ${pageName}Control.getInfo = (crdnId) => { - if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; - - let params = { - callControlName : "${pageName}Control" - , callPurpose : "view" - , crdnId : crdnId - } - - ajax.get({ - url : ${pageName}Control.urls.getInfo - , data : params - , success : resp => { - dialog.open({ - id : "totalInfoMainDialog" - , title : "개별총정보" - , content : resp - , size : "xxl" - }); - } - }); - } - // 저장 callback ${pageName}Control.onSave = (resp) => { let dialogTitle = $("#btnSave--${pageName}").attr("title"); - let showMessage = resp.retMessage.replace(/[S]|[F]/g, dialogTitle); + let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle); dialog.alert(showMessage); @@ -261,24 +233,21 @@ ${pageName}Control.save = (info) => { if (!info) return; - // 선택된 자료의 단속ID 추가 - let selected = ${pageName}Control.dataset.getKeys("selected"); + info.resndYN = "N"; // 재발송 여부 + info.delYN = "N"; // 삭제 여부 - if (selected.length < 1) return; - - info.crdnIDs = selected.join(","); // 단속 IDs - info.resndYn = "N"; // 재발송 여부 - info.delYn = "N"; // 삭제 여부 + let create = (${pageName}CallPurpose == "create"); + let params = $.extend({}, ${pageName}Query, info); // 객체를 합친다. ajax.post({ - url : wctx.url(info.taskSeCd + ${pageName}PrefixUrl + "/020/create.do") - , data : info + url : !create ? ${pageName}Control.urls.update : ${pageName}Control.urls.create + , data : params , success : resp => ${pageName}Control.onSave(resp) }); } /************************************************************************** - * + * DataTables 이벤트 **************************************************************************/ // DataTables에 click, dbclick 이벤트 renderList${pageName} = () => { @@ -291,7 +260,7 @@ document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%> (str, dataItem) => str .replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("CRDN_ID") + "');") - .replace(/{ondblclick}/gi, "${pageName}Control.getInfo('" + dataItem.getValue("CRDN_ID") + "');") + .replace(/{ondblclick}/gi, "getTotalInfo${pageName}('" + dataItem.getValue("CRDN_ID") + "');") ); $("#tbody--${pageName}").html(trs.join()); @@ -301,6 +270,50 @@ fn_securityModeToggle($("#securityMode--top").is(":checked")); } + /************************************************************************** + * 사용자 함수(function) + **************************************************************************/ + // 개별총정보 dialog + getTotalInfo${pageName} = (crdnId) => { + if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; + + let params = { + callControlName : "${pageName}Control" + , sggCd : $("#sggCd--${pageName}").val() + , taskSeCd : $("input[name=taskSeCd]:checked").val() + , crdnId : crdnId + } + + ajax.get({ + url : wctx.url(params.taskSeCd + "/sprt/sprt02/010/main.do") + , data : params + , success : resp => { + dialog.open({ + id : "totalInfoMainDialog" + , title : "개별총정보" + , content : resp + , size : "xxl" + }); + } + }); + } + + /************************************************************************** + * 버튼 clickEvent + **************************************************************************/ + // 발송 등록 + fnSave${pageName} = () => { + // validate 확인 + if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; + + dialog.alert({ + content : ${pageName}Control.prefixName + " 정보를 저장하시겠습니까?" + , onOK : () => { + ${pageName}Control.save(${pageName}Fields.get()); + } + }); + } + /************************************************************************** * 초기 셋팅 **************************************************************************/ @@ -323,63 +336,64 @@ $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); } - // 화면 초기값 셋팅 - setForm${pageName} = () => { + // 화면 초기 설정 + initForm${pageName} = () => { + // 화면 초기화 + $("#frmEdit--${pageName}")[0].reset(); + // 달력 초기화 initDatepicker("frmEdit--${pageName}"); - $("#sndngYmd--${pageName}").datepicker("setDate", new Date()); - $("#sndngEndYmd--${pageName}").val(""); - $("#sndngEndYmd--${pageName}").prop("disabled", true); - - $("#divSndngEndYmd--${pageName}").hide(); + $("#sndngEndYmd--${pageName}").datepicker("setDate", new Date()); } - /************************************************************************** - * 버튼 clickEvent - **************************************************************************/ - // 엑셀 - fnExcel${pageName} = () => { + // 업무구분에 따른 url 설정 + setURL${pageName} = () => { + let taskSeCd = ${pageName}Query.taskSeCd; + ${pageName}Control.urls.create = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/020/createWrngSndngList.do"); // 등록 + ${pageName}Control.urls.update = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/020/updateWrngSndngList.do"); // 수정 } - // 발송 등록 - fnSave${pageName} = () => { - // validate 확인 - if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; + // 기본 데이터 설정 + setFormData${pageName} = () => { + // + $("#sggCd--${pageName}").val(${pageName}Query.sggCd); // 시군구 코드 + $("#taskSeCd--${pageName}").val(${pageName}Query.taskSeCd); // 업무 구분 코드 + $("#sndngSeCd--${pageName}").val(${pageName}Query.sndngSeCd); // 발송 구분 코드 + $("#vltnCd--${pageName}").val(${pageName}Query.vltnCd); // 위반 코드 - dialog.alert({ - content : ${pageName}Control.prefixName + " 정보를 저장하시겠습니까?" - , onOK : () => { - ${pageName}Control.save(${pageName}Fields.get()); - } - }); + // 총건수 / 총금액 + $("#tnocs--${pageName}").val(${pageName}Control.dataset.getValue("TNOCS")); + $("#gramt--${pageName}").val(${pageName}Control.dataset.getValue("GRAMT")); + + // 발송 종료 일자 + $("#sndngEndYmd--${pageName}").val(""); + $("#sndngEndYmd--${pageName}").prop("disabled", true); + $("#divSndngEndYmd--${pageName}").hide(); } /************************************************************************** * script 진입 **************************************************************************/ $(document).ready(function() { - // 기본 데이터 - $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 - $("#taskSeCd--${pageName}").val("${taskSeCd}"); // 업무 구분 코드 - $("#sndngSeCd--${pageName}").val("${sndngSeCd}"); // 발송 구분 코드 - $("#vltnCd--${pageName}").val("${vltnCd}"); // 위반 코드 - - // 보안모드 - fn_securityModeToggle($("#securityMode--top").is(":checked")); - // 이벤트 설정 setEvent${pageName}(); - // 화면 초기 설정 - setForm${pageName}(); + // 화면 초기화 + initForm${pageName}(); + + // Dataset 설정 + ${pageName}Control.addData(${wrngTrgt}); - // Dataset 셋팅 - 화면이 열리면서 조회하는 경우 addData 하여 자료를 추가 - ${pageName}Control.addData(${wrngTrgtDtl}); + // URL 설정 + setURL${pageName}(); - $("#tnocs--${pageName}").val(${pageName}Control.dataset.getValue("TNOCS")); // 총건수 - $("#gramt--${pageName}").val(${pageName}Control.dataset.getValue("GRAMT")); // 총금액 + // 기본 데이터 설정 + setFormData${pageName}(); + + // 보안모드 + fn_securityModeToggle($("#securityMode--top").is(":checked")); }); diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02010-main.jsp index a611d31c..2ad70d6d 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02010-main.jsp @@ -260,7 +260,7 @@ , crdnId : crdnId , sggCd : mainDataItems[curDataIndex${pageName}].data.SGG_CD , taskSeCd : mainDataItems[curDataIndex${pageName}].data.TASK_SE_CD - , delYn : "N" + , delYN : "N" }; ${pageName}RefreshDataInfo(params); @@ -298,7 +298,7 @@ , crdnId : crdnId , sggCd : mainDataItems[curDataIndex${pageName}].data.SGG_CD , taskSeCd : mainDataItems[curDataIndex${pageName}].data.TASK_SE_CD - , delYn : "N" + , delYN : "N" }; ${pageName}RefreshDataInfo(params); @@ -406,7 +406,7 @@ , crdnId : crdnId , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") - , delYn : "N" + , delYN : "N" }; getCrdnPayerInfo${pageName}(params); @@ -427,7 +427,7 @@ , crdnId : crdnId , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") - , delYn : "N" + , delYN : "N" }; getOpnnSbmsnInfo${pageName}(params); @@ -448,7 +448,7 @@ , crdnId : crdnId , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") - , delYn : "N" + , delYN : "N" }; getSndngInfo${pageName}(params); @@ -470,7 +470,7 @@ , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") , rtpyrId : ${pageName}Control.dataset.getValue("RTPYR_ID") - , delYn : "N" + , delYN : "N" }; getPrcsDtlInfo${pageName}(params); @@ -491,7 +491,7 @@ , crdnId : crdnId , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") - , delYn : "N" + , delYN : "N" }; getLevyNpmntInfo${pageName}(params); @@ -512,7 +512,7 @@ , crdnId : crdnId , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") - , delYn : "N" + , delYN : "N" }; getRcvmtInfo${pageName}(params); @@ -535,7 +535,7 @@ , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") , vhrno : ${pageName}Control.dataset.getValue("VHRNO") - , delYn : "N" + , delYN : "N" }; getCvlcptDscsnInfo${pageName}(params); diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02020-info.jsp index cf6a089e..972ec468 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02020-info.jsp @@ -572,7 +572,7 @@ , crdnId : crdnId , sggCd : sggCd , taskSeCd : taskSeCd - , delYn : "N" + , delYN : "N" }; ajax.get({ @@ -720,7 +720,7 @@ , crdnId : crdnId , sggCd : $("#sggCd--${pageNameMain}").val() , taskSeCd : $("#taskSeCd--${pageNameMain}").val() - , delYn : "N" + , delYN : "N" }; ajax.get({ @@ -889,7 +889,7 @@ , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , rtpyrId : ${pageName}Control.dataset.getValue("RTPYR_ID") // 납부자 ID - , delYn : "N" + , delYN : "N" }; dialog.alert({ @@ -915,7 +915,7 @@ , rtpyrId : ${pageName}Control.dataset.getValue("RTPYR_ID") // 납부자 ID , vhrno : ${pageName}Control.dataset.getValue("VHRNO") // 차량번호 , rtpyrInptSeCd : "01" // 납부자 입력 구분 코드 - , delYn : "N" + , delYN : "N" }; updatePayer${pageName}(params); @@ -1059,9 +1059,9 @@ // 이미지 정보를 파일 배열에 셋팅 existFileArr${pageName} = []; // 파일 배열 초기화 - + var crdnPayerInfo = ${pageName}Control.getCurrent(); - + if (crdnPayerInfo.fileList) { crdnPayerInfo.fileList.forEach(function(item) { item.status = ""; diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02030-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02030-info.jsp index 15e8b370..9b6fe731 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02030-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02030-info.jsp @@ -332,7 +332,7 @@ , crdnId : crdnId , sggCd : $("#sggCd--${pageNameMain}").val() , taskSeCd : $("#taskSeCd--${pageNameMain}").val() - , delYn : "N" + , delYN : "N" }; ajax.get({ diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02040-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02040-info.jsp index d94623d3..47997161 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02040-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02040-info.jsp @@ -390,7 +390,7 @@ , crdnId : crdnId , sggCd : $("#sggCd--${pageNameMain}").val() , taskSeCd : $("#taskSeCd--${pageNameMain}").val() - , delYn : "N" + , delYN : "N" }; ajax.get({ diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02050-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02050-info.jsp index 957f0041..c3eafe1b 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02050-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02050-info.jsp @@ -477,7 +477,7 @@ , sggCd : $("#sggCd--${pageNameMain}").val() , taskSeCd : $("#taskSeCd--${pageNameMain}").val() , rtpyrId : $("#rtpyrId--${pageNameMain}").val() - , delYn : "N" + , delYN : "N" }; ajax.get({ @@ -515,10 +515,9 @@ removeRduct${pageName} = (obj) => { // 서버에 전송할 data(파라미터) 생성 let params = { - callPurpose : "remove" - , rductId : ${pageName}${pageDataName1}Control.dataset.getValue("RDUCT_ID") // 감경 ID - , delYn : "Y" // 삭제 여부 - , delRsn : obj.reason // 삭제 사유 + callPurpose : "remove" + , rductId : ${pageName}${pageDataName1}Control.dataset.getValue("RDUCT_ID") // 감경 ID + , delRsn : obj.reason // 삭제 사유 }; ajax.post({ diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02060-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02060-info.jsp index da72ac7f..22633dd6 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02060-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02060-info.jsp @@ -331,7 +331,7 @@ , crdnId : crdnId , sggCd : $("#sggCd--${pageNameMain}").val() , taskSeCd : $("#taskSeCd--${pageNameMain}").val() - , delYn : "N" + , delYN : "N" }; ajax.get({ diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02070-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02070-info.jsp index 986f2773..639a3773 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02070-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02070-info.jsp @@ -399,7 +399,7 @@ , crdnId : crdnId , sggCd : $("#sggCd--${pageNameMain}").val() , taskSeCd : $("#taskSeCd--${pageNameMain}").val() - , delYn : "N" + , delYN : "N" }; ajax.get({ diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02080-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02080-info.jsp index d1699519..ed3c85fd 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02080-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02080-info.jsp @@ -214,7 +214,7 @@ , sggCd : $("#sggCd--${pageNameMain}").val() , taskSeCd : $("#taskSeCd--${pageNameMain}").val() , vhrno : $("#vhrno--${pageNameMain}").val() - , delYn : "N" + , delYN : "N" }; ajax.get({ @@ -240,7 +240,7 @@ , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , cvlcptDscsnId : ${pageName}Control.dataset.getValue("CVLCPT_DSCSN_ID") // 민원상담 ID - , delYn : "Y" // 삭제 여부 + , delYN : "Y" // 삭제 여부 , delRsn : obj.reason // 삭제 사유 };