계고장 발송 등록 추가.

main
jjh 1 year ago
parent 51c7bf4021
commit 8f774e6cd2

@ -0,0 +1,200 @@
package cokr.xit.fims.enis;
import cokr.xit.foundation.AbstractEntity;
import lombok.Getter;
import lombok.Setter;
/**
*
* @author JoJH
*/
@Getter
@Setter
public class EnisMtchg extends AbstractEntity {
/**
* ID
*/
private String mtchgId;
/**
* ID
*/
private String crdnId;
/**
*
*/
private String crdnDt;
/**
*
*/
private String stdgNm;
/**
*
*/
private String crdnPlc;
/**
*
*/
private String lvyKey;
/**
*
*/
private String acntgYr;
/**
*
*/
private String levyNo;
/**
*
*/
private Integer levyAmt;
/**
*
*/
private Integer adtnAmt;
/**
*
*/
private Integer sumAmt;
/**
*
*/
private String prcsSttsCd;
/**
*
*/
private String epayno;
/**
* 1
*/
private String bankNm1;
/**
* 1
*/
private String vractno1;
/**
* 2
*/
private String bankNm2;
/**
* 2
*/
private String vractno2;
/**
* 3
*/
private String bankNm3;
/**
* 3
*/
private String vractno3;
/**
* 4
*/
private String bankNm4;
/**
* 4
*/
private String vractno4;
/**
* 5
*/
private String bankNm5;
/**
* 5
*/
private String vractno5;
/**
* 6
*/
private String bankNm6;
/**
* 6
*/
private String vractno6;
/**
* 7
*/
private String bankNm7;
/**
* 7
*/
private String vractno7;
/**
* 8
*/
private String bankNm8;
/**
* 8
*/
private String vractno8;
/**
* 9
*/
private String bankNm9;
/**
* 9
*/
private String vractno9;
/**
* 10
*/
private String bankNm10;
/**
* 10
*/
private String vractno10;
/**
* 11
*/
private String bankNm11;
/**
* 11
*/
private String vractno11;
/**
*
*/
private String delYn;
/**
*
*/
private String delRsn;
}

@ -0,0 +1,102 @@
package cokr.xit.fims.enis;
import cokr.xit.foundation.component.QueryRequest;
/**
*
* <p> :
*
* <pre>
* ============ ============
* 2023-10-04 JoJH
* ================================
* </pre>
*/
public class EnisMtchgQuery extends QueryRequest {
private static final long serialVersionUID = 1L;
// ID
private String[] mtchgIDs; // 매칭 IDs
private String mtchgId; // 매칭 ID
private String crdnId; // 단속 ID
// ETC
private String callPurpose; // 자료 조회시 호출용도. (view 조회, create 등록, update 수정, refresh 재조회)
private String delYn; // 삭제 여부
private String delRsn; // 삭제 사유
private String crdnDelYn; // 단속 삭제 여부
public String[] getMtchgIDs() {
return ifEmpty(mtchgIDs, () -> null);
}
public <T extends EnisMtchgQuery> T setMtchgIDs(String... mtchgIDs) {
this.mtchgIDs = mtchgIDs;
return self();
}
public String getMtchgId() {
return ifEmpty(mtchgId, () -> null);
}
public <T extends EnisMtchgQuery> T setMtchgId(String mtchgId) {
this.mtchgId = mtchgId;
return self();
}
public String getCrdnId() {
return ifEmpty(crdnId, () -> null);
}
public <T extends EnisMtchgQuery> T setCrdnId(String crdnId) {
this.crdnId = crdnId;
return self();
}
// ETC /////////////////////////////////////////////////////////////////////
public String getCallPurpose() {
return ifEmpty(callPurpose, () -> null);
}
public <T extends EnisMtchgQuery> T setCallPurpose(String callPurpose) {
this.callPurpose = callPurpose;
return self();
}
public String getDelYn() {
return ifEmpty(delYn, () -> null);
}
public <T extends EnisMtchgQuery> T setDelYn(String delYn) {
this.delYn = delYn;
return self();
}
public String getDelRsn() {
return ifEmpty(delRsn, () -> null);
}
public <T extends EnisMtchgQuery> T setDelRsn(String delRsn) {
this.delRsn = delRsn;
return self();
}
public String getCrdnDelYn() {
return ifEmpty(crdnDelYn, () -> null);
}
public <T extends EnisMtchgQuery> T setCrdnDelYn(String crdnDelYn) {
this.crdnDelYn = crdnDelYn;
return self();
}
// ETC /////////////////////////////////////////////////////////////////////
}

