수납관리 - 엑셀저장 수정.

main
jjh 11 months ago
parent fb4b36ce7c
commit 78c260d975

@ -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 extends EpostQuery> T setDelYn(String delYn) {
this.delYn = delYn;
return self();
}
public String getDelRsn() {
return ifEmpty(delRsn, () -> null);
}

@ -61,8 +61,8 @@ public class EpostGdccBean extends AbstractComponent {
*/
public List<DataObject> 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");

@ -67,8 +67,8 @@ public class EpostRcptRegBean extends AbstractComponent {
*/
public List<DataObject> 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");

@ -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 extends RcvmtQuery> T setCrdnId(String crdnId) {
this.crdnId = crdnId;
return self();
}
@ -58,7 +92,6 @@ public class RcvmtQuery extends CmmnQuery {
public <T extends RcvmtQuery> T setLevyId(String levyId) {
this.levyId = levyId;
return self();
}
@ -68,7 +101,6 @@ public class RcvmtQuery extends CmmnQuery {
public <T extends RcvmtQuery> T setRcvmtIDs(String... rcvmtIDs) {
this.rcvmtIDs = rcvmtIDs;
return self();
}
@ -78,7 +110,6 @@ public class RcvmtQuery extends CmmnQuery {
public <T extends RcvmtQuery> T setRcvmtId(String rcvmtId) {
this.rcvmtId = rcvmtId;
return self();
}
@ -89,7 +120,6 @@ public class RcvmtQuery extends CmmnQuery {
public <T extends RcvmtQuery> T setSchPstmrkYmdFrom(String schPstmrkYmdFrom) {
this.schPstmrkYmdFrom = schPstmrkYmdFrom;
return self();
}
@ -99,7 +129,6 @@ public class RcvmtQuery extends CmmnQuery {
public <T extends RcvmtQuery> T setSchPstmrkYmdTo(String schPstmrkYmdTo) {
this.schPstmrkYmdTo = schPstmrkYmdTo;
return self();
}
@ -109,7 +138,6 @@ public class RcvmtQuery extends CmmnQuery {
public <T extends RcvmtQuery> T setSchRcvmtYmdFrom(String schRcvmtYmdFrom) {
this.schRcvmtYmdFrom = schRcvmtYmdFrom;
return self();
}
@ -119,7 +147,6 @@ public class RcvmtQuery extends CmmnQuery {
public <T extends RcvmtQuery> 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 extends RcvmtQuery> T setSchDetailRegDtOpt(String schDetailRegDtOpt) {
this.schDetailRegDtOpt = schDetailRegDtOpt;
public <T extends RcvmtQuery> 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 extends RcvmtQuery> T setSchDetailRegDtFrom(String schDetailRegDtFrom) {
this.schDetailRegDtFrom = schDetailRegDtFrom;
public <T extends RcvmtQuery> 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 extends RcvmtQuery> T setSchDetailRegDtTo(String schDetailRegDtTo) {
this.schDetailRegDtTo = schDetailRegDtTo;
public <T extends RcvmtQuery> 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 extends RcvmtQuery> T setSchDetailRgtrOpt(String schDetailRgtrOpt) {
this.schDetailRgtrOpt = schDetailRgtrOpt;
public <T extends RcvmtQuery> 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 extends RcvmtQuery> T setSchDetailRgtrNm(String schDetailRgtrNm) {
this.schDetailRgtrNm = schDetailRgtrNm;
public <T extends RcvmtQuery> 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 extends RcvmtQuery> T setSchDetailRgtr(String schDetailRgtrCd) {
this.schDetailRgtrCd = schDetailRgtrCd;
public <T extends RcvmtQuery> 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 extends RcvmtQuery> T setCallPurpose(String callPurpose) {
this.callPurpose = callPurpose;
public <T extends RcvmtQuery> T setRcvmtSn(String rcvmtSn) {
this.rcvmtSn = rcvmtSn;
return self();
}
public String getPstmrkYmd() {
return ifEmpty(pstmrkYmd, () -> null);
}
public <T extends RcvmtQuery> T setPstmrkYmd(String pstmrkYmd) {
this.pstmrkYmd = pstmrkYmd;
return self();
}
public String getAcntgYmd() {
return ifEmpty(acntgYmd, () -> null);
}
public <T extends RcvmtQuery> T setAcntgYmd(String acntgYmd) {
this.acntgYmd = acntgYmd;
return self();
}
public String getRcvmtYmd() {
return ifEmpty(rcvmtYmd, () -> null);
}
public <T extends RcvmtQuery> T setRcvmtYmd(String rcvmtYmd) {
this.rcvmtYmd = rcvmtYmd;
return self();
}
public String getRcvmtAmt() {
return ifEmpty(rcvmtAmt, () -> null);
}
public <T extends RcvmtQuery> T setRcvmtAmt(String rcvmtAmt) {
this.rcvmtAmt = rcvmtAmt;
return self();
}
public String getRcvmtPcptax() {
return ifEmpty(rcvmtPcptax, () -> null);
}
public <T extends RcvmtQuery> T setRcvmtPcptax(String rcvmtPcptax) {
this.rcvmtPcptax = rcvmtPcptax;
return self();
}
public String getRcvmtAdamt() {
return ifEmpty(rcvmtAdamt, () -> null);
}
public <T extends RcvmtQuery> T setRcvmtAdamt(String rcvmtAdamt) {
this.rcvmtAdamt = rcvmtAdamt;
return self();
}
public String getRcvmtInt() {
return ifEmpty(rcvmtInt, () -> null);
}
public <T extends RcvmtQuery> 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 extends RcvmtQuery> T setRcvmtBankNm(String rcvmtBankNm) {
this.rcvmtBankNm = rcvmtBankNm;
return self();
}
public <T extends RcvmtQuery> T setDelYn(String delYn) {
this.delYn = delYn;
public String getPayMthdSeCd() {
return ifEmpty(payMthdSeCd, () -> null);
}
public <T extends RcvmtQuery> T setPayMthdSeCd(String payMthdSeCd) {
this.payMthdSeCd = payMthdSeCd;
return self();
}
public String getRcvmtSeCd() {
return ifEmpty(rcvmtSeCd, () -> null);
}
public <T extends RcvmtQuery> T setRcvmtSeCd(String rcvmtSeCd) {
this.rcvmtSeCd = rcvmtSeCd;
return self();
}
public String getRcvmtSttsCd() {
return ifEmpty(rcvmtSttsCd, () -> null);
}
public <T extends RcvmtQuery> T setRcvmtSttsCd(String rcvmtSttsCd) {
this.rcvmtSttsCd = rcvmtSttsCd;
return self();
}
public String getLevyYmd() {
return ifEmpty(levyYmd, () -> null);
}
public <T extends RcvmtQuery> T setLevyYmd(String levyYmd) {
this.levyYmd = levyYmd;
return self();
}
public String getFrstDudtYmd() {
return ifEmpty(frstDudtYmd, () -> null);
}
public <T extends RcvmtQuery> T setFrstDudtYmd(String frstDudtYmd) {
this.frstDudtYmd = frstDudtYmd;
return self();
}
public String getDudtYmd() {
return ifEmpty(dudtYmd, () -> null);
}
public <T extends RcvmtQuery> T setDudtYmd(String dudtYmd) {
this.dudtYmd = dudtYmd;
return self();
}
public String getLevyPcptax() {
return ifEmpty(levyPcptax, () -> null);
}
public <T extends RcvmtQuery> T setLevyPcptax(String levyPcptax) {
this.levyPcptax = levyPcptax;
return self();
}
public String getLevyAdamt() {
return ifEmpty(levyAdamt, () -> null);
}
public <T extends RcvmtQuery> T setLevyAdamt(String levyAdamt) {
this.levyAdamt = levyAdamt;
return self();
}
public String getInspyInt() {
return ifEmpty(inspyInt, () -> null);
}
public <T extends RcvmtQuery> T setInspyInt(String inspyInt) {
this.inspyInt = inspyInt;
return self();
}
public String getSzrYmd() {
return ifEmpty(szrYmd, () -> null);
}
public <T extends RcvmtQuery> T setSzrYmd(String szrYmd) {
this.szrYmd = szrYmd;
return self();
}
public String getSzrThing() {
return ifEmpty(szrThing, () -> null);
}
public <T extends RcvmtQuery> T setSzrThing(String szrThing) {
this.szrThing = szrThing;
return self();
}
public String getRpmSzrVhrno() {
return ifEmpty(rpmSzrVhrno, () -> null);
}
public <T extends RcvmtQuery> T setRpmSzrVhrno(String rpmSzrVhrno) {
this.rpmSzrVhrno = rpmSzrVhrno;
return self();
}
public String getSzrRmvYmd() {
return ifEmpty(szrRmvYmd, () -> null);
}
public <T extends RcvmtQuery> T setSzrRmvYmd(String szrRmvYmd) {
this.szrRmvYmd = szrRmvYmd;
return self();
}
public String getCrdnYmd() {
return ifEmpty(crdnYmd, () -> null);
}
public <T extends RcvmtQuery> T setCrdnYmd(String crdnYmd) {
this.crdnYmd = crdnYmd;
return self();
}
public String getVhrno() {
return ifEmpty(vhrno, () -> null);
}
public <T extends RcvmtQuery> T setVhrno(String vhrno) {
this.vhrno = vhrno;
return self();
}
public String getCrdnStdgNm() {
return ifEmpty(crdnStdgNm, () -> null);
}
public <T extends RcvmtQuery> T setCrdnStdgNm(String crdnStdgNm) {
this.crdnStdgNm = crdnStdgNm;
return self();
}
public String getCrdnPlc() {
return ifEmpty(crdnPlc, () -> null);
}
public <T extends RcvmtQuery> T setCrdnPlc(String crdnPlc) {
this.szrRmvYmd = crdnPlc;
return self();
}
public String getCrdnSttsCd() {
return ifEmpty(crdnSttsCd, () -> null);
}
public <T extends RcvmtQuery> T setCrdnSttsCd(String crdnSttsCd) {
this.crdnSttsCd = crdnSttsCd;
return self();
}
public String getRtpyrSeCd() {
return ifEmpty(rtpyrSeCd, () -> null);
}
public <T extends RcvmtQuery> T setRtpyrSeCd(String rtpyrSeCd) {
this.rtpyrSeCd = rtpyrSeCd;
return self();
}
public String getRtpyrNo() {
return ifEmpty(rtpyrNo, () -> null);
}
public <T extends RcvmtQuery> T setRtpyrNo(String rtpyrNo) {
this.rtpyrNo = rtpyrNo;
return self();
}
public String getRtpyrNm() {
return ifEmpty(rtpyrNm, () -> null);
}
public <T extends RcvmtQuery> T setRtpyrNm(String rtpyrNm) {
this.rtpyrNm = rtpyrNm;
return self();
}
public String getRtpyrBrdt() {
return ifEmpty(rtpyrBrdt, () -> null);
}
public <T extends RcvmtQuery> T setRtpyrBrdt(String rtpyrBrdt) {
this.rtpyrBrdt = rtpyrBrdt;
return self();
}
public String getRtpyrSttsCd() {
return ifEmpty(rtpyrSttsCd, () -> null);
}
public <T extends RcvmtQuery> T setRtpyrSttsCd(String rtpyrSttsCd) {
this.rtpyrSttsCd = rtpyrSttsCd;
return self();
}
// 동적 검색 조건 ///////////////////////////////////////////////////////////////
// ETC ////////////////////////////////////////////////////////////////////
public String getCallPurpose() {
return ifEmpty(callPurpose, () -> null);
}
public <T extends RcvmtQuery> T setCallPurpose(String callPurpose) {
this.callPurpose = callPurpose;
return self();
}
@ -242,7 +550,15 @@ public class RcvmtQuery extends CmmnQuery {
public <T extends RcvmtQuery> T setDelRsn(String delRsn) {
this.delRsn = delRsn;
return self();
}
public String getCrdnDelYn() {
return ifEmpty(crdnDelYn, () -> null);
}
public <T extends EpostQuery> T setCrdnDelYn(String crdnDelYn) {
this.crdnDelYn = crdnDelYn;
return self();
}
// ETC /////////////////////////////////////////////////////////////////////

@ -46,8 +46,8 @@ public class RcvmtBean extends AbstractComponent {
* @return
*/
public List<DataObject> 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(); // 부과 수납가산금 - 수납 수납가산금

@ -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")) {

@ -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 {
* }</code></pre>
*/
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<String> titles = new ArrayList<String>();
for (int iLoop = 0; iLoop < excelTitle.length; iLoop++) {
String item = excelTitle[iLoop];
titles.add(item);
}
int[] excelTitleWidth = req.getExcelTitleWidth();
List<Integer> widths = new ArrayList<>();
for (int jLoop = 0; jLoop < excelTitleWidth.length; jLoop++) {
int item = excelTitleWidth[jLoop];
widths.add(item);
}
List<Styler> headerStylers = CmmnUtil.makeHeadersByDiffrentWidths(widths, xlsx);
xlsx.cell(0, 0)
.value("수납", center)
.merge(0, 10)
.cell(3, 0)
.rowValues(CmmnUtil.mergeListByIndex(titles, headerStylers));
List<DataObject> list = rcvmtService.getRcvmtList(req.setFetchSize(0));
BiFunction<String, String, ?> 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 .

@ -448,7 +448,7 @@ public class Sprt02Controller extends ApplicationController {
//
List<DataObject> 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();

@ -164,7 +164,9 @@
<include refid="utility.paging-prefix" />
<include refid="select" />
<where>
<if test="delYN != null">
AND ERD.DEL_YN = #{delYN} /* 삭제 여부 */
</if>
</where>
<choose>
<when test="schRegDateOpt == 'regDt'">
@ -206,7 +208,11 @@
<select id="selectEpostRcptDtls" parameterType="map" resultMap="epostRcptDtlRow">/* 전자우편 접수 상세 객체 가져오기(epostRcptDtlMapper.selectEpostRcptDtls) */
<include refid="select" />
<where></where>
<where>
<if test="delYN != null">
AND ERD.DEL_YN = #{delYN} /* 삭제 여부 */
</if>
</where>
<include refid="utility.orderBy" />
</select>

@ -126,30 +126,31 @@
<select id="selectEpostRcptRegList" parameterType="map" resultType="dataobject">/* 전자우편 접수 등록 목록 조회(epostRcptRegMapper.selectEpostRcptRegList) */
<include refid="utility.paging-prefix" />
<include refid="selectEpostRcptReg" />
<where>
<if test="relorsectCd != null">
WHERE ERR.CON_ORG = #{conOrg} /* 외부기관구분코드 */
<if test="relorsectCd != null">
AND ERR.RELORSECT_CD = #{relorsectCd} /* 연계기관결제부서코드 */
</if>
<if test="schSendDateFrom != null">
</if>
<if test="schSendDateFrom != null">
AND ERR.SEND_DATE <![CDATA[>=]]> #{schSendDateFrom} /* 전송 일자 시작 */
</if>
<if test="schSendDateTo != null">
</if>
<if test="schSendDateTo != null">
AND ERR.SEND_DATE <![CDATA[<=]]> #{schSendDateTo} /* 전송 일자 종료 */
</if>
<if test="schRceptYmdFrom != null">
</if>
<if test="schRceptYmdFrom != null">
AND ERR.RCEPT_YMD <![CDATA[>=]]> #{schRceptYmdFrom} /* 접수 일자 시작 */
</if>
<if test="schRceptYmdTo != null">
</if>
<if test="schRceptYmdTo != null">
AND ERR.RCEPT_YMD <![CDATA[<=]]> #{schRceptYmdTo} /* 접수 일자 종료 */
</if>
<if test="postPrcsSttsCdFrom != null">
</if>
<if test="postPrcsSttsCdFrom != null">
AND ERR.POST_PRCS_STTS_CD <![CDATA[>=]]> #{postPrcsSttsCdFrom} /* 우편 처리 상태 시작 */
</if>
<if test="postPrcsSttsCdTo != null">
</if>
<if test="postPrcsSttsCdTo != null">
AND ERR.POST_PRCS_STTS_CD <![CDATA[<=]]> #{postPrcsSttsCdTo} /* 우편 처리 상태 종료 */
</if>
</where>
AND ERR.DEL_YN = 'N'
</if>
<if test="delYN != null">
AND ERR.DEL_YN = #{delYN} /* 삭제 여부 */
</if>
<choose>
<when test="schRegDateOpt == 'regDt'">
<if test="schRegDateFrom != null">
@ -211,30 +212,41 @@
<select id="selectEpostRcptRegs" parameterType="map" resultType="dataobject">/* 전자우편 접수 등록 객체 가져오기(epostRcptRegMapper.selectEpostRcptRegs) */
<include refid="selectEpostRcptReg" />
<where>
<if test="postPrcsSttsCdFrom != null">
AND ERR.CON_KEY = #{conKey} /* 외부연계식별키 */
</if>
<if test="postPrcsSttsCdFrom != null">
AND ERR.CON_ORG = #{conOrg} /* 외부기관구분코드 */
</if>
<if test="postPrcsSttsCdFrom != null">
AND ERR.SNDNG_ID = #{sndngId} /* 발송 ID */
</if>
<if test="delYN != null">
AND ERR.DEL_YN = #{delYN} /* 삭제 여부 */
</if>
</where>
<include refid="utility.orderBy" />
</select>
<select id="selectEpostSndngSttses" parameterType="map" resultType="dataobject">/* 전자우편 발송 상태 정보들을 가져오기(epostRcptRegMapper.selectEpostSndngSttses) */
SELECT ERR.CON_KEY /* 외부연계식별키 */
, ERR.CON_ORG /* 외부기관구분코드 */
, ERR.REG_DT /* 등록 일시 */
, ERR.RGTR /* 등록자 */
, ERR.MDFCN_DT /* 수정 일시 */
, ERR.MDFR /* 수정자 */
, ERD.RGST_NMBR /* 등기 번호 */
, ERD.RECEV_CAR_OWNER_ZIPCODE /* 우편번호 */
, ERD.RECEV_CAR_OWNER_ADDR /* 주소 */
, ERD.RECEV_CAR_OWNER_DETAILADDR /* 상세주소 */
, ERD.RECEV_CAR_OWNER_NM /* 소유자명 */
, EDR.DELIVRSLTCD /* 배달결과코드 */
, EDR.NONDELIVREASNCD /* 미배달사유코드 */
, EDR.NONDELIVREASNCDNM /* 미배달사유명 */
, EDR.SUBRECPRSNNM /* 수령인명 */
, EDR.RELRECPRSNCD /* 수령인관계코드 */
, EDR.RELRECPRSNCDNM /* 수령인관계명 */
, EDR.MDFCN_DT /* 수정 일시 */
SELECT ERR.CON_KEY /* 외부연계식별키 */
, ERR.CON_ORG /* 외부기관구분코드 */
, ERR.REG_DT /* 등록 일시 */
, ERR.RGTR /* 등록자 */
, ERR.MDFCN_DT /* 수정 일시 */
, ERR.MDFR /* 수정자 */
, ERD.RGST_NMBR /* 등기 번호 */
, ERD.RECEV_CAR_OWNER_ZIPCODE /* 우편번호 */
, ERD.RECEV_CAR_OWNER_ADDR /* 주소 */
, ERD.RECEV_CAR_OWNER_DETAILADDR /* 상세주소 */
, ERD.RECEV_CAR_OWNER_NM /* 소유자명 */
, EDR.DELIVRSLTCD /* 배달결과코드 */
, EDR.NONDELIVREASNCD /* 미배달사유코드 */
, EDR.NONDELIVREASNCDNM /* 미배달사유명 */
, EDR.SUBRECPRSNNM /* 수령인명 */
, EDR.RELRECPRSNCD /* 수령인관계코드 */
, EDR.RELRECPRSNCDNM /* 수령인관계명 */
, EDR.MDFCN_DT /* 수정 일시 */
, (CASE WHEN LENGTH(EDR.DELIVHHMI) = 4 THEN CONCAT(EDR.DELIVYMD, EDR.DELIVHHMI, '00')
ELSE CONCAT(EDR.DELIVYMD, EDR.DELIVHHMI)
END) AS DELIV_YMD_TM /* 배달일시 */

@ -38,7 +38,7 @@
<result property="rcvmtRtrcnDt" column="RCVMT_RTRCN_DT" /> <!-- 수납 취소 일시 -->
<result property="rcvmtRtrcnRsn" column="RCVMT_RTRCN_RSN" /> <!-- 수납 취소 사유 -->
<result property="rcvmtSttsCd" column="RCVMT_STTS_CD" /> <!-- 수납 상태 코드 -->
<result property="delYn" column="DEL_YN" /> <!-- 삭제 여부 -->
<result property="delYN" column="DEL_YN" /> <!-- 삭제 여부 -->
<result property="createdAt" column="REG_DT" /> <!-- 등록 일시 -->
<result property="createdBy" column="RGTR" /> <!-- 등록자 -->
<result property="lastModified" column="MDFCN_DT" /> <!-- 수정 일시 -->
@ -86,17 +86,17 @@
, R.DEL_DT /* 삭제 일시 */
, R.DLTR /* 삭제자 */
, R.DEL_RSN /* 삭제 사유 */
, (SELECT GET_CODE_NM('FIM054', R.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */
, (SELECT GET_CODE_NM('FIM044', R.RCVMT_INPT_SE_CD) FROM DUAL) AS RCVMT_INPT_SE_NM /* 수납 입력 구분 명 */
, (SELECT GET_CODE_NM('FIM074', R.ACNTG_SE_CD) FROM DUAL) AS ACNTG_SE_NM /* 회계 구분 명 */
, (SELECT GET_CODE_NM('FIM075', R.TXITM_CD) FROM DUAL) AS TXITM_NM /* 세목 코드 명 */
, (SELECT GET_CODE_NM('FIM045', R.PAY_MTHD_SE_CD) FROM DUAL) AS PAY_MTHD_SE_NM /* 납부 방법 구분 명 */
, (SELECT GET_CODE_NM('FIM041', R.RCVMT_SE_CD) FROM DUAL) AS RCVMT_SE_NM /* 수납 구분 명 */
, (SELECT GET_CODE_NM('CMM005', R.RCVMT_RTRCN_YN) FROM DUAL) AS RCVMT_RTRCN_NM /* 수납 취소 여부 명 */
, (SELECT GET_CODE_NM('FIM020', R.RCVMT_STTS_CD) FROM DUAL) AS RCVMT_STTS_NM /* 수납 상태 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.RGTR) AS RGTR_NM /* 등록자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.MDFR) AS MDFR_NM /* 수정자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.DLTR) AS DLTR_NM /* 삭제자 명 */
, (SELECT GET_CODE_NM('FIM054', R.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */
, (SELECT GET_CODE_NM('FIM044', R.RCVMT_INPT_SE_CD) FROM DUAL) AS RCVMT_INPT_SE_NM /* 수납 입력 구분 명 */
, (SELECT GET_CODE_NM('FIM074', R.ACNTG_SE_CD) FROM DUAL) AS ACNTG_SE_NM /* 회계 구분 명 */
, (SELECT GET_CODE_NM('FIM075', R.TXITM_CD) FROM DUAL) AS TXITM_NM /* 세목 코드 명 */
, (SELECT GET_CODE_NM('FIM045', R.PAY_MTHD_SE_CD) FROM DUAL) AS PAY_MTHD_SE_NM /* 납부 방법 구분 명 */
, (SELECT GET_CODE_NM('FIM041', R.RCVMT_SE_CD) FROM DUAL) AS RCVMT_SE_NM /* 수납 구분 명 */
, (SELECT GET_CODE_NM('CMM005', R.RCVMT_RTRCN_YN) FROM DUAL) AS RCVMT_RTRCN_NM /* 수납 취소 여부 명 */
, (SELECT GET_CODE_NM('FIM020', R.RCVMT_STTS_CD) FROM DUAL) AS RCVMT_STTS_NM /* 수납 상태 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.RGTR) AS RGTR_NM /* 등록자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.MDFR) AS MDFR_NM /* 수정자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.DLTR) AS DLTR_NM /* 삭제자 명 */
, L.LEVY_ID /* 부과 ID */
, L.LEVY_YMD /* 부과 일자 */
, L.FRST_DUDT_YMD /* 최초 납기 일자 */
@ -119,8 +119,8 @@
, C.CRDN_PLC /* 단속 장소 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, C.CRDN_STTS_CHG_DT /* 단속 상태 변경 일시 */
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_SE_CD /* 납부자 구분 코드 */
, P.RTPYR_NO /* 납부자 번호 */
@ -129,11 +129,12 @@
, P.ZIP /* 우편번호 */
, P.ADDR /* 주소 */
, P.DTL_ADDR /* 상세 주소 */
, (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */
, (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 /* 납부자 생년월일 마스크 */
FROM TB_RCVMT R
INNER JOIN TB_LEVY L ON (R.LEVY_ID = L.LEVY_ID)
INNER JOIN TB_CRDN C ON (L.CRDN_ID = C.CRDN_ID)
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
INNER JOIN TB_LEVY L ON (R.LEVY_ID = L.LEVY_ID)
INNER JOIN TB_CRDN C ON (L.CRDN_ID = C.CRDN_ID)
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
</sql>
<select id="selectRcvmtList" parameterType="map" resultType="dataobject">/* 수납 대장 목록 조회(rcvmtMapper.selectRcvmtList) */
@ -153,9 +154,6 @@
<if test="schRcvmtYmdTo != null">
AND R.RCVMT_YMD <![CDATA[ <= ]]> #{schRcvmtYmdTo} /* 소인 일자 종료 */
</if>
<if test="delYn != null">
AND R.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
<if test="schCrdnYmdFrom != null">
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} /* 단속 일자 시작 */
</if>
@ -168,35 +166,38 @@
<if test="schRtpyrNm != null">
AND P.RTPYR_NM = #{schRtpyrNm} /* 납부자 명 */
</if>
<if test="delYN != null">
AND R.DEL_YN = #{delYN} /* 삭제 여부 */
</if>
<choose>
<when test="schDetailCrdnRegDtOpt == 'regDt'">
<if test="schDetailCrdnRegDtFrom != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ >= ]]> #{schDetailCrdnRegDtFrom} /* 등록 일자 시작 */
<when test="schRegDateOpt == 'regDt'">
<if test="schRegDateFrom != null">
AND SUBSTR(R.REG_DT,1,8) <![CDATA[>=]]> #{schRegDateFrom} /* 등록 일자 시작 */
</if>
<if test="schDetailCrdnRegDtTo != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ <= ]]> #{schDetailCrdnRegDtTo} /* 등록 일자 종료 */
<if test="schRegDateTo != null">
AND SUBSTR(R.REG_DT,1,8) <![CDATA[<=]]> #{schRegDateTo} /* 등록 일자 종료 */
</if>
</when>
<when test="schDetailCrdnRegDtOpt == 'mdfcnDt'">
<if test="schDetailCrdnRegDtFrom != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schDetailCrdnRegDtFrom} /* 수정 일자 시작 */
<when test="schRegDateOpt == 'mdfcnDt'">
<if test="schRegDateFrom != null">
AND SUBSTR(R.MDFCN_DT,1,8) <![CDATA[>=]]> #{schRegDateFrom} /* 수정 일자 시작 */
</if>
<if test="schDetailCrdnRegDtTo != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schDetailCrdnRegDtTo} /* 수정 일자 종료 */
<if test="schRegDateTo != null">
AND SUBSTR(R.MDFCN_DT,1,8) <![CDATA[<=]]> #{schRegDateTo} /* 수정 일자 종료 */
</if>
</when>
<otherwise>
</otherwise>
</choose>
<choose>
<when test="schDetailCrdnRgtrOpt == 'rgtr'">
<if test="schDetailCrdnRgtrCd != null">
AND C.RGTR = #{schDetailCrdnRgtrCd} /* 등록자 코드 */
<when test="schRgtrOpt == 'rgtr'">
<if test="schRgtrCd != null">
AND R.RGTR = #{schRgtrCd} /* 등록자 코드 */
</if>
</when>
<when test="schDetailCrdnRgtrOpt == 'mdfr'">
<if test="schDetailCrdnRgtrCd != null">
AND C.MDFR = #{schDetailCrdnRgtrCd} /* 수정자 코드 */
<when test="schRgtrOpt == 'mdfr'">
<if test="schRgtrCd != null">
AND R.MDFR = #{schRgtrCd} /* 수정자 코드 */
</if>
</when>
<otherwise>
@ -207,25 +208,41 @@
<when test="mainOption == 'codeValue' or mainOption == 'match' or mainOption == 'ymd'">
<include refid="dynamicSearch.start" />
<choose>
<when test="by == 'rcvmtInptSeCd'"> R.RCVMT_INPT_SE_CD </when>
<when test="by == 'rcvmtRtrcnYn'"> R.RCVMT_RTRCN_YN </when>
<when test="by == 'fyr'"> R.FYR </when>
<when test="by == 'acntgSeCd'"> R.ACNTG_SE_CD </when>
<when test="by == 'txitmCd'"> R.TXITM_CD </when>
<when test="by == 'levyNo'"> R.LEVY_NO</when>
<when test="by == 'rcvmtSn'"> R.RCVMT_SN </when>
<when test="by == 'pstmrkYmd'"> R.PSTMRK_YMD </when>
<when test="by == 'acntgYmd'"> R.ACNTG_YMD </when>
<when test="by == 'rcvmtYmd'"> R.RCVMT_YMD </when>
<when test="by == 'rcvmtPcptax'"> R.RCVMT_PCPTAX </when>
<when test="by == 'rcvmtAdamt'"> R.RCVMT_ADAMT </when>
<when test="by == 'rcvmtInt'"> R.RCVMT_INT </when>
<when test="by == 'rcvmtBankNm'"> R.RCVMT_BANK_NM </when>
<when test="by == 'payMthdSeCd'"> R.PAY_MTHD_SE_CD </when>
<when test="by == 'rcvmtSeCd'"> R.RCVMT_SE_CD </when>
<when test="by == 'rcvmtSttsCd'"> R.RCVMT_STTS_CD </when>
<when test="by == 'levyYmd'"> L.LEVY_YMD </when>
<when test="by == 'frstDudtYmd'"> L.FRST_DUDT_YMD </when>
<when test="by == 'dudtYmd'"> L.DUDT_YMD </when>
<when test="by == 'levyPcptax'"> L.LEVY_PCPTAX </when>
<when test="by == 'levyAdamt'"> L.LEVY_ADAMT </when>
<when test="by == 'inspyInt'"> L.INSPY_INT </when>
<when test="by == 'szrYmd'"> L.SZR_YMD </when>
<when test="by == 'szrThing'"> L.SZR_THING </when>
<when test="by == 'rpmSzrVhrno'"> L.RPM_SZR_VHRNO </when>
<when test="by == 'szrRmvYmd'"> L.SZR_RMV_YMD </when>
<when test="by == 'crdnYmd'"> C.CRDN_YMD </when>
<when test="by == 'vhrno'"> C.VHRNO </when>
<when test="by == 'crdnStdgNm'"> C.CRDN_STDG_NM </when>
<when test="by == 'crdnPlc'"> C.CRDN_PLC </when>
<when test="by == 'vltnArtcl'"> V.VLTN_ARTCL </when>
<when test="by == 'ffnlgCrdnAmt'"> C.FFNLG_CRDN_AMT </when>
<when test="by == 'ffnlgAmt'"> C.FFNLG_AMT </when>
<when test="by == 'advntceAmt'"> C.ADVNTCE_AMT </when>
<when test="by == 'crdnSttsCd'"> C.CRDN_STTS_CD </when>
<when test="by == 'cvlcptRcptYmd'"> CC.CVLCPT_RCPT_YMD </when>
<when test="by == 'cvlcptAplyNo'"> CC.CVLCPT_APLY_NO </when>
<when test="by == 'cvlcptRcptNo'"> CC.CVLCPT_RCPT_NO </when>
<when test="by == 'cvlcptTrsmCd'"> CC.CVLCPT_TRSM_CD </when>
<when test="by == 'rtpyrNm'"> P.RTPYR_NM </when>
<when test="by == 'rtpyrNo'"> P.RTPYR_NO </when>
<when test="by == 'rtpyrBrdt'"> P.RTPYR_BRDT </when>
<when test="by == 'zip'"> P.ZIP </when>
<when test="by == 'addr'"> P.ADDR </when>
<when test="by == 'dtlAddr'"> P.DTL_ADDR </when>
</choose>
<include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
</when>
@ -249,8 +266,8 @@
<if test="crdnId != null">
AND C.CRDN_ID = #{crdnId} /* 단속 ID */
</if>
<if test="delYn != null">
AND R.DEL_YN = #{delYn} /* 삭제 여부 */
<if test="delYN != null">
AND R.DEL_YN = #{delYN} /* 삭제 여부 */
</if>
</where>
<include refid="utility.orderBy" />
@ -292,7 +309,7 @@
WHERE L.LEVY_ID = #{levyId} /* 부과 ID */
</otherwise>
</choose>
AND L.DEL_YN = #{delYn} /* 삭제 여부 */
AND L.DEL_YN = #{delYN} /* 삭제 여부 */
<include refid="utility.orderBy" />
</select>

@ -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}"));

@ -48,6 +48,7 @@
<th class="cmn" style="width: 200px;">미배달사유</th>
<th class="cmn" style="width: 280px;">주소</th>
<th class="cmn" style="width: 320px;">상세주소</th>
<th class="cmn" style="width: 240px;">연계식별키</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
<th class="cmn" style="width: 140px;">수정사용자</th>
@ -69,6 +70,7 @@
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{NONDELIVREASNCDNM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RECEV_CAR_OWNER_ADDR}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RECEV_CAR_OWNER_DETAILADDR}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CON_KEY}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RGTR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFCN_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFR_NM}</td>

@ -119,28 +119,29 @@
<div class="row g-1">
<!-- 등록일자, 수정일자 -->
<div class="col-6">
<select class="form-select text-center" id="schDetailRegDtOpt--${pageName}" name="schDetailRegDtOpt">
<select class="form-select text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt">
<option value="regDt">등록일자</option>
<option value="mdfcnDt">수정일자</option>
</select>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schDetailRegDtFrom--${pageName}" name="schDetailRegDtFrom"
data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
<input type="text" class="form-control form-date" id="schRegDateFrom--${pageName}" name="schRegDateFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schDetailRegDtTo--${pageName}" name="schDetailRegDtTo"
data-fmt-type="day" autocomplete="off" title="종료 날짜 선택">
<input type="text" class="form-control form-date" id="schRegDateTo--${pageName}" name="schRegDateTo"
data-fmt-type="day" title="종료 날짜 선택">
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 등록자명, 수정자명 -->
<div class="col-6">
<select class="form-select text-center" id="schDetailRgtrOpt--${pageName}" name="schDetailRgtrOpt">
<select class="form-select text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
<option value="rgtr">등록자</option>
<option value="mdfr">수정자</option>
</select>
<input type="text" class="form-control w-px-160" id="schDetailRgtrNm--${pageName}" name="schDetailRgtrNm" autocomplete="off" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnUser--${pageName}" title="사용자 검색" onclick="fnFindUser${pageName}();">
<input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" />
<input type="text" class="form-control" id="schRgtrNm--${pageName}" name="schRgtrNm" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색" onclick="fnFindUser${pageName}();">
검색
</button>
</div>
@ -175,9 +176,7 @@
<tr id="theadTr--${pageName}"
data-by="by--${pageName}" data-by-output="byOutput--${pageName}" data-main-option="mainOption--${pageName}" data-sub-option="subOption--${pageName}">
<th class="cmn" style="width: 72px;">NO.</th>
<th class="cmn" style="width: 56px;">
<input type="checkbox" class="form-check-input" onchange="${pageName}Control.select(this.checked);">
</th>
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" onchange="${pageName}Control.select(this.checked);"></th>
<th class="cmn" style="width: 160px;">업무구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCVMT_INPT_SE_CD', this.innerText, 'codeValue', 'FIM044');">수납입력구분</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('RCVMT_RTRCN_YN', this.innerText, 'codeValue', 'CMM005');">수납취소</th>
@ -190,11 +189,12 @@
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('PSTMRK_YMD', this.innerText, 'ymd', '');">소인일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('ACNTG_YMD', this.innerText, 'ymd', '');">회계일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCVMT_YMD', this.innerText, 'ymd', '');">수납일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCVMT_AMT', this.innerText, 'match', 'part');">수납금액</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCVMT_PCPTAX', this.innerText, 'match', 'part');">수납본세</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCVMT_ADAMT', this.innerText, 'match', 'part');">수납가산금</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCVMT_INT', this.innerText, 'match', 'part');">수납이자</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('RCVMT_BANK_NM', this.innerText, 'match', 'part');">수납은행</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('PAY_MTHD_SE_CD', this.innerText, 'codeValue', 'FIM045');">납부방법</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('PAY_MTHD_SE_CD', this.innerText, 'codeValue', 'FIM045');">납부방법</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('RCVMT_SE_CD', this.innerText, 'codeValue', 'FIM041');">수납구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('RCVMT_STTS_CD', this.innerText, 'codeValue', 'FIM020');">수납상태</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('LEVY_YMD', this.innerText, 'ymd', '');">부과일자</th>
@ -213,6 +213,7 @@
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD', this.innerText, 'codeValue', 'FIM010');">처리상태</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('RTPYR_NM', this.innerText, 'match', 'part');">납부자명</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('RTPYR_BRDT', this.innerText, 'ymd', '');">납부자생일</th>
<th class="cmn" style="width: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
@ -225,9 +226,7 @@
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{RCVMT_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center">
<input type="checkbox" class="form-check-input" value="{RCVMT_ID}" onchange="${pageName}Control.select('{RCVMT_ID}', this.checked);">
</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" value="{RCVMT_ID}" onchange="${pageName}Control.select('{RCVMT_ID}', this.checked);"></td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_INPT_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_RTRCN_NM}</td>
@ -240,6 +239,7 @@
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{PSTMRK_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ACNTG_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_YMD}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_AMT}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_PCPTAX}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_ADAMT}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_INT}</td>
@ -263,6 +263,7 @@
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_PLC}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STTS_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_BRDT_MASK}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{REG_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RGTR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFCN_DT}</td>
@ -272,7 +273,7 @@
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="odd">
<td valign="top" colspan="42" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
<td valign="top" colspan="44" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
@ -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());
});
</script>

Loading…
Cancel
Save