From 78c260d9752d7ab75100a9adc4ffafba003f9b80 Mon Sep 17 00:00:00 2001 From: jjh Date: Mon, 18 Dec 2023 18:46:02 +0900 Subject: [PATCH] =?UTF-8?q?=EC=88=98=EB=82=A9=EA=B4=80=EB=A6=AC=20-=20?= =?UTF-8?q?=EC=97=91=EC=85=80=EC=A0=80=EC=9E=A5=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cokr/xit/fims/epst/EpostQuery.java | 10 - .../fims/epst/service/bean/EpostGdccBean.java | 4 +- .../epst/service/bean/EpostRcptRegBean.java | 4 +- .../java/cokr/xit/fims/rcvm/RcvmtQuery.java | 414 +++++++++++++++--- .../xit/fims/rcvm/service/bean/RcvmtBean.java | 10 +- .../rcvm/service/bean/RcvmtServiceBean.java | 4 +- .../xit/fims/rcvm/web/Rcvm01Controller.java | 101 ++++- .../xit/fims/sprt/web/Sprt02Controller.java | 2 +- .../mapper/fims/epst/epostRcptDtl-mapper.xml | 10 +- .../mapper/fims/epst/epostRcptReg-mapper.xml | 84 ++-- .../sql/mapper/fims/rcvm/rcvmt-mapper.xml | 119 ++--- .../WEB-INF/jsp/fims/epst/epst02030-main.jsp | 2 +- .../WEB-INF/jsp/fims/epst/epst02040-info.jsp | 2 + .../WEB-INF/jsp/fims/rcvm/rcvm01010-main.jsp | 119 +++-- 14 files changed, 690 insertions(+), 195 deletions(-) diff --git a/src/main/java/cokr/xit/fims/epst/EpostQuery.java b/src/main/java/cokr/xit/fims/epst/EpostQuery.java index 74c080f8..b9f950c1 100644 --- a/src/main/java/cokr/xit/fims/epst/EpostQuery.java +++ b/src/main/java/cokr/xit/fims/epst/EpostQuery.java @@ -62,7 +62,6 @@ public class EpostQuery extends CmmnQuery { private String reletcdata; // 전자우편 접수 결과(TB_EPOST_RCPT_RSLT)_발송인별추가데이터 // ETC private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회). - private String delYn; // 삭제 여부 private String delRsn; // 삭제 사유 private String crdnDelYn; // 단속 삭제 여부 @@ -436,15 +435,6 @@ public class EpostQuery 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); } diff --git a/src/main/java/cokr/xit/fims/epst/service/bean/EpostGdccBean.java b/src/main/java/cokr/xit/fims/epst/service/bean/EpostGdccBean.java index 2ffa453f..1302fa81 100644 --- a/src/main/java/cokr/xit/fims/epst/service/bean/EpostGdccBean.java +++ b/src/main/java/cokr/xit/fims/epst/service/bean/EpostGdccBean.java @@ -61,8 +61,8 @@ public class EpostGdccBean extends AbstractComponent { */ public List getEpostGdccs(EpostQuery req) { // 삭제 여부 확인 - if (req.getDelYn() == null) { - req.setDelYn("N"); + if (req.getDelYN() == null) { + req.setDelYN("N"); } if (req.getOrderBy() == null) { req.setOrderBy("EG.GDCC_ID DESC"); diff --git a/src/main/java/cokr/xit/fims/epst/service/bean/EpostRcptRegBean.java b/src/main/java/cokr/xit/fims/epst/service/bean/EpostRcptRegBean.java index c8fc6055..06753eac 100644 --- a/src/main/java/cokr/xit/fims/epst/service/bean/EpostRcptRegBean.java +++ b/src/main/java/cokr/xit/fims/epst/service/bean/EpostRcptRegBean.java @@ -67,8 +67,8 @@ public class EpostRcptRegBean extends AbstractComponent { */ public List getEpostRcptRegs(EpostQuery req) { // 삭제 여부 확인 - if (req.getDelYn() == null) { - req.setDelYn("N"); + if (req.getDelYN() == null) { + req.setDelYN("N"); } if (req.getOrderBy() == null) { req.setOrderBy("ERR.CON_KEY DESC"); diff --git a/src/main/java/cokr/xit/fims/rcvm/RcvmtQuery.java b/src/main/java/cokr/xit/fims/rcvm/RcvmtQuery.java index a03df4ae..2a4b7526 100644 --- a/src/main/java/cokr/xit/fims/rcvm/RcvmtQuery.java +++ b/src/main/java/cokr/xit/fims/rcvm/RcvmtQuery.java @@ -1,6 +1,7 @@ package cokr.xit.fims.rcvm; import cokr.xit.fims.cmmn.CmmnQuery; +import cokr.xit.fims.epst.EpostQuery; /**수납 대장 정보 조회 요청 * @@ -31,16 +32,50 @@ public class RcvmtQuery extends CmmnQuery { private String schVhrno; // 단속(TB_CRDN)_차량번호 private String schRtpyrNm; // 납부자(TB_PAYER)_납부자 명 // 상세 검색 조건 - private String schDetailRegDtOpt; // 상세 검색 등록 일자 구분 - private String schDetailRegDtFrom; // 상세 검색 등록 일자 시작 - private String schDetailRegDtTo; // 상세 검색 등록 일자 종료 - private String schDetailRgtrOpt; // 상세 검색 등록 사용자 구분 - private String schDetailRgtrNm; // 상세 검색 등록 사용자 명 - private String schDetailRgtrCd; // 상세 검색 등록 사용자 코드 + + // 동적 검색 조건 + private String rcvmtInptSeCd; // 수납(TB_RCVMT)_수납 입력 구분 코드 + private String rcvmtRtrcnYn; // 수납(TB_RCVMT)_수납 취소 여부 + private String fyr; // 수납(TB_RCVMT)_회계연도 + private String acntgSeCd; // 수납(TB_RCVMT)_회계 구분 코드 + private String txitmCd; // 수납(TB_RCVMT)_세목 코드 + private String levyNo; // 수납(TB_RCVMT)_부과 번호 + private String rcvmtSn; // 수납(TB_RCVMT)_수납 일련번호 + private String pstmrkYmd; // 수납(TB_RCVMT)_소인 일자 + private String acntgYmd; // 수납(TB_RCVMT)_회계 일자 + private String rcvmtYmd; // 수납(TB_RCVMT)_수납 일자 + private String rcvmtAmt; // 수납(TB_RCVMT)_수납 금액 + private String rcvmtPcptax; // 수납(TB_RCVMT)_수납 본세 + private String rcvmtAdamt; // 수납(TB_RCVMT)_수납 가산금 + private String rcvmtInt; // 수납(TB_RCVMT)_수납 이자 + private String rcvmtBankNm; // 수납(TB_RCVMT)_수납 은행 명 + private String payMthdSeCd; // 수납(TB_RCVMT)_납부 방법 구분 코드 + private String rcvmtSeCd; // 수납(TB_RCVMT)_수납 구분 코드 + private String rcvmtSttsCd; // 수납(TB_RCVMT)_수납 상태 코드 + private String levyYmd; // 부과(TB_LEVY)_부과 일자 + private String frstDudtYmd; // 부과(TB_LEVY)_최초 납기 일자 + private String dudtYmd; // 부과(TB_LEVY)_납기 일자 + private String levyPcptax; // 부과(TB_LEVY)_부과 본세 + private String levyAdamt; // 부과(TB_LEVY)_부과 가산금 + private String inspyInt; // 부과(TB_LEVY)_분납 이자 + private String szrYmd; // 부과(TB_LEVY)_압류 일자 + private String szrThing; // 부과(TB_LEVY)_압류 물건 + private String rpmSzrVhrno; // 부과(TB_LEVY)_대체 압류 자동차등록번호 + private String szrRmvYmd; // 부과(TB_LEVY)_압류 해제 일자 + private String crdnYmd; // 단속(TB_CRDN)_단속 일자 + private String vhrno; // 단속(TB_CRDN)_차량번호 + private String crdnStdgNm; // 단속(TB_CRDN)_단속 법정동 명 + private String crdnPlc; // 단속(TB_CRDN)_단속 장소 + private String crdnSttsCd; // 단속(TB_CRDN)_단속 상태 코드 + private String rtpyrSeCd; // 납부자(TB_PAYER)_납부자 구분 코드 + private String rtpyrNo; // 납부자(TB_PAYER)_납부자 번호 + private String rtpyrNm; // 납부자(TB_PAYER)_납부자 명 + private String rtpyrBrdt; // 납부자(TB_PAYER)_납부자 생년월일 + private String rtpyrSttsCd; // 납부자(TB_PAYER)_납부자 상태 코드 // ETC private String callPurpose; // infoDialog 호출 용도(view 조회, create 등록, update 수정, remove 삭제, refresh 재조회). - private String delYn; // 삭제 여부 private String delRsn; // 삭제 사유 + private String crdnDelYn; // 단속 삭제 여부 public String getCrdnId() { return ifEmpty(crdnId, () -> null); @@ -48,7 +83,6 @@ public class RcvmtQuery extends CmmnQuery { public T setCrdnId(String crdnId) { this.crdnId = crdnId; - return self(); } @@ -58,7 +92,6 @@ public class RcvmtQuery extends CmmnQuery { public T setLevyId(String levyId) { this.levyId = levyId; - return self(); } @@ -68,7 +101,6 @@ public class RcvmtQuery extends CmmnQuery { public T setRcvmtIDs(String... rcvmtIDs) { this.rcvmtIDs = rcvmtIDs; - return self(); } @@ -78,7 +110,6 @@ public class RcvmtQuery extends CmmnQuery { public T setRcvmtId(String rcvmtId) { this.rcvmtId = rcvmtId; - return self(); } @@ -89,7 +120,6 @@ public class RcvmtQuery extends CmmnQuery { public T setSchPstmrkYmdFrom(String schPstmrkYmdFrom) { this.schPstmrkYmdFrom = schPstmrkYmdFrom; - return self(); } @@ -99,7 +129,6 @@ public class RcvmtQuery extends CmmnQuery { public T setSchPstmrkYmdTo(String schPstmrkYmdTo) { this.schPstmrkYmdTo = schPstmrkYmdTo; - return self(); } @@ -109,7 +138,6 @@ public class RcvmtQuery extends CmmnQuery { public T setSchRcvmtYmdFrom(String schRcvmtYmdFrom) { this.schRcvmtYmdFrom = schRcvmtYmdFrom; - return self(); } @@ -119,7 +147,6 @@ public class RcvmtQuery extends CmmnQuery { public T setSchRcvmtYmdTo(String schRcvmtYmdTo) { this.schRcvmtYmdTo = schRcvmtYmdTo; - return self(); } @@ -160,79 +187,360 @@ public class RcvmtQuery extends CmmnQuery { } // 상세 검색 조건 /////////////////////////////////////////////////////////////// - public String getSchDetailRegDtOpt() { - return ifEmpty(schDetailRegDtOpt, () -> null); + + // 상세 검색 조건 /////////////////////////////////////////////////////////////// + + // 동적 검색 조건 /////////////////////////////////////////////////////////////// + public String getRcvmtInptSeCd() { + return ifEmpty(rcvmtInptSeCd, () -> null); } - public T setSchDetailRegDtOpt(String schDetailRegDtOpt) { - this.schDetailRegDtOpt = schDetailRegDtOpt; + public T setRcvmtInptSeCd(String rcvmtInptSeCd) { + this.rcvmtInptSeCd = rcvmtInptSeCd; return self(); } - public String getSchDetailRegDtFrom() { - return ifEmpty(schDetailRegDtFrom, () -> null); + public String getRcvmtRtrcnYn() { + return ifEmpty(rcvmtRtrcnYn, () -> null); } - public T setSchDetailRegDtFrom(String schDetailRegDtFrom) { - this.schDetailRegDtFrom = schDetailRegDtFrom; + public T setRcvmtRtrcnYn(String rcvmtRtrcnYn) { + this.rcvmtRtrcnYn = rcvmtRtrcnYn; return self(); } - public String getSchDetailRegDtTo() { - return ifEmpty(schDetailRegDtTo, () -> null); + public String getFyr() { + return ifEmpty(fyr, () -> null); } - public T setSchDetailRegDtTo(String schDetailRegDtTo) { - this.schDetailRegDtTo = schDetailRegDtTo; + public T setFyr(String fyr) { + this.fyr = fyr; return self(); } - public String getSchDetailRgtrOpt() { - return ifEmpty(schDetailRgtrOpt, () -> null); + public String getAcntgSeCd() { + return ifEmpty(acntgSeCd, () -> null); } - public T setSchDetailRgtrOpt(String schDetailRgtrOpt) { - this.schDetailRgtrOpt = schDetailRgtrOpt; + public T setAcntgSeCd(String acntgSeCd) { + this.acntgSeCd = acntgSeCd; return self(); } - public String getSchDetailRgtrNm() { - return ifEmpty(schDetailRgtrNm, () -> null); + public String getTxitmCd() { + return ifEmpty(txitmCd, () -> null); } - public T setSchDetailRgtrNm(String schDetailRgtrNm) { - this.schDetailRgtrNm = schDetailRgtrNm; + public T setTxitmCd(String txitmCd) { + this.txitmCd = txitmCd; return self(); } - public String getSchDetailRgtrCd() { - return ifEmpty(schDetailRgtrCd, () -> null); + public String getLevyNo() { + return ifEmpty(levyNo, () -> null); } - public T setSchDetailRgtr(String schDetailRgtrCd) { - this.schDetailRgtrCd = schDetailRgtrCd; + public T setLevyNo(String levyNo) { + this.levyNo = levyNo; return self(); } - // 상세 검색 조건 /////////////////////////////////////////////////////////////// - // ETC ///////////////////////////////////////////////////////////////////// - public String getCallPurpose() { - return ifEmpty(callPurpose, () -> null); + public String getRcvmtSn() { + return ifEmpty(rcvmtSn, () -> null); } - public T setCallPurpose(String callPurpose) { - this.callPurpose = callPurpose; + public T setRcvmtSn(String rcvmtSn) { + this.rcvmtSn = rcvmtSn; + return self(); + } + + public String getPstmrkYmd() { + return ifEmpty(pstmrkYmd, () -> null); + } + + public T setPstmrkYmd(String pstmrkYmd) { + this.pstmrkYmd = pstmrkYmd; + return self(); + } + + public String getAcntgYmd() { + return ifEmpty(acntgYmd, () -> null); + } + + public T setAcntgYmd(String acntgYmd) { + this.acntgYmd = acntgYmd; + return self(); + } + + public String getRcvmtYmd() { + return ifEmpty(rcvmtYmd, () -> null); + } + + public T setRcvmtYmd(String rcvmtYmd) { + this.rcvmtYmd = rcvmtYmd; + return self(); + } + + public String getRcvmtAmt() { + return ifEmpty(rcvmtAmt, () -> null); + } + + public T setRcvmtAmt(String rcvmtAmt) { + this.rcvmtAmt = rcvmtAmt; + return self(); + } + + public String getRcvmtPcptax() { + return ifEmpty(rcvmtPcptax, () -> null); + } + + public T setRcvmtPcptax(String rcvmtPcptax) { + this.rcvmtPcptax = rcvmtPcptax; + return self(); + } + public String getRcvmtAdamt() { + return ifEmpty(rcvmtAdamt, () -> null); + } + + public T setRcvmtAdamt(String rcvmtAdamt) { + this.rcvmtAdamt = rcvmtAdamt; + return self(); + } + + public String getRcvmtInt() { + return ifEmpty(rcvmtInt, () -> null); + } + + public T setRcvmtInt(String rcvmtInt) { + this.rcvmtInt = rcvmtInt; return self(); } - public String getDelYn() { - return ifEmpty(delYn, () -> null); + public String getRcvmtBankNm() { + return ifEmpty(rcvmtBankNm, () -> null); + } + + public T setRcvmtBankNm(String rcvmtBankNm) { + this.rcvmtBankNm = rcvmtBankNm; + return self(); } - public T setDelYn(String delYn) { - this.delYn = delYn; + public String getPayMthdSeCd() { + return ifEmpty(payMthdSeCd, () -> null); + } + public T setPayMthdSeCd(String payMthdSeCd) { + this.payMthdSeCd = payMthdSeCd; + return self(); + } + + public String getRcvmtSeCd() { + return ifEmpty(rcvmtSeCd, () -> null); + } + + public T setRcvmtSeCd(String rcvmtSeCd) { + this.rcvmtSeCd = rcvmtSeCd; + return self(); + } + + public String getRcvmtSttsCd() { + return ifEmpty(rcvmtSttsCd, () -> null); + } + + public T setRcvmtSttsCd(String rcvmtSttsCd) { + this.rcvmtSttsCd = rcvmtSttsCd; + return self(); + } + + public String getLevyYmd() { + return ifEmpty(levyYmd, () -> null); + } + + public T setLevyYmd(String levyYmd) { + this.levyYmd = levyYmd; + return self(); + } + + public String getFrstDudtYmd() { + return ifEmpty(frstDudtYmd, () -> null); + } + + public T setFrstDudtYmd(String frstDudtYmd) { + this.frstDudtYmd = frstDudtYmd; + return self(); + } + + public String getDudtYmd() { + return ifEmpty(dudtYmd, () -> null); + } + + public T setDudtYmd(String dudtYmd) { + this.dudtYmd = dudtYmd; + return self(); + } + + public String getLevyPcptax() { + return ifEmpty(levyPcptax, () -> null); + } + + public T setLevyPcptax(String levyPcptax) { + this.levyPcptax = levyPcptax; + return self(); + } + + public String getLevyAdamt() { + return ifEmpty(levyAdamt, () -> null); + } + + public T setLevyAdamt(String levyAdamt) { + this.levyAdamt = levyAdamt; + return self(); + } + + public String getInspyInt() { + return ifEmpty(inspyInt, () -> null); + } + + public T setInspyInt(String inspyInt) { + this.inspyInt = inspyInt; + return self(); + } + + public String getSzrYmd() { + return ifEmpty(szrYmd, () -> null); + } + + public T setSzrYmd(String szrYmd) { + this.szrYmd = szrYmd; + return self(); + } + + public String getSzrThing() { + return ifEmpty(szrThing, () -> null); + } + + public T setSzrThing(String szrThing) { + this.szrThing = szrThing; + return self(); + } + + public String getRpmSzrVhrno() { + return ifEmpty(rpmSzrVhrno, () -> null); + } + + public T setRpmSzrVhrno(String rpmSzrVhrno) { + this.rpmSzrVhrno = rpmSzrVhrno; + return self(); + } + + public String getSzrRmvYmd() { + return ifEmpty(szrRmvYmd, () -> null); + } + + public T setSzrRmvYmd(String szrRmvYmd) { + this.szrRmvYmd = szrRmvYmd; + return self(); + } + + public String getCrdnYmd() { + return ifEmpty(crdnYmd, () -> null); + } + + public T setCrdnYmd(String crdnYmd) { + this.crdnYmd = crdnYmd; + return self(); + } + + public String getVhrno() { + return ifEmpty(vhrno, () -> null); + } + + public T setVhrno(String vhrno) { + this.vhrno = vhrno; + return self(); + } + + public String getCrdnStdgNm() { + return ifEmpty(crdnStdgNm, () -> null); + } + + public T setCrdnStdgNm(String crdnStdgNm) { + this.crdnStdgNm = crdnStdgNm; + return self(); + } + + public String getCrdnPlc() { + return ifEmpty(crdnPlc, () -> null); + } + + public T setCrdnPlc(String crdnPlc) { + this.szrRmvYmd = crdnPlc; + return self(); + } + + public String getCrdnSttsCd() { + return ifEmpty(crdnSttsCd, () -> null); + } + + public T setCrdnSttsCd(String crdnSttsCd) { + this.crdnSttsCd = crdnSttsCd; + return self(); + } + + public String getRtpyrSeCd() { + return ifEmpty(rtpyrSeCd, () -> null); + } + + public T setRtpyrSeCd(String rtpyrSeCd) { + this.rtpyrSeCd = rtpyrSeCd; + return self(); + } + + public String getRtpyrNo() { + return ifEmpty(rtpyrNo, () -> null); + } + + public T setRtpyrNo(String rtpyrNo) { + this.rtpyrNo = rtpyrNo; + return self(); + } + + public String getRtpyrNm() { + return ifEmpty(rtpyrNm, () -> null); + } + + public T setRtpyrNm(String rtpyrNm) { + this.rtpyrNm = rtpyrNm; + return self(); + } + + public String getRtpyrBrdt() { + return ifEmpty(rtpyrBrdt, () -> null); + } + + public T setRtpyrBrdt(String rtpyrBrdt) { + this.rtpyrBrdt = rtpyrBrdt; + return self(); + } + + public String getRtpyrSttsCd() { + return ifEmpty(rtpyrSttsCd, () -> null); + } + + public T setRtpyrSttsCd(String rtpyrSttsCd) { + this.rtpyrSttsCd = rtpyrSttsCd; + return self(); + } + // 동적 검색 조건 /////////////////////////////////////////////////////////////// + + // ETC //////////////////////////////////////////////////////////////////// + public String getCallPurpose() { + return ifEmpty(callPurpose, () -> null); + } + + public T setCallPurpose(String callPurpose) { + this.callPurpose = callPurpose; return self(); } @@ -242,7 +550,15 @@ public class RcvmtQuery extends CmmnQuery { public T setDelRsn(String delRsn) { this.delRsn = delRsn; + return self(); + } + + public String getCrdnDelYn() { + return ifEmpty(crdnDelYn, () -> null); + } + public T setCrdnDelYn(String crdnDelYn) { + this.crdnDelYn = crdnDelYn; return self(); } // ETC ///////////////////////////////////////////////////////////////////// diff --git a/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtBean.java b/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtBean.java index c8a182a5..0d40640d 100644 --- a/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtBean.java +++ b/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtBean.java @@ -46,8 +46,8 @@ public class RcvmtBean extends AbstractComponent { * @return 수납 대장 목록 */ public List getRcvmtList(RcvmtQuery req) { - if (req.getDelYn() == null) { - req.setDelYn("N"); + if (req.getDelYN() == null) { + req.setDelYN("N"); } if (req.getOrderBy() == null) { req.setOrderBy("REG_DT"); @@ -97,7 +97,7 @@ public class RcvmtBean extends AbstractComponent { String rtnMsg = "[F] "; // 처리 결과 메시지 // 부과 ID로 단속, 부과 정보 조회 - DataObject levyInfo = rcvmtMapper.selectLevyInfo(new RcvmtQuery().setLevyId(rcvmt.getLevyId()).setDelYn("N")); + DataObject levyInfo = rcvmtMapper.selectLevyInfo(new RcvmtQuery().setLevyId(rcvmt.getLevyId()).setDelYN("N")); String rcvmtSeCd = ""; // 수납 구분 코드(FIM041) rcvmt.setLastPcptax(levyInfo.number("LAST_PCPTAX").intValue()); // 최종 본세 @@ -207,7 +207,7 @@ public class RcvmtBean extends AbstractComponent { String rtnMsg = "[F] "; // 처리 결과 메시지 // 수납 ID로 수납 정보 조회 - DataObject rcvmtInfo = rcvmtMapper.selectRcvmtInfo(new RcvmtQuery().setRcvmtId(rcvmt.getRcvmtId()).setDelYn("N")); + DataObject rcvmtInfo = rcvmtMapper.selectRcvmtInfo(new RcvmtQuery().setRcvmtId(rcvmt.getRcvmtId()).setDelYN("N")); rtnScs = rcvmtMapper.updateRcvmtRtrcn(rcvmt); if (!rtnScs) { @@ -217,7 +217,7 @@ public class RcvmtBean extends AbstractComponent { // 수납구분코드(RCVMT_SE_CD)가 이중 수납이 아니라면.. if (!rcvmtInfo.string("RCVMT_SE_CD").equals("02")) { // 부과 ID로 단속, 부과 정보 조회 - DataObject levyInfo = rcvmtMapper.selectLevyInfo(new RcvmtQuery().setLevyId(rcvmtInfo.string("LEVY_ID")).setDelYn("N")); + DataObject levyInfo = rcvmtMapper.selectLevyInfo(new RcvmtQuery().setLevyId(rcvmtInfo.string("LEVY_ID")).setDelYN("N")); int rcvmtPcptax = levyInfo.number("RCVMT_PCPTAX").intValue() - rcvmtInfo.number("RCVMT_PCPTAX").intValue(); // 부과 수납본세 - 수납 수납본세 int rcvmtAdamt = levyInfo.number("RCVMT_ADAMT").intValue() - rcvmtInfo.number("RCVMT_ADAMT").intValue(); // 부과 수납가산금 - 수납 수납가산금 diff --git a/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtServiceBean.java b/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtServiceBean.java index 8391c257..091474c7 100644 --- a/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtServiceBean.java +++ b/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtServiceBean.java @@ -44,8 +44,8 @@ public class RcvmtServiceBean extends AbstractServiceBean implements RcvmtServic if (req.getCallPurpose() == null) { req.setCallPurpose("view"); } - if (req.getDelYn() == null) { - req.setDelYn("N"); + if (req.getDelYN() == null) { + req.setDelYN("N"); } if (req.getCallPurpose().equals("create")) { diff --git a/src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java b/src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java index 6e3b7b8b..74130a2b 100644 --- a/src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java +++ b/src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java @@ -1,15 +1,21 @@ package cokr.xit.fims.rcvm.web; +import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.function.BiFunction; import javax.annotation.Resource; +import org.apache.poi.ss.usermodel.CellStyle; import org.springframework.web.servlet.ModelAndView; import cokr.xit.base.code.CommonCode; +import cokr.xit.base.file.xls.XLSWriter; +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.CmmnUtil; import cokr.xit.fims.rcvm.Rcvmt; import cokr.xit.fims.rcvm.RcvmtQuery; import cokr.xit.fims.rcvm.service.RcvmtService; @@ -79,9 +85,98 @@ public class Rcvm01Controller extends ApplicationController { * } */ public ModelAndView getReceivingMoneyList(RcvmtQuery req) { - List result = rcvmtService.getRcvmtList(setFetchSize(req)); - - return setCollectionInfo(new ModelAndView("jsonView"), result, "rcvmt"); + if (!"xls".equals(req.getDownload())) { + List result = rcvmtService.getRcvmtList(setFetchSize(req)); + return setCollectionInfo(new ModelAndView("jsonView"), result, "rcvmt"); + } else { + XLSWriter xlsx = new XLSWriter() + .setFilename("수납 목록.xlsx") + .worksheet(0); + + // CellStyle 지정은 여기에서.. + CellStyle center = xlsx.cellStyle(Styler.CENTER) // 가운데 정렬 + , numeric = xlsx.n_nn0() // 숫자 3자리 콤마(,) + , dateYMD = xlsx.yyyy_mm_dd() // 연월일 + , dateDT = xlsx.yyyy_mm_dd_hh_mm_ss(); // 연월일+시간 + + String[] excelTitle = req.getExcelTitle(); + List titles = new ArrayList(); + for (int iLoop = 0; iLoop < excelTitle.length; iLoop++) { + String item = excelTitle[iLoop]; + titles.add(item); + } + + int[] excelTitleWidth = req.getExcelTitleWidth(); + List widths = new ArrayList<>(); + for (int jLoop = 0; jLoop < excelTitleWidth.length; jLoop++) { + int item = excelTitleWidth[jLoop]; + widths.add(item); + } + + List headerStylers = CmmnUtil.makeHeadersByDiffrentWidths(widths, xlsx); + + xlsx.cell(0, 0) + .value("수납", center) + .merge(0, 10) + .cell(3, 0) + .rowValues(CmmnUtil.mergeListByIndex(titles, headerStylers)); + + List list = rcvmtService.getRcvmtList(req.setFetchSize(0)); + + BiFunction getValue = (titleNm, nothing) -> { + switch (titleNm) { + case "업무구분" : return xlsx.style("TASK_SE_NM", center); + case "수납입력구분" : return xlsx.style("RCVMT_INPT_SE_NM", center); + case "수납취소" : return xlsx.style("RCVMT_RTRCN_NM", center); + case "회계연도" : return xlsx.style("FYR", center); + case "회계구분" : return xlsx.style("ACNTG_SE_CD", center); + case "세목코드" : return xlsx.style("TXITM_CD", center); + case "세목명" : return "TXITM_NM"; + case "부과번호" : return xlsx.style("LEVY_NO", center); + case "수납일련번호" : return xlsx.style("RCVMT_SN", center); + case "소인일자" : return xlsx.format(o -> xlsx.str2date(o.get("PSTMRK_YMD"))).style(dateYMD); + case "회계일자" : return xlsx.format(o -> xlsx.str2date(o.get("ACNTG_YMD"))).style(dateYMD); + case "수납일자" : return xlsx.format(o -> xlsx.str2date(o.get("RCVMT_YMD"))).style(dateYMD); + case "수납금액" : return xlsx.style("RCVMT_AMT", numeric); + case "수납본세" : return xlsx.style("RCVMT_PCPTAX", numeric); + case "수납가산금" : return xlsx.style("RCVMT_ADAMT", numeric); + case "수납이자" : return xlsx.style("RCVMT_INT", numeric); + case "수납은행" : return "RCVMT_BANK_NM"; + case "납부방법" : return "PAY_MTHD_SE_NM"; + case "수납구분" : return xlsx.style("RCVMT_SE_NM", center); + case "수납상태" : return xlsx.style("RCVMT_STTS_NM", center); + case "부과일자" : return xlsx.format(o -> xlsx.str2date(o.get("LEVY_YMD"))).style(dateYMD); + case "최초납기일자" : return xlsx.format(o -> xlsx.str2date(o.get("FRST_DUDT_YMD"))).style(dateYMD); + case "납기일자" : return xlsx.format(o -> xlsx.str2date(o.get("DUDT_YMD"))).style(dateYMD); + case "부과본세" : return xlsx.style("LEVY_PCPTAX", numeric); + case "부과가산금" : return xlsx.style("LEVY_ADAMT", numeric); + case "분납이자" : return xlsx.style("INSPY_INT", numeric); + case "압류일자" : return xlsx.format(o -> xlsx.str2date(o.get("SZR_YMD"))).style(dateYMD); + case "압류물건" : return "SZR_THING"; + case "대체압류차량" : return "RPM_SZR_VHRNO"; + case "압류해제일자" : return xlsx.format(o -> xlsx.str2date(o.get("SZR_RMV_YMD"))).style(dateYMD); + case "단속일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("CRDN_YMD_TM"))).style(dateDT); + case "차량번호" : return "VHRNO"; + case "법정동" : return "CRDN_STDG_NM"; + case "단속장소" : return "CRDN_PLC"; + case "처리상태" : return "CRDN_STTS_NM"; + case "납부자명" : return "RTPYR_NM"; + case "납부자생일" : return xlsx.style("RTPYR_BRDT_MASK", center); + case "등록일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT); + case "등록사용자" : return xlsx.style("RGTR_NM", center); + case "수정일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("MDFCN_DT"))).style(dateDT); + case "수정사용자" : return xlsx.style("MDFR_NM", center); + } + + return ""; + }; + + xlsx.cell(4, 0) + .values(list, titles.stream().map((item) -> { return getValue.apply(item, null); }).toArray()); + + return new ModelAndView("xlsView") + .addObject("xls", xlsx); + } } /**지정한 부과 ID의 수납 정보를 반환한다. 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 019edf81..adf49e20 100644 --- a/src/main/java/cokr/xit/fims/sprt/web/Sprt02Controller.java +++ b/src/main/java/cokr/xit/fims/sprt/web/Sprt02Controller.java @@ -448,7 +448,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/resources/sql/mapper/fims/epst/epostRcptDtl-mapper.xml b/src/main/resources/sql/mapper/fims/epst/epostRcptDtl-mapper.xml index 17b6fdb2..a48163cf 100644 --- a/src/main/resources/sql/mapper/fims/epst/epostRcptDtl-mapper.xml +++ b/src/main/resources/sql/mapper/fims/epst/epostRcptDtl-mapper.xml @@ -164,7 +164,9 @@ - + + AND ERD.DEL_YN = #{delYN} /* 삭제 여부 */ + @@ -206,7 +208,11 @@ diff --git a/src/main/resources/sql/mapper/fims/epst/epostRcptReg-mapper.xml b/src/main/resources/sql/mapper/fims/epst/epostRcptReg-mapper.xml index 33b30bd0..cfc36f7f 100644 --- a/src/main/resources/sql/mapper/fims/epst/epostRcptReg-mapper.xml +++ b/src/main/resources/sql/mapper/fims/epst/epostRcptReg-mapper.xml @@ -126,30 +126,31 @@ /* 전자우편 접수 등록 객체 가져오기(epostRcptRegMapper.selectEpostRcptRegs) */ - + + AND ERR.CON_KEY = #{conKey} /* 외부연계식별키 */ + + + AND ERR.CON_ORG = #{conOrg} /* 외부기관구분코드 */ + + + AND ERR.SNDNG_ID = #{sndngId} /* 발송 ID */ + + + AND ERR.DEL_YN = #{delYN} /* 삭제 여부 */ + /* 수납 대장 목록 조회(rcvmtMapper.selectRcvmtList) */ @@ -153,9 +154,6 @@ AND R.RCVMT_YMD #{schRcvmtYmdTo} /* 소인 일자 종료 */ - - AND R.DEL_YN = #{delYn} /* 삭제 여부 */ - AND C.CRDN_YMD = ]]> #{schCrdnYmdFrom} /* 단속 일자 시작 */ @@ -168,35 +166,38 @@ AND P.RTPYR_NM = #{schRtpyrNm} /* 납부자 명 */ + + AND R.DEL_YN = #{delYN} /* 삭제 여부 */ + - - - AND SUBSTR(C.REG_DT,1,8) = ]]> #{schDetailCrdnRegDtFrom} /* 등록 일자 시작 */ + + + AND SUBSTR(R.REG_DT,1,8) =]]> #{schRegDateFrom} /* 등록 일자 시작 */ - - AND SUBSTR(C.REG_DT,1,8) #{schDetailCrdnRegDtTo} /* 등록 일자 종료 */ + + AND SUBSTR(R.REG_DT,1,8) #{schRegDateTo} /* 등록 일자 종료 */ - - - AND SUBSTR(C.MDFCN_DT,1,8) = ]]> #{schDetailCrdnRegDtFrom} /* 수정 일자 시작 */ + + + AND SUBSTR(R.MDFCN_DT,1,8) =]]> #{schRegDateFrom} /* 수정 일자 시작 */ - - AND SUBSTR(C.MDFCN_DT,1,8) #{schDetailCrdnRegDtTo} /* 수정 일자 종료 */ + + AND SUBSTR(R.MDFCN_DT,1,8) #{schRegDateTo} /* 수정 일자 종료 */ - - - AND C.RGTR = #{schDetailCrdnRgtrCd} /* 등록자 코드 */ + + + AND R.RGTR = #{schRgtrCd} /* 등록자 코드 */ - - - AND C.MDFR = #{schDetailCrdnRgtrCd} /* 수정자 코드 */ + + + AND R.MDFR = #{schRgtrCd} /* 수정자 코드 */ @@ -207,25 +208,41 @@ + R.RCVMT_INPT_SE_CD + R.RCVMT_RTRCN_YN + R.FYR + R.ACNTG_SE_CD + R.TXITM_CD + R.LEVY_NO + R.RCVMT_SN + R.PSTMRK_YMD + R.ACNTG_YMD + R.RCVMT_YMD + R.RCVMT_PCPTAX + R.RCVMT_ADAMT + R.RCVMT_INT + R.RCVMT_BANK_NM + R.PAY_MTHD_SE_CD + R.RCVMT_SE_CD + R.RCVMT_STTS_CD + L.LEVY_YMD + L.FRST_DUDT_YMD + L.DUDT_YMD + L.LEVY_PCPTAX + L.LEVY_ADAMT + L.INSPY_INT + L.SZR_YMD + L.SZR_THING + L.RPM_SZR_VHRNO + L.SZR_RMV_YMD C.CRDN_YMD C.VHRNO C.CRDN_STDG_NM C.CRDN_PLC - V.VLTN_ARTCL - C.FFNLG_CRDN_AMT - C.FFNLG_AMT - C.ADVNTCE_AMT C.CRDN_STTS_CD - CC.CVLCPT_RCPT_YMD - CC.CVLCPT_APLY_NO - CC.CVLCPT_RCPT_NO - CC.CVLCPT_TRSM_CD P.RTPYR_NM P.RTPYR_NO P.RTPYR_BRDT - P.ZIP - P.ADDR - P.DTL_ADDR #{term} @@ -249,8 +266,8 @@ AND C.CRDN_ID = #{crdnId} /* 단속 ID */ - - AND R.DEL_YN = #{delYn} /* 삭제 여부 */ + + AND R.DEL_YN = #{delYN} /* 삭제 여부 */ @@ -292,7 +309,7 @@ WHERE L.LEVY_ID = #{levyId} /* 부과 ID */ - AND L.DEL_YN = #{delYn} /* 삭제 여부 */ + AND L.DEL_YN = #{delYN} /* 삭제 여부 */ diff --git a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02030-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02030-main.jsp index a3351e96..0426e3e3 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02030-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02030-main.jsp @@ -822,7 +822,7 @@ $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 // ${pageName}Control 설정 - ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 + ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 // 첫번째 "전체" 탭에 datatable 설정 $("#tabEpostRcpt0").html($("#datatable--${pageName}")); diff --git a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02040-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02040-info.jsp index e16938ed..2490d64b 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02040-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02040-info.jsp @@ -48,6 +48,7 @@ 미배달사유 주소 상세주소 + 연계식별키 등록사용자 수정일시 수정사용자 @@ -69,6 +70,7 @@ {NONDELIVREASNCDNM} {RECEV_CAR_OWNER_ADDR} {RECEV_CAR_OWNER_DETAILADDR} + {CON_KEY} {RGTR_NM} {MDFCN_DT} {MDFR_NM} diff --git a/src/main/webapp/WEB-INF/jsp/fims/rcvm/rcvm01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/rcvm/rcvm01010-main.jsp index a446f147..f772619c 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/rcvm/rcvm01010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/rcvm/rcvm01010-main.jsp @@ -119,28 +119,29 @@
- - + ~ - +
- - -
@@ -175,9 +176,7 @@ NO. - - - + 업무구분 수납입력구분 수납취소 @@ -190,11 +189,12 @@ 소인일자 회계일자 수납일자 + 수납금액 수납본세 수납가산금 수납이자 수납은행 - 납부방법 + 납부방법 수납구분 수납상태 부과일자 @@ -213,6 +213,7 @@ 단속장소 처리상태 납부자명 + 납부자생일 등록일시 등록사용자 수정일시 @@ -225,9 +226,7 @@ @@ -316,6 +317,7 @@ RCVMT_YMD : dateFormat , ACNTG_YMD : dateFormat , PSTMRK_YMD : dateFormat + , RCVMT_AMT : numberFormat , RCVMT_PCPTAX : numberFormat , RCVMT_ADAMT : numberFormat , RCVMT_INT : numberFormat @@ -370,6 +372,8 @@ checkbox.prop("checked", keys.includes(checkbox.val())); }); + +// $("#btnRemove--${pageName}").prop("disabled", keys.length < 1); }; /************************************************************************** @@ -403,7 +407,7 @@ // checkbox 체크 해제 $("th input[type='checkbox']").prop("checked", false); - //보안모드 + // 보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); } @@ -442,6 +446,32 @@ }); } + // 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("/user/user02/010/main.do") + , data : params || {} + , success : resp => { + dialog.open({ + id : "userDialog" + , title : "사용자 검색" + , content : resp + , size : "lg" + }); + } + }); + } + // 검색 자료 재조회 refreshList${pageName} = () => { ${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum; @@ -467,7 +497,7 @@ setURL${pageName}(taskSeCd); // 기본 데이터 설정 - setFormData${pageName}(); + setFormData${pageName}(taskSeCd); } // 검색 버튼 이벤트 @@ -475,20 +505,47 @@ // 검색조건 ${pageName}Control.query = ${pageName}Fields.get(); - ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 한번에 조회되는 자료 건수 FETCH_XS = 30 + ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 1 페이지당 조회되는 자료 건수 ${pageName}Control.query.delYn = "N"; // 삭제 여부 + // 검색 ${pageName}Control.load(1); } // 엑셀 버튼 이벤트 fnExcel${pageName} = () => { + if (${pageName}Control.dataset.empty) { + dialog.alert({ + content : "검색된 자료가 없습니다." + , onOK : () => { } + }); + return; + } + + let excelTitle = []; + let excelTitleWidth = []; + + $("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)").each(function() { + let title = $(this).text(); + + if (title != "" ) { + excelTitle.push(title); + + let titleWidth = Math.ceil($(this).outerWidth() / 10) + 2; + + excelTitleWidth.push(titleWidth); + } + }); + + ${pageName}Control.query.excelTitle = excelTitle.join(","); + ${pageName}Control.query.excelTitleWidth = excelTitleWidth.join(","); + ${pageName}Control.download(); } - // 사용자 조회 버튼 이벤트 + // 사용자 검색 버튼 이벤트 fnFindUser${pageName} = () => { - + getFindUser${pageName}(); } /************************************************************************** @@ -540,6 +597,9 @@ $("#schPstmrkYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date); $("#schPstmrkYmdTo--${pageName}").datepicker("setDate", new Date()); + // 사용자 이름 + $("#schRgtrNm--${pageName}").prop("readonly", true); + // dataset 초기화 ${pageName}Control.dataset.clear(); } @@ -551,9 +611,13 @@ } // 기본 데이터 설정 - setFormData${pageName} = () => { + setFormData${pageName} = (taskSeCd) => { + // 화면 데이터 설정 + $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 + $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 + // ${pageName}Control 설정 - ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 + ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 } /************************************************************************** @@ -563,18 +627,11 @@ // 이벤트 설정 setEvent${pageName}(); - // 시군구 코드 설정 - $("#sggCd--${pageName}").val("${sggCd}"); - - // 업무 구분 설정 - let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val(); - $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true); - // 보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); // 화면 초기 설정 및 업무 구분 변경 - fnResetAndChangeBiz${pageName}(defaultBizValue); + fnResetAndChangeBiz${pageName}($("#layout-navbar input[name='taskSeCd']:checked").val()); });