From 7594ca9efd09183a201c190713a1c9e37f49558a Mon Sep 17 00:00:00 2001 From: jjh Date: Thu, 31 Aug 2023 18:44:38 +0900 Subject: [PATCH] =?UTF-8?q?=EC=88=98=EB=82=A9(RCVM)=20=EA=B4=80=EB=A0=A8?= =?UTF-8?q?=20=EC=9E=90=EB=B0=94=20=EC=86=8C=EC=8A=A4=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xit/fims/excl/service/Excl01Service.java | 6 +- .../fims/excl/service/bean/Excl02Bean.java | 21 +- .../java/cokr/xit/fims/rcvm/RcvmQuery.java | 124 +++++ src/main/java/cokr/xit/fims/rcvm/Rcvmt.java | 156 ++++++ .../cokr/xit/fims/rcvm/dao/RcvmtMapper.java | 99 ++++ .../xit/fims/rcvm/service/Rcvm01Service.java | 61 +++ .../fims/rcvm/service/bean/Rcvm01Bean.java | 81 ++++ .../rcvm/service/bean/Rcvm01ServiceBean.java | 57 +++ .../xit/fims/rcvm/web/Rcvm01Controller.java | 111 +++++ .../sql/mapper/fims/rcvm/rcvmt-mapper.xml | 205 ++++++++ .../WEB-INF/jsp/fims/sprt/sprt02070-info.jsp | 455 ++++++++++++++++++ 11 files changed, 1361 insertions(+), 15 deletions(-) create mode 100644 src/main/java/cokr/xit/fims/rcvm/RcvmQuery.java create mode 100644 src/main/java/cokr/xit/fims/rcvm/Rcvmt.java create mode 100644 src/main/java/cokr/xit/fims/rcvm/dao/RcvmtMapper.java create mode 100644 src/main/java/cokr/xit/fims/rcvm/service/Rcvm01Service.java create mode 100644 src/main/java/cokr/xit/fims/rcvm/service/bean/Rcvm01Bean.java create mode 100644 src/main/java/cokr/xit/fims/rcvm/service/bean/Rcvm01ServiceBean.java create mode 100644 src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java create mode 100644 src/main/resources/sql/mapper/fims/rcvm/rcvmt-mapper.xml create mode 100644 src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02070-info.jsp diff --git a/src/main/java/cokr/xit/fims/excl/service/Excl01Service.java b/src/main/java/cokr/xit/fims/excl/service/Excl01Service.java index 19102f6c..61e3845a 100644 --- a/src/main/java/cokr/xit/fims/excl/service/Excl01Service.java +++ b/src/main/java/cokr/xit/fims/excl/service/Excl01Service.java @@ -43,7 +43,7 @@ public interface Excl01Service { *
  • 그렇지 않으면 false
  • * */ - boolean createLevyExcl(LevyExcl excl01); + boolean createLevyExcl(LevyExcl levyExcl); /**부과제외 대장 정보를 수정한다. * @param excl 부과제외 대장 @@ -52,7 +52,7 @@ public interface Excl01Service { *
  • 그렇지 않으면 false
  • * */ - boolean updateLevyExcl(LevyExcl excl01); + boolean updateLevyExcl(LevyExcl levyExcl); /**부과제외 대장 정보를 삭제한다. * @param excl 부과제외 대장 @@ -61,7 +61,7 @@ public interface Excl01Service { *
  • 그렇지 않으면 false
  • * */ - boolean removeLevyExcl(LevyExcl excl01); + boolean removeLevyExcl(LevyExcl levyExcl); /**부과제외 대장 정보를 삭제한다. * @param excl 부과제외 대장 diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/Excl02Bean.java b/src/main/java/cokr/xit/fims/excl/service/bean/Excl02Bean.java index ba45d42c..a9845b34 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/Excl02Bean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/Excl02Bean.java @@ -118,7 +118,7 @@ public class Excl02Bean extends AbstractComponent { fileBean.create(fileInfoList); } - // 단속 상태 코드가 사전통보중 이전일때만 단속의 상태를 의견진술중으로 수정 한다. + // 단속 상태 코드가 사전통보중 이전일때만 단속의 상태를 의견제출 중으로 수정 한다. if (Integer.parseInt(infoCrdnOpnnSbmsn.string("CRDN_STTS_CD")) <= 42) { // 사전통보 완료 // 단속상태이력(TB_CRDN_STTS_HSTRY) CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); @@ -126,7 +126,7 @@ public class Excl02Bean extends AbstractComponent { crdnSttsHstry.setCrdnId(infoCrdnOpnnSbmsn.string("CRDN_ID")); crdnSttsHstry.setBfrSttsCd(infoCrdnOpnnSbmsn.string("CRDN_STTS_CD")); crdnSttsHstry.setBfrSttsChgDt(infoCrdnOpnnSbmsn.string("CRDN_STTS_CHG_DT")); - crdnSttsHstry.setCrdnSttsCd("31"); // 의견진술 접수 + crdnSttsHstry.setCrdnSttsCd("31"); // 의견제출 접수 crdnSttsHstry.setTaskDtlId(opnnSbmsn.getOpnnId()); crdnSttsHstry.setEtcCn("의견제출 대장 등록"); @@ -212,10 +212,10 @@ public class Excl02Bean extends AbstractComponent { // 의견제출(TB_OPNN_SBMSN) 자료 조회 DataObject infoCrdnOpnnSbmsn = opnnSbmsnMapper.selectOpnnSbmsnInfo(opnnSbmsn.getOpnnId()); - // 수납 또는 취소된 자료를 의견진술 수용할 수 없다 + // 수납 또는 취소된 자료를 의견제출 수용할 수 없다 if (infoCrdnOpnnSbmsn.number("CRDN_STTS_CD").intValue() >= 71) { // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException(infoCrdnOpnnSbmsn.string("CRDN_STTS_NM") + " 자료는 의견진술 수용으로 처리할 수 없습니다."); + throw new RuntimeException(infoCrdnOpnnSbmsn.string("CRDN_STTS_NM") + " 자료는 의견제출 심의처리를 할 수 없습니다."); } // 의견제출 답변을 수정 한다. @@ -225,23 +225,20 @@ public class Excl02Bean extends AbstractComponent { throw new RuntimeException("의견제출 대장의 심의(답변) 처리에 실패하였습니다."); } - // 의견제출 처리 결과가 과태료감경(04) 이라면.. 감경 등록이 필요하다.. 2023.08.16 JoJH - - // 조회된 의견제출상태 코드와 수정 할 의견제출상태 코드가 다르다면.. if (!opnnSbmsn.getOpnnSbmsnSttsCd().equals(infoCrdnOpnnSbmsn.string("OPNN_SBMSN_STTS_CD"))) { if (opnnSbmsn.getOpnnSbmsnSttsCd().equals("02")) { // 수용 - newCrdnSttsCd = "82"; // 의견진술 수용으로 변경 + newCrdnSttsCd = "82"; // 의견제출 수용으로 변경 } else if (opnnSbmsn.getOpnnSbmsnSttsCd().equals("01") || opnnSbmsn.getOpnnSbmsnSttsCd().equals("03") || opnnSbmsn.getOpnnSbmsnSttsCd().equals("05")) { // 미수용, 자진취하, 심의제외 newCrdnSttsCd = infoCrdnOpnnSbmsn.string("CRDN_STTS_CD"); // 이전 단속상태코드 유지 } else if (opnnSbmsn.getOpnnSbmsnSttsCd().equals("04")) { // 과태료감경 -// 2023.08.31 추가 필요 JoJH +// 의견제출 처리 결과가 과태료감경(04) 이라면.. 감경 등록이 필요하다.. 2023.08.16 JoJH } else if (opnnSbmsn.getOpnnSbmsnSttsCd().equals("06")) { newCrdnSttsCd = "87"; // 경찰서 이첩으로 변경 } - // 단속상태가 의견진술수용(82), 경찰서이첩(87) 이라면.. + // 단속상태가 의견제출수용(82), 경찰서이첩(87) 이라면.. if (newCrdnSttsCd.equals("82") || newCrdnSttsCd.equals("87")) { // 단속상태이력(TB_CRDN_STTS_HSTRY) CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); @@ -251,7 +248,7 @@ public class Excl02Bean extends AbstractComponent { crdnSttsHstry.setBfrSttsChgDt(infoCrdnOpnnSbmsn.string("CRDN_STTS_CHG_DT")); crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd); crdnSttsHstry.setTaskDtlId(opnnSbmsn.getOpnnId()); - crdnSttsHstry.setEtcCn("의견제출 심의(답변) 수용"); + crdnSttsHstry.setEtcCn("의견제출 심의(답변)"); // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록 한다. retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); @@ -279,7 +276,7 @@ public class Excl02Bean extends AbstractComponent { // 의견제출(TB_OPNN_SBMSN) 자료 조회 DataObject infoCrdnOpnnSbmsn = opnnSbmsnMapper.selectOpnnSbmsnInfo(opnnSbmsn.getOpnnId()); - // 단속 상태 코드가 의견진술 접수(31) 또는 의견진술 수용(82) 이라면... 이전 단속 상태 코드로 복원 한다. + // 단속 상태 코드가 의견제출 접수(31) 또는 의견제출 수용(82) 이라면... 이전 단속 상태 코드로 복원 한다. if (infoCrdnOpnnSbmsn.string("CRDN_STTS_CD").equals("31") || infoCrdnOpnnSbmsn.string("CRDN_STTS_CD").equals("82")) { // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다. retSuccess = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(infoCrdnOpnnSbmsn.string("CRDN_ID")); diff --git a/src/main/java/cokr/xit/fims/rcvm/RcvmQuery.java b/src/main/java/cokr/xit/fims/rcvm/RcvmQuery.java new file mode 100644 index 00000000..27a7ce3a --- /dev/null +++ b/src/main/java/cokr/xit/fims/rcvm/RcvmQuery.java @@ -0,0 +1,124 @@ +package cokr.xit.fims.rcvm; + +import cokr.xit.foundation.component.QueryRequest; + +/**수납 대장 정보 조회 요청 + * + *

    상세 설명: + * + *

    + * ============ 변경 이력 ============
    + * 2023-08-31	JoJH 최초 작성
    + * ================================
    + * 
    + */ +public class RcvmQuery extends QueryRequest { + + private static final long serialVersionUID = 1L; + + // 필수 조건 + private String sggCd; // 시군구 코드 + private String taskSeCd; // 업무 구분 코드 + private String delYn; // 삭제 여부 + // ID + private String crdnId; // 단속 ID + private String levyId; // 부과 ID + private String[] rcvmtIDs; // 수납 IDs + private String rcvmtId; // 수납 ID + // ETC + private String callPurpose; // 호출용도 필요시 사용(select, create, update) + private String delRsn; // 삭제 사유 + + public String getSggCd() { + return ifEmpty(sggCd, () -> null); + } + + public T setSggCd(String sggCd) { + this.sggCd = sggCd; + + return self(); + } + + public String getTaskSeCd() { + return ifEmpty(taskSeCd, () -> null); + } + + public T setTaskSeCd(String taskSeCd) { + this.taskSeCd = taskSeCd; + + return self(); + } + + public String getDelYn() { + return ifEmpty(delYn, () -> null); + } + + public T setDelYn(String delYn) { + this.delYn = delYn; + + return self(); + } + + public String getCrdnId() { + return ifEmpty(crdnId, () -> null); + } + + public T setCrdnId(String crdnId) { + this.crdnId = crdnId; + + return self(); + } + + public String getLevyId() { + return ifEmpty(levyId, () -> null); + } + + public T setLevyId(String levyId) { + this.levyId = levyId; + + return self(); + } + + public String[] getRcvmtIDs() { + return ifEmpty(rcvmtIDs, () -> null); + } + + public T setRcvmtIDs(String... rcvmtIDs) { + this.rcvmtIDs = rcvmtIDs; + + return self(); + } + + public String getRcvmtId() { + return ifEmpty(rcvmtId, () -> null); + } + + public T setRcvmtId(String rcvmtId) { + this.rcvmtId = rcvmtId; + + return self(); + } + + // ETC ///////////////////////////////////////////////////////////////////// + public String getCallPurpose() { + return ifEmpty(callPurpose, () -> null); + } + + public T setCallPurpose(String callPurpose) { + this.callPurpose = callPurpose; + + return self(); + } + + public String getDelRsn() { + return ifEmpty(delRsn, () -> null); + } + + public T setDelRsn(String delRsn) { + this.delRsn = delRsn; + + return self(); + } + // ETC ///////////////////////////////////////////////////////////////////// + +} diff --git a/src/main/java/cokr/xit/fims/rcvm/Rcvmt.java b/src/main/java/cokr/xit/fims/rcvm/Rcvmt.java new file mode 100644 index 00000000..7590d0f0 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rcvm/Rcvmt.java @@ -0,0 +1,156 @@ +package cokr.xit.fims.rcvm; + +import cokr.xit.foundation.AbstractEntity; +import lombok.Getter; +import lombok.Setter; + +/** + * 수납 대장 + * @author JoJH + */ +@Getter +@Setter +public class Rcvmt extends AbstractEntity { + + /** + * 수납 ID + */ + private String rcvmtId; + + /** + * 시군구 코드 + */ + private String sggCd; + + /** + * 업무 구분 코드 + */ + private String taskSeCd; + + /** + * 부과 ID + */ + private String levyId; + + /** + * 수납 입력 구분 코드 + */ + private String rcvmtInptSeCd; + + /** + * 회계 연도 + */ + private String acntgYr; + + /** + * 회계 구분 + */ + private String acntgSe; + + /** + * 세목 코드 + */ + private String txitmCd; + + /** + * 세목 명 + */ + private String txitmNm; + + /** + * 부과 번호 + */ + private String levyNo; + + /** + * 수납 순번 + */ + private String rcvmtSn; + + /** + * 수납 일자 + */ + private String rcvmtYmd; + + /** + * 수납 본세 + */ + private Integer rcvmtPcptax; + + /** + * 수납 가산금 + */ + private Integer rcvmtAdamt; + + /** + * 수납 이자 + */ + private Integer rcvmtInt; + + /** + * 수납 은행 + */ + private String rcvmtBank; + + /** + * 납부 방법 + */ + private String payMthd; + + /** + * 회계 일자 + */ + private String acntgYmd; + + /** + * 소인 일자 + */ + private String pstmrkYmd; + + /** + * 가상계좌번호 + */ + private String vractno; + + /** + * 전자납부번호 + */ + private String epayno; + + /** + * 수납 구분 코드 + */ + private String rcvmtSeCd; + + /** + * 세외수입 부과 키 + */ + private String nxrpLevyKey; + + /** + * 수납 취소 여부 + */ + private String rcvmtRtrcnYn; + + /** + * 수납 취소 일시 + */ + private String rcvmtRtrcnDt; + + /** + * 수납 취소 사유 + */ + private String rcvmtRtrcnRsn; + + /** + * 삭제 여부 + */ + private String delYn; + + /** + * 삭제 사유 + */ + private String delRsn; + +} + diff --git a/src/main/java/cokr/xit/fims/rcvm/dao/RcvmtMapper.java b/src/main/java/cokr/xit/fims/rcvm/dao/RcvmtMapper.java new file mode 100644 index 00000000..0ca3052c --- /dev/null +++ b/src/main/java/cokr/xit/fims/rcvm/dao/RcvmtMapper.java @@ -0,0 +1,99 @@ +package cokr.xit.fims.rcvm.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.rcvm.Rcvmt; +import cokr.xit.fims.rcvm.RcvmQuery; + +/** 수납 대장 정보 DAO + * + *

    상세 설명: + * + *

    + * ============ 변경 이력 ============
    + * 2023-08-31	mjkhan 최초 작성
    + * ================================
    + * 
    + */ +@Mapper("rcvmtMapper") +public interface RcvmtMapper extends AbstractMapper { + + /**지정한 조건에 따라 수납 대장 목록을 조회하여 반환한다.
    + * @param req 수납 대장 조회 조건 + * @return 수납 대장 목록 + */ + List selectRcvmtList(RcvmQuery req); + + /**지정한 조건에 따라 수납 대장 객체들을 반환한다. + * @param req 수납 대장 조회 조건 + * @return 수납 대장 객체 목록 + */ + List selectRcvmts(RcvmQuery req); + + /**수납 대장 정보를 등록한다. + * @param params 파라미터 + *
    • "rcvmt" - 수납 대장
    • + *
    • "currentUser" - 현재 접속한 사용자
    • + *
    + * @return 저장된 정보수 + */ + int insertRcvmt(Map params); + + /**수납 대장 정보를 등록한다. + * @param rcvmt 수납 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + default boolean insert(Rcvmt rcvmt) { + return rcvmt != null && insertRcvmt(params().set("rcvmt", rcvmt)) == 1; + } + + /**수납 대장 정보를 수정한다. + * @param params 파라미터 + *
    • "rcvmt" - 수납 대장
    • + *
    • "currentUser" - 현재 접속한 사용자
    • + *
    + * @return 저장된 정보수 + */ + int updateRcvmt(Map params); + + /**수납 대장 정보를 수정한다. + * @param rcvmt 수납 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + default boolean update(Rcvmt rcvmt) { + return rcvmt != null && updateRcvmt(params().set("rcvmt", rcvmt)) == 1; + } + + /**지정한 수납 대장을 삭제한다. + * @param params 파라미터 + *
    • "rcvmt" - 수납 대장
    • + *
    • "currentUser" - 현재 접속한 사용자
    • + *
    + * @return 저장된 정보수 + */ + int deleteRcvmt(Map params); + + /**수납 대장 정보를 삭제한다. + * @param rcvmt 수납 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + default boolean delete(Rcvmt rcvmt) { + return rcvmt != null && deleteRcvmt(params().set("rcvmt", rcvmt)) == 1; + } + +} diff --git a/src/main/java/cokr/xit/fims/rcvm/service/Rcvm01Service.java b/src/main/java/cokr/xit/fims/rcvm/service/Rcvm01Service.java new file mode 100644 index 00000000..1e260602 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rcvm/service/Rcvm01Service.java @@ -0,0 +1,61 @@ +package cokr.xit.fims.rcvm.service; + +import java.util.List; + +import cokr.xit.foundation.data.DataObject; + +import cokr.xit.fims.rcvm.Rcvmt; +import cokr.xit.fims.rcvm.RcvmQuery; + +/**수납 대장 관리 서비스 인터페이스. + * + *

    상세 설명: + * + *

    + * ============ 변경 이력 ============
    + * 2023-08-31	mjkhan 최초 작성
    + * ================================
    + * 
    + */ +public interface Rcvm01Service { + + /**지정한 조건에 따라 수납 대장 목록을 조회하여 반환한다. + * @param req 수납 대장 조회 조건 + * @return 수납 대장 목록 + */ + List getRcvmtList(RcvmQuery req); + + /**지정한 조건에 따라 수납 대장 객체들을 반환한다. + * @param req 수납 대장 조회 조건 + * @return 수납 대장 객체 목록 + */ + List getRcvmts(RcvmQuery req); + + /**수납 대장 정보를 등록한다. + * @param rcvmt 수납 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + boolean createRcvmt(Rcvmt rcvmt); + + /**수납 대장 정보를 수정한다. + * @param rcvmt 수납 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + boolean updateRcvmt(Rcvmt rcvmt); + + /**수납 대장 정보를 삭제한다. + * @param rcvmt 수납 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + boolean removeRcvmt(Rcvmt rcvmt); + +} diff --git a/src/main/java/cokr/xit/fims/rcvm/service/bean/Rcvm01Bean.java b/src/main/java/cokr/xit/fims/rcvm/service/bean/Rcvm01Bean.java new file mode 100644 index 00000000..5cd74294 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rcvm/service/bean/Rcvm01Bean.java @@ -0,0 +1,81 @@ +package cokr.xit.fims.rcvm.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.rcvm.Rcvmt; +import cokr.xit.fims.rcvm.RcvmQuery; +import cokr.xit.fims.rcvm.dao.RcvmtMapper; + +/**수납 대장 정보 관리 Bean + * + *

    상세 설명: + * + *

    + * ============ 변경 이력 ============
    + * 2023-08-31	JoJH 최초 작성
    + * ================================
    + * 
    + */ +@Component("rcvm01Bean") +public class Rcvm01Bean extends AbstractComponent { + + /** 수납 대장 정보 DAO */ + @Resource(name = "rcvmtMapper") + private RcvmtMapper rcvmtMapper; + + /**지정한 조건에 따라 수납 대장 목록을 조회하여 반환한다. + * @param req 수납 대장 조회 조건 + * @return 수납 대장 목록 + */ + public List getRcvmtList(RcvmQuery req) { + return rcvmtMapper.selectRcvmtList(req); + } + + /**지정한 조건에 따라 수납 대장 객체들을 반환한다. + * @param req 수납 대장 조회 조건 + * @return 수납 대장 객체 목록 + */ + public List getRcvmts(RcvmQuery req) { + return rcvmtMapper.selectRcvmts(req); + } + + /**수납 대장 정보를 등록한다. + * @param rcvmt 수납 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + public boolean createRcvmt(Rcvmt rcvmt) { + return rcvmtMapper.insert(rcvmt); + } + + /**수납 대장 정보를 수정한다. + * @param rcvmt 수납 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + public boolean updateRcvmt(Rcvmt rcvmt) { + return rcvmtMapper.update(rcvmt); + } + + /**수납 대장 정보를 삭제한다. + * @param rcvmt 수납 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + public boolean removeRcvmt(Rcvmt rcvmt) { + return rcvmtMapper.delete(rcvmt); + } +} diff --git a/src/main/java/cokr/xit/fims/rcvm/service/bean/Rcvm01ServiceBean.java b/src/main/java/cokr/xit/fims/rcvm/service/bean/Rcvm01ServiceBean.java new file mode 100644 index 00000000..58fdac77 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rcvm/service/bean/Rcvm01ServiceBean.java @@ -0,0 +1,57 @@ +package cokr.xit.fims.rcvm.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.rcvm.Rcvmt; +import cokr.xit.fims.rcvm.RcvmQuery; +import cokr.xit.fims.rcvm.service.Rcvm01Service; + +/**수납 대장 서비스 구현체. + * + *

    상세 설명: + * + *

    + * ============ 변경 이력 ============
    + * 2023-08-31	JoJH 최초 작성
    + * ================================
    + * 
    + */ +@Service("rcvm01Service") +public class Rcvm01ServiceBean extends AbstractServiceBean implements Rcvm01Service { + + /** 수납 대장 정보 Bean */ + @Resource(name = "rcvm01Bean") + private Rcvm01Bean rcvm01Bean; + + @Override + public List getRcvmtList(RcvmQuery req) { + return rcvm01Bean.getRcvmtList(req); + } + + @Override + public List getRcvmts(RcvmQuery req) { + return rcvm01Bean.getRcvmts(req); + } + + @Override + public boolean createRcvmt(Rcvmt rcvmt) { + return rcvm01Bean.createRcvmt(rcvmt); + } + + @Override + public boolean updateRcvmt(Rcvmt rcvmt) { + return rcvm01Bean.updateRcvmt(rcvmt); + } + + @Override + public boolean removeRcvmt(Rcvmt rcvmt) { + return rcvm01Bean.removeRcvmt(rcvmt); + } +} diff --git a/src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java b/src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java new file mode 100644 index 00000000..6c1f468e --- /dev/null +++ b/src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java @@ -0,0 +1,111 @@ +package cokr.xit.fims.rcvm.web; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +import cokr.xit.base.web.ApplicationController; + +import cokr.xit.fims.rcvm.Rcvmt; +import cokr.xit.fims.rcvm.RcvmQuery; +import cokr.xit.fims.rcvm.service.Rcvm01Service; + +/**수납 대장 서비스의 웹 컨트롤러 + * + *

    상세 설명: + * + *

    + * ============ 변경 이력 ============
    + * 2023-08-31	mjkhan 최초 작성
    + * ================================
    + * 
    + */ +@RequestMapping(name = "수납 대장", value = "/rcvmt") +public class Rcvm01Controller extends ApplicationController { + + /**수납 대장 서비스*/ + @Resource(name = "rcvm01Service") + private Rcvm01Service rcvm01Service; + + /**수납 대장 관리 메인화면(rcvmt/rcvmt-main)을 연다. + * 조건없는 {@link #getRcvmtList(RcvmtQuery) 수납 대장 조회 결과}를 포함시킨다. + * @return /rcvmt/rcvmt-main + */ + @RequestMapping(name = "수납 대장 메인", value = "/010/main.do") + public ModelAndView main() { + ModelAndView mav = getRcvmtList(new RcvmQuery().setPageNum(1)); + + mav.setViewName("/rcvmt/rcvmt-main"); + + return mav.addObject("rcvmtList", toJson(mav.getModel().get("rcvmtList"))); + } + + /**수납 대장 목록을 조회하여 반환한다.
    + * {@link RcvmtService#getRcvmtList(RcvmtQuery)} 참고 + * @param req 수납 대장 조회 조건 + * @return jsonView + *
     {
    +	 *     "rcvmtList": [수납 대장 목록]
    +	 *     "rcvmtStart": 수납 대장 목록 시작 인덱스
    +	 *     "rcvmtFetch": 한 번에 가져오는 수납 대장 목록 수
    +	 *     "rcvmtTotal": 조회 결과 찾은 전체 수납 대장 수
    +	 * }
    + */ + @RequestMapping(name = "수납 대장 조회", value = "/010/list.do") + public ModelAndView getRcvmtList(RcvmQuery req) { + List result = rcvm01Service.getRcvmtList(setFetchSize(req)); + + return setCollectionInfo(new ModelAndView("jsonView"), result, "rcvmt"); + } + + /**수납 대장를 등록한다. + * @param rcvmt 수납 대장 정보 + * @return jsonView + *
     {
    +	 *     "saved": 등록되었으면 true, 그렇지 않으면 false
    +	 * }
    + */ + @PostMapping(name = "수납 대장 등록", value = "/010/create.do") + public ModelAndView create(Rcvmt rcvmt) { + boolean saved = rcvm01Service.createRcvmt(rcvmt); + + return new ModelAndView("jsonView") + .addObject("saved", saved); + } + + /**수납 대장 정보를 수정한다. + * @param rcvmt 수납 대장 정보 + * @return jsonView + *
     {
    +	 *     "saved": 수정되었으면 true, 그렇지 않으면 false
    +	 * }
    + */ + @PostMapping(name = "수납 대장 수정", value = "/010/update.do") + public ModelAndView update(Rcvmt rcvmt) { + boolean saved = rcvm01Service.updateRcvmt(rcvmt); + + return new ModelAndView("jsonView") + .addObject("saved", saved); + } + + /**지정한 수납 대장를 제거한다. + * @param rcvmtIDs 수납 대장 아이디 + * @return jsonView + *
     {
    +	 *     "affected": 저장된 정보수
    +	 *     "saved": 저장되었으면 true, 그렇지 않으면 false
    +	 * }
    + */ + @PostMapping(name = "수납 대장 제거", value = "/010/remove.do") + public ModelAndView remove(Rcvmt rcvmt) { + boolean saved = rcvm01Service.removeRcvmt(rcvmt); + + return new ModelAndView("jsonView") + .addObject("saved", saved); + } + +} diff --git a/src/main/resources/sql/mapper/fims/rcvm/rcvmt-mapper.xml b/src/main/resources/sql/mapper/fims/rcvm/rcvmt-mapper.xml new file mode 100644 index 00000000..969bdc9c --- /dev/null +++ b/src/main/resources/sql/mapper/fims/rcvm/rcvmt-mapper.xml @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +SELECT RCVMT_ID + , SGG_CD + , LEVY_ID + , RCVMT_INPT_SE_CD + , ACNTG_YR + , ACNTG_SE + , TXITM_CD + , TXITM_NM + , LEVY_NO + , RCVMT_SN + , RCVMT_YMD + , RCVMT_PCPTAX + , RCVMT_ADAMT + , RCVMT_INT + , RCVMT_BANK + , PAY_MTHD + , ACNTG_YMD + , PSTMRK_YMD + , VRACTNO + , EPAYNO + , RCVMT_SE_CD + , NXRP_LEVY_KEY + , RCVMT_RTRCN_YN + , RCVMT_RTRCN_DT + , RCVMT_RTRCN_RSN + , DEL_YN + , REG_DT + , RGTR + , MDFCN_DT + , MDFR + , DEL_DT + , DLTR + , DEL_RSN + FROM TB_RCVMT + + + + + +/* 수납 대장 등록(rcvmtMapper.insertRcvmt) */ +INSERT INTO TB_RCVMT ( + RCVMT_ID + , SGG_CD + , LEVY_ID + , RCVMT_INPT_SE_CD + , ACNTG_YR + , ACNTG_SE + , TXITM_CD + , TXITM_NM + , LEVY_NO + , RCVMT_SN + , RCVMT_YMD + , RCVMT_PCPTAX + , RCVMT_ADAMT + , RCVMT_INT + , RCVMT_BANK + , PAY_MTHD + , ACNTG_YMD + , PSTMRK_YMD + , VRACTNO + , EPAYNO + , RCVMT_SE_CD + , NXRP_LEVY_KEY + , RCVMT_RTRCN_YN + , RCVMT_RTRCN_DT + , RCVMT_RTRCN_RSN + , DEL_YN + , REG_DT + , RGTR + , MDFCN_DT + , MDFR + , DEL_DT + , DLTR + , DEL_RSN +) VALUES ( + #{rcvmt.rcvmtId} + , #{rcvmt.sggCd} + , #{rcvmt.levyId} + , #{rcvmt.rcvmtInptSeCd} + , #{rcvmt.acntgYr} + , #{rcvmt.acntgSe} + , #{rcvmt.txitmCd} + , #{rcvmt.txitmNm} + , #{rcvmt.levyNo} + , #{rcvmt.rcvmtSn} + , #{rcvmt.rcvmtYmd} + , #{rcvmt.rcvmtPcptax} + , #{rcvmt.rcvmtAdamt} + , #{rcvmt.rcvmtInt} + , #{rcvmt.rcvmtBank} + , #{rcvmt.payMthd} + , #{rcvmt.acntgYmd} + , #{rcvmt.pstmrkYmd} + , #{rcvmt.vractno} + , #{rcvmt.epayno} + , #{rcvmt.rcvmtSeCd} + , #{rcvmt.nxrpLevyKey} + , #{rcvmt.rcvmtRtrcnYn} + , #{rcvmt.rcvmtRtrcnDt} + , #{rcvmt.rcvmtRtrcnRsn} + , #{rcvmt.delYn} + , + , #{currentUser.id} + , + , #{currentUser.id} + , #{rcvmt.removedAt} + , #{rcvmt.removedBy} + , #{rcvmt.delRsn} +) + +/* 수납 대장 수정(rcvmtMapper.updateRcvmt) */ +UPDATE TB_RCVMT SET + SGG_CD = #{rcvmt.sggCd} + , LEVY_ID = #{rcvmt.levyId} + , RCVMT_INPT_SE_CD = #{rcvmt.rcvmtInptSeCd} + , ACNTG_YR = #{rcvmt.acntgYr} + , ACNTG_SE = #{rcvmt.acntgSe} + , TXITM_CD = #{rcvmt.txitmCd} + , TXITM_NM = #{rcvmt.txitmNm} + , LEVY_NO = #{rcvmt.levyNo} + , RCVMT_SN = #{rcvmt.rcvmtSn} + , RCVMT_YMD = #{rcvmt.rcvmtYmd} + , RCVMT_PCPTAX = #{rcvmt.rcvmtPcptax} + , RCVMT_ADAMT = #{rcvmt.rcvmtAdamt} + , RCVMT_INT = #{rcvmt.rcvmtInt} + , RCVMT_BANK = #{rcvmt.rcvmtBank} + , PAY_MTHD = #{rcvmt.payMthd} + , ACNTG_YMD = #{rcvmt.acntgYmd} + , PSTMRK_YMD = #{rcvmt.pstmrkYmd} + , VRACTNO = #{rcvmt.vractno} + , EPAYNO = #{rcvmt.epayno} + , RCVMT_SE_CD = #{rcvmt.rcvmtSeCd} + , NXRP_LEVY_KEY = #{rcvmt.nxrpLevyKey} + , RCVMT_RTRCN_YN = #{rcvmt.rcvmtRtrcnYn} + , RCVMT_RTRCN_DT = #{rcvmt.rcvmtRtrcnDt} + , RCVMT_RTRCN_RSN = #{rcvmt.rcvmtRtrcnRsn} + , DEL_YN = #{rcvmt.delYn} + , MDFCN_DT = + , MDFR = #{currentUser.id} + , DEL_DT = #{rcvmt.removedAt} + , DLTR = #{rcvmt.removedBy} + , DEL_RSN = #{rcvmt.delRsn} + WHERE RCVMT_ID = #{rcvmt.rcvmtId} + +/* 수납 대장 삭제(rcvmtMapper.deleteRcvmt) */ +UPDATE TB_RCVMT SET + USE_YN = 'N' + , MDFCN_DT = + , MDFR = #{currentUser.id} + WHERE RCVMT_ID = #{rcvmt.rcvmtId} + + 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 new file mode 100644 index 00000000..571ecbb5 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02070-info.jsp @@ -0,0 +1,455 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%> +<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%> + + +
    + +
    + + + + +
    + +
    + +
    + +
    + + + + + + + + +
    + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + + + + + + + + +
    NO.파일 번호파일 이름파일 크기다운로드
    +
    +
    +
    +
    + + +
    + +
    + +
    + + + + + +
    + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    + +