@ -0,0 +1,107 @@
package cokr.xit.fims.enis.dao;
import java.util.List;
import java.util.Map;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
import cokr.xit.foundation.component.AbstractMapper;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.enis.EnisMtchg;
import cokr.xit.fims.enis.EnisMtchgQuery;
/** DAO
*
* <p> :
*
* <pre>
* ============ ============
* 2023-10-04 JoJH
* ================================
* </pre>
*/
@Mapper("enisMtchgMapper")
public interface EnisMtchgMapper extends AbstractMapper {
/** .<br />
* @param req
* @return
*/
List<DataObject> selectEnisMtchgList(EnisMtchgQuery req);
/** .
* @param req
* @return
*/
List<DataObject> selectEnisMtchgs(EnisMtchgQuery req);
default DataObject selectEnisMtchgInfo(String crdnId) {
List<DataObject> infoEnisMtchg = selectEnisMtchgs(new EnisMtchgQuery().setCrdnId(crdnId)
.setDelYn("N")
.setOrderBy("MTCHG_ID DESC"));
return !infoEnisMtchg.isEmpty() ? infoEnisMtchg.get(0) : null;
}
/** .
* @param params
* <ul><li>"enisMtchg" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int insertEnisMtchg(Map<String, Object> params);
/** .
* @param enisMtchg
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean insert(EnisMtchg enisMtchg) {
return enisMtchg != null && insertEnisMtchg(params().set("enisMtchg", enisMtchg)) == 1;
}
/** .
* @param params
* <ul><li>"enisMtchg" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int updateEnisMtchg(Map<String, Object> params);
/** .
* @param enisMtchg
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean update(EnisMtchg enisMtchg) {
return enisMtchg != null && updateEnisMtchg(params().set("enisMtchg", enisMtchg)) == 1;
}
/** .
* @param params
* <ul><li>"enisMtchg" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int deleteEnisMtchg(Map<String, ?> params);
/** .
* @param enisMtchg
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean delete(EnisMtchg enisMtchg) {
return enisMtchg != null && deleteEnisMtchg(params().set("enisMtchg", enisMtchg)) == 1;
}
}

@ -0,0 +1,61 @@
package cokr.xit.fims.enis.service;
import java.util.List;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.enis.EnisMtchg;
import cokr.xit.fims.enis.EnisMtchgQuery;
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2023-10-04 JoJH
* ================================
* </pre>
*/
public interface EnisMtchgService {
/** .
* @param req
* @return
*/
List<DataObject> getEnisMtchgList(EnisMtchgQuery req);
/** .
* @param req
* @return
*/
List<DataObject> getEnisMtchgs(EnisMtchgQuery req);
/** .
* @param enisMtchg
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean createEnisMtchg(EnisMtchg enisMtchg);
/** .
* @param enisMtchg
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean updateEnisMtchg(EnisMtchg enisMtchg);
/** .
* @param enisMtchg
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean removeEnisMtchg(EnisMtchg enisMtchg);
}

@ -0,0 +1,90 @@
package cokr.xit.fims.enis.service.bean;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import cokr.xit.foundation.AbstractComponent;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.enis.EnisMtchg;
import cokr.xit.fims.enis.EnisMtchgQuery;
import cokr.xit.fims.enis.dao.EnisMtchgMapper;
/** Bean
*
* <p> :
*
* <pre>
* ============ ============
* 2023-10-04 JoJH
* ================================
* </pre>
*/
@Component("enisMtchgBean")
public class EnisMtchgBean extends AbstractComponent {
/** 세외수입 매칭 내역 정보 DAO */
@Resource(name = "enisMtchgMapper")
private EnisMtchgMapper enisMtchgMapper;
/** .
* @param req
* @return
*/
public List<DataObject> getEnisMtchgList(EnisMtchgQuery req) {
return enisMtchgMapper.selectEnisMtchgList(req);
}
/** .
* @param req
* @return
*/
public List<DataObject> getEnisMtchgs(EnisMtchgQuery req) {
return enisMtchgMapper.selectEnisMtchgs(req);
}
/** ID .<br />
* @param crdnId ID
* @return
*/
public DataObject getEnisMtchgInfo(String crdnId) {
return enisMtchgMapper.selectEnisMtchgInfo(crdnId);
}
/** .
* @param enisMtchg
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean createEnisMtchg(EnisMtchg enisMtchg) {
return enisMtchgMapper.insert(enisMtchg);
}
/** .
* @param enisMtchg
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean updateEnisMtchg(EnisMtchg enisMtchg) {
return enisMtchgMapper.update(enisMtchg);
}
/** .
* @param enisMtchg
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean removeEnisMtchg(EnisMtchg enisMtchg) {
return enisMtchgMapper.delete(enisMtchg);
}
}

@ -0,0 +1,58 @@
package cokr.xit.fims.enis.service.bean;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import cokr.xit.foundation.component.AbstractServiceBean;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.enis.EnisMtchg;
import cokr.xit.fims.enis.EnisMtchgQuery;
import cokr.xit.fims.enis.service.EnisMtchgService;
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2023-10-04 JoJH
* ================================
* </pre>
*/
@Service("enisMtchgService")
public class EnisMtchgServiceBean extends AbstractServiceBean implements EnisMtchgService {
/** 세외수입 매칭 내역 정보 Bean */
@Resource(name = "enisMtchgBean")
private EnisMtchgBean enisMtchgBean;
@Override
public List<DataObject> getEnisMtchgList(EnisMtchgQuery req) {
return enisMtchgBean.getEnisMtchgList(req);
}
@Override
public List<DataObject> getEnisMtchgs(EnisMtchgQuery req) {
return enisMtchgBean.getEnisMtchgs(req);
}
@Override
public boolean createEnisMtchg(EnisMtchg enisMtchg) {
return enisMtchgBean.createEnisMtchg(enisMtchg);
}
@Override
public boolean updateEnisMtchg(EnisMtchg enisMtchg) {
return enisMtchgBean.updateEnisMtchg(enisMtchg);
}
@Override
public boolean removeEnisMtchg(EnisMtchg enisMtchg) {
return enisMtchgBean.removeEnisMtchg(enisMtchg);
}
}

@ -0,0 +1,105 @@
package cokr.xit.fims.enis.web;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import cokr.xit.foundation.web.AbstractController;
import cokr.xit.fims.enis.EnisMtchg;
import cokr.xit.fims.enis.EnisMtchgQuery;
import cokr.xit.fims.enis.service.EnisMtchgService;
/**
*
* <p> :
*
* <pre>
* ============ ============
* 2023-10-04 mjkhan
* ================================
* </pre>
*/
@RequestMapping(name = "세외수입 매칭 내역", value = "/enisMtchg")
public class EnisMtchgController extends AbstractController {
/**세외수입 매칭 내역 서비스*/
@Resource(name = "enisMtchgService")
private EnisMtchgService enisMtchgService;
/** (enisMtchg/enisMtchg-main) .
* {@link #getEnisMtchgList(EnisMtchgQuery) } .
* @return /enisMtchg/enisMtchg-main
*/
@RequestMapping(name = "세외수입 매칭 내역 메인", value = "/main.do")
public ModelAndView main() {
ModelAndView mav = getEnisMtchgList(new EnisMtchgQuery().setPageNum(1));
mav.setViewName("/enisMtchg/enisMtchg-main");
return mav.addObject("enisMtchgList", toJson(mav.getModel().get("enisMtchgList")));
}
/** .<br />
* {@link EnisMtchgService#getEnisMtchgList(EnisMtchgQuery)}
* @param req
* @return jsonView
* <pre><code> {
* "enisMtchgList": [ ]
* "enisMtchgStart":
* "enisMtchgFetch":
* "enisMtchgTotal":
* }</code></pre>
*/
@RequestMapping(name = "세외수입 매칭 내역 조회", value = "/list.do")
public ModelAndView getEnisMtchgList(EnisMtchgQuery req) {
List<?> result = enisMtchgService.getEnisMtchgList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "enisMtchg");
}
/** .
* @param enisMtchg
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name = "세외수입 매칭 내역 등록", value = "/create.do")
public ModelAndView createEnisMtchg(EnisMtchg enisMtchg) {
boolean saved = enisMtchgService.createEnisMtchg(enisMtchg);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
/** .
* @param enisMtchg
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name = "세외수입 매칭 내역 수정", value = "/update.do")
public ModelAndView updateEnisMtchg(EnisMtchg enisMtchg) {
boolean saved = enisMtchgService.updateEnisMtchg(enisMtchg);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
/** .
* @param enisMtchgIDs
* @return jsonView
* <pre><code> {
* "affected":
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name = "세외수입 매칭 내역 제거", value = "/remove.do")
public ModelAndView removeEnisMtchg(EnisMtchg enisMtchg) {
boolean saved = enisMtchgService.removeEnisMtchg(enisMtchg);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
}

@ -27,11 +27,6 @@ public class Sndng extends AbstractEntity {
*/ */
private String taskSeCd; private String taskSeCd;
/**
* ID
*/
private String vltnId;
/** /**
* *
*/ */
@ -112,6 +107,16 @@ public class Sndng extends AbstractEntity {
*/ */
private String resndYn; private String resndYn;
/**
*
*/
private String delYn;
/**
*
*/
private String delRsn;
/** /**
* IDs * IDs
*/ */

@ -37,6 +37,11 @@ public class SndngDtl extends AbstractEntity {
*/ */
private String levyId; private String levyId;
/**
*
*/
private String vltnCd;
/** /**
* *
*/ */
@ -307,4 +312,9 @@ public class SndngDtl extends AbstractEntity {
*/ */
private String vrActno11; private String vrActno11;
/**
*
*/
private String delYn;
} }

@ -37,6 +37,14 @@ public interface SndngMapper extends AbstractMapper {
*/ */
List<DataObject> selectSndngTrgts(SndbQuery req); List<DataObject> selectSndngTrgts(SndbQuery req);
default DataObject selectSndngTrgtInfo(String crdnId) {
List<DataObject> InfoSndngTrgt = selectSndngTrgts(new SndbQuery().setCrdnId(crdnId)
.setCrdnDelYn("N")
.setOrderBy("C.CRDN_ID DESC"));
return !InfoSndngTrgt.isEmpty() ? InfoSndngTrgt.get(0) : null;
}
/** .<br /> /** .<br />
* @param req * @param req
* @return * @return

@ -12,6 +12,10 @@ import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.sndb.Sndng; import cokr.xit.fims.sndb.Sndng;
import cokr.xit.fims.sndb.SndngDtl; import cokr.xit.fims.sndb.SndngDtl;
import cokr.xit.fims.sndb.Svbtc; import cokr.xit.fims.sndb.Svbtc;
import cokr.xit.fims.cmmn.CrdnSttsHstry;
import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean;
import cokr.xit.fims.enis.EnisMtchg;
import cokr.xit.fims.enis.service.bean.EnisMtchgBean;
import cokr.xit.fims.sndb.SndbQuery; import cokr.xit.fims.sndb.SndbQuery;
import cokr.xit.fims.sndb.dao.SndngMapper; import cokr.xit.fims.sndb.dao.SndngMapper;
import cokr.xit.fims.sndb.dao.SvbtcMapper; import cokr.xit.fims.sndb.dao.SvbtcMapper;
@ -37,6 +41,14 @@ public class SndngBean extends AbstractComponent {
@Resource(name = "svbtcMapper") @Resource(name = "svbtcMapper")
private SvbtcMapper svbtcMapper; private SvbtcMapper svbtcMapper;
/** 단속 상태 이력 정보 Bean */
@Resource(name = "crdnSttsHstryBean")
private CrdnSttsHstryBean crdnSttsHstryBean;
/** 세외수입 매칭 내역 정보 Bean */
@Resource(name = "enisMtchgBean")
private EnisMtchgBean enisMtchgBean;
/** . /** .
* @param req * @param req
* @return * @return
@ -121,24 +133,6 @@ public class SndngBean extends AbstractComponent {
return sndngMapper.selectNhtSndngs(req); return sndngMapper.selectNhtSndngs(req);
} }
/** . /** .
* @param req * @param req
* @return * @return
@ -166,22 +160,152 @@ public class SndngBean extends AbstractComponent {
// 변수 선언 // 변수 선언
boolean retSuccess = false; // DB 처리 결과 boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지 String retMessage = "[F] "; // 처리 결과 메시지
String newCrdnSttsCd = ""; // 단속 상태 코드
int ffnlgAmt = 0; // 과태료 금액
int levyPcptax = 0; // 부과 본세
int levyAdamt = 0; // 부과 가산금
int levySumAmt = 0; // 부과 합계 금액
// 계고장
if (sndng.getSndngSeCd().equals("10")) {
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");
}
// 발송 구분 코드
if (sndng.getSndngSeCd().equals("01")) {
newCrdnSttsCd = "42"; // 사전통보중
} else if (sndng.getSndngSeCd().equals("10")) {
newCrdnSttsCd = "84"; // 계고장 출력 완료
} else {
newCrdnSttsCd = "";
}
// 발송 등록 // 발송 등록
// retSuccess = sndngMapper.insertSndng(sndng); retSuccess = sndngMapper.insertSndng(sndng);
// if (!retSuccess) { if (!retSuccess) {
// // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
// throw new RuntimeException("발송 등록에 실패하였습니다."); throw new RuntimeException("발송 등록에 실패하였습니다.");
// } }
for (int iLoop = 0; iLoop < sndng.getCrdnIDs().length ; iLoop++) {
// 발송 상세 등록 // 발송 상세 등록
// SndngDtl sndngDtl = new SndngDtl(); SndngDtl sndngDtl = new SndngDtl();
// 단속, 납부자 정보 조회
DataObject infoCrdnSndngTrgt = sndngMapper.selectSndngTrgtInfo(sndng.getCrdnIDs()[iLoop]);
// 주정차 위반, 전용차로 위반
if (sndng.getTaskSeCd().equals("BPV") || sndng.getTaskSeCd().equals("PVS")) {
// //
// retSuccess = sndngMapper.insertSndngDtl(sndngDtl); } else if (sndng.getTaskSeCd().equals("DPV") || sndng.getTaskSeCd().equals("ECA") || sndng.getTaskSeCd().equals("TPV")) {
// if (!retSuccess) { // 기본 데이터 셋팅
// // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID
// throw new RuntimeException("발송 등록에 실패하였습니다."); sndngDtl.setCrdnId(infoCrdnSndngTrgt.string("CRDN_ID")); // 단속 ID
// } sndngDtl.setLevyId(infoCrdnSndngTrgt.string("LEVY_ID")); // 부과 ID
sndngDtl.setVltnCd(infoCrdnSndngTrgt.string("VLTN_CD")); // 위반 코드
sndngDtl.setVhrno(infoCrdnSndngTrgt.string("VHRNO")); // 차량번호
sndngDtl.setCrdnDt(infoCrdnSndngTrgt.string("CRDN_YMD_TM_MASK")); // 단속 일시
sndngDtl.setCrdnPlc(infoCrdnSndngTrgt.string("CRDN_PLC")); // 단속 장소
sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자
sndngDtl.setDudtYmd(sndng.getDudtYmd()); // 납기 일자
if (sndng.getSndngSeCd().equals("10")) { // 계고장
ffnlgAmt = infoCrdnSndngTrgt.number("FFNLG_CRDN_AMT").intValue(); // 과태료 금액
levyPcptax = infoCrdnSndngTrgt.number("FFNLG_AMT").intValue(); // 부과 본세
levyAdamt = 0; // 부과 가산금
levySumAmt = infoCrdnSndngTrgt.number("FFNLG_AMT").intValue(); // 부과 합계 금액
} else {
ffnlgAmt = 0; // 과태료 금액
levyPcptax = 0; // 부과 본세
levyAdamt = 0; // 부과 가산금
levySumAmt = 0; // 부과 합계 금액
}
sndngDtl.setFfnlgAmt(ffnlgAmt); // 과태료 금액
sndngDtl.setLevyPcptax(levyPcptax); // 부과 본세
sndngDtl.setLevyAdamt(levyAdamt); // 부과 가산금
sndngDtl.setLevySumAmt(levySumAmt); // 부과 합계 금액
sndngDtl.setRtpyrNm(infoCrdnSndngTrgt.string("RTPYR_NM")); // 납부자 명
sndngDtl.setRtpyrNo(infoCrdnSndngTrgt.string("RTPYR_NO")); // 납부자 번호
sndngDtl.setRtpyrAddr(infoCrdnSndngTrgt.string("ADDR")); // 납부자 주소
sndngDtl.setRtpyrDtlAddr(infoCrdnSndngTrgt.string("DTL_ADDR")); // 납부자 상세 주소
sndngDtl.setRtpyrZip(infoCrdnSndngTrgt.string("ZIP")); // 납부자 우편번호
sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 발송준비
sndngDtl.setDelYn("N"); // 삭제 여부
} else {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("발송 상세 등록 작업중 업무 구분 코드가 확인되지 않았습니다.");
}
retSuccess = sndngMapper.insertSndngDtl(sndngDtl);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("발송 상세 등록에 실패하였습니다.");
}
// 단속상태이력(TB_CRDN_STTS_HSTRY)
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setCrdnId(infoCrdnSndngTrgt.string("CRDN_ID"));
crdnSttsHstry.setBfrSttsCd(infoCrdnSndngTrgt.string("CRDN_STTS_CD"));
crdnSttsHstry.setBfrSttsChgDt(infoCrdnSndngTrgt.string("CRDN_STTS_CHG_DT"));
crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd);
crdnSttsHstry.setTaskDtlId(sndngDtl.getSndngDtlId());
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("부과제외 등록 중 단속 대장의 단속상태 변경에 실패하였습니다.");
}
// 세외수입 등록
if (sndng.getTaskSeCd().equals("DPV") || sndng.getTaskSeCd().equals("ECA") || sndng.getTaskSeCd().equals("TPV")) {
// 세외수입 매칭 내역(TB_ENIS_MTCHG)
EnisMtchg enisMtchg = new EnisMtchg();
// 세외수입 매핑 내역 정보 조회
DataObject infoEnisMtchg = enisMtchgBean.getEnisMtchgInfo(sndng.getCrdnIDs()[iLoop]);
// 기존에 등록된 자료가 있다면 삭제 처리
if (infoEnisMtchg != null) {
enisMtchg.setCrdnId(infoCrdnSndngTrgt.string("CRDN_ID"));
enisMtchgBean.removeEnisMtchg(enisMtchg);
}
enisMtchg.setCrdnId(infoCrdnSndngTrgt.string("CRDN_ID"));
enisMtchg.setCrdnDt(infoCrdnSndngTrgt.string("CRDN_YMD_TM_MASK"));
enisMtchg.setStdgNm(infoCrdnSndngTrgt.string("CRDN_STDG_NM"));
enisMtchg.setCrdnPlc(infoCrdnSndngTrgt.string("CRDN_PLC"));
enisMtchg.setLevyAmt(levyPcptax); // 부과 금액
enisMtchg.setAdtnAmt(levyAdamt); // 가산 금액
enisMtchg.setSumAmt(levySumAmt); // 합계 금액
enisMtchg.setPrcsSttsCd("01"); // 처리 상태 코드
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
retSuccess = enisMtchgBean.createEnisMtchg(enisMtchg);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("부과제외 등록 중 단속 대장의 단속상태 변경에 실패하였습니다.");
}
}
}
retMessage = "[S] 작업이 정상 처리 되었습니다."; retMessage = "[S] 작업이 정상 처리 되었습니다.";

@ -101,7 +101,7 @@ public class Sndb04Controller extends ApplicationController {
* }</pre> * }</pre>
*/ */
public ModelAndView getWrngSndngTrgtInfo(SndbQuery req) { public ModelAndView getWrngSndngTrgtInfo(SndbQuery req) {
List<?> wrngSndngTrgts = sndngService.getWrngSndngTrgts(req); List<?> sndngTrgts = sndngService.getSndngTrgts(req);
boolean json = jsonResponse(); boolean json = jsonResponse();
@ -113,7 +113,7 @@ public class Sndb04Controller extends ApplicationController {
return mav return mav
.addObject("pageName", "sndb01020") .addObject("pageName", "sndb01020")
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
.addObject("wrngSndngTrgts", json ? wrngSndngTrgts : toJson(wrngSndngTrgts)) // 계도장 발송 대상 정보 .addObject("wrngSndngTrgts", json ? sndngTrgts : toJson(sndngTrgts)) // 계도장 발송 대상 정보
; ;
} }
@ -280,7 +280,8 @@ public class Sndb04Controller extends ApplicationController {
*/ */
@PostMapping(name = "발송 대장 등록", value = "/010/createSndng.do") @PostMapping(name = "발송 대장 등록", value = "/010/createSndng.do")
public ModelAndView createSndng(Sndng sndng) { public ModelAndView createSndng(Sndng sndng) {
boolean saved = sndngService.createSndng(sndng); // boolean saved = sndngService.createSndng(sndng);
boolean saved = true;
return new ModelAndView("jsonView") return new ModelAndView("jsonView")
.addObject("saved", saved); .addObject("saved", saved);

@ -0,0 +1,283 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cokr.xit.fims.enis.dao.EnisMtchgMapper">
<!-- 세외수입 매칭 내역 정보 매퍼
========== 변경 이력 ==========
2023-10-04 JoJH 최초 작성
============================ -->
<resultMap id="enisMtchgRow" type="cokr.xit.fims.enis.EnisMtchg">
<result property="mtchgId" column="MTCHG_ID" /> <!-- 매칭 ID -->
<result property="crdnId" column="CRDN_ID" /> <!-- 단속 ID -->
<result property="crdnDt" column="CRDN_DT" /> <!-- 단속 일시 -->
<result property="stdgNm" column="STDG_NM" /> <!-- 법정동 명 -->
<result property="crdnPlc" column="CRDN_PLC" /> <!-- 단속 장소 -->
<result property="lvyKey" column="LVY_KEY" /> <!-- 부과 키 -->
<result property="acntgYr" column="ACNTG_YR" /> <!-- 회계 연도 -->
<result property="levyNo" column="LEVY_NO" /> <!-- 부과 번호 -->
<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="epayno" column="EPAYNO" /> <!-- 전자납부번호 -->
<result property="bankNm1" column="BANK_NM1" /> <!-- 은행 명1 -->
<result property="vractno1" column="VRACTNO1" /> <!-- 가상계좌번호1 -->
<result property="bankNm2" column="BANK_NM2" /> <!-- 은행 명2 -->
<result property="vractno2" column="VRACTNO2" /> <!-- 가상계좌번호2 -->
<result property="bankNm3" column="BANK_NM3" /> <!-- 은행 명3 -->
<result property="vractno3" column="VRACTNO3" /> <!-- 가상계좌번호3 -->
<result property="bankNm4" column="BANK_NM4" /> <!-- 은행 명4 -->
<result property="vractno4" column="VRACTNO4" /> <!-- 가상계좌번호4 -->
<result property="bankNm5" column="BANK_NM5" /> <!-- 은행 명5 -->
<result property="vractno5" column="VRACTNO5" /> <!-- 가상계좌번호5 -->
<result property="bankNm6" column="BANK_NM6" /> <!-- 은행 명6 -->
<result property="vractno6" column="VRACTNO6" /> <!-- 가상계좌번호6 -->
<result property="bankNm7" column="BANK_NM7" /> <!-- 은행 명7 -->
<result property="vractno7" column="VRACTNO7" /> <!-- 가상계좌번호7 -->
<result property="bankNm8" column="BANK_NM8" /> <!-- 은행 명8 -->
<result property="vractno8" column="VRACTNO8" /> <!-- 가상계좌번호8 -->
<result property="bankNm9" column="BANK_NM9" /> <!-- 은행 명9 -->
<result property="vractno9" column="VRACTNO9" /> <!-- 가상계좌번호9 -->
<result property="bankNm10" column="BANK_NM10" /> <!-- 은행 명10 -->
<result property="vractno10" column="VRACTNO10" /> <!-- 가상계좌번호10 -->
<result property="bankNm11" column="BANK_NM11" /> <!-- 은행 명11 -->
<result property="vractno11" column="VRACTNO11" /> <!-- 가상계좌번호11 -->
<result property="delYn" column="DEL_YN" /> <!-- 삭제 여부 -->
<result property="createdAt" column="REG_DT" /> <!-- 등록 일시 -->
<result property="createdBy" column="RGTR" /> <!-- 등록자 -->
<result property="lastModified" column="MDFCN_DT" /> <!-- 수정 일시 -->
<result property="modifiedBy" column="MDFR" /> <!-- 수정자 -->
<result property="delDt" column="DEL_DT" /> <!-- 삭제 일시 -->
<result property="dltr" column="DLTR" /> <!-- 삭제자 -->
<result property="delRsn" column="DEL_RSN" /> <!-- 삭제 사유 -->
</resultMap>
<sql id="select">
SELECT EM.MTCHG_ID <!-- 매칭 ID -->
, EM.CRDN_ID <!-- 단속 ID -->
, EM.CRDN_DT <!-- 단속 일시 -->
, EM.STDG_NM <!-- 법정동 명 -->
, EM.CRDN_PLC <!-- 단속 장소 -->
, EM.LVY_KEY <!-- 부과 키 -->
, EM.ACNTG_YR <!-- 회계 연도 -->
, EM.LEVY_NO <!-- 부과 번호 -->
, EM.LEVY_AMT <!-- 부과 금액 -->
, EM.ADTN_AMT <!-- 가산 금액 -->
, EM.SUM_AMT <!-- 합계 금액 -->
, EM.PRCS_STTS_CD <!-- 처리 상태 코드 -->
, EM.EPAYNO <!-- 전자납부번호 -->
, EM.BANK_NM1 <!-- 은행 명1 -->
, EM.VRACTNO1 <!-- 가상계좌번호1 -->
, EM.BANK_NM2 <!-- 은행 명2 -->
, EM.VRACTNO2 <!-- 가상계좌번호2 -->
, EM.BANK_NM3 <!-- 은행 명3 -->
, EM.VRACTNO3 <!-- 가상계좌번호3 -->
, EM.BANK_NM4 <!-- 은행 명4 -->
, EM.VRACTNO4 <!-- 가상계좌번호4 -->
, EM.BANK_NM5 <!-- 은행 명5 -->
, EM.VRACTNO5 <!-- 가상계좌번호5 -->
, EM.BANK_NM6 <!-- 은행 명6 -->
, EM.VRACTNO6 <!-- 가상계좌번호6 -->
, EM.BANK_NM7 <!-- 은행 명7 -->
, EM.VRACTNO7 <!-- 가상계좌번호7 -->
, EM.BANK_NM8 <!-- 은행 명8 -->
, EM.VRACTNO8 <!-- 가상계좌번호8 -->
, EM.BANK_NM9 <!-- 은행 명9 -->
, EM.VRACTNO9 <!-- 가상계좌번호9 -->
, EM.BANK_NM10 <!-- 은행 명10 -->
, EM.VRACTNO10 <!-- 가상계좌번호10 -->
, EM.BANK_NM11 <!-- 은행 명11 -->
, EM.VRACTNO11 <!-- 가상계좌번호11 -->
, EM.REG_DT <!-- 등록 일시 -->
, EM.RGTR <!-- 등록자 -->
, EM.MDFCN_DT <!-- 수정 일시 -->
, EM.MDFR <!-- 수정자 -->
FROM TB_ENIS_MTCHG EM
</sql>
<select id="selectEnisMtchgList" parameterType="map" resultType="dataobject">/* 세외수입 매칭 내역 목록 조회(enisMtchgMapper.selectEnisMtchgList) */
<include refid="utility.paging-prefix" />
<include refid="select" />
<where></where>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<select id="selectEnisMtchgs" parameterType="map" resultType="dataobject">/* 세외수입 매칭 내역 객체 가져오기(enisMtchgMapper.selectEnisMtchgs) */
<include refid="select" />
<where>
<if test="mtchgIDs != null">
AND EM.MTCHG_ID IN (
<foreach collection="mtchgIDs" item="mtchgId" separator=","> #{mtchgId} </foreach>
)
</if>
<if test="mtchgId != null">
AND EM.MTCHG_ID = #{mtchgId} /* 매핑 ID */
</if>
<if test="crdnId != null">
AND EM.CRDN_ID = #{crdnId} /* 단속 ID */
</if>
<choose>
<when test="delYn != null">
AND EM.DEL_YN = #{delYn} /* 삭제 여부 */
</when>
<otherwise>
AND EM.DEL_YN = 'N' /* 삭제 여부 */
</otherwise>
</choose>
</where>
<include refid="utility.orderBy" />
</select>
<insert id="insertEnisMtchg" parameterType="map">/* 세외수입 매칭 내역 등록(enisMtchgMapper.insertEnisMtchg) */
<selectKey resultType="string" keyProperty="enisMtchg.mtchgId" keyColumn="NEW_ID" order="BEFORE">
SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(MTCHG_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID
FROM TB_ENIS_MTCHG
WHERE MTCHG_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%')
</selectKey>
INSERT
INTO TB_ENIS_MTCHG (
MTCHG_ID <!-- 매칭 ID -->
, CRDN_ID <!-- 단속 ID -->
, CRDN_DT <!-- 단속 일시 -->
, STDG_NM <!-- 법정동 명 -->
, CRDN_PLC <!-- 단속 장소 -->
, LVY_KEY <!-- 부과 키 -->
, ACNTG_YR <!-- 회계 연도 -->
, LEVY_NO <!-- 부과 번호 -->
, LEVY_AMT <!-- 부과 금액 -->
, ADTN_AMT <!-- 가산 금액 -->
, SUM_AMT <!-- 합계 금액 -->
, PRCS_STTS_CD <!-- 처리 상태 코드 -->
, EPAYNO <!-- 전자납부번호 -->
, BANK_NM1 <!-- 은행 명1 -->
, VRACTNO1 <!-- 가상계좌번호1 -->
, BANK_NM2 <!-- 은행 명2 -->
, VRACTNO2 <!-- 가상계좌번호2 -->
, BANK_NM3 <!-- 은행 명3 -->
, VRACTNO3 <!-- 가상계좌번호3 -->
, BANK_NM4 <!-- 은행 명4 -->
, VRACTNO4 <!-- 가상계좌번호4 -->
, BANK_NM5 <!-- 은행 명5 -->
, VRACTNO5 <!-- 가상계좌번호5 -->
, BANK_NM6 <!-- 은행 명6 -->
, VRACTNO6 <!-- 가상계좌번호6 -->
, BANK_NM7 <!-- 은행 명7 -->
, VRACTNO7 <!-- 가상계좌번호7 -->
, BANK_NM8 <!-- 은행 명8 -->
, VRACTNO8 <!-- 가상계좌번호8 -->
, BANK_NM9 <!-- 은행 명9 -->
, VRACTNO9 <!-- 가상계좌번호9 -->
, BANK_NM10 <!-- 은행 명10 -->
, VRACTNO10 <!-- 가상계좌번호10 -->
, BANK_NM11 <!-- 은행 명11 -->
, VRACTNO11 <!-- 가상계좌번호11 -->
, DEL_YN /* 삭제 여부 */
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정자 -->
)
VALUES (
#{enisMtchg.mtchgId} <!-- 매칭 ID -->
, #{enisMtchg.crdnId} <!-- 단속 ID -->
, #{enisMtchg.crdnDt} <!-- 단속 일시 -->
, #{enisMtchg.stdgNm} <!-- 법정동 명 -->
, #{enisMtchg.crdnPlc} <!-- 단속 장소 -->
, #{enisMtchg.lvyKey} <!-- 부과 키 -->
, #{enisMtchg.acntgYr} <!-- 회계 연도 -->
, #{enisMtchg.levyNo} <!-- 부과 번호 -->
, #{enisMtchg.levyAmt} <!-- 부과 금액 -->
, #{enisMtchg.adtnAmt} <!-- 가산 금액 -->
, #{enisMtchg.sumAmt} <!-- 합계 금액 -->
, #{enisMtchg.prcsSttsCd} <!-- 처리 상태 코드 -->
, #{enisMtchg.epayno} <!-- 전자납부번호 -->
, #{enisMtchg.bankNm1} <!-- 은행 명1 -->
, #{enisMtchg.vractno1} <!-- 가상계좌번호1 -->
, #{enisMtchg.bankNm2} <!-- 은행 명2 -->
, #{enisMtchg.vractno2} <!-- 가상계좌번호2 -->
, #{enisMtchg.bankNm3} <!-- 은행 명3 -->
, #{enisMtchg.vractno3} <!-- 가상계좌번호3 -->
, #{enisMtchg.bankNm4} <!-- 은행 명4 -->
, #{enisMtchg.vractno4} <!-- 가상계좌번호4 -->
, #{enisMtchg.bankNm5} <!-- 은행 명5 -->
, #{enisMtchg.vractno5} <!-- 가상계좌번호5 -->
, #{enisMtchg.bankNm6} <!-- 은행 명6 -->
, #{enisMtchg.vractno6} <!-- 가상계좌번호6 -->
, #{enisMtchg.bankNm7} <!-- 은행 명7 -->
, #{enisMtchg.vractno7} <!-- 가상계좌번호7 -->
, #{enisMtchg.bankNm8} <!-- 은행 명8 -->
, #{enisMtchg.vractno8} <!-- 가상계좌번호8 -->
, #{enisMtchg.bankNm9} <!-- 은행 명9 -->
, #{enisMtchg.vractno9} <!-- 가상계좌번호9 -->
, #{enisMtchg.bankNm10} <!-- 은행 명10 -->
, #{enisMtchg.vractno10} <!-- 가상계좌번호10 -->
, #{enisMtchg.bankNm11} <!-- 은행 명11 -->
, #{enisMtchg.vractno11} <!-- 가상계좌번호11 -->
, #{enisMtchg.delYn} /* 삭제 여부 */
, <include refid="utility.now" /> /* 등록 일시 */
, #{enisMtchg.createdBy} /* 등록자 */
, <include refid="utility.now" /> /* 수정 일시 */
, #{enisMtchg.modifiedBy} /* 수정자 */
)
</insert>
<update id="updateEnisMtchg" parameterType="map">/* 세외수입 매칭 내역 수정(enisMtchgMapper.updateEnisMtchg) */
UPDATE TB_ENIS_MTCHG SET
CRDN_ID = #{enisMtchg.crdnId} <!-- 단속 ID -->
, CRDN_DT = #{enisMtchg.crdnDt} <!-- 단속 일시 -->
, STDG_NM = #{enisMtchg.stdgNm} <!-- 법정동 명 -->
, CRDN_PLC = #{enisMtchg.crdnPlc} <!-- 단속 장소 -->
, LVY_KEY = #{enisMtchg.lvyKey} <!-- 부과 키 -->
, ACNTG_YR = #{enisMtchg.acntgYr} <!-- 회계 연도 -->
, LEVY_NO = #{enisMtchg.levyNo} <!-- 부과 번호 -->
, LEVY_AMT = #{enisMtchg.levyAmt} <!-- 부과 금액 -->
, ADTN_AMT = #{enisMtchg.adtnAmt} <!-- 가산 금액 -->
, SUM_AMT = #{enisMtchg.sumAmt} <!-- 합계 금액 -->
, PRCS_STTS_CD = #{enisMtchg.prcsSttsCd} <!-- 처리 상태 코드 -->
, EPAYNO = #{enisMtchg.epayno} <!-- 전자납부번호 -->
, BANK_NM1 = #{enisMtchg.bankNm1} <!-- 은행 명1 -->
, VRACTNO1 = #{enisMtchg.vractno1} <!-- 가상계좌번호1 -->
, BANK_NM2 = #{enisMtchg.bankNm2} <!-- 은행 명2 -->
, VRACTNO2 = #{enisMtchg.vractno2} <!-- 가상계좌번호2 -->
, BANK_NM3 = #{enisMtchg.bankNm3} <!-- 은행 명3 -->
, VRACTNO3 = #{enisMtchg.vractno3} <!-- 가상계좌번호3 -->
, BANK_NM4 = #{enisMtchg.bankNm4} <!-- 은행 명4 -->
, VRACTNO4 = #{enisMtchg.vractno4} <!-- 가상계좌번호4 -->
, BANK_NM5 = #{enisMtchg.bankNm5} <!-- 은행 명5 -->
, VRACTNO5 = #{enisMtchg.vractno5} <!-- 가상계좌번호5 -->
, BANK_NM6 = #{enisMtchg.bankNm6} <!-- 은행 명6 -->
, VRACTNO6 = #{enisMtchg.vractno6} <!-- 가상계좌번호6 -->
, BANK_NM7 = #{enisMtchg.bankNm7} <!-- 은행 명7 -->
, VRACTNO7 = #{enisMtchg.vractno7} <!-- 가상계좌번호7 -->
, BANK_NM8 = #{enisMtchg.bankNm8} <!-- 은행 명8 -->
, VRACTNO8 = #{enisMtchg.vractno8} <!-- 가상계좌번호8 -->
, BANK_NM9 = #{enisMtchg.bankNm9} <!-- 은행 명9 -->
, VRACTNO9 = #{enisMtchg.vractno9} <!-- 가상계좌번호9 -->
, BANK_NM10 = #{enisMtchg.bankNm10} <!-- 은행 명10 -->
, VRACTNO10 = #{enisMtchg.vractno10} <!-- 가상계좌번호10 -->
, BANK_NM11 = #{enisMtchg.bankNm11} <!-- 은행 명11 -->
, VRACTNO11 = #{enisMtchg.vractno11} <!-- 가상계좌번호11 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{currentUser.id} <!-- 수정자 -->
WHERE MTCHG_ID = #{enisMtchg.mtchgId}</update>
<update id="deleteEnisMtchg" parameterType="map">/* 세외수입 매칭 내역 삭제(enisMtchgMapper.deleteEnisMtchg) */
UPDATE TB_ENIS_MTCHG
SET DEL_YN = 'N'
, DEL_DT = <include refid="utility.now" />
, DLTR = #{enisMtchg.modifiedBy}
, DEL_RSN = #{enisMtchg.delRsn}
<choose>
<when test="enisMtchg.crdnId != null">
WHERE CRDN_ID = #{enisMtchg.crdnId} /* 단속 ID */
</when>
<otherwise>
WHERE MTCHG_ID = #{enisMtchg.mtchgId} /* 매핑 ID */
</otherwise>
</choose>
AND EM.DEL_YN = 'N' /* 삭제 여부 */
</update>
</mapper>

@ -12,7 +12,6 @@
<result property="sndngId" column="SNDNG_ID" /> <!-- 발송 ID --> <result property="sndngId" column="SNDNG_ID" /> <!-- 발송 ID -->
<result property="sggCd" column="SGG_CD" /> <!-- 시군구 코드 --> <result property="sggCd" column="SGG_CD" /> <!-- 시군구 코드 -->
<result property="taskSeCd" column="TASK_SE_CD" /> <!-- 업무 구분 코드 --> <result property="taskSeCd" column="TASK_SE_CD" /> <!-- 업무 구분 코드 -->
<result property="vltnId" column="VLTN_ID" /> <!-- 위반 ID -->
<result property="sndngRegSeCd" column="SNDNG_REG_SE_CD" /> <!-- 발송 등록 구분 코드 --> <result property="sndngRegSeCd" column="SNDNG_REG_SE_CD" /> <!-- 발송 등록 구분 코드 -->
<result property="sndngSeCd" column="SNDNG_SE_CD" /> <!-- 발송 구분 코드 --> <result property="sndngSeCd" column="SNDNG_SE_CD" /> <!-- 발송 구분 코드 -->
<result property="levyBgngYmd" column="LEVY_BGNG_YMD" /> <!-- 부과 시작 일자 --> <result property="levyBgngYmd" column="LEVY_BGNG_YMD" /> <!-- 부과 시작 일자 -->
@ -45,6 +44,7 @@
<result property="svbtcId" column="SVBTC_ID" /> <!-- 공시송달 ID --> <result property="svbtcId" column="SVBTC_ID" /> <!-- 공시송달 ID -->
<result property="crdnId" column="CRDN_ID" /> <!-- 단속 ID --> <result property="crdnId" column="CRDN_ID" /> <!-- 단속 ID -->
<result property="levyId" column="LEVY_ID" /> <!-- 부과 ID --> <result property="levyId" column="LEVY_ID" /> <!-- 부과 ID -->
<result property="vltnCd" column="VLTN_CD" /> <!-- 위반 코드 -->
<result property="vhrno" column="VHRNO" /> <!-- 차량번호 --> <result property="vhrno" column="VHRNO" /> <!-- 차량번호 -->
<result property="crdnDt" column="CRDN_DT" /> <!-- 단속 일시 --> <result property="crdnDt" column="CRDN_DT" /> <!-- 단속 일시 -->
<result property="crdnPlc" column="CRDN_PLC" /> <!-- 단속 장소 --> <result property="crdnPlc" column="CRDN_PLC" /> <!-- 단속 장소 -->
@ -248,6 +248,9 @@
, C.CRDN_YMD /* 단속 일자 */ , C.CRDN_YMD /* 단속 일자 */
, C.CRDN_TM /* 단속 시각 */ , C.CRDN_TM /* 단속 시각 */
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */ , (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */
, FN_GET_MASK_DATETIME(C.CRDN_YMD, C.CRDN_TM, '-', ':') AS CRDN_YMD_TM_MASK /* 단속 일시 마스크 */
, (SELECT VI.VLTN_CD FROM TB_VLTN_INFO VI
WHERE C.VLTN_ID=VI.VLTN_ID AND C.SGG_CD=VI.SGG_CD AND C.TASK_SE_CD=VI.TASK_SE_CD) AS VLTN_CD /* 위반 코드 */
, C.VHRNO /* 차량번호 */ , C.VHRNO /* 차량번호 */
, C.CRDN_STDG_NM /* 단속 법정동 명 */ , C.CRDN_STDG_NM /* 단속 법정동 명 */
, C.CRDN_ROAD_NM /* 단속 도로 명 */ , C.CRDN_ROAD_NM /* 단속 도로 명 */
@ -257,6 +260,7 @@
, C.ADVNTCE_AMT /* 사전통지 금액 */ , C.ADVNTCE_AMT /* 사전통지 금액 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */ , C.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */ , (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, C.CRDN_STTS_CHG_DT /* 단속 상태 변경 일시 */
, C.REG_DT /* 등록 일시 */ , C.REG_DT /* 등록 일시 */
, C.RGTR /* 등록자 */ , C.RGTR /* 등록자 */
, (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.RGTR) AS RGTR_NM /* 등록자 명 */
@ -270,12 +274,10 @@
, CC.CVLCPT_APLY_DT /* 민원 신청 일시 */ , CC.CVLCPT_APLY_DT /* 민원 신청 일시 */
, CC.CVLCPT_APLY_TTL_NM /* 민원 신청 제목 명 */ , CC.CVLCPT_APLY_TTL_NM /* 민원 신청 제목 명 */
, CC.CVLCPT_GIST /* 민원 요지 */ , CC.CVLCPT_GIST /* 민원 요지 */
, CC.CVLCPT_PRCS_CD /* 민원 처리 코드 */
, (SELECT FN_GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD) FROM DUAL) AS CVLCPT_PRCS_NM /* 민원 처리 명 */ , (SELECT FN_GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD) FROM DUAL) AS CVLCPT_PRCS_NM /* 민원 처리 명 */
, CC.CVLCPT_PRCS_SUMRY /* 민원 처리 요약 */ , CC.CVLCPT_PRCS_SUMRY /* 민원 처리 요약 */
, CC.CVLCPT_PRCS_RSLT_CN /* 민원 처리 결과 내용 */ , CC.CVLCPT_PRCS_RSLT_CN /* 민원 처리 결과 내용 */
, CC.CVLCPT_PRCS_CMPTN_DT /* 민원 처리 완료 일시 */ , CC.CVLCPT_PRCS_CMPTN_DT /* 민원 처리 완료 일시 */
, CC.CVLCPT_TRSM_CD /* 민원 전송 코드 */
, (SELECT FN_GET_CODE_NM('FIM018', CC.CVLCPT_TRSM_CD) FROM DUAL) AS CVLCPT_TRSM_NM /* 민원 전송 명 */ , (SELECT FN_GET_CODE_NM('FIM018', CC.CVLCPT_TRSM_CD) FROM DUAL) AS CVLCPT_TRSM_NM /* 민원 전송 명 */
, CC.CVLCPT_TRSM_DT /* 민원 전송 일시 */ , CC.CVLCPT_TRSM_DT /* 민원 전송 일시 */
, P.RTPYR_ID /* 납부자 ID */ , P.RTPYR_ID /* 납부자 ID */
@ -293,11 +295,13 @@
, LE.LEVY_EXCL_RSN_CD /* 부과 제외 사유 코드 */ , LE.LEVY_EXCL_RSN_CD /* 부과 제외 사유 코드 */
, (SELECT FN_GET_CODE_NM('FIM022', LE.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM /* 부과 제외 사유 명 */ , (SELECT FN_GET_CODE_NM('FIM022', LE.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM /* 부과 제외 사유 명 */
, LE.ETC_CN /* 기타 내용 */ , LE.ETC_CN /* 기타 내용 */
, L.LEVY_ID /* 부과 ID */
FROM TB_CRDN C FROM TB_CRDN C
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID)
LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N') LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N')
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
LEFT OUTER JOIN TB_LEVY_EXCL LE ON (C.CRDN_ID = LE.CRDN_ID AND LE.DEL_YN = 'N') LEFT OUTER JOIN TB_LEVY_EXCL LE ON (C.CRDN_ID = LE.CRDN_ID AND LE.DEL_YN = 'N')
LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N')
<where> <where>
<if test="crdnIDs != null"> <if test="crdnIDs != null">
AND C.CRDN_ID IN ( AND C.CRDN_ID IN (
@ -323,9 +327,11 @@
SELECT SNDNG_ID /* 발송 ID */ SELECT SNDNG_ID /* 발송 ID */
, SGG_CD /* 시군구 코드 */ , SGG_CD /* 시군구 코드 */
, TASK_SE_CD /* 업무 구분 코드 */ , TASK_SE_CD /* 업무 구분 코드 */
, VLTN_ID /* 위반 ID */ , (SELECT FN_GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */
, SNDNG_REG_SE_CD /* 발송 등록 구분 코드 */ , SNDNG_REG_SE_CD /* 발송 등록 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM066', C.SNDNG_REG_SE_CD) FROM DUAL) AS SNDNG_REG_SE_NM /* 발송 등록 구분 명 */
, SNDNG_SE_CD /* 발송 구분 코드 */ , SNDNG_SE_CD /* 발송 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM047', C.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM /* 단속 상태 명 */
, LEVY_BGNG_YMD /* 부과 시작 일자 */ , LEVY_BGNG_YMD /* 부과 시작 일자 */
, LEVY_END_YMD /* 부과 종료 일자 */ , LEVY_END_YMD /* 부과 종료 일자 */
, SNDNG_YMD /* 발송 일자 */ , SNDNG_YMD /* 발송 일자 */
@ -367,11 +373,11 @@
FROM TB_SNDNG FROM TB_SNDNG
WHERE SNDNG_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%') WHERE SNDNG_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%')
</selectKey> </selectKey>
INSERT INTO TB_SNDNG ( INSERT
INTO TB_SNDNG (
SNDNG_ID /* 발송 ID */ SNDNG_ID /* 발송 ID */
, SGG_CD /* 시군구 코드 */ , SGG_CD /* 시군구 코드 */
, TASK_SE_CD /* 업무 구분 코드 */ , TASK_SE_CD /* 업무 구분 코드 */
, VLTN_ID /* 위반 ID */
, SNDNG_REG_SE_CD /* 발송 등록 구분 코드 */ , SNDNG_REG_SE_CD /* 발송 등록 구분 코드 */
, SNDNG_SE_CD /* 발송 구분 코드 */ , SNDNG_SE_CD /* 발송 구분 코드 */
, LEVY_BGNG_YMD /* 부과 시작 일자 */ , LEVY_BGNG_YMD /* 부과 시작 일자 */
@ -388,6 +394,7 @@
, EPOST_NOTICE_ID /* 전자우편 안내문 ID */ , EPOST_NOTICE_ID /* 전자우편 안내문 ID */
, SNDNG_STTS_CD /* 발송 상태 코드 */ , SNDNG_STTS_CD /* 발송 상태 코드 */
, RESND_YN /* 재발송 여부 */ , RESND_YN /* 재발송 여부 */
, DEL_YN /* 삭제 여부 */
, REG_DT /* 등록 일시 */ , REG_DT /* 등록 일시 */
, RGTR /* 등록자 */ , RGTR /* 등록자 */
, MDFCN_DT /* 수정 일시 */ , MDFCN_DT /* 수정 일시 */
@ -397,7 +404,6 @@
#{sndng.sndngId} /* 발송 ID */ #{sndng.sndngId} /* 발송 ID */
, #{sndng.sggCd} /* 시군구 코드 */ , #{sndng.sggCd} /* 시군구 코드 */
, #{sndng.taskSeCd} /* 업무 구분 코드 */ , #{sndng.taskSeCd} /* 업무 구분 코드 */
, #{sndng.vltnId} /* 위반 ID */
, #{sndng.sndngRegSeCd} /* 발송 등록 구분 코드 */ , #{sndng.sndngRegSeCd} /* 발송 등록 구분 코드 */
, #{sndng.sndngSeCd} /* 발송 구분 코드 */ , #{sndng.sndngSeCd} /* 발송 구분 코드 */
, #{sndng.levyBgngYmd} /* 부과 시작 일자 */ , #{sndng.levyBgngYmd} /* 부과 시작 일자 */
@ -414,6 +420,7 @@
, #{sndng.epostNoticeId} /* 전자우편 안내문 ID */ , #{sndng.epostNoticeId} /* 전자우편 안내문 ID */
, #{sndng.sndngSttsCd} /* 발송 상태 코드 */ , #{sndng.sndngSttsCd} /* 발송 상태 코드 */
, #{sndng.resndYn} /* 재발송 여부 */ , #{sndng.resndYn} /* 재발송 여부 */
, #{sndng.delYn} /* 삭제 여부 */
, <include refid="utility.now" /> /* 등록 일시 */ , <include refid="utility.now" /> /* 등록 일시 */
, #{sndng.createdBy} /* 등록자 */ , #{sndng.createdBy} /* 등록자 */
, <include refid="utility.now" /> /* 수정 일시 */ , <include refid="utility.now" /> /* 수정 일시 */
@ -422,36 +429,38 @@
</insert> </insert>
<update id="updateSndng" parameterType="map">/* 발송 대장 수정(sndngMapper.updateSndng) */ <update id="updateSndng" parameterType="map">/* 발송 대장 수정(sndngMapper.updateSndng) */
UPDATE TB_SNDNG SET UPDATE TB_SNDNG
SGG_CD = #{sndng.sggCd} <!-- 시군구 코드 --> SET SGG_CD = #{sndng.sggCd} /* 시군구 코드 */
, VLTN_ID = #{sndng.vltnId} <!-- 위반 ID --> , TASK_SE_CD = #{sndng.taskSeCd} /* 업무 구분 코드 */
, SNDNG_REG_SE_CD = #{sndng.sndngRegSeCd} <!-- 발송 등록 구분 코드 --> , SNDNG_REG_SE_CD = #{sndng.sndngRegSeCd} /* 발송 등록 구분 코드 */
, SNDNG_SE_CD = #{sndng.sndngSeCd} <!-- 발송 구분 코드 --> , SNDNG_SE_CD = #{sndng.sndngSeCd} /* 발송 구분 코드 */
, LEVY_BGNG_YMD = #{sndng.levyBgngYmd} <!-- 부과 시작 일자 --> , LEVY_BGNG_YMD = #{sndng.levyBgngYmd} /* 부과 시작 일자 */
, LEVY_END_YMD = #{sndng.levyEndYmd} <!-- 부과 종료 일자 --> , LEVY_END_YMD = #{sndng.levyEndYmd} /* 부과 종료 일자 */
, SNDNG_YMD = #{sndng.sndngYmd} <!-- 발송 일자 --> , SNDNG_YMD = #{sndng.sndngYmd} /* 발송 일자 */
, DUDT_YMD = #{sndng.dudtYmd} <!-- 납기 일자 --> , DUDT_YMD = #{sndng.dudtYmd} /* 납기 일자 */
, TTL_NM = #{sndng.ttlNm} <!-- 제목 명 --> , TTL_NM = #{sndng.ttlNm} /* 제목 명 */
, DOC_NO = #{sndng.docNo} <!-- 문서 번호 --> , DOC_NO = #{sndng.docNo} /* 문서 번호 */
, ETC_CN = #{sndng.etcCn} <!-- 기타 내용 --> , ETC_CN = #{sndng.etcCn} /* 기타 내용 */
, TNOCS = #{sndng.tnocs} <!-- 총건수 --> , TNOCS = #{sndng.tnocs} /* 총건수 */
, GRAMT = #{sndng.gramt} <!-- 총금액 --> , GRAMT = #{sndng.gramt} /* 총금액 */
, CON_KEY = #{sndng.conKey} <!-- 외부연계식별키 --> , CON_KEY = #{sndng.conKey} /* 외부연계식별키 */
, DIV_KB = #{sndng.divKb} <!-- 취급 구분 --> , DIV_KB = #{sndng.divKb} /* 취급 구분 */
, EPOST_NOTICE_ID = #{sndng.epostNoticeId} <!-- 전자우편 안내문 ID --> , EPOST_NOTICE_ID = #{sndng.epostNoticeId} /* 전자우편 안내문 ID */
, SNDNG_STTS_CD = #{sndng.sndngSttsCd} <!-- 발송 상태 코드 --> , SNDNG_STTS_CD = #{sndng.sndngSttsCd} /* 발송 상태 코드 */
, RESND_YN = #{sndng.resndYn} <!-- 재발송 여부 --> , RESND_YN = #{sndng.resndYn} /* 재발송 여부 */
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 --> , MDFCN_DT = <include refid="utility.now" /> /* 수정 일시 */
, MDFR = #{currentUser.id} <!-- 수정자 --> , MDFR = #{sndng.modifiedBy} /* 수정자 */
, TASK_SE_CD = #{sndng.taskSeCd} <!-- 업무 구분 코드 --> WHERE SNDNG_ID = #{sndng.sndngId}
WHERE SNDNG_ID = #{sndng.sndngId}</update> </update>
<update id="deleteSndng" parameterType="map">/* 발송 대장 삭제(sndngMapper.deleteSndng) */ <update id="deleteSndng" parameterType="map">/* 발송 대장 삭제(sndngMapper.deleteSndng) */
UPDATE TB_SNDNG SET UPDATE TB_SNDNG
USE_YN = 'N' SET DEL_YN = 'Y'
, MDFCN_DT = <include refid="utility.now" /> , MDFCN_DT = <include refid="utility.now" />
, MDFR = #{currentUser.id} , MDFR = #{sndng.modifiedBy}
WHERE SNDNG_ID = #{sndng.sndngId}</update> WHERE SNDNG_ID = #{sndng.sndngId}
AND DEL_YN = 'N'
</update>
<sql id="selectSndngDtl"> <sql id="selectSndngDtl">
SELECT SD.SNDNG_DTL_ID /* 발송 상세 ID */ SELECT SD.SNDNG_DTL_ID /* 발송 상세 ID */
@ -459,6 +468,7 @@ UPDATE TB_SNDNG SET
, SD.SVBTC_ID /* 공시송달 ID */ , SD.SVBTC_ID /* 공시송달 ID */
, SD.CRDN_ID /* 단속 ID */ , SD.CRDN_ID /* 단속 ID */
, SD.LEVY_ID /* 부과 ID */ , SD.LEVY_ID /* 부과 ID */
, SD.VLTN_CD /* 위반 ID */
, SD.VHRNO /* 차량번호 */ , SD.VHRNO /* 차량번호 */
, SD.CRDN_DT /* 단속 일시 */ , SD.CRDN_DT /* 단속 일시 */
, SD.CRDN_PLC /* 단속 장소 */ , SD.CRDN_PLC /* 단속 장소 */
@ -528,7 +538,7 @@ UPDATE TB_SNDNG SET
, SD.DEL_RSN /* 삭제 사유 */ , SD.DEL_RSN /* 삭제 사유 */
, S.SGG_CD /* 시군구 코드 */ , S.SGG_CD /* 시군구 코드 */
, S.TASK_SE_CD /* 업무 구분 코드 */ , S.TASK_SE_CD /* 업무 구분 코드 */
, S.VLTN_ID /* 위반 ID */ , S.VLTN_CD /* 위반 ID */
, S.SNDNG_REG_SE_CD /* 발송 등록 구분 코드 */ , S.SNDNG_REG_SE_CD /* 발송 등록 구분 코드 */
, S.SNDNG_SE_CD /* 발송 구분 코드 */ , S.SNDNG_SE_CD /* 발송 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM047', S.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM /* 발송 구분 명 */ , (SELECT FN_GET_CODE_NM('FIM047', S.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM /* 발송 구분 명 */
@ -575,205 +585,217 @@ UPDATE TB_SNDNG SET
</select> </select>
<insert id="insertSndngDtl" parameterType="map">/* 발송 상세 등록(sndngMapper.insertSndngDtl) */ <insert id="insertSndngDtl" parameterType="map">/* 발송 상세 등록(sndngMapper.insertSndngDtl) */
INSERT INTO TB_SNDNG_DTL ( <selectKey resultType="string" keyProperty="sndngDtl.sndngDtlId" keyColumn="NEW_ID" order="BEFORE">
SNDNG_DTL_ID <!-- 발송 상세 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
, SNDNG_ID <!-- 발송 ID --> FROM TB_SNDNG_DTL
, SVBTC_ID <!-- 공시송달 ID --> WHERE SNDNG_DTL_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%')
, CRDN_ID <!-- 단속 ID --> </selectKey>
, LEVY_ID <!-- 부과 ID --> INSERT
, VHRNO <!-- 차량번호 --> INTO TB_SNDNG_DTL (
, CRDN_DT <!-- 단속 일시 --> SNDNG_DTL_ID /* 발송 상세 ID */
, CRDN_PLC <!-- 단속 장소 --> , SNDNG_ID /* 발송 ID */
, LEV_KEY <!-- 세외수입 부과키 --> , SVBTC_ID /* 공시송달 ID */
, FYR <!-- 회계연도 --> , CRDN_ID /* 단속 ID */
, LEVY_NO <!-- 부과 번호 --> , LEVY_ID /* 부과 ID */
, SNDNG_YMD <!-- 발송 일자 --> , VLTN_CD /* 위반 코드 */
, DUDT_YMD <!-- 납기 일자 --> , VHRNO /* 차량번호 */
, FFNLG_AMT <!-- 과태료 금액 --> , CRDN_DT /* 단속 일시 */
, LEVY_PCPTAX <!-- 부과 본세 --> , CRDN_PLC /* 단속 장소 */
, LEVY_ADAMT <!-- 부과 가산금 --> , LEV_KEY /* 세외수입 부과키 */
, LEVY_SUM_AMT <!-- 부과 합계 금액 --> , FYR /* 회계연도 */
, RTPYR_NM <!-- 납부자 명 --> , LEVY_NO /* 부과 번호 */
, RTPYR_NO <!-- 납부자 번호 --> , SNDNG_YMD /* 발송 일자 */
, RTPYR_ADDR <!-- 납부자 주소 --> , DUDT_YMD /* 납기 일자 */
, RTPYR_DTL_ADDR <!-- 납부자 상세 주소 --> , FFNLG_AMT /* 과태료 금액 */
, RTPYR_ZIP <!-- 납부자 우편번호 --> , LEVY_PCPTAX /* 부과 본세 */
, CON_KEY <!-- 외부연계식별키 --> , LEVY_ADAMT /* 부과 가산금 */
, RG_NO <!-- 등기 번호 --> , LEVY_SUM_AMT /* 부과 합계 금액 */
, DLVR_YMD <!-- 배달 일자 --> , RTPYR_NM /* 납부자 명 */
, DLVR_TM <!-- 배달 시각 --> , RTPYR_NO /* 납부자 번호 */
, UNDLVR_RSN_NM <!-- 미배달 사유 명 --> , RTPYR_ADDR /* 납부자 주소 */
, RCPN_NM <!-- 수령인 명 --> , RTPYR_DTL_ADDR /* 납부자 상세 주소 */
, RCPN_REL_NM <!-- 수령인 관계 명 --> , RTPYR_ZIP /* 납부자 우편번호 */
, SNDNG_DTL_STTS_CD <!-- 발송 상세 상태 코드 --> , CON_KEY /* 외부연계식별키 */
, BFR_SNDNG_DTL_STTS_CD <!-- 전 발송 상세 상태 코드 --> , RG_NO /* 등기 번호 */
, BFR_DLVR_YMD <!-- 전 배달 일자 --> , DLVR_YMD /* 배달 일자 */
, BFR_DLVR_HR <!-- 전 배달 시간 --> , DLVR_TM /* 배달 시각 */
, SNDNG_RCVMT_CD <!-- 발송 수납 코드 --> , UNDLVR_RSN_NM /* 미배달 사유 명 */
, ADDR_CHG_CD <!-- 주소 변경 코드 --> , RCPN_NM /* 수령인 명 */
, TAX_NO <!-- 납세 번호 --> , RCPN_REL_NM /* 수령인 관계 명 */
, EPAYNO <!-- 전자납부번호 --> , SNDNG_DTL_STTS_CD /* 발송 상세 상태 코드 */
, BANK_NM <!-- 은행 명 --> , BFR_SNDNG_DTL_STTS_CD /* 전 발송 상세 상태 코드 */
, VR_ACTNO <!-- 가상 계좌번호 --> , BFR_DLVR_YMD /* 전 배달 일자 */
, BANK_NM_2 <!-- 은행 명 2 --> , BFR_DLVR_HR /* 전 배달 시간 */
, VR_ACTNO_2 <!-- 가상 계좌번호 2 --> , SNDNG_RCVMT_CD /* 발송 수납 코드 */
, BANK_NM_3 <!-- 은행 명 3 --> , ADDR_CHG_CD /* 주소 변경 코드 */
, VR_ACTNO_3 <!-- 가상 계좌번호 3 --> , TAX_NO /* 납세 번호 */
, BANK_NM_4 <!-- 은행 명 4 --> , EPAYNO /* 전자납부번호 */
, VR_ACTNO_4 <!-- 가상 계좌번호 4 --> , BANK_NM /* 은행 명 */
, BANK_NM_5 <!-- 은행 명 5 --> , VR_ACTNO /* 가상 계좌번호 */
, VR_ACTNO_5 <!-- 가상 계좌번호 5 --> , BANK_NM_2 /* 은행 명 2 */
, BANK_NM_6 <!-- 은행 명 6 --> , VR_ACTNO_2 /* 가상 계좌번호 2 */
, VR_ACTNO_6 <!-- 가상 계좌번호 6 --> , BANK_NM_3 /* 은행 명 3 */
, BANK_NM_7 <!-- 은행 명 7 --> , VR_ACTNO_3 /* 가상 계좌번호 3 */
, VR_ACTNO_7 <!-- 가상 계좌번호 7 --> , BANK_NM_4 /* 은행 명 4 */
, BANK_NM_8 <!-- 은행 명 8 --> , VR_ACTNO_4 /* 가상 계좌번호 4 */
, VR_ACTNO_8 <!-- 가상 계좌번호 8 --> , BANK_NM_5 /* 은행 명 5 */
, BANK_NM_9 <!-- 은행 명 9 --> , VR_ACTNO_5 /* 가상 계좌번호 5 */
, VR_ACTNO_9 <!-- 가상 계좌번호 9 --> , BANK_NM_6 /* 은행 명 6 */
, BANK_NM_10 <!-- 은행 명 10 --> , VR_ACTNO_6 /* 가상 계좌번호 6 */
, VR_ACTNO_10 <!-- 가상 계좌번호 10 --> , BANK_NM_7 /* 은행 명 7 */
, BANK_NM_11 <!-- 은행 명 11 --> , VR_ACTNO_7 /* 가상 계좌번호 7 */
, VR_ACTNO_11 <!-- 가상 계좌번호 11 --> , BANK_NM_8 /* 은행 명 8 */
, REG_DT <!-- 등록 일시 --> , VR_ACTNO_8 /* 가상 계좌번호 8 */
, RGTR <!-- 등록자 --> , BANK_NM_9 /* 은행 명 9 */
, MDFCN_DT <!-- 수정 일시 --> , VR_ACTNO_9 /* 가상 계좌번호 9 */
, MDFR <!-- 수정자 --> , BANK_NM_10 /* 은행 명 10 */
) VALUES ( , VR_ACTNO_10 /* 가상 계좌번호 10 */
#{sndngDtl.sndngDtlId} <!-- 발송 상세 ID --> , BANK_NM_11 /* 은행 명 11 */
, #{sndngDtl.sndngId} <!-- 발송 ID --> , VR_ACTNO_11 /* 가상 계좌번호 11 */
, #{sndngDtl.svbtcId} <!-- 공시송달 ID --> , REG_DT /* 등록 일시 */
, #{sndngDtl.crdnId} <!-- 단속 ID --> , RGTR /* 등록자 */
, #{sndngDtl.levyId} <!-- 부과 ID --> , MDFCN_DT /* 수정 일시 */
, #{sndngDtl.vhrno} <!-- 차량번호 --> , MDFR /* 수정자 */
, #{sndngDtl.crdnDt} <!-- 단속 일시 --> )
, #{sndngDtl.crdnPlc} <!-- 단속 장소 --> VALUES (
, #{sndngDtl.levKey} <!-- 세외수입 부과키 --> #{sndngDtl.sndngDtlId} /* 발송 상세 ID */
, #{sndngDtl.fyr} <!-- 회계연도 --> , #{sndngDtl.sndngId} /* 발송 ID */
, #{sndngDtl.levyNo} <!-- 부과 번호 --> , #{sndngDtl.svbtcId} /* 공시송달 ID */
, #{sndngDtl.sndngYmd} <!-- 발송 일자 --> , #{sndngDtl.crdnId} /* 단속 ID */
, #{sndngDtl.dudtYmd} <!-- 납기 일자 --> , #{sndngDtl.levyId} /* 부과 ID */
, #{sndngDtl.ffnlgAmt} <!-- 과태료 금액 --> , #{sndng.vltnCd} /* 위반 코드 */
, #{sndngDtl.levyPcptax} <!-- 부과 본세 --> , #{sndngDtl.vhrno} /* 차량번호 */
, #{sndngDtl.levyAdamt} <!-- 부과 가산금 --> , #{sndngDtl.crdnDt} /* 단속 일시 */
, #{sndngDtl.levySumAmt} <!-- 부과 합계 금액 --> , #{sndngDtl.crdnPlc} /* 단속 장소 */
, #{sndngDtl.rtpyrNm} <!-- 납부자 명 --> , #{sndngDtl.levKey} /* 세외수입 부과키 */
, #{sndngDtl.rtpyrNo} <!-- 납부자 번호 --> , #{sndngDtl.fyr} /* 회계연도 */
, #{sndngDtl.rtpyrAddr} <!-- 납부자 주소 --> , #{sndngDtl.levyNo} /* 부과 번호 */
, #{sndngDtl.rtpyrDtlAddr} <!-- 납부자 상세 주소 --> , #{sndngDtl.sndngYmd} /* 발송 일자 */
, #{sndngDtl.rtpyrZip} <!-- 납부자 우편번호 --> , #{sndngDtl.dudtYmd} /* 납기 일자 */
, #{sndngDtl.conKey} <!-- 외부연계식별키 --> , #{sndngDtl.ffnlgAmt} /* 과태료 금액 */
, #{sndngDtl.rgNo} <!-- 등기 번호 --> , #{sndngDtl.levyPcptax} /* 부과 본세 */
, #{sndngDtl.dlvrYmd} <!-- 배달 일자 --> , #{sndngDtl.levyAdamt} /* 부과 가산금 */
, #{sndngDtl.dlvrTm} <!-- 배달 시각 --> , #{sndngDtl.levySumAmt} /* 부과 합계 금액 */
, #{sndngDtl.undlvrRsnNm} <!-- 미배달 사유 명 --> , #{sndngDtl.rtpyrNm} /* 납부자 명 */
, #{sndngDtl.rcpnNm} <!-- 수령인 명 --> , #{sndngDtl.rtpyrNo} /* 납부자 번호 */
, #{sndngDtl.rcpnRelNm} <!-- 수령인 관계 명 --> , #{sndngDtl.rtpyrAddr} /* 납부자 주소 */
, #{sndngDtl.sndngDtlSttsCd} <!-- 발송 상세 상태 코드 --> , #{sndngDtl.rtpyrDtlAddr} /* 납부자 상세 주소 */
, #{sndngDtl.bfrSndngDtlSttsCd} <!-- 전 발송 상세 상태 코드 --> , #{sndngDtl.rtpyrZip} /* 납부자 우편번호 */
, #{sndngDtl.bfrDlvrYmd} <!-- 전 배달 일자 --> , #{sndngDtl.conKey} /* 외부연계식별키 */
, #{sndngDtl.bfrDlvrHr} <!-- 전 배달 시간 --> , #{sndngDtl.rgNo} /* 등기 번호 */
, #{sndngDtl.sndngRcvmtCd} <!-- 발송 수납 코드 --> , #{sndngDtl.dlvrYmd} /* 배달 일자 */
, #{sndngDtl.addrChgCd} <!-- 주소 변경 코드 --> , #{sndngDtl.dlvrTm} /* 배달 시각 */
, #{sndngDtl.taxNo} <!-- 납세 번호 --> , #{sndngDtl.undlvrRsnNm} /* 미배달 사유 명 */
, #{sndngDtl.epayno} <!-- 전자납부번호 --> , #{sndngDtl.rcpnNm} /* 수령인 명 */
, #{sndngDtl.bankNm} <!-- 은행 명 --> , #{sndngDtl.rcpnRelNm} /* 수령인 관계 명 */
, #{sndngDtl.vrActno} <!-- 가상 계좌번호 --> , #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */
, #{sndngDtl.bankNm2} <!-- 은행 명 2 --> , #{sndngDtl.bfrSndngDtlSttsCd} /* 전 발송 상세 상태 코드 */
, #{sndngDtl.vrActno2} <!-- 가상 계좌번호 2 --> , #{sndngDtl.bfrDlvrYmd} /* 전 배달 일자 */
, #{sndngDtl.bankNm3} <!-- 은행 명 3 --> , #{sndngDtl.bfrDlvrHr} /* 전 배달 시간 */
, #{sndngDtl.vrActno3} <!-- 가상 계좌번호 3 --> , #{sndngDtl.sndngRcvmtCd} /* 발송 수납 코드 */
, #{sndngDtl.bankNm4} <!-- 은행 명 4 --> , #{sndngDtl.addrChgCd} /* 주소 변경 코드 */
, #{sndngDtl.vrActno4} <!-- 가상 계좌번호 4 --> , #{sndngDtl.taxNo} /* 납세 번호 */
, #{sndngDtl.bankNm5} <!-- 은행 명 5 --> , #{sndngDtl.epayno} /* 전자납부번호 */
, #{sndngDtl.vrActno5} <!-- 가상 계좌번호 5 --> , #{sndngDtl.bankNm} /* 은행 명 */
, #{sndngDtl.bankNm6} <!-- 은행 명 6 --> , #{sndngDtl.vrActno} /* 가상 계좌번호 */
, #{sndngDtl.vrActno6} <!-- 가상 계좌번호 6 --> , #{sndngDtl.bankNm2} /* 은행 명 2 */
, #{sndngDtl.bankNm7} <!-- 은행 명 7 --> , #{sndngDtl.vrActno2} /* 가상 계좌번호 2 */
, #{sndngDtl.vrActno7} <!-- 가상 계좌번호 7 --> , #{sndngDtl.bankNm3} /* 은행 명 3 */
, #{sndngDtl.bankNm8} <!-- 은행 명 8 --> , #{sndngDtl.vrActno3} /* 가상 계좌번호 3 */
, #{sndngDtl.vrActno8} <!-- 가상 계좌번호 8 --> , #{sndngDtl.bankNm4} /* 은행 명 4 */
, #{sndngDtl.bankNm9} <!-- 은행 명 9 --> , #{sndngDtl.vrActno4} /* 가상 계좌번호 4 */
, #{sndngDtl.vrActno9} <!-- 가상 계좌번호 9 --> , #{sndngDtl.bankNm5} /* 은행 명 5 */
, #{sndngDtl.bankNm10} <!-- 은행 명 10 --> , #{sndngDtl.vrActno5} /* 가상 계좌번호 5 */
, #{sndngDtl.vrActno10} <!-- 가상 계좌번호 10 --> , #{sndngDtl.bankNm6} /* 은행 명 6 */
, #{sndngDtl.bankNm11} <!-- 은행 명 11 --> , #{sndngDtl.vrActno6} /* 가상 계좌번호 6 */
, #{sndngDtl.vrActno11} <!-- 가상 계좌번호 11 --> , #{sndngDtl.bankNm7} /* 은행 명 7 */
, <include refid="utility.now" /> <!-- 등록 일시 --> , #{sndngDtl.vrActno7} /* 가상 계좌번호 7 */
, #{currentUser.id} <!-- 등록자 --> , #{sndngDtl.bankNm8} /* 은행 명 8 */
, <include refid="utility.now" /> <!-- 수정 일시 --> , #{sndngDtl.vrActno8} /* 가상 계좌번호 8 */
, #{currentUser.id} <!-- 수정자 --> , #{sndngDtl.bankNm9} /* 은행 명 9 */
)</insert> , #{sndngDtl.vrActno9} /* 가상 계좌번호 9 */
, #{sndngDtl.bankNm10} /* 은행 명 10 */
, #{sndngDtl.vrActno10} /* 가상 계좌번호 10 */
, #{sndngDtl.bankNm11} /* 은행 명 11 */
, #{sndngDtl.vrActno11} /* 가상 계좌번호 11 */
, <include refid="utility.now" /> /* 등록 일시 */
, #{sndngDtl.createdBy} /* 등록자 */
, <include refid="utility.now" /> /* 수정 일시 */
, #{sndngDtl.modifiedBy} /* 수정자 */
)
</insert>
<update id="updateSndngDtl" parameterType="map">/* 발송 상세 수정(sndngMapper.updateSndngDtl) */ <update id="updateSndngDtl" parameterType="map">/* 발송 상세 수정(sndngMapper.updateSndngDtl) */
UPDATE TB_SNDNG_DTL SET UPDATE TB_SNDNG_DTL
SNDNG_ID = #{sndngDtl.sndngId} <!-- 발송 ID --> SET SNDNG_ID = #{sndngDtl.sndngId} /* 발송 ID */
, SVBTC_ID = #{sndngDtl.svbtcId} <!-- 공시송달 ID --> , SVBTC_ID = #{sndngDtl.svbtcId} /* 공시송달 ID */
, CRDN_ID = #{sndngDtl.crdnId} <!-- 단속 ID --> , CRDN_ID = #{sndngDtl.crdnId} /* 단속 ID */
, LEVY_ID = #{sndngDtl.levyId} <!-- 부과 ID --> , LEVY_ID = #{sndngDtl.levyId} /* 부과 ID */
, VHRNO = #{sndngDtl.vhrno} <!-- 차량번호 --> , VLTN_CD = #{sndng.vltnCd} /* 위반 ID */
, CRDN_DT = #{sndngDtl.crdnDt} <!-- 단속 일시 --> , VHRNO = #{sndngDtl.vhrno} /* 차량번호 */
, CRDN_PLC = #{sndngDtl.crdnPlc} <!-- 단속 장소 --> , CRDN_DT = #{sndngDtl.crdnDt} /* 단속 일시 */
, LEV_KEY = #{sndngDtl.levKey} <!-- 세외수입 부과키 --> , CRDN_PLC = #{sndngDtl.crdnPlc} /* 단속 장소 */
, FYR = #{sndngDtl.fyr} <!-- 회계연도 --> , LEV_KEY = #{sndngDtl.levKey} /* 세외수입 부과키 */
, LEVY_NO = #{sndngDtl.levyNo} <!-- 부과 번호 --> , FYR = #{sndngDtl.fyr} /* 회계연도 */
, SNDNG_YMD = #{sndngDtl.sndngYmd} <!-- 발송 일자 --> , LEVY_NO = #{sndngDtl.levyNo} /* 부과 번호 */
, DUDT_YMD = #{sndngDtl.dudtYmd} <!-- 납기 일자 --> , SNDNG_YMD = #{sndngDtl.sndngYmd} /* 발송 일자 */
, FFNLG_AMT = #{sndngDtl.ffnlgAmt} <!-- 과태료 금액 --> , DUDT_YMD = #{sndngDtl.dudtYmd} /* 납기 일자 */
, LEVY_PCPTAX = #{sndngDtl.levyPcptax} <!-- 부과 본세 --> , FFNLG_AMT = #{sndngDtl.ffnlgAmt} /* 과태료 금액 */
, LEVY_ADAMT = #{sndngDtl.levyAdamt} <!-- 부과 가산금 --> , LEVY_PCPTAX = #{sndngDtl.levyPcptax} /* 부과 본세 */
, LEVY_SUM_AMT = #{sndngDtl.levySumAmt} <!-- 부과 합계 금액 --> , LEVY_ADAMT = #{sndngDtl.levyAdamt} /* 부과 가산금 */
, RTPYR_NM = #{sndngDtl.rtpyrNm} <!-- 납부자 명 --> , LEVY_SUM_AMT = #{sndngDtl.levySumAmt} /* 부과 합계 금액 */
, RTPYR_NO = #{sndngDtl.rtpyrNo} <!-- 납부자 번호 --> , RTPYR_NM = #{sndngDtl.rtpyrNm} /* 납부자 명 */
, RTPYR_ADDR = #{sndngDtl.rtpyrAddr} <!-- 납부자 주소 --> , RTPYR_NO = #{sndngDtl.rtpyrNo} /* 납부자 번호 */
, RTPYR_DTL_ADDR = #{sndngDtl.rtpyrDtlAddr} <!-- 납부자 상세 주소 --> , RTPYR_ADDR = #{sndngDtl.rtpyrAddr} /* 납부자 주소 */
, RTPYR_ZIP = #{sndngDtl.rtpyrZip} <!-- 납부자 우편번호 --> , RTPYR_DTL_ADDR = #{sndngDtl.rtpyrDtlAddr} /* 납부자 상세 주소 */
, CON_KEY = #{sndngDtl.conKey} <!-- 외부연계식별키 --> , RTPYR_ZIP = #{sndngDtl.rtpyrZip} /* 납부자 우편번호 */
, RG_NO = #{sndngDtl.rgNo} <!-- 등기 번호 --> , CON_KEY = #{sndngDtl.conKey} /* 외부연계식별키 */
, DLVR_YMD = #{sndngDtl.dlvrYmd} <!-- 배달 일자 --> , RG_NO = #{sndngDtl.rgNo} /* 등기 번호 */
, DLVR_TM = #{sndngDtl.dlvrTm} <!-- 배달 시각 --> , DLVR_YMD = #{sndngDtl.dlvrYmd} /* 배달 일자 */
, UNDLVR_RSN_NM = #{sndngDtl.undlvrRsnNm} <!-- 미배달 사유 명 --> , DLVR_TM = #{sndngDtl.dlvrTm} /* 배달 시각 */
, RCPN_NM = #{sndngDtl.rcpnNm} <!-- 수령인 명 --> , UNDLVR_RSN_NM = #{sndngDtl.undlvrRsnNm} /* 미배달 사유 명 */
, RCPN_REL_NM = #{sndngDtl.rcpnRelNm} <!-- 수령인 관계 명 --> , RCPN_NM = #{sndngDtl.rcpnNm} /* 수령인 명 */
, SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} <!-- 발송 상세 상태 코드 --> , RCPN_REL_NM = #{sndngDtl.rcpnRelNm} /* 수령인 관계 명 */
, BFR_SNDNG_DTL_STTS_CD = #{sndngDtl.bfrSndngDtlSttsCd} <!-- 전 발송 상세 상태 코드 --> , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */
, BFR_DLVR_YMD = #{sndngDtl.bfrDlvrYmd} <!-- 전 배달 일자 --> , BFR_SNDNG_DTL_STTS_CD = #{sndngDtl.bfrSndngDtlSttsCd} /* 전 발송 상세 상태 코드 */
, BFR_DLVR_HR = #{sndngDtl.bfrDlvrHr} <!-- 전 배달 시간 --> , BFR_DLVR_YMD = #{sndngDtl.bfrDlvrYmd} /* 전 배달 일자 */
, SNDNG_RCVMT_CD = #{sndngDtl.sndngRcvmtCd} <!-- 발송 수납 코드 --> , BFR_DLVR_HR = #{sndngDtl.bfrDlvrHr} /* 전 배달 시간 */
, ADDR_CHG_CD = #{sndngDtl.addrChgCd} <!-- 주소 변경 코드 --> , SNDNG_RCVMT_CD = #{sndngDtl.sndngRcvmtCd} /* 발송 수납 코드 */
, TAX_NO = #{sndngDtl.taxNo} <!-- 납세 번호 --> , ADDR_CHG_CD = #{sndngDtl.addrChgCd} /* 주소 변경 코드 */
, EPAYNO = #{sndngDtl.epayno} <!-- 전자납부번호 --> , TAX_NO = #{sndngDtl.taxNo} /* 납세 번호 */
, BANK_NM = #{sndngDtl.bankNm} <!-- 은행 명 --> , EPAYNO = #{sndngDtl.epayno} /* 전자납부번호 */
, VR_ACTNO = #{sndngDtl.vrActno} <!-- 가상 계좌번호 --> , BANK_NM = #{sndngDtl.bankNm} /* 은행 명 */
, BANK_NM_2 = #{sndngDtl.bankNm2} <!-- 은행 명 2 --> , VR_ACTNO = #{sndngDtl.vrActno} /* 가상 계좌번호 */
, VR_ACTNO_2 = #{sndngDtl.vrActno2} <!-- 가상 계좌번호 2 --> , BANK_NM_2 = #{sndngDtl.bankNm2} /* 은행 명 2 */
, BANK_NM_3 = #{sndngDtl.bankNm3} <!-- 은행 명 3 --> , VR_ACTNO_2 = #{sndngDtl.vrActno2} /* 가상 계좌번호 2 */
, VR_ACTNO_3 = #{sndngDtl.vrActno3} <!-- 가상 계좌번호 3 --> , BANK_NM_3 = #{sndngDtl.bankNm3} /* 은행 명 3 */
, BANK_NM_4 = #{sndngDtl.bankNm4} <!-- 은행 명 4 --> , VR_ACTNO_3 = #{sndngDtl.vrActno3} /* 가상 계좌번호 3 */
, VR_ACTNO_4 = #{sndngDtl.vrActno4} <!-- 가상 계좌번호 4 --> , BANK_NM_4 = #{sndngDtl.bankNm4} /* 은행 명 4 */
, BANK_NM_5 = #{sndngDtl.bankNm5} <!-- 은행 명 5 --> , VR_ACTNO_4 = #{sndngDtl.vrActno4} /* 가상 계좌번호 4 */
, VR_ACTNO_5 = #{sndngDtl.vrActno5} <!-- 가상 계좌번호 5 --> , BANK_NM_5 = #{sndngDtl.bankNm5} /* 은행 명 5 */
, BANK_NM_6 = #{sndngDtl.bankNm6} <!-- 은행 명 6 --> , VR_ACTNO_5 = #{sndngDtl.vrActno5} /* 가상 계좌번호 5 */
, VR_ACTNO_6 = #{sndngDtl.vrActno6} <!-- 가상 계좌번호 6 --> , BANK_NM_6 = #{sndngDtl.bankNm6} /* 은행 명 6 */
, BANK_NM_7 = #{sndngDtl.bankNm7} <!-- 은행 명 7 --> , VR_ACTNO_6 = #{sndngDtl.vrActno6} /* 가상 계좌번호 6 */
, VR_ACTNO_7 = #{sndngDtl.vrActno7} <!-- 가상 계좌번호 7 --> , BANK_NM_7 = #{sndngDtl.bankNm7} /* 은행 명 7 */
, BANK_NM_8 = #{sndngDtl.bankNm8} <!-- 은행 명 8 --> , VR_ACTNO_7 = #{sndngDtl.vrActno7} /* 가상 계좌번호 7 */
, VR_ACTNO_8 = #{sndngDtl.vrActno8} <!-- 가상 계좌번호 8 --> , BANK_NM_8 = #{sndngDtl.bankNm8} /* 은행 명 8 */
, BANK_NM_9 = #{sndngDtl.bankNm9} <!-- 은행 명 9 --> , VR_ACTNO_8 = #{sndngDtl.vrActno8} /* 가상 계좌번호 8 */
, VR_ACTNO_9 = #{sndngDtl.vrActno9} <!-- 가상 계좌번호 9 --> , BANK_NM_9 = #{sndngDtl.bankNm9} /* 은행 명 9 */
, BANK_NM_10 = #{sndngDtl.bankNm10} <!-- 은행 명 10 --> , VR_ACTNO_9 = #{sndngDtl.vrActno9} /* 가상 계좌번호 9 */
, VR_ACTNO_10 = #{sndngDtl.vrActno10} <!-- 가상 계좌번호 10 --> , BANK_NM_10 = #{sndngDtl.bankNm10} /* 은행 명 10 */
, BANK_NM_11 = #{sndngDtl.bankNm11} <!-- 은행 명 11 --> , VR_ACTNO_10 = #{sndngDtl.vrActno10} /* 가상 계좌번호 10 */
, VR_ACTNO_11 = #{sndngDtl.vrActno11} <!-- 가상 계좌번호 11 --> , BANK_NM_11 = #{sndngDtl.bankNm11} /* 은행 명 11 */
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 --> , VR_ACTNO_11 = #{sndngDtl.vrActno11} /* 가상 계좌번호 11 */
, MDFR = #{currentUser.id} <!-- 수정자 --> , MDFCN_DT = <include refid="utility.now" /> /* 수정 일시 */
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}</update> , MDFR = #{sndngDtl.modifiedBy} /* 수정자 */
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
</update>
<update id="deleteSndngDtl" parameterType="map">/* 발송 상세 삭제(sndngMapper.deleteSndngDtl) */ <update id="deleteSndngDtl" parameterType="map">/* 발송 상세 삭제(sndngMapper.deleteSndngDtl) */
UPDATE TB_SNDNG_DTL SET UPDATE TB_SNDNG_DTL
DEL_YN = 'N' SET DEL_YN = 'N'
, DEL_DT = <include refid="utility.now" /> , DEL_DT = <include refid="utility.now" />
, DLTR = #{currentUser.id} , DLTR = #{sndngDtl.modifiedBy}
, DEL_RSN = #{sndngDtl.delRsn} , DEL_RSN = #{sndngDtl.delRsn}
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
</update> </update>

@ -253,13 +253,17 @@
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
var ${pageName}Control = new DatasetControl({ var ${pageName}Control = new DatasetControl({
prefix : "wrngSndngTrgt" prefix : "sndngTrgtInfo"
, prefixName : "계고장 발송 대상" , prefixName : "발송 대상"
, infoSize : "lg" , infoSize : "xl"
, keymapper : info => info ? info.CRDN_ID : "" , keymapper : info => info ? info.CRDN_ID : ""
, dataGetter : obj => obj.wrngSndngTrgtList , dataGetter : obj => obj.wrngSndngTrgtList
, appendData : true , appendData : true
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, urls : {
load : wctx.url(${pageName}PrefixUrl + "/010/list.do") // 검색
, getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보
}
, formats : { , formats : {
LEVY_EXCL_YMD : dateFormat LEVY_EXCL_YMD : dateFormat
, CRDN_YMD_TM : datetimeFormat , CRDN_YMD_TM : datetimeFormat
@ -416,6 +420,8 @@
params["crdnIDs"] = selected.join(","); params["crdnIDs"] = selected.join(",");
// title = "계고장 발송 대상";
ajax.get({ ajax.get({
url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/020/info.do") url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/020/info.do")
, data : params || {} , data : params || {}
@ -458,7 +464,7 @@
// 달력 초기화 // 달력 초기화
initDatepicker("frmSearch--${pageName}"); initDatepicker("frmSearch--${pageName}");
$("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-30).date); $("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-90).date);
$("#schLevyExclYmdTo--${pageName}").datepicker("setDate", new Date()); $("#schLevyExclYmdTo--${pageName}").datepicker("setDate", new Date());
${pageName}Control.dataset.clear(); ${pageName}Control.dataset.clear();

@ -20,34 +20,34 @@
<input type="text" class="form-control w-px-80 text-end" id="tnocs--${pageName}" name="tnocs" data-map="TNOCS" readonly /> <input type="text" class="form-control w-px-80 text-end" id="tnocs--${pageName}" name="tnocs" data-map="TNOCS" readonly />
<input type="text" class="form-control w-px-120 text-end" id="gramt--${pageName}" name="gramt" data-map="GRAMT" readonly /> <input type="text" class="form-control w-px-120 text-end" id="gramt--${pageName}" name="gramt" data-map="GRAMT" readonly />
</div> </div>
<!-- 문서 번호 -->
<div class="col-md-4">
<label for="docNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">문서번호</label>
<input type="text" class="form-control w-55" id="docNo--${pageName}" name="docNo" />
</div>
<!-- 발송 일자 --> <!-- 발송 일자 -->
<div class="col-md-6"> <div class="col-md-4">
<label for="sndngYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">발송일자</label> <label for="sndngYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">발송일자</label>
<input type="text" class="form-control form-date" id="sndngYmd--${pageName}" name="sndngYmd" <input type="text" class="form-control form-date" id="sndngYmd--${pageName}" name="sndngYmd"
data-fmt-type="day" title="날짜 선택" maxlength="10" required /> data-fmt-type="day" title="날짜 선택" maxlength="10" required />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</div> </div>
<!-- 납기 일자 --> <!-- 납기 일자 -->
<div class="col-md-6" id="divDudtYmd--${pageName}"> <div class="col-md-4" id="divDudtYmd--${pageName}">
<label for="dudtYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">납기일자</label> <label for="dudtYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">납기일자</label>
<input type="text" class="form-control form-date" id="dudtYmd--${pageName}" name="dudtYmd" <input type="text" class="form-control form-date" id="dudtYmd--${pageName}" name="dudtYmd"
data-fmt-type="day" title="날짜 선택" maxlength="10" /> data-fmt-type="day" title="날짜 선택" maxlength="10" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button> <button type="button" id="btnDudtYmd--${pageName}" class="bx bx-sm bx-calendar bg-white"></button>
</div>
<!-- 문서 번호 -->
<div class="col-md-12">
<label for="docNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">문서번호</label>
<input type="text" class="form-control w-40 text-end" id="docNo--${pageName}" name="docNo" />
</div> </div>
<!-- 제목 명 --> <!-- 제목 명 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="ttlNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">제목</label> <label for="ttlNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">제목</label>
<input type="text" class="form-control w-75 text-end" id="ttlNm--${pageName}" name="ttlNm" /> <input type="text" class="form-control w-87 text-end" id="ttlNm--${pageName}" name="ttlNm" />
</div> </div>
<!-- 기타 내용 --> <!-- 기타 내용 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="etcCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">기타내용</label> <label for="etcCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">기타내용</label>
<textarea type="text" class="form-control w-75" id="etcCn--${pageName}" name="etcCn" data-map="ETC_CN" rows="2" data-maxlengthb="1000"> <textarea type="text" class="form-control w-87" id="etcCn--${pageName}" name="etcCn" rows="2" data-maxlengthb="1000">
</textarea> </textarea>
</div> </div>
</div> <!-- <div class="row g-1"> --> </div> <!-- <div class="row g-1"> -->
@ -61,8 +61,8 @@
<button type="button" class="btn btn-primary w-px-80" id="btnExcel--${pageName}" title="엑셀" onclick="fnExcel${pageName}();"> <button type="button" class="btn btn-primary w-px-80" id="btnExcel--${pageName}" title="엑셀" onclick="fnExcel${pageName}();">
엑셀 엑셀
</button> </button>
<button type="button" class="btn btn-primary w-px-80" id="btnSave--${pageName}" title="계고장 발송 등록" onclick="fnSave${pageName}();"> <button type="button" class="btn btn-primary w-px-80" id="btnSave--${pageName}" title="발송 등록" onclick="fnSave${pageName}();">
등록 발송 등록
</button> </button>
</span> </span>
</span> </span>
@ -85,7 +85,7 @@
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('ETC_CN', this.innerText, 'match', 'part');">기타내용</th> <th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('ETC_CN', this.innerText, 'match', 'part');">기타내용</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CVLCPT_APLY_NO', this.innerText, 'match', 'part');">민원신청번호</th> <th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CVLCPT_APLY_NO', this.innerText, 'match', 'part');">민원신청번호</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CVLCPT_RCPT_NO', this.innerText, 'match', 'part');">민원접수번호</th> <th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CVLCPT_RCPT_NO', this.innerText, 'match', 'part');">민원접수번호</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('CVLCPT_RCPT_YMD', this.innerText, 'ymd', '');">민원접수일자</th> <th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('CVLCPT_RCPT_YMD', this.innerText, 'ymd', '');">민원접수일자</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CVLCPT_PRCS_NM', this.innerText, 'codeValue', 'FIM017');">민원처리결과</th> <th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CVLCPT_PRCS_NM', this.innerText, 'codeValue', 'FIM017');">민원처리결과</th>
<th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('CRDN_YMD', this.innerText, 'ymd', '');">단속일시</th> <th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('CRDN_YMD', this.innerText, 'ymd', '');">단속일시</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('VHRNO', this.innerText, 'match', 'part');">차량번호</th> <th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('VHRNO', this.innerText, 'match', 'part');">차량번호</th>
@ -171,10 +171,14 @@
, dataGetter : obj => obj.sndngTrgtInfoList , dataGetter : obj => obj.sndngTrgtInfoList
, appendData : true , appendData : true
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, urls : {
getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보
}
, formats : { , formats : {
TNOCS : numberFormat TNOCS : numberFormat
, GRAMT : numberFormat , GRAMT : numberFormat
, LEVY_EXCL_YMD : dateFormat , LEVY_EXCL_YMD : dateFormat
, CVLCPT_RCPT_YMD : dateFormat
, CRDN_YMD_TM : datetimeFormat , CRDN_YMD_TM : datetimeFormat
, FFNLG_CRDN_AMT : numberFormat , FFNLG_CRDN_AMT : numberFormat
, REG_DT : datetimeFormat , REG_DT : datetimeFormat
@ -221,34 +225,36 @@
// 개별총정보 dialog // 개별총정보 dialog
${pageName}Control.getInfo = (crdnId) => { ${pageName}Control.getInfo = (crdnId) => {
if (crdnId == undefined || crdnId == null || crdnId == "") {
return; return;
}
let params = {
callControlName : "${pageName}Control"
, crdnId : crdnId
}
ajax.get({ // if (crdnId == undefined || crdnId == null || crdnId == "") {
url : ${pageName}Control.urls.getInfo // return;
, data : params || {} // }
, success : resp => {
dialog.open({ // let params = {
id : "totalInfoMainDialog" // callControlName : "${pageName}Control"
, title : "개별총정보" // , crdnId : crdnId
, content : resp // }
, size : "xxl"
, init : () => { } // ajax.get({
, onClose : () => { } // url : ${pageName}Control.urls.getInfo
}); // , data : params || {}
} // , success : resp => {
}); // dialog.open({
// id : "totalInfoMainDialog"
// , title : "개별총정보"
// , content : resp
// , size : "xxl"
// , init : () => { }
// , onClose : () => { }
// });
// }
// });
} }
// 저장 callback // 저장 callback
${pageName}Control.onSave = (resp) => { ${pageName}Control.onSave = (resp) => {
let dialogTitle = $("#" + ${pageName}Control.prefix + "Dialog").find("h5.modal-title").html(); let dialogTitle = $("#btnSave--${pageName}").attr("title");
let showMessage = resp.retMessage.replace(/[S]|[F]/g, dialogTitle); let showMessage = resp.retMessage.replace(/[S]|[F]/g, dialogTitle);
dialog.alert(showMessage); dialog.alert(showMessage);
@ -267,7 +273,9 @@
if (selected.length < 1) return; if (selected.length < 1) return;
info.crdnIDs = selected.join(","); info.crdnIDs = selected.join(","); // 단속 IDs
info.resndYn = "N"; // 재발송 여부
info.delYn = "N"; // 삭제 여부
let createUrl = wctx.url(info.taskSeCd + ${pageName}PrefixUrl + "/020/create.do"); let createUrl = wctx.url(info.taskSeCd + ${pageName}PrefixUrl + "/020/create.do");
@ -323,12 +331,14 @@
$("#dudtYmd--${pageName}").prop("disabled", false); $("#dudtYmd--${pageName}").prop("disabled", false);
$("#divDudtYmd--${pageName}").show(); $("#divDudtYmd--${pageName}").show();
} }
${pageName}Control.urls.getInfo = wctx.url("/" + ${pageName}Control.dataset.getValue("TASK_SE_CD") + "/sprt/sprt02/010/main.do"); // 개별총정보
} }
// 이벤트 // 이벤트
setEvent${pageName} = () => { setEvent${pageName} = () => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmSearch--${pageName}").find(".form-date").each(function() { $("#frmEdit--${pageName}").find(".form-date").each(function() {
$(this).on("input", function() { $(this).on("input", function() {
let value = this.value.replaceAll("-", ""); let value = this.value.replaceAll("-", "");

Loading…
Cancel
Save