사전통지 발송 현황 - 세외수입등록 수정.

main
jjh 1 year ago
parent d47d409d8e
commit aa59ef40db

@ -20,6 +20,7 @@ public class VltnInfoQuery extends CmmnQuery {
private String vltnArtcl; // 위반 항목
private String acntgSeCd; // 회계 구분 코드
private String txitmCd; // 세목 코드
private String useYn; // 사용 여부
public String getVltnId() {
return ifEmpty(vltnId, () -> null);
@ -75,4 +76,13 @@ public class VltnInfoQuery extends CmmnQuery {
return self();
}
public String getUseYn() {
return ifEmpty(useYn, () -> null);
}
public <T extends VltnInfoQuery> T setUseYn(String useYn) {
this.useYn = useYn;
return self();
}
}

@ -40,6 +40,9 @@ public class LevyQuery extends CmmnQuery {
private String rductId; // 감경 ID
// 부과 등록
private String fyr; // 회계연도
private String acntgSeCd; // 회계 구분 코드
private String txitmCd; // 세목 코드
private String levyYmd; // 부과 일자
private String dudtYmd; // 납기 일자
private String crdnSttsCd; // 단속 상태 코드
@ -206,6 +209,38 @@ public class LevyQuery extends CmmnQuery {
return self();
}
//
//
public String getFyr() {
return ifEmpty(fyr, () -> null);
}
public <T extends LevyQuery> T setFyr(String fyr) {
this.fyr = fyr;
return self();
}
public String getAcntgSeCd() {
return ifEmpty(acntgSeCd, () -> null);
}
public <T extends LevyQuery> T setAcntgSeCd(String acntgSeCd) {
this.acntgSeCd = acntgSeCd;
return self();
}
public String getTxitmCd() {
return ifEmpty(txitmCd, () -> null);
}
public <T extends LevyQuery> T setTxitmCd(String txitmCd) {
this.txitmCd = txitmCd;
return self();
}
public String getLevyYmd() {
return ifEmpty(levyYmd, () -> null);

@ -121,6 +121,6 @@ public interface LevyMapper extends AbstractMapper {
* @param crdnId ID
* @return
*/
String selectMaxLevyNo(Levy levy);
String selectMaxLevyNo(LevyQuery req);
}

@ -42,6 +42,12 @@ public interface LevyService {
*/
DataObject getLevyInfo(LevyQuery req);
/** , , .<br />
* @param req
* @return
*/
String getMaxLevyNo(LevyQuery req);
/** .
* @param req
* @return
@ -49,7 +55,9 @@ public interface LevyService {
* <li> false</li>
* </ul>
*/
String createRductLevy(LevyQuery req);
String createRductLevyList(LevyQuery req);
String createRductLevy(Levy levy);
/** .
* @param levy

@ -73,6 +73,14 @@ public class LevyBean extends AbstractComponent {
return levyMapper.selectLevyInfo(req);
}
/** .<br />
* @param req
* @return
*/
public String getMaxLevyNo(LevyQuery req) {
return levyMapper.selectMaxLevyNo(req);
}
/** .
* @param levy
* @return
@ -80,9 +88,8 @@ public class LevyBean extends AbstractComponent {
* <li> false</li>
* </ul>
*/
public String createRductLevy(LevyQuery req) {
public String createRductLevyList(LevyQuery req) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지
// 단속 IDs 건수를 확인하여 1건이하면.. 종료
@ -90,22 +97,58 @@ public class LevyBean extends AbstractComponent {
return retMessage;
}
// 부과 IDs 만큼 반복..
for (int iLoop = 0; iLoop < req.getCrdnIDs().length; iLoop++) {
Levy levy = new Levy();
levy.setCrdnId(req.getCrdnIDs()[iLoop]); // 단속 ID
levy.setLevyYmd(req.getLevyYmd()); // 부과 일자
levy.setFrstDudtYmd(req.getDudtYmd()); // 최초 납기 일자
levy.setDudtYmd(req.getDudtYmd()); // 납기 일자
retMessage = createRductLevy(levy);
if (retMessage.contains("[F]")) {
throw new RuntimeException(retMessage);
}
}
retMessage = "[S] 작업이 정상 처리 되었습니다.";
return retMessage;
}
/** .
* @param levy
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String createRductLevy(Levy levy) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지
// 사용자 정보
ManagedUser managedUser = (ManagedUser)currentUser().getUser();
// 부과 IDs 만큼 반복..
for (int iLoop = 0; iLoop < req.getCrdnIDs().length; iLoop++) {
DataObject crdnInfo = levyMapper.selectCrdnInfo(req.getCrdnIDs()[iLoop]);
// 단속 정보
DataObject crdnInfo = levyMapper.selectCrdnInfo(levy.getCrdnId());
if (!crdnInfo.string("LEVY_ID").equals("")) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("감경부과 등록 중 이미 감경부과된 자료가 있습니다.");
throw new RuntimeException("감경부과 등록 중 이미 감경부과된 자료가 있습니다."); // 예외를 발생시켜서 DB Rollback
}
if (crdnInfo.number("CRDN_STTS_CD").intValue() > 31 ) {
throw new RuntimeException("감경부과 등록 중 단속상태가 " + crdnInfo.string("CRDN_STTS_NM") + " 자료가 있습니다."); // 예외를 발생시켜서 DB Rollback
}
Levy levy = new Levy();
// 최종 부과번호+1 을 조회 한다.
String maxLevyNo = levyMapper.selectMaxLevyNo(new LevyQuery().setFyr(crdnInfo.string("TODAY").substring(0, 4))
.setAcntgSeCd(crdnInfo.string("ACNTG_SE_CD"))
.setTxitmCd(crdnInfo.string("TXITM_CD"))
.setSggCd(crdnInfo.string("SGG_CD")));
levy.setSggCd(crdnInfo.string("SGG_CD")); // 시군구 코드
levy.setCrdnId(crdnInfo.string("CRDN_ID")); // 단속 ID
levy.setRtpyrId(crdnInfo.string("RTPYR_ID")); // 납부자 ID
levy.setInstCd(managedUser.getInstitute()); // 기관 코드
levy.setDeptCd(managedUser.getDeptCode()); // 부서 코드
@ -114,13 +157,10 @@ public class LevyBean extends AbstractComponent {
levy.setTxitmCd(crdnInfo.string("TXITM_CD")); // 세목 코드
levy.setOperItemCd(crdnInfo.string("OPER_ITEM_CD")); // 운영 항목 코드
levy.setSpclBizCd(crdnInfo.string("SPCL_BIZ_CD")); // 특별회계 사업 코드
levy.setLevyNo(levyMapper.selectMaxLevyNo(levy)); // 부과 번호
levy.setInspySn(""); // 분납 순번
levy.setLevyNo(maxLevyNo); // 부과 번호
levy.setInspySn("00"); // 분납 순번
levy.setLevySeCd("02"); // 부과 구분 코드 FIM040
levy.setUntySeCd("02"); // 통합 구분 코드 FIM072
levy.setLevyYmd(req.getLevyYmd()); // 부과 일자
levy.setFrstDudtYmd(req.getDudtYmd()); // 최초 납기 일자
levy.setDudtYmd(req.getDudtYmd()); // 납기 일자
levy.setFfnlgAmt(crdnInfo.number("FFNLG_AMT").intValue()); // 과태료 금액
levy.setLevyPcptax(crdnInfo.number("ADVNTCE_AMT").intValue()); // 부과 본세
levy.setLevyAdamt(0); // 부과 가산금
@ -150,24 +190,23 @@ public class LevyBean extends AbstractComponent {
// 단속상태이력(TB_CRDN_STTS_HSTRY)
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setCrdnId(crdnInfo.string("CRDN_ID"));
crdnSttsHstry.setBfrSttsCd(crdnInfo.string("CRDN_STTS_CD")); //
crdnSttsHstry.setBfrSttsChgDt(crdnInfo.string("CRDN_STTS_CHG_DT")); //
crdnSttsHstry.setCrdnId(crdnInfo.string("CRDN_ID")); // 단속 ID
crdnSttsHstry.setBfrSttsCd(crdnInfo.string("CRDN_STTS_CD")); // 단속 상태 코드
crdnSttsHstry.setBfrSttsChgDt(crdnInfo.string("CRDN_STTS_CHG_DT")); // 단소 상태 변경 일시
crdnSttsHstry.setCrdnSttsCd("23"); // 단속상태코드(FIM010) - 감경부과
crdnSttsHstry.setTaskDtlId(levy.getLevyId());
crdnSttsHstry.setTaskDtlId(levy.getLevyId()); // 부과 ID
if (crdnInfo.number("CRDN_STTS_CD").intValue() >= 1 && crdnInfo.number("CRDN_STTS_CD").intValue() <= 22 ) {
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
} else if (crdnInfo.number("CRDN_STTS_CD").intValue() == 31) { // 의견제출 접수
if (!retSuccess) {
throw new RuntimeException("감경부과 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
} else {
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 등록 한다.
retSuccess = crdnSttsHstryBean.create(crdnSttsHstry);
} else {
retSuccess = false;
}
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("감경부과 등록 중 단속 대장의 단속상태 변경에 실패하였습니다.");
throw new RuntimeException("감경부과 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}

@ -50,8 +50,18 @@ public class LevyServiceBean extends AbstractServiceBean implements LevyService
}
@Override
public String createRductLevy(LevyQuery req) {
return levyBean.createRductLevy(req);
public String getMaxLevyNo(LevyQuery req) {
return levyBean.getMaxLevyNo(req);
}
@Override
public String createRductLevyList(LevyQuery req) {
return levyBean.createRductLevyList(req);
}
@Override
public String createRductLevy(Levy levy) {
return levyBean.createRductLevy(levy);
}
@Override

@ -34,7 +34,7 @@ public class Levy01Controller extends ApplicationController {
public static final String
reductionLevyTargetMain = "/010/main.do" // 사전 감경 부과 대상 메인 화면
, getReductionLevyTargetList = "/010/list.do" // 사전 감경 부과 대상 대장 목록 조회
, createReductionLevy = "/010/createRductLevy.do" // 사전 감경 부과 대장 등록
, createReductionLevyList = "/010/createReductionLevyList.do" // 사전 감경 부과 대장 등록
;
}
@ -85,9 +85,9 @@ public class Levy01Controller extends ApplicationController {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView createReductionLevy(LevyQuery req) {
public ModelAndView createReductionLevyList(LevyQuery req) {
boolean saved = false;
String retMessage = levyService.createRductLevy(req);
String retMessage = levyService.createRductLevyList(req);
if (retMessage.contains("[S]")) {
saved = true;
@ -119,6 +119,33 @@ public class Levy01Controller extends ApplicationController {
return setCollectionInfo(new ModelAndView("jsonView"), result, "levy");
}
/** .
* @param levy
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView createLevy(Levy levy) {
boolean saved = levyService.createLevy(levy);
return new ModelAndView("jsonView")
.addObject("saved", saved);
// boolean saved = false;
// String retMessage = levyService.createLevy(true, levy);
//
// if (retMessage.contains("[S]")) {
// saved = true;
// } else {
// saved = false;
// }
//
// return new ModelAndView("jsonView")
// .addObject("saved", saved)
// .addObject("retMessage", retMessage);
}
/** .
* @param levy
* @return jsonView

@ -75,7 +75,7 @@ public class NxrpMtchg extends AbstractEntity {
/**
*
*/
private String prcsSttsCd;
private String nxrpMtchgSttsCd;
/**
*
@ -197,4 +197,9 @@ public class NxrpMtchg extends AbstractEntity {
*/
private String delYn;
/**
*
*/
private String delRsn;
}

@ -85,24 +85,28 @@ public class NxrpMtchgBean extends AbstractComponent {
for (int iLoop = 0; iLoop < req.getSndngDtlIDs().length; iLoop++) {
// 단속 자료 조회
DataObject crdnLevyInfo = nxrpMtchgMapper.selectCrdnLevy(req.getCrdnIDs()[iLoop]);
if (crdnLevyInfo == null) {
throw new RuntimeException("세외수입 매칭 내역 등록중 단속자료가 존재하지 않습니다."); // 예외를 발생시켜서 DB Rollback
}
// 세외수입 연계 등록 서비스 호출
// 세외수입 연계 등록 서비스 호출 //////////////////////////////////////////////
String linkRsltId = "0000000000";
// 세외수입 매칭 내역 정보 조회
DataObject nxrpMtchgInfo = nxrpMtchgMapper.selectNxrpMtchgInfo(req);
if (nxrpMtchgInfo.isEmpty()) {
DataObject nxrpMtchgInfo = nxrpMtchgMapper.selectNxrpMtchgInfo(new NxrpMtchgQuery().setCrdnId(crdnLevyInfo.string("CRDN_ID"))
.setDelYn("N"));
if (nxrpMtchgInfo == null) {
NxrpMtchg nxrpMtchg = new NxrpMtchg();
nxrpMtchg.setCrdnId(crdnLevyInfo.string("CRND_ID"));
nxrpMtchg.setCrdnId(crdnLevyInfo.string("CRDN_ID"));
nxrpMtchg.setCrdnDt(crdnLevyInfo.string("CRDN_YMD_TM_MASK"));
nxrpMtchg.setStdgNm(crdnLevyInfo.string("STDG_NM"));
nxrpMtchg.setStdgNm(crdnLevyInfo.string("CRDN_STDG_NM"));
nxrpMtchg.setCrdnPlc(crdnLevyInfo.string("CRDN_PLC"));
nxrpMtchg.setLinkRsltId(linkRsltId);
nxrpMtchg.setLevyAmt(crdnLevyInfo.number("PCPTAX").intValue());
nxrpMtchg.setAdtnAmt(crdnLevyInfo.number("ADAMT").intValue());
nxrpMtchg.setSumAmt(crdnLevyInfo.number("SUM_AMT").intValue());
nxrpMtchg.setNxrpMtchgSttsCd("01"); // FIM073(세외수입 매칭 상태 코드) - 01 처리전
retSuccess = nxrpMtchgMapper.insert(nxrpMtchg);
} else {
@ -122,7 +126,7 @@ public class NxrpMtchgBean extends AbstractComponent {
retSuccess = sndngMapper.updateSndngDtlSttsCd(sndngDtl);
if (!retSuccess) {
throw new RuntimeException("세외수입 매칭 내역 정보를 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
throw new RuntimeException("세외수입 매칭 정보를 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}

@ -19,10 +19,7 @@ import cokr.xit.fims.epst.EpostRcptReg;
import cokr.xit.fims.epst.service.bean.EpostRcptRegBean;
import cokr.xit.fims.levy.Levy;
import cokr.xit.fims.levy.service.bean.LevyBean;
import cokr.xit.fims.nxrp.NxrpMtchg;
import cokr.xit.fims.nxrp.NxrpMtchgQuery;
import cokr.xit.fims.nxrp.dao.NxrpMtchgMapper;
import cokr.xit.fims.nxrp.service.bean.NxrpMtchgBean;
import cokr.xit.fims.sndb.dao.SndngMapper;
import cokr.xit.fims.sndb.dao.SvbtcMapper;
import cokr.xit.fims.sndb.Sndng;
@ -159,26 +156,14 @@ public class SndngBean extends AbstractComponent {
return sndngMapper.selectSndbkList(req);
}
/** .()
/** .
* @param sndng
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String createSndngNxrpLink(Sndng sndng) {
public String createSndng(Sndng sndng) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지
@ -201,6 +186,8 @@ public class SndngBean extends AbstractComponent {
sndng.setDudtYmd(null); // 납기 일자
newCrdnSttsCd = "84"; // 단속 상태 코드 - 84 계고장 출력 완료
} else if (sndng.getSndngSeCd().equals("01") || sndng.getSndngSeCd().equals("02")) { // 사전통지
sndng.setLevyBgngYmd(sndng.getSndngYmd()); // 부과 시작 일자
sndng.setLevyEndYmd(sndng.getDudtYmd()); // 부과 종료 일자
newCrdnSttsCd = "42"; // 단속 상태 코드 - 42 사전통지 발송
} else {
newCrdnSttsCd = "";
@ -240,9 +227,6 @@ public class SndngBean extends AbstractComponent {
throw new RuntimeException("발송상세 등록 작업중 납부자 정보가 확인되지 않았습니다." + "<p>차량번호 : " + crdnPayerInfo.string("VHRNO")); // 예외를 발생시켜서 DB Rollback
}
// 발송 상세 등록
SndngDtl sndngDtl = new SndngDtl();
if (sndng.getSndngSeCd().equals("11") || sndng.getSndngSeCd().equals("12")) { // 계고장
ffnlgAmt = crdnPayerInfo.number("FFNLG_CRDN_AMT").intValue(); // 과태료 최초 단속 금액
pcptax = crdnPayerInfo.number("FFNLG_CRDN_AMT").intValue(); // 과태료 최초 단속 금액
@ -251,41 +235,34 @@ public class SndngBean extends AbstractComponent {
} else if (sndng.getSndngSeCd().equals("01") || sndng.getSndngSeCd().equals("02")) { // 사전통지
// 부과 ID가 없다면 부과대장 등록
if (crdnPayerInfo.string("LEVY_ID").equals("")) {
// 세외수입에 등록 후 세외수입에서 감경해야 하므로 사전통보액 80,000 원이 아닌 본 부과액 100,000 원으로 등록한다.
// 세외수입에서 가상계좌를 부여 받은 후 다시 금액이 80,000 원으로 업데이트 된다.
ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액
pcptax = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 본세
adamt = 0; // 가산금
sumAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 합계 금액
// 부과 대장(TB_LEVY)
Levy levy = new Levy();
levy.setSggCd(crdnPayerInfo.string("SGG_CD")); // 시군구 코드
levy.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
levy.setRtpyrId(crdnPayerInfo.string("RTPYR_ID")); // 납부자 ID
levy.setInstCd(userInfo.string("NSTT_CD")); // 자치단체 코드
levy.setDeptCd(userInfo.string("DEPT_CD")); // 부서 코드
levy.setFfnlgAmt(ffnlgAmt); // 과태료 금액
levy.setLevyPcptax(pcptax); // 부과 금액
levy.setLevyAdamt(adamt); // 가산 금액
levy.setSumAmt(sumAmt); // 합계 금액
// 부과 대장(TB_LEVY)에 등록
levyBean.createLevy(levy);
if (!retSuccess) {
levy.setLevyYmd(sndng.getLevyBgngYmd()); // 부과 일자
levy.setFrstDudtYmd(sndng.getLevyEndYmd()); // 최초 납기 일자
levy.setDudtYmd(sndng.getLevyEndYmd()); // 납기 일자
retMessage = levyBean.createRductLevy(levy);
if (retMessage.contains("[F]")) {
throw new RuntimeException("발송 상세 등록 작업중 부과대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
sndngDtl.setLevyId(levy.getLevyId()); // 부과 ID
} else {
// 단속, 납부자 정보 재조회 /////////////////////////////////////////
crdnPayerInfo = sndngMapper.selectCrdnPayerTrgtInfo(sndng.getCrdnIDs()[iLoop]);
// 확인이 필요하다!!!!!
// // 세외수입에 등록 후 세외수입에서 감경해야 하므로 사전통보액 80,000 원이 아닌 본 부과액 100,000 원으로 등록한다.
// // 세외수입에서 가상계좌를 부여 받은 후 다시 금액이 80,000 원으로 업데이트 된다.
// ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액
// pcptax = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 본세
// adamt = 0; // 가산금
// sumAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 합계 금액
}
ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액
pcptax = crdnPayerInfo.number("PCPTAX").intValue(); // 부과 본세
adamt = 0; // 부과 가산금
sumAmt = crdnPayerInfo.number("SUM_AMT").intValue(); // 부과 합계 금액
sndngDtl.setLevyId(crdnPayerInfo.string("LEVY_ID")); // 부과 ID
}
} else {
ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액
pcptax = crdnPayerInfo.number("PCPTAX").intValue(); // 부과본세 - 수납본세 - 감액본세
@ -293,266 +270,20 @@ public class SndngBean extends AbstractComponent {
sumAmt = crdnPayerInfo.number("SUM_AMT").intValue(); // 합계 금액
}
// 사전통지 발송 등록시 세외수입 연계 자료 등록 ///////////////////////////////////
if (sndng.getSndngSeCd().equals("01") || sndng.getSndngSeCd().equals("02")) {
// 세외수입 매핑 내역 정보 조회
DataObject nxrpMtchgInfo = nxrpMtchgMapper.selectNxrpMtchgInfo(new NxrpMtchgQuery().setCrdnId(crdnPayerInfo.string("CRDN_ID"))
.setDelYn("N"));
// 기존에 등록된 자료가 있다면 삭제 처리
if (nxrpMtchgInfo != null) {
// 세외수입 매칭 내역(TB_ENIS_MTCHG)
NxrpMtchg delNxrpMtchg = new NxrpMtchg();
delNxrpMtchg.setCrdnId(crdnPayerInfo.string("CRDN_ID"));
// 세외수입 매칭 내역을 등록
retSuccess = nxrpMtchgMapper.deleteCrdnNxrpMtchg(delNxrpMtchg);
if (!retSuccess) {
throw new RuntimeException("발송 대장 등록 중 세외수입 매칭 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}
// 세외수입 매칭 내역(TB_ENIS_MTCHG)
NxrpMtchg nxrpMtchg = new NxrpMtchg();
nxrpMtchg.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
nxrpMtchg.setCrdnDt(crdnPayerInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시
nxrpMtchg.setStdgNm(crdnPayerInfo.string("CRDN_STDG_NM")); // 법정동 명
nxrpMtchg.setCrdnPlc(crdnPayerInfo.string("CRDN_PLC")); // 단속 장소
nxrpMtchg.setLevyAmt(pcptax); // 부과 금액
nxrpMtchg.setAdtnAmt(adamt); // 가산 금액
nxrpMtchg.setSumAmt(sumAmt); // 합계 금액
nxrpMtchg.setPrcsSttsCd("01"); // 처리 상태 코드
// 세외수입 매칭 내역을 등록
retSuccess = nxrpMtchgMapper.insert(nxrpMtchg);
if (!retSuccess) {
throw new RuntimeException("발송 대장 등록 중 세외수입 매칭 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}
// 기본 데이터 셋팅
sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID
sndngDtl.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
sndngDtl.setSndngSeCd(sndng.getSndngSeCd()); // 발송 구분 코드
sndngDtl.setVhrno(crdnPayerInfo.string("VHRNO")); // 차량번호
sndngDtl.setCrdnDt(crdnPayerInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시
sndngDtl.setCrdnStdgNm(crdnPayerInfo.string("CRDN_STDG_NM")); // 단속 법정동 명
sndngDtl.setCrdnPlc(crdnPayerInfo.string("CRDN_PLC")); // 단속 장소
sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자
sndngDtl.setDudtYmd(sndng.getDudtYmd()); // 납기 일자
sndngDtl.setFfnlgAmt(ffnlgAmt); // 과태료 금액
sndngDtl.setPcptax(pcptax); // 본세
sndngDtl.setAdamt(adamt); // 가산금
sndngDtl.setSumAmt(sumAmt); // 합계 금액
sndngDtl.setRtpyrNm(crdnPayerInfo.string("RTPYR_NM")); // 납부자 명
sndngDtl.setRtpyrNo(crdnPayerInfo.string("RTPYR_NO")); // 납부자 번호
sndngDtl.setRtpyrAddr(crdnPayerInfo.string("ADDR")); // 납부자 주소
sndngDtl.setRtpyrDtlAddr(crdnPayerInfo.string("DTL_ADDR")); // 납부자 상세 주소
sndngDtl.setRtpyrZip(crdnPayerInfo.string("ZIP")); // 납부자 우편번호
sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 처리전
sndngDtl.setDelYn("N"); // 삭제 여부
// 발송 상세(TB_SNDNG_DTL) 등록
retSuccess = sndngMapper.insertSndngDtl(sndngDtl);
if (!retSuccess) {
throw new RuntimeException("발송 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
if (!newCrdnSttsCd.equals("")) {
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setCrdnId(crdnPayerInfo.string("CRDN_ID"));
crdnSttsHstry.setBfrSttsCd(crdnPayerInfo.string("CRDN_STTS_CD"));
crdnSttsHstry.setBfrSttsChgDt(crdnPayerInfo.string("CRDN_STTS_CHG_DT"));
crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd);
crdnSttsHstry.setTaskDtlId(sndngDtl.getSndngDtlId());
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!retSuccess) {
throw new RuntimeException("부과제외 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}
}
retMessage = "[S] 작업이 정상 처리 되었습니다.";
return retMessage;
}
/** .
* @param sndng
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String createSndng(Sndng sndng) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지
String newCrdnSttsCd = ""; // 단속 상태 코드
int ffnlgAmt = 0; // 과태료 금액
int pcptax = 0; // 본세
int adamt = 0; // 가산금
int sumAmt = 0; // 합계 금액
// 사용자 정보
DataObject userInfo = userBean.getUserInfo(currentUser().getId());
sndng.setDeptCd(userInfo.string("DEPT_CD")); // 부서 코드
sndng.setVltnId(sndng.getVltnId()); // 위반 ID
// 계고장
if (sndng.getSndngSeCd().equals("01")) {
sndng.setLevyBgngYmd(null); // 부과 시작 일자
sndng.setLevyEndYmd(null); // 부과 종료 일자
sndng.setDudtYmd(null); // 납기 일자
}
// 발송 등록 구분 코드
if (sndng.getTnocs() == 1) {
sndng.setSndngRegSeCd("02"); // 개별
} else {
sndng.setSndngRegSeCd("01"); // 일괄
}
// 재발송 여부
if (sndng.getResndYn() == null) {
sndng.setResndYn("N");
}
// 삭제 여부
if (sndng.getDelYn() == null) {
sndng.setDelYn("N");
}
// 발송 상태 코드
sndng.setSndngSttsCd("00"); // 00 발송 준비
// 발송 구분 코드에 따른 처리상태 변경
if (sndng.getSndngSeCd().equals("11") || sndng.getSndngSeCd().equals("12")) {
newCrdnSttsCd = "84"; // 단속 상태 코드 - 84 계고장 출력 완료
} else if (sndng.getSndngSeCd().equals("01") || sndng.getSndngSeCd().equals("02")) {
newCrdnSttsCd = "42"; // 단속 상태 코드 - 42 사전통지 발송
} else {
newCrdnSttsCd = "";
}
// 발송 등록
retSuccess = sndngMapper.insertSndng(sndng);
if (!retSuccess) {
throw new RuntimeException("발송 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
for (int iLoop = 0; iLoop < sndng.getCrdnIDs().length; iLoop++) {
// 단속, 납부자 정보 조회
DataObject crdnPayerInfo = sndngMapper.selectCrdnPayerTrgtInfo(sndng.getCrdnIDs()[iLoop]);
if (crdnPayerInfo == null) {
throw new RuntimeException("발송상세 등록 작업중 단속 정보가 확인되지 않았습니다." + "<p>단속ID : " + sndng.getCrdnIDs()[iLoop]); // 예외를 발생시켜서 DB Rollback
}
if (crdnPayerInfo.string("RTPYR_ID").equals("")) {
throw new RuntimeException("발송상세 등록 작업중 납부자 정보가 확인되지 않았습니다." + "<p>차량번호 : " + crdnPayerInfo.string("VHRNO")); // 예외를 발생시켜서 DB Rollback
}
// 발송 상세 등록
// 발송 상세(TB_SNDNG_DTL) 대장에 등록한다.
SndngDtl sndngDtl = new SndngDtl();
if (sndng.getSndngSeCd().equals("01")) {
ffnlgAmt = crdnPayerInfo.number("FFNLG_CRDN_AMT").intValue(); // 과태료 단속 금액
pcptax = 0;
adamt = 0;
sumAmt = 0;
} else if (sndng.getSndngSeCd().equals("02")) {
// 세외수입에 등록 후 세외수입에서 감경해야 하므로 사전통보액 80,000 원이 아닌 본 부과액 100,000 원으로 등록한다.
// 세외수입에서 가상계좌를 부여 받은 후 다시 금액이 80,000 원으로 업데이트 된다.
ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액
pcptax = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 부과 본세
adamt = 0; // 부과 가산금
sumAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 부과 합계 금액
// 부과 ID가 없다면 부과대장 등록
if (crdnPayerInfo.string("LEVY_ID").equals("")) {
// 부과 대장(TB_LEVY)
Levy levy = new Levy();
levy.setSggCd(crdnPayerInfo.string("SGG_CD")); // 시군구 코드
levy.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
levy.setRtpyrId(crdnPayerInfo.string("RTPYR_ID")); // 납부자 ID
levy.setInstCd(userInfo.string("NSTT_CD")); // 자치단체 코드
levy.setDeptCd(userInfo.string("DEPT_CD")); // 부서 코드
levy.setFfnlgAmt(ffnlgAmt); // 과태료 금액
levy.setLevyPcptax(pcptax); // 부과 금액
levy.setLevyAdamt(adamt); // 가산 금액
levy.setSumAmt(sumAmt); // 합계 금액
// 부과 대장(TB_LEVY)에 등록
levyBean.createLevy(levy);
if (!retSuccess) {
throw new RuntimeException("발송 상세 등록 작업중 부과대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
sndngDtl.setLevyId(levy.getLevyId()); // 부과 ID
} else {
sndngDtl.setLevyId(crdnPayerInfo.string("LEVY_ID")); // 부과 ID
}
} else {
ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액
pcptax = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 부과 본세
adamt = 0; // 부과 가산금
sumAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 부과 합계 금액
}
// 사전통지 발송 등록시 세외수입 연계 자료 등록 ///////////////////////////////////
if (sndng.getSndngSeCd().equals("02")) {
// 세외수입 매핑 내역 정보 조회
DataObject nxrpMtchgInfo = nxrpMtchgMapper.selectNxrpMtchgInfo(new NxrpMtchgQuery().setCrdnId(crdnPayerInfo.string("CRDN_ID"))
.setDelYn("N"));
// 기존에 등록된 자료가 있다면 삭제 처리
if (nxrpMtchgInfo != null) {
// 세외수입 매칭 내역(TB_ENIS_MTCHG)
NxrpMtchg delNxrpMtchg = new NxrpMtchg();
delNxrpMtchg.setCrdnId(crdnPayerInfo.string("CRDN_ID"));
// 세외수입 매칭 내역을 등록
retSuccess = nxrpMtchgMapper.deleteCrdnNxrpMtchg(delNxrpMtchg);
if (!retSuccess) {
throw new RuntimeException("발송 대장 등록 중 세외수입 매칭 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}
// 세외수입 매칭 내역(TB_ENIS_MTCHG)
NxrpMtchg nxrpMtchg = new NxrpMtchg();
nxrpMtchg.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
nxrpMtchg.setCrdnDt(crdnPayerInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시
nxrpMtchg.setStdgNm(crdnPayerInfo.string("CRDN_STDG_NM")); // 법정동 명
nxrpMtchg.setCrdnPlc(crdnPayerInfo.string("CRDN_PLC")); // 단속 장소
nxrpMtchg.setLevyAmt(pcptax); // 부과 금액
nxrpMtchg.setAdtnAmt(adamt); // 가산 금액
nxrpMtchg.setSumAmt(sumAmt); // 합계 금액
nxrpMtchg.setPrcsSttsCd("01"); // 처리 상태 코드
// 세외수입 매칭 내역을 등록
retSuccess = nxrpMtchgMapper.insert(nxrpMtchg);
if (!retSuccess) {
throw new RuntimeException("발송 대장 등록 중 세외수입 매칭 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}
// 기본 데이터 셋팅
sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID
sndngDtl.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
sndngDtl.setLevyId(crdnPayerInfo.string("LEVY_ID")); // 부과 ID
sndngDtl.setSndngSeCd(sndng.getSndngSeCd()); // 발송 구분 코드
sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자
sndngDtl.setSndngEndYmd(sndng.getDudtYmd()); // 발송 종료 일자
sndngDtl.setVhrno(crdnPayerInfo.string("VHRNO")); // 차량번호
sndngDtl.setCrdnDt(crdnPayerInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시
sndngDtl.setCrdnStdgNm(crdnPayerInfo.string("CRDN_STDG_NM")); // 단속 법정동 명
sndngDtl.setCrdnPlc(crdnPayerInfo.string("CRDN_PLC")); // 단속 장소
sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자
sndngDtl.setLevyYmd(sndng.getSndngYmd()); // 부과 일자
sndngDtl.setDudtYmd(sndng.getDudtYmd()); // 납기 일자
sndngDtl.setFfnlgAmt(ffnlgAmt); // 과태료 금액
sndngDtl.setPcptax(pcptax); // 본세
@ -563,38 +294,15 @@ public class SndngBean extends AbstractComponent {
sndngDtl.setRtpyrAddr(crdnPayerInfo.string("ADDR")); // 납부자 주소
sndngDtl.setRtpyrDtlAddr(crdnPayerInfo.string("DTL_ADDR")); // 납부자 상세 주소
sndngDtl.setRtpyrZip(crdnPayerInfo.string("ZIP")); // 납부자 우편번호
sndngDtl.setEpayno(crdnPayerInfo.string("EPAYNO"));
sndngDtl.setBankNm(crdnPayerInfo.string("BANK_NM"));
sndngDtl.setVrActno(crdnPayerInfo.string("VR_ACTNO"));
sndngDtl.setBankNm2(crdnPayerInfo.string("BANK_NM2"));
sndngDtl.setVrActno2(crdnPayerInfo.string("VR_ACTNO2"));
sndngDtl.setBankNm3(crdnPayerInfo.string("BANK_NM3"));
sndngDtl.setVrActno3(crdnPayerInfo.string("VR_ACTNO3"));
sndngDtl.setBankNm4(crdnPayerInfo.string("BANK_NM4"));
sndngDtl.setVrActno4(crdnPayerInfo.string("VR_ACTNO4"));
sndngDtl.setBankNm5(crdnPayerInfo.string("BANK_NM5"));
sndngDtl.setVrActno5(crdnPayerInfo.string("VR_ACTNO5"));
sndngDtl.setBankNm6(crdnPayerInfo.string("BANK_NM6"));
sndngDtl.setVrActno6(crdnPayerInfo.string("VR_ACTNO6"));
sndngDtl.setBankNm7(crdnPayerInfo.string("BANK_NM7"));
sndngDtl.setVrActno7(crdnPayerInfo.string("VR_ACTNO7"));
sndngDtl.setBankNm8(crdnPayerInfo.string("BANK_NM8"));
sndngDtl.setVrActno8(crdnPayerInfo.string("VR_ACTNO8"));
sndngDtl.setBankNm9(crdnPayerInfo.string("BANK_NM9"));
sndngDtl.setVrActno9(crdnPayerInfo.string("VR_ACTNO9"));
sndngDtl.setBankNm10(crdnPayerInfo.string("BANK_NM10"));
sndngDtl.setVrActno10(crdnPayerInfo.string("VR_ACTNO10"));
sndngDtl.setBankNm11(crdnPayerInfo.string("BANK_NM11"));
sndngDtl.setVrActno11(crdnPayerInfo.string("VR_ACTNO11"));
sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 처리전
sndngDtl.setDelYn("N"); // 삭제 여부
// 발송 상세(TB_SNDNG_DTL) 등록
retSuccess = sndngMapper.insertSndngDtl(sndngDtl);
retSuccess = sndngMapper.insertSndngDtl(sndngDtl); // 발송 상세 등록
if (!retSuccess) {
throw new RuntimeException("발송 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 단속 상태 코드를 수정한다.
if (!newCrdnSttsCd.equals("")) {
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
@ -607,7 +315,7 @@ public class SndngBean extends AbstractComponent {
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!retSuccess) {
throw new RuntimeException("부과제외 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
throw new RuntimeException("발송 상세 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}
}

@ -43,13 +43,8 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic
@Override
public String createWrngSndng(Sndng sndng) {
// 세외수입시스템과 연계하는 업무인지 확인
if ("DPV,ECA,TPV".contains(sndng.getTaskSeCd())) {
return sndngBean.createSndngNxrpLink(sndng);
} else {
return sndngBean.createSndng(sndng);
}
}
@Override
public List<DataObject> getWrngSndngList(SndbQuery req) {
@ -73,13 +68,8 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic
@Override
public String createAdvntceSndng(Sndng sndng) {
// 세외수입시스템과 연계하는 업무인지 확인
if ("DPV,ECA,TPV".contains(sndng.getTaskSeCd())) {
return sndngBean.createSndngNxrpLink(sndng);
} else {
return sndngBean.createSndng(sndng);
}
}
@Override
public List<DataObject> getAdvntceSndngList(SndbQuery req) {
@ -137,13 +127,8 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic
@Override
public String createSndng(Sndng sndng) {
// 세외수입시스템과 연계하는 업무인지 확인
if ("DPV,ECA,TPV".contains(sndng.getTaskSeCd())) {
return sndngBean.createSndngNxrpLink(sndng);
} else {
return sndngBean.createSndng(sndng);
}
}
@Override
public String createSndngLink(Sndng sndng) {

@ -508,9 +508,9 @@ public class BpvController {
}
@Override
@RequestMapping(name="전용차로과태료업무 사전(감경) 부과 대장 등록", value=METHOD_URL.createReductionLevy)
public ModelAndView createReductionLevy(LevyQuery req) {
return super.createReductionLevy(req);
@RequestMapping(name="전용차로과태료업무 사전(감경) 부과 대장 등록", value=METHOD_URL.createReductionLevyList)
public ModelAndView createReductionLevyList(LevyQuery req) {
return super.createReductionLevyList(req);
}
}

@ -465,9 +465,9 @@ public class DpvController {
}
@Override
@RequestMapping(name="사전 감경부과 대장 등록", value=METHOD_URL.createReductionLevy)
public ModelAndView createReductionLevy(LevyQuery req) {
return super.createReductionLevy(req);
@RequestMapping(name="사전 감경부과 대장 등록", value=METHOD_URL.createReductionLevyList)
public ModelAndView createReductionLevyList(LevyQuery req) {
return super.createReductionLevyList(req);
}
}

@ -478,9 +478,9 @@ public class PvsController {
}
@Override
@RequestMapping(name="주정차과태료업무 사전(감경) 부과 대장 등록", value=METHOD_URL.createReductionLevy)
public ModelAndView createReductionLevy(LevyQuery req) {
return super.createReductionLevy(req);
@RequestMapping(name="주정차과태료업무 사전(감경) 부과 대장 등록", value=METHOD_URL.createReductionLevyList)
public ModelAndView createReductionLevyList(LevyQuery req) {
return super.createReductionLevyList(req);
}
}

@ -36,7 +36,6 @@
SELECT VI.VLTN_ID <!-- 위반 ID -->
, VI.SGG_CD <!-- 시군구 코드 -->
, VI.TASK_SE_CD <!-- 업무 구분 코드 -->
, (SELECT GET_CODE_NM('FIM054', VI.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
, VI.VLTN_CD <!-- 위반 코드 -->
, VI.VLTN_ARTCL <!-- 위반 항목 -->
, VI.VLTN_LAW_NM <!-- 위반 법 명 -->
@ -55,6 +54,8 @@
, VI.RGTR <!-- 등록자 -->
, VI.MDFCN_DT <!-- 수정 일시 -->
, VI.MDFR <!-- 수정자 -->
, <include refid="utility.today" /> AS TODAY <!-- 오늘 일자 -->
, (SELECT GET_CODE_NM('FIM054', VI.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
FROM TB_VLTN_INFO VI
</sql>
@ -86,6 +87,9 @@
<if test="txitmCd != null">
AND VI.TXITM_CD = #{txitmCd}
</if>
<if test="useYn != null">
AND VI.USE_YN = #{useYn}
</if>
<include refid="utility.orderBy" />
</select>

@ -602,7 +602,7 @@
</update>
<select id="selectCrdnInfo" parameterType="map" resultType="dataobject">/* 단속 정보 가져오기(levyMapper.selectCrdnInfo) */
SELECT C.CRDN_ID
SELECT C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD
, C.TASK_SE_CD
, C.CRDN_REG_SE_CD
@ -613,7 +613,6 @@
, C.RTPYR_ID
, C.CRDN_YMD
, C.CRDN_TM
, GET_MASK_DATETIME(CRDN_YMD, '-', CRDN_TM, ':') AS CRDN_YMD_TM_MASK <!-- 납기 일자(한글표기) -->
, C.VHRNO
, C.CRDN_STDG_NM
, C.CRDN_ROAD_NM
@ -639,24 +638,25 @@
, C.MINUS_AMT
, C.RCVMT_AMT
, C.BFR_CRDN_ID
, C.DEL_YN
, VI.VLTN_CD
, VI.VLTN_CD <!-- 위반 코드 -->
, VI.VLTN_ARTCL <!-- 위반 항목 -->
, VI.VLTN_LAW_NM <!-- 위반 법 명 -->
, VI.VLTN_LAW1
, VI.VLTN_LAW2
, VI.VLTN_LAW_ETC
, VI.ACNTG_SE_CD
, VI.TXITM_CD
, VI.OPER_ITEM_CD
, VI.SPCL_BIZ_CD
, VI.VLTN_LAW1 <!-- 위반 법1 -->
, VI.VLTN_LAW2 <!-- 위반 법2 -->
, VI.VLTN_LAW_ETC <!-- 위반 법 기타 -->
, VI.ACNTG_SE_CD <!-- 회계 구분 코드 -->
, VI.TXITM_CD <!-- 세목 코드 -->
, VI.OPER_ITEM_CD <!-- 운영 항목 코드 -->
, VI.SPCL_BIZ_CD <!-- 특별회계 사업 코드 -->
, L.LEVY_ID <!-- 부과 ID -->
, <include refid="utility.today" /> AS TODAY <!-- 오늘 일자 -->
, GET_MASK_DATETIME(CRDN_YMD, '-', CRDN_TM, ':') AS CRDN_YMD_TM_MASK <!-- 납기 일자(한글표기) -->
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
FROM TB_CRDN C
INNER JOIN TB_VLTN_INFO VI ON (C.VLTN_ID = VI.VLTN_ID AND C.SGG_CD = VI.SGG_CD AND C.TASK_SE_CD = VI.TASK_SE_CD)
LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND DEL_YN = 'N')
INNER JOIN TB_VLTN_INFO VI ON (C.VLTN_ID = VI.VLTN_ID AND C.SGG_CD = VI.SGG_CD AND C.TASK_SE_CD = VI.TASK_SE_CD AND VI.USE_YN = 'Y')
LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N')
WHERE C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
AND C.DEL_YN = 'N'
AND C.DEL_YN = 'N' <!-- 삭제 여부 -->
</select>
<select id="selectMaxLevyNo" parameterType="map" resultType="String">/* 고지번호 가져오기(levyMapper.selectMaxLevyNo) */

@ -19,7 +19,7 @@
<result property="levyAmt" column="LEVY_AMT" /> <!-- 부과 금액 -->
<result property="adtnAmt" column="ADTN_AMT" /> <!-- 가산 금액 -->
<result property="sumAmt" column="SUM_AMT" /> <!-- 합계 금액 -->
<result property="prcsSttsCd" column="PRCS_STTS_CD" /> <!-- 처리 상태 코드 -->
<result property="nxrpMtchgSttsCd" column="NXRP_MTCHG_STTS_CD" /> <!-- 처리 상태 코드 -->
<result property="epayno" column="EPAYNO" /> <!-- 전자납부번호 -->
<result property="bankNm1" column="BANK_NM1" /> <!-- 은행 명1 -->
<result property="vractno1" column="VRACTNO1" /> <!-- 가상계좌번호1 -->
@ -66,7 +66,7 @@
, NM.LEVY_AMT <!-- 부과 금액 -->
, NM.ADTN_AMT <!-- 가산 금액 -->
, NM.SUM_AMT <!-- 합계 금액 -->
, NM.PRCS_STTS_CD <!-- 처리 상태 코드 -->
, NM.NXRP_MTCHG_STTS_CD <!-- 세외수입 매칭 상태 코드 -->
, NM.EPAYNO <!-- 전자납부번호 -->
, NM.BANK_NM1 <!-- 은행 명1 -->
, NM.VRACTNO1 <!-- 가상계좌번호1 -->
@ -185,7 +185,6 @@
LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N')
WHERE C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
AND C.DEL_YN = 'N'
<include refid="utility.orderBy" />
</select>
<insert id="insertNxrpMtchg" parameterType="map">/* 세외수입 매칭 내역 등록(nxrpMtchgMapper.insertNxrpMtchg) */
@ -208,7 +207,7 @@
, LEVY_AMT <!-- 부과 금액 -->
, ADTN_AMT <!-- 가산 금액 -->
, SUM_AMT <!-- 합계 금액 -->
, PRCS_STTS_CD <!-- 처리 상태 코드 -->
, NXRP_MTCHG_STTS_CD <!-- 세외수입 매칭 상태 코드 -->
, EPAYNO <!-- 전자납부번호 -->
, BANK_NM1 <!-- 은행 명1 -->
, VRACTNO1 <!-- 가상계좌번호1 -->
@ -232,6 +231,7 @@
, VRACTNO10 <!-- 가상계좌번호10 -->
, BANK_NM11 <!-- 은행 명11 -->
, VRACTNO11 <!-- 가상계좌번호11 -->
, DEL_YN <!-- 삭제 여부 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, MDFCN_DT <!-- 수정 일시 -->
@ -250,7 +250,7 @@
, #{nxrpMtchg.levyAmt} <!-- 부과 금액 -->
, #{nxrpMtchg.adtnAmt} <!-- 가산 금액 -->
, #{nxrpMtchg.sumAmt} <!-- 합계 금액 -->
, #{nxrpMtchg.prcsSttsCd} <!-- 처리 상태 코드 -->
, #{nxrpMtchg.nxrpMtchgSttsCd} <!-- 세외수입 매칭 상태 코드 -->
, #{nxrpMtchg.epayno} <!-- 전자납부번호 -->
, #{nxrpMtchg.bankNm1} <!-- 은행 명1 -->
, #{nxrpMtchg.vractno1} <!-- 가상계좌번호1 -->
@ -274,6 +274,7 @@
, #{nxrpMtchg.vractno10} <!-- 가상계좌번호10 -->
, #{nxrpMtchg.bankNm11} <!-- 은행 명11 -->
, #{nxrpMtchg.vractno11} <!-- 가상계좌번호11 -->
, 'N' <!-- 삭제 여부 -->
, <include refid="utility.now" /> <!-- 등록 일시 -->
, #{nxrpMtchg.createdBy} <!-- 등록자 -->
, <include refid="utility.now" /> <!-- 수정 일시 -->
@ -293,7 +294,7 @@
, LEVY_AMT = #{nxrpMtchg.levyAmt} <!-- 부과 금액 -->
, ADTN_AMT = #{nxrpMtchg.adtnAmt} <!-- 가산 금액 -->
, SUM_AMT = #{nxrpMtchg.sumAmt} <!-- 합계 금액 -->
, PRCS_STTS_CD = #{nxrpMtchg.prcsSttsCd} <!-- 처리 상태 코드 -->
, NXRP_MTCHG_STTS_CD = #{nxrpMtchg.nxrpMtchgSttsCd} <!-- 세외수입 매칭 상태 코드 -->
, EPAYNO = #{nxrpMtchg.epayno} <!-- 전자납부번호 -->
, BANK_NM1 = #{nxrpMtchg.bankNm1} <!-- 은행 명1 -->
, VRACTNO1 = #{nxrpMtchg.vractno1} <!-- 가상계좌번호1 -->
@ -334,7 +335,7 @@
<update id="updatePrcsSttsCd" parameterType="map">/* 세외수입 매칭 내역에서 처리상태코드 수정(nxrpMtchgMapper.updatePrcsSttsCd) */
UPDATE TB_NXRP_MTCHG
SET PRCS_STTS_CD = #{nxrpMtchg.prcsSttsCd} <!-- 처리 상태 코드 -->
SET NXRP_MTCHG_STTS_CD = #{nxrpMtchg.nxrpMtchgSttsCd} <!-- 세외수입 매칭 상태 코드 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{nxrpMtchg.modifiedBy} <!-- 수정자 -->
WHERE MTCHG_ID = #{nxrpMtchg.mtchgId}

@ -507,6 +507,11 @@
, SD.SVBTC_ID <!-- 공시송달 ID -->
, SD.CRDN_ID <!-- 단속 ID -->
, SD.LEVY_ID <!-- 부과 ID -->
, SD.SVBTC_ID <!-- 공시송달 ID -->
, SD.MTCHG_ID <!-- 매칭 ID -->
, SD.SNDNG_SE_CD <!-- 발송 구분 코드 -->
, SD.SNDNG_YMD <!-- 발송 일자 -->
, SD.SNDNG_END_YMD <!-- 발송 종료 일자 -->
, SD.VHRNO <!-- 차량번호 -->
, SD.CRDN_DT <!-- 단속 일시 -->
, SD.CRDN_STDG_NM <!-- 단속 법정동 명 -->
@ -514,16 +519,13 @@
, SD.LEV_KEY <!-- 세외수입 부과키 -->
, SD.FYR <!-- 회계연도 -->
, SD.LEVY_NO <!-- 부과 번호 -->
, SD.SNDNG_YMD <!-- 발송 일자 -->
, SD.LEVY_YMD <!-- 부과 일자 -->
, SD.DUDT_YMD <!-- 납기 일자 -->
, GET_MASK_DATE(SD.DUDT_YMD, 'K') AS DUDT_YMD_MASK_KOR <!-- 납기 일자(한글표기) -->
, GET_MASK_DATE(SD.DUDT_YMD, '.') AS DUDT_YMD_MASK <!-- 납기 일자 -->
, SD.DUDT_AFTR_YMD <!-- 납기 후 일자 -->
, GET_MASK_DATE(SD.DUDT_AFTR_YMD, '.') AS DUDT_AFTR_YMD_MASK <!-- 납기 후 일자 -->
, SD.FFNLG_AMT <!-- 과태료 금액 -->
, SD.PCPTAX <!-- 부과 본세 -->
, SD.ADAMT <!-- 부과 가산금 -->
, SD.SUM_AMT <!-- 부과 합계 금액 -->
, SD.PCPTAX <!-- 본세 -->
, SD.ADAMT <!-- 가산금 -->
, SD.SUM_AMT <!-- 합계 금액 -->
, SD.RTPYR_NM <!-- 납부자 명 -->
, SD.RTPYR_NO <!-- 납부자 번호 -->
, SD.RTPYR_ADDR <!-- 납부자 주소 -->
@ -533,44 +535,39 @@
, SD.RG_NO <!-- 등기 번호 -->
, SD.DLVR_YMD <!-- 배달 일자 -->
, SD.DLVR_TM <!-- 배달 시각 -->
, GET_CODE('EGP010', SD.UNDLVR_RSN_NM) AS UNDLVR_RSN_CD <!-- 미배달 사유 코드 -->
, SD.UNDLVR_RSN_NM <!-- 미배달 사유 명 -->
, SD.RCPN_NM <!-- 수령인 명 -->
, SD.RCPN_REL_NM <!-- 수령인 관계 명 -->
, SD.SNDNG_DTL_STTS_CD <!-- 발송 상세 상태 코드 -->
, (SELECT GET_CODE_NM('FIM050', SD.SNDNG_DTL_STTS_CD) FROM DUAL) AS SNDNG_DTL_STTS_NM <!-- 발송 상세 상태 명 -->
, SD.BFR_SNDNG_DTL_STTS_CD <!-- 전 발송 상세 상태 코드 -->
, (SELECT GET_CODE_NM('FIM050', SD.BFR_SNDNG_DTL_STTS_CD) FROM DUAL) AS BFR_SNDNG_DTL_STTS_NM<!-- 전 발송 상세 상태 명 -->
, SD.BFR_DLVR_YMD <!-- 전 배달 일자 -->
, SD.BFR_DLVR_HR <!-- 전 배달 시간 -->
, SD.SNDNG_RCVMT_CD <!-- 발송 수납 코드 -->
, (SELECT GET_CODE_NM('FIM051', SD.SNDNG_RCVMT_CD) FROM DUAL) AS SNDNG_RCVMT_NM <!-- 발송 수납 명 -->
, SD.ADDR_CHG_CD <!-- 주소 변경 코드 -->
, SD.TAX_NO <!-- 납세 번호 -->
, SD.EPAYNO <!-- 전자납부번호 -->
, GET_MASK_EPAYNO(SD.EPAYNO) AS EPAYNO_MASK <!-- 전자납부번호 -->
, SD.BANK_NM <!-- 은행 명 -->
, SD.VR_ACTNO <!-- 가상 계좌번호 -->
, SD.BANK_NM_2 <!-- 은행 명 2 -->
, SD.VR_ACTNO_2 <!-- 가상 계좌번호 2 -->
, SD.BANK_NM_3 <!-- 은행 명 3 -->
, SD.VR_ACTNO_3 <!-- 가상 계좌번호 3 -->
, SD.BANK_NM_4 <!-- 은행 명 4 -->
, SD.VR_ACTNO_4 <!-- 가상 계좌번호 4 -->
, SD.BANK_NM_5 <!-- 은행 명 5 -->
, SD.VR_ACTNO_5 <!-- 가상 계좌번호 5 -->
, SD.BANK_NM_6 <!-- 은행 명 6 -->
, SD.VR_ACTNO_6 <!-- 가상 계좌번호 6 -->
, SD.BANK_NM_7 <!-- 은행 명 7 -->
, SD.VR_ACTNO_7 <!-- 가상 계좌번호 7 -->
, SD.BANK_NM_8 <!-- 은행 명 8 -->
, SD.VR_ACTNO_8 <!-- 가상 계좌번호 8 -->
, SD.BANK_NM_9 <!-- 은행 명 9 -->
, SD.VR_ACTNO_9 <!-- 가상 계좌번호 9 -->
, SD.BANK_NM_10 <!-- 은행 명 10 -->
, SD.VR_ACTNO_10 <!-- 가상 계좌번호 10 -->
, SD.BANK_NM_11 <!-- 은행 명 11 -->
, SD.VR_ACTNO_11 <!-- 가상 계좌번호 11 -->
, SD.BANK_NM2 <!-- 은행 명 2 -->
, SD.VR_ACTNO2 <!-- 가상 계좌번호 2 -->
, SD.BANK_NM3 <!-- 은행 명 3 -->
, SD.VR_ACTNO3 <!-- 가상 계좌번호 3 -->
, SD.BANK_NM4 <!-- 은행 명 4 -->
, SD.VR_ACTNO4 <!-- 가상 계좌번호 4 -->
, SD.BANK_NM5 <!-- 은행 명 5 -->
, SD.VR_ACTNO5 <!-- 가상 계좌번호 5 -->
, SD.BANK_NM6 <!-- 은행 명 6 -->
, SD.VR_ACTNO6 <!-- 가상 계좌번호 6 -->
, SD.BANK_NM7 <!-- 은행 명 7 -->
, SD.VR_ACTNO7 <!-- 가상 계좌번호 7 -->
, SD.BANK_NM8 <!-- 은행 명 8 -->
, SD.VR_ACTNO8 <!-- 가상 계좌번호 8 -->
, SD.BANK_NM9 <!-- 은행 명 9 -->
, SD.VR_ACTNO9 <!-- 가상 계좌번호 9 -->
, SD.BANK_NM10 <!-- 은행 명 10 -->
, SD.VR_ACTNO10 <!-- 가상 계좌번호 10 -->
, SD.BANK_NM11 <!-- 은행 명 11 -->
, SD.VR_ACTNO11 <!-- 가상 계좌번호 11 -->
, SD.REG_DT <!-- 등록 일시 -->
, SD.RGTR <!-- 등록자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.RGTR) AS RGTR_NM <!-- 등록자 명 -->
@ -587,7 +584,6 @@
, S.TASK_SE_CD <!-- 업무 구분 코드 -->
, S.SNDNG_REG_SE_CD <!-- 발송 등록 구분 코드 -->
, S.SNDNG_SE_CD <!-- 발송 구분 코드 -->
, (SELECT GET_CODE_NM('FIM047', S.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM <!-- 발송 구분 명 -->
, S.LEVY_BGNG_YMD <!-- 부과 시작 일자 -->
, S.LEVY_END_YMD <!-- 부과 종료 일자 -->
, S.TTL_NM <!-- 제목 명 -->
@ -599,6 +595,15 @@
, S.EPOST_NOTICE_ID <!-- 전자우편 안내문 ID -->
, S.SNDNG_STTS_CD <!-- 발송 상태 코드 -->
, S.RESND_YN <!-- 재발송 여부 -->
, GET_MASK_DATE(SD.DUDT_YMD, 'K') AS DUDT_YMD_MASK_KOR <!-- 납기 일자(한글표기) -->
, GET_MASK_DATE(SD.DUDT_YMD, '.') AS DUDT_YMD_MASK <!-- 납기 일자 -->
, GET_MASK_DATE(SD.DUDT_AFTR_YMD, '.') AS DUDT_AFTR_YMD_MASK <!-- 납기 후 일자 -->
, GET_CODE('EGP010', SD.UNDLVR_RSN_NM) AS UNDLVR_RSN_CD <!-- 미배달 사유 코드 -->
, (SELECT GET_CODE_NM('FIM050', SD.SNDNG_DTL_STTS_CD) FROM DUAL) AS SNDNG_DTL_STTS_NM <!-- 발송 상세 상태 명 -->
, (SELECT GET_CODE_NM('FIM050', SD.BFR_SNDNG_DTL_STTS_CD) FROM DUAL) AS BFR_SNDNG_DTL_STTS_NM<!-- 전 발송 상세 상태 명 -->
, (SELECT GET_CODE_NM('FIM051', SD.SNDNG_RCVMT_CD) FROM DUAL) AS SNDNG_RCVMT_NM <!-- 발송 수납 명 -->
, GET_MASK_EPAYNO(SD.EPAYNO) AS EPAYNO_MASK <!-- 전자납부번호 -->
, (SELECT GET_CODE_NM('FIM047', S.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM <!-- 발송 구분 명 -->
FROM TB_SNDNG_DTL SD
LEFT OUTER JOIN TB_SNDNG S ON (SD.SNDNG_ID = S.SNDNG_ID)
</sql>
@ -1155,117 +1160,13 @@
AND DEL_YN = 'N'
</update>
<select id="selectSndngDtlLevyInfo" parameterType="string" resultType="dataobject">/* 발송 상세 및 부과 객체 가져오기(sndngMapper.selectSndngDtlLevyInfo) */
SELECT SD.SNDNG_DTL_ID <!-- 발송 상세 ID -->
, SD.SNDNG_ID <!-- 발송 ID -->
, SD.SVBTC_ID <!-- 공시송달 ID -->
, SD.CRDN_ID <!-- 단속 ID -->
, SD.LEVY_ID <!-- 부과 ID -->
, SD.VHRNO <!-- 차량번호 -->
, SD.CRDN_DT <!-- 단속 일시 -->
, SD.CRDN_PLC <!-- 단속 장소 -->
, SD.LEV_KEY <!-- 세외수입 부과키 -->
, SD.FYR <!-- 회계연도 -->
, SD.LEVY_NO <!-- 부과 번호 -->
, SD.SNDNG_YMD <!-- 발송 일자 -->
, SD.DUDT_YMD <!-- 납기 일자 -->
, SD.FFNLG_AMT <!-- 과태료 금액 -->
, SD.LEVY_PCPTAX <!-- 부과 본세 -->
, SD.LEVY_ADAMT <!-- 부과 가산금 -->
, SD.LEVY_SUM_AMT <!-- 부과 합계 금액 -->
, SD.RTPYR_NM <!-- 납부자 명 -->
, SD.RTPYR_NO <!-- 납부자 번호 -->
, SD.RTPYR_ADDR <!-- 납부자 주소 -->
, SD.RTPYR_DTL_ADDR <!-- 납부자 상세 주소 -->
, SD.RTPYR_ZIP <!-- 납부자 우편번호 -->
, SD.CON_KEY <!-- 외부연계식별키 -->
, SD.RG_NO <!-- 등기 번호 -->
, SD.DLVR_YMD <!-- 배달 일자 -->
, SD.DLVR_TM <!-- 배달 시각 -->
, SD.UNDLVR_RSN_NM <!-- 미배달 사유 명 -->
, SD.RCPN_NM <!-- 수령인 명 -->
, SD.RCPN_REL_NM <!-- 수령인 관계 명 -->
, SD.SNDNG_DTL_STTS_CD <!-- 발송 상세 상태 코드 -->
, (SELECT GET_CODE_NM('FIM050', SD.SNDNG_DTL_STTS_CD) FROM DUAL) AS SNDNG_DTL_STTS_NM
, SD.BFR_SNDNG_DTL_STTS_CD <!-- 전 발송 상세 상태 코드 -->
, (SELECT GET_CODE_NM('FIM050', SD.BFR_SNDNG_DTL_STTS_CD) FROM DUAL) AS BFR_SNDNG_DTL_STTS_NM
, SD.BFR_DLVR_YMD <!-- 전 배달 일자 -->
, SD.BFR_DLVR_HR <!-- 전 배달 시간 -->
, SD.SNDNG_RCVMT_CD <!-- 발송 수납 코드 -->
, (SELECT GET_CODE_NM('FIM051', SD.SNDNG_RCVMT_CD) FROM DUAL) AS SNDNG_RCVMT_NM
, SD.ADDR_CHG_CD <!-- 주소 변경 코드 -->
, C.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 -->
, L.DEPT_CD <!-- 부서 코드 -->
, L.FYR <!-- 회계연도 -->
, L.ACNTG_SE_CD <!-- 회계 구분 코드 -->
, L.TXITM_CD <!-- 세목 코드 -->
, L.OPER_ITEM_CD <!-- 운영 항목 코드 -->
, L.SPCL_BIZ_CD <!-- 특별회계 사업 코드 -->
, L.LEVY_NO <!-- 부과 번호 -->
, L.INSPY_SN <!-- 분납 순번 -->
, L.LEVY_SE_CD <!-- 부과 구분 코드 -->
, L.LEVY_YMD <!-- 부과 일자 -->
, L.FRST_DUDT_YMD <!-- 최초 납기 일자 -->
, L.DUDT_YMD <!-- 납기 일자 -->
, L.DUDT_AFTR_YMD <!-- 납기 후 일자 -->
, L.LEVY_PCPTAX <!-- 부과 본세 -->
, L.LEVY_ADAMT <!-- 부과 가산금 -->
, L.INSPY_INT <!-- 분납 이자 -->
, L.LEVY_PCPTAX <!-- 부과 본세 -->
, L.LEVY_ADAMT <!-- 부과 가산금 -->
, L.INSPY_INT <!-- 분납 이자 -->
, L.RCVMT_PCPTAX <!-- 수납 본세 -->
, L.RCVMT_ADAMT <!-- 수납 가산금 -->
, L.RDCAMT_PCPTAX <!-- 감액 본세 -->
, L.RDCAMT_ADAMT <!-- 감액 가산금 -->
, L.LEVY_PCPTAX-L.RCVMT_PCPTAX-L.RDCAMT_PCPTAX AS PCPTAX <!-- 본세 -->
, L.LEVY_ADAMT-L.RCVMT_ADAMT-L.RDCAMT_ADAMT AS ADAMT <!-- 가산금 -->
, L.SUM_AMT <!-- 합계 금액 -->
, L.EPAYNO <!-- 전자납부번호 -->
, L.BANK_NM <!-- 은행 명 -->
, L.VR_ACTNO <!-- 가상 계좌번호 -->
, L.BANK_NM2 <!-- 은행 명 2 -->
, L.VR_ACTNO2 <!-- 가상 계좌번호 2 -->
, L.BANK_NM3 <!-- 은행 명 3 -->
, L.VR_ACTNO3 <!-- 가상 계좌번호 3 -->
, L.BANK_NM4 <!-- 은행 명 4 -->
, L.VR_ACTNO4 <!-- 가상 계좌번호 4 -->
, L.BANK_NM5 <!-- 은행 명 5 -->
, L.VR_ACTNO5 <!-- 가상 계좌번호 5 -->
, L.BANK_NM6 <!-- 은행 명 6 -->
, L.VR_ACTNO6 <!-- 가상 계좌번호 6 -->
, L.BANK_NM7 <!-- 은행 명 7 -->
, L.VR_ACTNO7 <!-- 가상 계좌번호 7 -->
, L.BANK_NM8 <!-- 은행 명 8 -->
, L.VR_ACTNO8 <!-- 가상 계좌번호 8 -->
, L.BANK_NM9 <!-- 은행 명 9 -->
, L.VR_ACTNO9 <!-- 가상 계좌번호 9 -->
, L.BANK_NM10 <!-- 은행 명 10 -->
, L.VR_ACTNO10 <!-- 가상 계좌번호 10 -->
, L.BANK_NM11 <!-- 은행 명 11 -->
, L.VR_ACTNO11 <!-- 가상 계좌번호 11 -->
FROM TB_SNDNG_DTL SD
INNER JOIN TB_CRDN C ON (SD.CRDN_ID = C.CRDN_ID)
INNER JOIN TB_LEVY L ON (SD.LEVY_ID = L.LEVY_ID)
WHERE SD.SNDNG_DTL_ID = #{sndngDtlId}
</select>
<sql id="selectCrdnPayerTrgt">
SELECT C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD <!-- 시군구 코드 -->
, C.TASK_SE_CD <!-- 업무 구분 코드 -->
, C.CRDN_INPT_SE_CD <!-- 단속 입력 구분 코드 -->
, (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM
, C.CRDN_YMD <!-- 단속 일자 -->
, C.CRDN_TM <!-- 단속 시각 -->
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM
, GET_MASK_DATETIME(C.CRDN_YMD, '-', C.CRDN_TM, ':') AS CRDN_YMD_TM_MASK
, C.VHRNO <!-- 차량번호 -->
, C.CRDN_STDG_NM <!-- 단속 법정동 명 -->
, C.CRDN_ROAD_NM <!-- 단속 도로 명 -->
@ -1273,20 +1174,14 @@
, C.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 -->
, C.ADVNTCE_AMT <!-- 사전통지 금액 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM
, C.CRDN_STTS_CHG_DT <!-- 단속 상태 변경 일시 -->
, C.REG_DT <!-- 등록 일시 -->
, C.RGTR <!-- 등록자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.RGTR) AS RGTR_NM
, C.MDFCN_DT <!-- 수정 일시 -->
, C.MDFR <!-- 수정자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.MDFR) AS MDFR_NM
, CA.CRDN_SE_CD <!-- 단속 구분 코드 -->
, (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM
, CA.CRDN_SPAREA_CD <!-- 단속 특별구역 코드 -->
, (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM
, CA.PARKNG_PSBLTY_RSLT_CD <!-- 주차 가능 결과 코드 -->
, (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM
, VI.VLTN_ID <!-- 위반 ID -->
, VI.VLTN_CD <!-- 위반 코드 -->
, VI.VLTN_ARTCL <!-- 위반 항목 -->
@ -1306,6 +1201,7 @@
, P.ZIP <!-- 우편번호 -->
, P.ADDR <!-- 주소 -->
, P.DTL_ADDR <!-- 상세 주소 -->
, L.LEVY_ID <!-- 부과 ID -->
, L.INST_CD <!-- 기관 코드 -->
, L.DEPT_CD <!-- 부서 코드 -->
, L.FYR <!-- 회계연도 -->
@ -1320,9 +1216,6 @@
, L.FRST_DUDT_YMD <!-- 최초 납기 일자 -->
, L.DUDT_YMD <!-- 납기 일자 -->
, L.DUDT_AFTR_YMD <!-- 납기 후 일자 -->
, (CASE WHEN L.FFNLG_AMT IS NOT NULL THEN L.FFNLG_AMT
ELSE C.FFNLG_AMT
END) AS FFNLG_AMT <!-- 과태료 금액 -->
, L.LEVY_PCPTAX <!-- 부과 본세 -->
, L.LEVY_ADAMT <!-- 부과 가산금 -->
, L.INSPY_INT <!-- 분납 이자 -->
@ -1330,8 +1223,6 @@
, L.RCVMT_ADAMT <!-- 수납 가산금 -->
, L.RDCAMT_PCPTAX <!-- 감액 본세 -->
, L.RDCAMT_ADAMT <!-- 감액 가산금 -->
, L.LEVY_PCPTAX-L.RCVMT_PCPTAX-L.RDCAMT_PCPTAX AS PCPTAX <!-- 본세 -->
, L.LEVY_ADAMT-L.RCVMT_ADAMT-L.RDCAMT_ADAMT AS ADAMT <!-- 가산금 -->
, L.SUM_AMT <!-- 합계 금액 -->
, L.DUDT_AFTR_AMT <!-- 납기 후 금액 -->
, L.TXTN_THING <!-- 과세 물건 -->
@ -1364,6 +1255,20 @@
, L.VR_ACTNO10 <!-- 가상 계좌번호10 -->
, L.BANK_NM11 <!-- 은행 명11 -->
, L.VR_ACTNO11 <!-- 가상 계좌번호11 -->
, (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM <!-- 단속 입력 구분 명 -->
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM <!-- 단속 일시 -->
, GET_MASK_DATETIME(C.CRDN_YMD, '-', C.CRDN_TM, ':') AS CRDN_YMD_TM_MASK <!-- 단속 일시 마스크 -->
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
, (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM <!-- 단속 구분 명 -->
, (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM <!-- 단속 특별구역 명 -->
, (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM<!-- 주차 가능 결과 명 -->
, (CASE WHEN L.FFNLG_AMT IS NOT NULL THEN L.FFNLG_AMT
ELSE C.FFNLG_AMT
END) AS FFNLG_AMT <!-- 과태료 금액 -->
, L.LEVY_PCPTAX-L.RCVMT_PCPTAX-L.RDCAMT_PCPTAX AS PCPTAX <!-- 본세 -->
, L.LEVY_ADAMT-L.RCVMT_ADAMT-L.RDCAMT_ADAMT AS ADAMT <!-- 가산금 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.RGTR) AS RGTR_NM <!-- 등록자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.MDFR) AS MDFR_NM <!-- 수정자 -->
FROM TB_CRDN C
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID)
INNER JOIN TB_VLTN_INFO VI ON (C.VLTN_ID = VI.VLTN_ID)
@ -1390,8 +1295,9 @@
<insert id="insertSndngDtl" parameterType="map">/* 발송 상세 등록(sndngMapper.insertSndngDtl) */
<selectKey resultType="string" keyProperty="sndngDtl.sndngDtlId" keyColumn="NEW_ID" order="BEFORE">
SELECT LPAD(CAST(IFNULL(MAX(SNDNG_DTL_ID) + 1, 1) AS INT), 10, '0') AS NEW_ID
SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(SNDNG_DTL_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID
FROM TB_SNDNG_DTL
WHERE SNDNG_DTL_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%')
</selectKey>
INSERT
INTO TB_SNDNG_DTL (
@ -1400,7 +1306,10 @@
, CRDN_ID <!-- 단속 ID -->
, LEVY_ID <!-- 부과 ID -->
, SVBTC_ID <!-- 공시송달 ID -->
, MTCHG_ID <!-- 매칭 ID -->
, SNDNG_SE_CD <!-- 발송 구분 코드 -->
, SNDNG_YMD <!-- 발송 일자 -->
, SNDNG_END_YMD <!-- 발송 종료 일자 -->
, VHRNO <!-- 차량번호 -->
, CRDN_DT <!-- 단속 일시 -->
, CRDN_STDG_NM <!-- 단속 법정동 명 -->
@ -1408,12 +1317,14 @@
, LEV_KEY <!-- 세외수입 부과키 -->
, FYR <!-- 회계연도 -->
, LEVY_NO <!-- 부과 번호 -->
, SNDNG_YMD <!-- 발송 일자 -->
, LEVY_YMD <!-- 부과 일자 -->
, DUDT_YMD <!-- 납기 일자 -->
, DUDT_AFTR_YMD <!-- 납기 후 일자 -->
, FFNLG_AMT <!-- 과태료 금액 -->
, PCPTAX <!-- 부과 본세 -->
, ADAMT <!-- 부과 가산금 -->
, SUM_AMT <!-- 부과 합계 금액 -->
, PCPTAX <!-- 본세 -->
, ADAMT <!-- 가산금 -->
, SUM_AMT <!-- 합계 금액 -->
, DUDT_AFTR_AMT <!-- 납기 후 금액 -->
, RTPYR_NM <!-- 납부자 명 -->
, RTPYR_NO <!-- 납부자 번호 -->
, RTPYR_ADDR <!-- 납부자 주소 -->
@ -1436,26 +1347,26 @@
, EPAYNO <!-- 전자납부번호 -->
, BANK_NM <!-- 은행 명 -->
, VR_ACTNO <!-- 가상 계좌번호 -->
, BANK_NM_2 <!-- 은행 명 2 -->
, VR_ACTNO_2 <!-- 가상 계좌번호 2 -->
, BANK_NM_3 <!-- 은행 명 3 -->
, VR_ACTNO_3 <!-- 가상 계좌번호 3 -->
, BANK_NM_4 <!-- 은행 명 4 -->
, VR_ACTNO_4 <!-- 가상 계좌번호 4 -->
, BANK_NM_5 <!-- 은행 명 5 -->
, VR_ACTNO_5 <!-- 가상 계좌번호 5 -->
, BANK_NM_6 <!-- 은행 명 6 -->
, VR_ACTNO_6 <!-- 가상 계좌번호 6 -->
, BANK_NM_7 <!-- 은행 명 7 -->
, VR_ACTNO_7 <!-- 가상 계좌번호 7 -->
, BANK_NM_8 <!-- 은행 명 8 -->
, VR_ACTNO_8 <!-- 가상 계좌번호 8 -->
, BANK_NM_9 <!-- 은행 명 9 -->
, VR_ACTNO_9 <!-- 가상 계좌번호 9 -->
, BANK_NM_10 <!-- 은행 명 10 -->
, VR_ACTNO_10 <!-- 가상 계좌번호 10 -->
, BANK_NM_11 <!-- 은행 명 11 -->
, VR_ACTNO_11 <!-- 가상 계좌번호 11 -->
, BANK_NM2 <!-- 은행 명 2 -->
, VR_ACTNO2 <!-- 가상 계좌번호 2 -->
, BANK_NM3 <!-- 은행 명 3 -->
, VR_ACTNO3 <!-- 가상 계좌번호 3 -->
, BANK_NM4 <!-- 은행 명 4 -->
, VR_ACTNO4 <!-- 가상 계좌번호 4 -->
, BANK_NM5 <!-- 은행 명 5 -->
, VR_ACTNO5 <!-- 가상 계좌번호 5 -->
, BANK_NM6 <!-- 은행 명 6 -->
, VR_ACTNO6 <!-- 가상 계좌번호 6 -->
, BANK_NM7 <!-- 은행 명 7 -->
, VR_ACTNO7 <!-- 가상 계좌번호 7 -->
, BANK_NM8 <!-- 은행 명 8 -->
, VR_ACTNO8 <!-- 가상 계좌번호 8 -->
, BANK_NM9 <!-- 은행 명 9 -->
, VR_ACTNO9 <!-- 가상 계좌번호 9 -->
, BANK_NM10 <!-- 은행 명 10 -->
, VR_ACTNO10 <!-- 가상 계좌번호 10 -->
, BANK_NM11 <!-- 은행 명 11 -->
, VR_ACTNO11 <!-- 가상 계좌번호 11 -->
, DEL_YN <!-- 삭제 여부 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
@ -1468,7 +1379,10 @@
, #{sndngDtl.crdnId} <!-- 단속 ID -->
, #{sndngDtl.levyId} <!-- 부과 ID -->
, #{sndngDtl.svbtcId} <!-- 공시송달 ID -->
, #{sndngDtl.mtchgId} <!-- 매칭 ID -->
, #{sndngDtl.sndngSeCd} <!-- 발송 구분 코드 -->
, #{sndngDtl.sndngYmd} <!-- 발송 일자 -->
, #{sndngDtl.sndngEndYmd} <!-- 발송 종료 일자 -->
, #{sndngDtl.vhrno} <!-- 차량번호 -->
, #{sndngDtl.crdnDt} <!-- 단속 일시 -->
, #{sndngDtl.crdnStdgNm} <!-- 단속 법정동 명 -->
@ -1476,12 +1390,14 @@
, #{sndngDtl.levKey} <!-- 세외수입 부과키 -->
, #{sndngDtl.fyr} <!-- 회계연도 -->
, #{sndngDtl.levyNo} <!-- 부과 번호 -->
, #{sndngDtl.sndngYmd} <!-- 발송 일자 -->
, #{sndngDtl.levyYmd} <!-- 부과 일자 -->
, #{sndngDtl.dudtYmd} <!-- 납기 일자 -->
, #{sndngDtl.dudtAftrYmd} <!-- 납기 후 일자 -->
, #{sndngDtl.ffnlgAmt} <!-- 과태료 금액 -->
, #{sndngDtl.pcptax} <!-- 부과 본세 -->
, #{sndngDtl.adamt} <!-- 부과 가산금 -->
, #{sndngDtl.sumAmt} <!-- 부과 합계 금액 -->
, #{sndngDtl.pcptax} <!-- 본세 -->
, #{sndngDtl.adamt} <!-- 가산금 -->
, #{sndngDtl.sumAmt} <!-- 합계 금액 -->
, #{sndngDtl.dudtAftrAmt} <!-- 납기 후 금액 -->
, #{sndngDtl.rtpyrNm} <!-- 납부자 명 -->
, #{sndngDtl.rtpyrNo} <!-- 납부자 번호 -->
, #{sndngDtl.rtpyrAddr} <!-- 납부자 주소 -->
@ -1534,22 +1450,27 @@
<update id="updateSndngDtl" parameterType="map">/* 발송 상세 수정(sndngMapper.updateSndngDtl) */
UPDATE TB_SNDNG_DTL
SET CRDN_ID = #{sndngDtl.crdnId} <!-- 단속 ID -->
, LEVY_ID = #{sndngDtl.levyId} <!-- 부과 ID -->
SET LEVY_ID = #{sndngDtl.levyId} <!-- 부과 ID -->
, SVBTC_ID = #{sndngDtl.svbtcId} <!-- 공시송달 ID -->
, MTCHG_ID = #{sndngDtl.mtchgId} <!-- 매칭 ID -->
, SNDNG_SE_CD = #{sndngDtl.sndngSeCd} <!-- 발송 구분 코드 -->
, SNDNG_YMD = #{sndngDtl.sndngYmd} <!-- 발송 일자 -->
, SNDNG_END_YMD = #{sndngDtl.sndngEndYmd} <!-- 발송 종료 일자 -->
, VHRNO = #{sndngDtl.vhrno} <!-- 차량번호 -->
, CRDN_DT = #{sndngDtl.crdnDt} <!-- 단속 일시 -->
, CRDN_STDG_NM = #{sndngDtl.crdnStdgNm} <!-- 단속 법정동 명 -->
, CRDN_PLC = #{sndngDtl.crdnPlc} <!-- 단속 장소 -->
, LEV_KEY = #{sndngDtl.levKey} <!-- 세외수입 부과키 -->
, FYR = #{sndngDtl.fyr} <!-- 회계연도 -->
, LEVY_NO = #{sndngDtl.levyNo} <!-- 부과 번호 -->
, SNDNG_YMD = #{sndngDtl.sndngYmd} <!-- 발송 일자 -->
, LEVY_YMD = #{sndngDtl.levyYmd} <!-- 부과 일자 -->
, DUDT_YMD = #{sndngDtl.dudtYmd} <!-- 납기 일자 -->
, DUDT_AFTR_YMD = #{sndngDtl.dudtAftrYmd} <!-- 납기 후 일자 -->
, FFNLG_AMT = #{sndngDtl.ffnlgAmt} <!-- 과태료 금액 -->
, LEVY_PCPTAX = #{sndngDtl.levyPcptax} <!-- 부과 본세 -->
, LEVY_ADAMT = #{sndngDtl.levyAdamt} <!-- 부과 가산금 -->
, LEVY_SUM_AMT = #{sndngDtl.levySumAmt} <!-- 부과 합계 금액 -->
, PCPTAX = #{sndngDtl.pcptax} <!-- 본세 -->
, ADAMT = #{sndngDtl.adamt} <!-- 가산금 -->
, SUM_AMT = #{sndngDtl.sumAmt} <!-- 합계 금액 -->
, DUDT_AFTR_AMT = #{sndngDtl.dudtAftrAmt} <!-- 납기 후 금액 -->
, RTPYR_NM = #{sndngDtl.rtpyrNm} <!-- 납부자 명 -->
, RTPYR_NO = #{sndngDtl.rtpyrNo} <!-- 납부자 번호 -->
, RTPYR_ADDR = #{sndngDtl.rtpyrAddr} <!-- 납부자 주소 -->
@ -1572,26 +1493,26 @@
, EPAYNO = #{sndngDtl.epayno} <!-- 전자납부번호 -->
, BANK_NM = #{sndngDtl.bankNm} <!-- 은행 명 -->
, VR_ACTNO = #{sndngDtl.vrActno} <!-- 가상 계좌번호 -->
, BANK_NM_2 = #{sndngDtl.bankNm2} <!-- 은행 명 2 -->
, VR_ACTNO_2 = #{sndngDtl.vrActno2} <!-- 가상 계좌번호 2 -->
, BANK_NM_3 = #{sndngDtl.bankNm3} <!-- 은행 명 3 -->
, VR_ACTNO_3 = #{sndngDtl.vrActno3} <!-- 가상 계좌번호 3 -->
, BANK_NM_4 = #{sndngDtl.bankNm4} <!-- 은행 명 4 -->
, VR_ACTNO_4 = #{sndngDtl.vrActno4} <!-- 가상 계좌번호 4 -->
, BANK_NM_5 = #{sndngDtl.bankNm5} <!-- 은행 명 5 -->
, VR_ACTNO_5 = #{sndngDtl.vrActno5} <!-- 가상 계좌번호 5 -->
, BANK_NM_6 = #{sndngDtl.bankNm6} <!-- 은행 명 6 -->
, VR_ACTNO_6 = #{sndngDtl.vrActno6} <!-- 가상 계좌번호 6 -->
, BANK_NM_7 = #{sndngDtl.bankNm7} <!-- 은행 명 7 -->
, VR_ACTNO_7 = #{sndngDtl.vrActno7} <!-- 가상 계좌번호 7 -->
, BANK_NM_8 = #{sndngDtl.bankNm8} <!-- 은행 명 8 -->
, VR_ACTNO_8 = #{sndngDtl.vrActno8} <!-- 가상 계좌번호 8 -->
, BANK_NM_9 = #{sndngDtl.bankNm9} <!-- 은행 명 9 -->
, VR_ACTNO_9 = #{sndngDtl.vrActno9} <!-- 가상 계좌번호 9 -->
, BANK_NM_10 = #{sndngDtl.bankNm10} <!-- 은행 명 10 -->
, VR_ACTNO_10 = #{sndngDtl.vrActno10} <!-- 가상 계좌번호 10 -->
, BANK_NM_11 = #{sndngDtl.bankNm11} <!-- 은행 명 11 -->
, VR_ACTNO_11 = #{sndngDtl.vrActno11} <!-- 가상 계좌번호 11 -->
, BANK_NM2 = #{sndngDtl.bankNm2} <!-- 은행 명 2 -->
, VR_ACTNO2 = #{sndngDtl.vrActno2} <!-- 가상 계좌번호 2 -->
, BANK_NM3 = #{sndngDtl.bankNm3} <!-- 은행 명 3 -->
, VR_ACTNO3 = #{sndngDtl.vrActno3} <!-- 가상 계좌번호 3 -->
, BANK_NM4 = #{sndngDtl.bankNm4} <!-- 은행 명 4 -->
, VR_ACTNO4 = #{sndngDtl.vrActno4} <!-- 가상 계좌번호 4 -->
, BANK_NM5 = #{sndngDtl.bankNm5} <!-- 은행 명 5 -->
, VR_ACTNO5 = #{sndngDtl.vrActno5} <!-- 가상 계좌번호 5 -->
, BANK_NM6 = #{sndngDtl.bankNm6} <!-- 은행 명 6 -->
, VR_ACTNO6 = #{sndngDtl.vrActno6} <!-- 가상 계좌번호 6 -->
, BANK_NM7 = #{sndngDtl.bankNm7} <!-- 은행 명 7 -->
, VR_ACTNO7 = #{sndngDtl.vrActno7} <!-- 가상 계좌번호 7 -->
, BANK_NM8 = #{sndngDtl.bankNm8} <!-- 은행 명 8 -->
, VR_ACTNO8 = #{sndngDtl.vrActno8} <!-- 가상 계좌번호 8 -->
, BANK_NM9 = #{sndngDtl.bankNm9} <!-- 은행 명 9 -->
, VR_ACTNO9 = #{sndngDtl.vrActno9} <!-- 가상 계좌번호 9 -->
, BANK_NM10 = #{sndngDtl.bankNm10} <!-- 은행 명 10 -->
, VR_ACTNO10 = #{sndngDtl.vrActno10} <!-- 가상 계좌번호 10 -->
, BANK_NM11 = #{sndngDtl.bankNm11} <!-- 은행 명 11 -->
, VR_ACTNO11 = #{sndngDtl.vrActno11} <!-- 가상 계좌번호 11 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{sndngDtl.modifiedBy} <!-- 수정자 -->
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} <!-- 발송 상세 ID -->
@ -1662,4 +1583,107 @@
AND DEL_YN = 'N'
</update>
<select id="selectSndngDtlLevyInfo" parameterType="string" resultType="dataobject">/* 발송 상세 및 부과 객체 가져오기(sndngMapper.selectSndngDtlLevyInfo) */
SELECT SD.SNDNG_DTL_ID <!-- 발송 상세 ID -->
, SD.SNDNG_ID <!-- 발송 ID -->
, SD.SVBTC_ID <!-- 공시송달 ID -->
, SD.CRDN_ID <!-- 단속 ID -->
, SD.LEVY_ID <!-- 부과 ID -->
, SD.VHRNO <!-- 차량번호 -->
, SD.CRDN_DT <!-- 단속 일시 -->
, SD.CRDN_PLC <!-- 단속 장소 -->
, SD.LEV_KEY <!-- 세외수입 부과키 -->
, SD.FYR <!-- 회계연도 -->
, SD.LEVY_NO <!-- 부과 번호 -->
, SD.SNDNG_YMD <!-- 발송 일자 -->
, SD.DUDT_YMD <!-- 납기 일자 -->
, SD.FFNLG_AMT <!-- 과태료 금액 -->
, SD.LEVY_PCPTAX <!-- 부과 본세 -->
, SD.LEVY_ADAMT <!-- 부과 가산금 -->
, SD.LEVY_SUM_AMT <!-- 부과 합계 금액 -->
, SD.RTPYR_NM <!-- 납부자 명 -->
, SD.RTPYR_NO <!-- 납부자 번호 -->
, SD.RTPYR_ADDR <!-- 납부자 주소 -->
, SD.RTPYR_DTL_ADDR <!-- 납부자 상세 주소 -->
, SD.RTPYR_ZIP <!-- 납부자 우편번호 -->
, SD.CON_KEY <!-- 외부연계식별키 -->
, SD.RG_NO <!-- 등기 번호 -->
, SD.DLVR_YMD <!-- 배달 일자 -->
, SD.DLVR_TM <!-- 배달 시각 -->
, SD.UNDLVR_RSN_NM <!-- 미배달 사유 명 -->
, SD.RCPN_NM <!-- 수령인 명 -->
, SD.RCPN_REL_NM <!-- 수령인 관계 명 -->
, SD.SNDNG_DTL_STTS_CD <!-- 발송 상세 상태 코드 -->
, (SELECT GET_CODE_NM('FIM050', SD.SNDNG_DTL_STTS_CD) FROM DUAL) AS SNDNG_DTL_STTS_NM
, SD.BFR_SNDNG_DTL_STTS_CD <!-- 전 발송 상세 상태 코드 -->
, (SELECT GET_CODE_NM('FIM050', SD.BFR_SNDNG_DTL_STTS_CD) FROM DUAL) AS BFR_SNDNG_DTL_STTS_NM
, SD.BFR_DLVR_YMD <!-- 전 배달 일자 -->
, SD.BFR_DLVR_HR <!-- 전 배달 시간 -->
, SD.SNDNG_RCVMT_CD <!-- 발송 수납 코드 -->
, (SELECT GET_CODE_NM('FIM051', SD.SNDNG_RCVMT_CD) FROM DUAL) AS SNDNG_RCVMT_NM
, SD.ADDR_CHG_CD <!-- 주소 변경 코드 -->
, C.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 -->
, L.DEPT_CD <!-- 부서 코드 -->
, L.FYR <!-- 회계연도 -->
, L.ACNTG_SE_CD <!-- 회계 구분 코드 -->
, L.TXITM_CD <!-- 세목 코드 -->
, L.OPER_ITEM_CD <!-- 운영 항목 코드 -->
, L.SPCL_BIZ_CD <!-- 특별회계 사업 코드 -->
, L.LEVY_NO <!-- 부과 번호 -->
, L.INSPY_SN <!-- 분납 순번 -->
, L.LEVY_SE_CD <!-- 부과 구분 코드 -->
, L.LEVY_YMD <!-- 부과 일자 -->
, L.FRST_DUDT_YMD <!-- 최초 납기 일자 -->
, L.DUDT_YMD <!-- 납기 일자 -->
, L.DUDT_AFTR_YMD <!-- 납기 후 일자 -->
, L.LEVY_PCPTAX <!-- 부과 본세 -->
, L.LEVY_ADAMT <!-- 부과 가산금 -->
, L.INSPY_INT <!-- 분납 이자 -->
, L.LEVY_PCPTAX <!-- 부과 본세 -->
, L.LEVY_ADAMT <!-- 부과 가산금 -->
, L.INSPY_INT <!-- 분납 이자 -->
, L.RCVMT_PCPTAX <!-- 수납 본세 -->
, L.RCVMT_ADAMT <!-- 수납 가산금 -->
, L.RDCAMT_PCPTAX <!-- 감액 본세 -->
, L.RDCAMT_ADAMT <!-- 감액 가산금 -->
, L.LEVY_PCPTAX-L.RCVMT_PCPTAX-L.RDCAMT_PCPTAX AS PCPTAX <!-- 본세 -->
, L.LEVY_ADAMT-L.RCVMT_ADAMT-L.RDCAMT_ADAMT AS ADAMT <!-- 가산금 -->
, L.SUM_AMT <!-- 합계 금액 -->
, L.EPAYNO <!-- 전자납부번호 -->
, L.BANK_NM <!-- 은행 명 -->
, L.VR_ACTNO <!-- 가상 계좌번호 -->
, L.BANK_NM2 <!-- 은행 명 2 -->
, L.VR_ACTNO2 <!-- 가상 계좌번호 2 -->
, L.BANK_NM3 <!-- 은행 명 3 -->
, L.VR_ACTNO3 <!-- 가상 계좌번호 3 -->
, L.BANK_NM4 <!-- 은행 명 4 -->
, L.VR_ACTNO4 <!-- 가상 계좌번호 4 -->
, L.BANK_NM5 <!-- 은행 명 5 -->
, L.VR_ACTNO5 <!-- 가상 계좌번호 5 -->
, L.BANK_NM6 <!-- 은행 명 6 -->
, L.VR_ACTNO6 <!-- 가상 계좌번호 6 -->
, L.BANK_NM7 <!-- 은행 명 7 -->
, L.VR_ACTNO7 <!-- 가상 계좌번호 7 -->
, L.BANK_NM8 <!-- 은행 명 8 -->
, L.VR_ACTNO8 <!-- 가상 계좌번호 8 -->
, L.BANK_NM9 <!-- 은행 명 9 -->
, L.VR_ACTNO9 <!-- 가상 계좌번호 9 -->
, L.BANK_NM10 <!-- 은행 명 10 -->
, L.VR_ACTNO10 <!-- 가상 계좌번호 10 -->
, L.BANK_NM11 <!-- 은행 명 11 -->
, L.VR_ACTNO11 <!-- 가상 계좌번호 11 -->
FROM TB_SNDNG_DTL SD
INNER JOIN TB_CRDN C ON (SD.CRDN_ID = C.CRDN_ID)
INNER JOIN TB_LEVY L ON (SD.LEVY_ID = L.LEVY_ID)
WHERE SD.SNDNG_DTL_ID = #{sndngDtlId}
</select>
</mapper>

@ -259,7 +259,7 @@
params.delYn = "N"; // 삭제 여부
ajax.post({
url : wctx.url("/" + params.taskSeCd + "/sndb/sndb02/010/createNxrpLink.do")
url : wctx.url("/" + params.taskSeCd + "/nxrp/nxrp01/010/createNxrpLink.do")
, data : params || {}
, success : resp => {
let btnTitle = $("#btnCreateNxrpLink--${pageName}").attr("title");

Loading…
Cancel
Save