계고장 발송대상, 계고장 발송현황 수정.

main
jjh 1 year ago
parent 4859ab0b7a
commit f37a1f9999

@ -29,58 +29,89 @@ public interface SndngMapper extends AbstractMapper {
* @param req * @param req
* @return * @return
*/ */
List<DataObject> selectWrngSndngTrgtList(SndbQuery req); List<DataObject> selectWrngTrgtList(SndbQuery req);
/** . /** .
* @param req * @param req
* @return * @return
*/ */
List<DataObject> selectWrngSndngTrgts(SndbQuery req); List<DataObject> selectWrngTrgts(SndbQuery req);
default DataObject selectWrngSndngTrgtInfo(String crdnId) { default DataObject selectWrngTrgtInfo(String crdnId) {
List<DataObject> InfoSndngTrgt = selectWrngSndngTrgts(new SndbQuery().setCrdnId(crdnId)); List<DataObject> wrngTrgtInfo = selectWrngTrgts(new SndbQuery().setCrdnId(crdnId));
return !InfoSndngTrgt.isEmpty() ? InfoSndngTrgt.get(0) : null; return !wrngTrgtInfo.isEmpty() ? wrngTrgtInfo.get(0) : null;
} }
/** .<br /> /** .<br />
* @param req * @param req
* @return * @return
*/ */
List<DataObject> selectAdvntceSndngTrgtList(SndbQuery req); List<DataObject> selectSndngList(SndbQuery req);
/** . /** .
* @param req * @param req
* @return * @return
*/ */
List<DataObject> selectAdvntceSndngTrgts(SndbQuery req); List<DataObject> selectSndngs(SndbQuery req);
default DataObject selectAdvntceSndngTrgtInfo(String crdnId) { default DataObject selectSndngInfo(String sndngId) {
List<DataObject> InfoSndngTrgt = selectAdvntceSndngTrgts(new SndbQuery().setCrdnId(crdnId)); List<DataObject> InfoSndng = selectSndngs(new SndbQuery().setSndngId(sndngId).setDelYn("N").setOrderBy("S.SNDNG_ID DESC"));
return !InfoSndngTrgt.isEmpty() ? InfoSndngTrgt.get(0) : null; return !InfoSndng.isEmpty() ? InfoSndng.get(0) : null;
} }
/** .<br /> /** .<br />
* @param req
* @return
*/
List<DataObject> selectSndngDtlList(SndbQuery req);
/** .
* @param req
* @return
*/
List<DataObject> selectSndngDtls(SndbQuery req);
default DataObject selectSndngDtlInfo(String sndngDtlId) {
List<DataObject> sndngDtlInfo = selectSndngDtls(new SndbQuery().setSndngDtlId(sndngDtlId).setDelYn("N").setOrderBy("SD.SNDNG_DTL_ID DESC"));
return !sndngDtlInfo.isEmpty() ? sndngDtlInfo.get(0) : null;
}
/** .<br />
* @param req * @param req
* @return * @return
*/ */
List<DataObject> selectSndngList(SndbQuery req); List<DataObject> selectAdvntceSndngTrgtList(SndbQuery req);
/** . /** .
* @param req * @param req
* @return * @return
*/ */
List<DataObject> selectSndngs(SndbQuery req); List<DataObject> selectAdvntceSndngTrgts(SndbQuery req);
default DataObject selectSndngInfo(String sndngId) { default DataObject selectAdvntceSndngTrgtInfo(String crdnId) {
List<DataObject> InfoSndng = selectSndngs(new SndbQuery().setSndngId(sndngId) List<DataObject> InfoSndngTrgt = selectAdvntceSndngTrgts(new SndbQuery().setCrdnId(crdnId));
.setDelYn("N")
.setOrderBy("S.SNDNG_ID DESC"));
return !InfoSndng.isEmpty() ? InfoSndng.get(0) : null; return !InfoSndngTrgt.isEmpty() ? InfoSndngTrgt.get(0) : null;
} }
/** . /** .
* @param req * @param req
* @return * @return
@ -89,24 +120,12 @@ public interface SndngMapper extends AbstractMapper {
default DataObject selectSndngTrgtInfo(String crdnId) { default DataObject selectSndngTrgtInfo(String crdnId) {
List<DataObject> InfoSndngTrgt = selectSndngTrgts(new SndbQuery().setCrdnId(crdnId) List<DataObject> InfoSndngTrgt = selectSndngTrgts(new SndbQuery().setCrdnId(crdnId)
.setCrdnDelYn("N") .setCrdnDelYn("N")
.setOrderBy("C.CRDN_ID DESC")); .setOrderBy("C.CRDN_ID DESC"));
return !InfoSndngTrgt.isEmpty() ? InfoSndngTrgt.get(0) : null; return !InfoSndngTrgt.isEmpty() ? InfoSndngTrgt.get(0) : null;
} }
/** .
* @param req
* @return
*/
List<DataObject> selectSndngDtls(SndbQuery req);
default DataObject selectSndngDtlInfo(String sndngDtlId) {
List<DataObject> sndngDtlInfo = selectSndngDtls(new SndbQuery().setSndngDtlId(sndngDtlId));
return !sndngDtlInfo.isEmpty() ? sndngDtlInfo.get(0) : null;
}
/** /**
* @param req * @param req
* @return * @return
@ -242,11 +261,6 @@ public interface SndngMapper extends AbstractMapper {
/** .<br />
* @param req
* @return
*/
List<DataObject> selectSndngDtlList(SndbQuery req);
/** . /** .
* @param params * @param params

@ -24,15 +24,56 @@ public interface SndngService {
* @param req * @param req
* @return * @return
*/ */
List<DataObject> getWrngSndngTrgtList(SndbQuery req); List<DataObject> getWrngTrgtList(SndbQuery req);
/** . /** .
* @param req * @param req
* @return * @return
*/ */
List<DataObject> getWrngSndngTrgts(SndbQuery req); List<DataObject> getWrngTrgts(SndbQuery req);
/** .
* @param sndng
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String createWarningSndng(Sndng sndng);
/** .
* @param req
* @return
*/
List<DataObject> getWrngSndngList(SndbQuery req);
/** .
* @param req
* @return
*/
List<DataObject> getWrngSndngDtls(SndbQuery req);
/** .
* @param req
* @return
*/
List<DataObject> getAdvntceSndngTrgtList(SndbQuery req);
/** .
* @param req
* @return
*/
List<DataObject> getAdvntceSndngTrgts(SndbQuery req);
@ -62,17 +103,6 @@ public interface SndngService {
/** .
* @param req
* @return
*/
List<DataObject> getAdvntceSndngTrgtList(SndbQuery req);
/** .
* @param req
* @return
*/
List<DataObject> getAdvntceSndngTrgts(SndbQuery req);
/** . /** .
* @param req * @param req

@ -77,22 +77,49 @@ public class SndngBean extends AbstractComponent {
* @param req * @param req
* @return * @return
*/ */
public List<DataObject> getWrngSndngTrgtList(SndbQuery req) { public List<DataObject> getWrngTrgtList(SndbQuery req) {
return sndngMapper.selectWrngSndngTrgtList(req); return sndngMapper.selectWrngTrgtList(req);
} }
/** . /** .
* @param req * @param req
* @return * @return
*/ */
public List<DataObject> getWrngSndngTrgts(SndbQuery req) { public List<DataObject> getWrngTrgts(SndbQuery req) {
if (req.getOrderBy() == null) { if (req.getOrderBy() == null) {
req.setOrderBy("CRDN_YMD_TM"); req.setOrderBy("CRDN_YMD_TM");
} }
return sndngMapper.selectWrngSndngTrgts(req); return sndngMapper.selectWrngTrgts(req);
} }
/** .
* @param req
* @return
*/
public List<DataObject> getSndngList(SndbQuery req) {
return sndngMapper.selectSndngList(req);
}
/** .
* @param req
* @return
*/
public List<DataObject> getSndngDtls(SndbQuery req) {
return sndngMapper.selectSndngDtls(req);
}
/** . /** .
* @param req * @param req
* @return * @return
@ -113,14 +140,6 @@ public class SndngBean extends AbstractComponent {
return sndngMapper.selectAdvntceSndngTrgts(req); return sndngMapper.selectAdvntceSndngTrgts(req);
} }
/** .
* @param req
* @return
*/
public List<DataObject> getSndngList(SndbQuery req) {
return sndngMapper.selectSndngList(req);
}
/** . /** .
* @param req * @param req
* @return * @return
@ -129,14 +148,6 @@ public class SndngBean extends AbstractComponent {
return sndngMapper.selectSndngTrgts(req); return sndngMapper.selectSndngTrgts(req);
} }
/** .
* @param req
* @return
*/
public List<DataObject> getSndngDtls(SndbQuery req) {
return sndngMapper.selectSndngDtls(req);
}
/** . /** .
* @param req * @param req
* @return * @return
@ -154,7 +165,10 @@ public class SndngBean extends AbstractComponent {
/** . ()
/** .()
* @param sndng * @param sndng
* @return * @return
* <ul><li> true</li> * <ul><li> true</li>
@ -226,9 +240,9 @@ public class SndngBean extends AbstractComponent {
// 발송 상세 등록 // 발송 상세 등록
SndngDtl sndngDtl = new SndngDtl(); SndngDtl sndngDtl = new SndngDtl();
if (sndng.getSndngSeCd().equals("11") || sndng.getSndngSeCd().equals("12")) { // 계고장 if (sndng.getSndngSeCd().equals("11") || sndng.getSndngSeCd().equals("12")) { // 계고장
ffnlgAmt = crdnPayerInfo.number("FFNLG_CRDN_AMT").intValue(); // 과태료 최초 단속 금액 ffnlgAmt = crdnPayerInfo.number("FFNLG_CRDN_AMT").intValue(); // 과태료 최초 단속 금액
pcptax = 0; pcptax = crdnPayerInfo.number("FFNLG_CRDN_AMT").intValue(); // 과태료 최초 단속 금액
adamt = 0; adamt = 0;
sumAmt = 0; sumAmt = 0;
} else if (sndng.getSndngSeCd().equals("01") || sndng.getSndngSeCd().equals("02")) { // 사전통지 } else if (sndng.getSndngSeCd().equals("01") || sndng.getSndngSeCd().equals("02")) { // 사전통지
@ -236,10 +250,10 @@ public class SndngBean extends AbstractComponent {
if (crdnPayerInfo.string("LEVY_ID").equals("")) { if (crdnPayerInfo.string("LEVY_ID").equals("")) {
// 세외수입에 등록 후 세외수입에서 감경해야 하므로 사전통보액 80,000 원이 아닌 본 부과액 100,000 원으로 등록한다. // 세외수입에 등록 후 세외수입에서 감경해야 하므로 사전통보액 80,000 원이 아닌 본 부과액 100,000 원으로 등록한다.
// 세외수입에서 가상계좌를 부여 받은 후 다시 금액이 80,000 원으로 업데이트 된다. // 세외수입에서 가상계좌를 부여 받은 후 다시 금액이 80,000 원으로 업데이트 된다.
ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액 ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액
pcptax = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 부과 본세 pcptax = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 본세
adamt = 0; // 부과 가산금 adamt = 0; // 가산금
sumAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 부과 합계 금액 sumAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 합계 금액
// 부과 대장(TB_LEVY) // 부과 대장(TB_LEVY)
Levy levy = new Levy(); Levy levy = new Levy();
@ -356,9 +370,6 @@ public class SndngBean extends AbstractComponent {
return retMessage; return retMessage;
} }
/** . /** .
* @param sndng * @param sndng
* @return * @return

@ -32,15 +32,44 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic
private SndngBean sndngBean; private SndngBean sndngBean;
@Override @Override
public List<DataObject> getWrngSndngTrgtList(SndbQuery req) { public List<DataObject> getWrngTrgtList(SndbQuery req) {
return sndngBean.getWrngSndngTrgtList(req); return sndngBean.getWrngTrgtList(req);
} }
@Override @Override
public List<DataObject> getWrngSndngTrgts(SndbQuery req) { public List<DataObject> getWrngTrgts(SndbQuery req) {
return sndngBean.getWrngSndngTrgts(req); return sndngBean.getWrngTrgts(req);
} }
@Override
public String createWarningSndng(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) {
return sndngBean.getSndngList(req);
}
@Override
public List<DataObject> getWrngSndngDtls(SndbQuery req) {
return sndngBean.getSndngDtls(req);
}
@Override @Override
public List<DataObject> getAdvntceSndngTrgtList(SndbQuery req) { public List<DataObject> getAdvntceSndngTrgtList(SndbQuery req) {
return sndngBean.getAdvntceSndngTrgtList(req); return sndngBean.getAdvntceSndngTrgtList(req);
@ -71,16 +100,6 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic
return sndngBean.getSndngDtls(req); return sndngBean.getSndngDtls(req);
} }
@Override
public String createSndng(Sndng sndng) {
// 세외수입시스템과 연계하는 업무인지 확인
if ("DPV,ECA,TPV".contains(sndng.getTaskSeCd())) {
return sndngBean.createSndngNxrpLink(sndng);
} else {
return sndngBean.createSndng(sndng);
}
}
@Override @Override
public boolean updateSndng(Sndng sndng) { public boolean updateSndng(Sndng sndng) {
return sndngBean.updateSndng(sndng); return sndngBean.updateSndng(sndng);
@ -91,6 +110,16 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic
return sndngBean.removeSndng(sndng); return sndngBean.removeSndng(sndng);
} }
@Override
public String createSndng(Sndng sndng) {
// 세외수입시스템과 연계하는 업무인지 확인
if ("DPV,ECA,TPV".contains(sndng.getTaskSeCd())) {
return sndngBean.createSndngNxrpLink(sndng);
} else {
return sndngBean.createSndng(sndng);
}
}
@Override @Override
public String createSndngLink(Sndng sndng) { public String createSndngLink(Sndng sndng) {
return sndngBean.createEPost(sndng); return sndngBean.createEPost(sndng);

@ -135,9 +135,9 @@ public class Sndb01Controller extends ApplicationController {
* }</code></pre> * }</code></pre>
*/ */
public ModelAndView getWarningTargetList(SndbQuery req) { public ModelAndView getWarningTargetList(SndbQuery req) {
List<?> result = sndngService.getWrngSndngTrgtList(setFetchSize(req)); List<?> result = sndngService.getWrngTrgtList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "wrngSndngTrgt"); return setCollectionInfo(new ModelAndView("jsonView"), result, "wrngTrgt");
} }
/** (sndb/sndb01/020-info) . /** (sndb/sndb01/020-info) .
@ -148,7 +148,7 @@ public class Sndb01Controller extends ApplicationController {
* }</pre> * }</pre>
*/ */
public ModelAndView getWarningTargetInfo(SndbQuery req) { public ModelAndView getWarningTargetInfo(SndbQuery req) {
List<DataObject> wrngSndngTrgts = sndngService.getWrngSndngTrgts(req); List<DataObject> wrngTrgts = sndngService.getWrngTrgts(req);
boolean json = jsonResponse(); boolean json = jsonResponse();
@ -157,9 +157,9 @@ public class Sndb01Controller extends ApplicationController {
return mav.addObject("pageName", "sndb01020") return mav.addObject("pageName", "sndb01020")
.addObject("sggCd", req.getSggCd()) .addObject("sggCd", req.getSggCd())
.addObject("taskSeCd", req.getTaskSeCd()) .addObject("taskSeCd", req.getTaskSeCd())
.addObject("sndngSeCd", req.getSndngSeCd()) // 발송 구분 코드 .addObject("sndngSeCd", req.getSndngSeCd()) // 발송 구분 코드
.addObject("vltnCd", req.getVltnCd()) // 위반 코드 .addObject("vltnCd", req.getVltnCd()) // 위반 코드
.addObject("wrngSndngTrgtDtl", json ? wrngSndngTrgts : toJson(wrngSndngTrgts)) // 계고장 발송 대상 정보 .addObject("wrngTrgtDtl", json ? wrngTrgts : toJson(wrngTrgts)) // 계고장 발송 대상 정보
; ;
} }
@ -172,7 +172,7 @@ public class Sndb01Controller extends ApplicationController {
*/ */
public ModelAndView createWarningSndng(Sndng sndng) { public ModelAndView createWarningSndng(Sndng sndng) {
boolean saved = false; boolean saved = false;
String retMessage = sndngService.createSndng(sndng); String retMessage = sndngService.createWarningSndng(sndng);
if (retMessage.contains("[S]")) { if (retMessage.contains("[S]")) {
saved = true; saved = true;
@ -186,7 +186,6 @@ public class Sndb01Controller extends ApplicationController {
} }
/** (sndb/sndb01/030-main) . /** (sndb/sndb01/030-main) .
*
* @return /sndb/sndb01/030-main * @return /sndb/sndb01/030-main
*/ */
public ModelAndView warningSendingMain() { public ModelAndView warningSendingMain() {
@ -206,7 +205,7 @@ public class Sndb01Controller extends ApplicationController {
} }
/** .<br /> /** .<br />
* {@link SndngService#getSndngList(SndngQuery)} * {@link SndngService#getWarningSendingList(SndngQuery)}
* @param req * @param req
* @return jsonView * @return jsonView
* <pre><code> { * <pre><code> {
@ -217,7 +216,7 @@ public class Sndb01Controller extends ApplicationController {
* }</code></pre> * }</code></pre>
*/ */
public ModelAndView getWarningSendingList(SndbQuery req) { public ModelAndView getWarningSendingList(SndbQuery req) {
List<?> result = sndngService.getSndngList(setFetchSize(req)); List<?> result = sndngService.getWrngSndngList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "wrngSndng"); return setCollectionInfo(new ModelAndView("jsonView"), result, "wrngSndng");
} }
@ -230,7 +229,7 @@ public class Sndb01Controller extends ApplicationController {
* }</pre> * }</pre>
*/ */
public ModelAndView getWarningSendingInfo(SndbQuery req) { public ModelAndView getWarningSendingInfo(SndbQuery req) {
List<?> sndngDtls = sndngService.getSndngDtls(req); List<?> sndngDtls = sndngService.getWrngSndngDtls(req);
boolean json = jsonResponse(); boolean json = jsonResponse();
@ -245,7 +244,6 @@ public class Sndb01Controller extends ApplicationController {
} }
/** (sndb/sndb01/050-main) . /** (sndb/sndb01/050-main) .
*
* @return /sndb/sndb01/050-main * @return /sndb/sndb01/050-main
*/ */
public ModelAndView advanceNoticeTargetMain() { public ModelAndView advanceNoticeTargetMain() {

@ -298,7 +298,7 @@ public class Sprt02Controller extends ApplicationController {
sndb01Query.setDelYn(req.getDelYn()); sndb01Query.setDelYn(req.getDelYn());
sndb01Query.setOrderBy("SV.REG_DT DESC, SV.SVBTC_ID DESC"); sndb01Query.setOrderBy("SV.REG_DT DESC, SV.SVBTC_ID DESC");
List<?> svbtc = sndngService.getSvbtcs(sndb01Query); List<?> svbtc = sndngService.getSvbtcDtls(sndb01Query);
boolean json = jsonResponse(); boolean json = jsonResponse();

@ -565,13 +565,6 @@ public class BpvController {
@RequestMapping(name="전용차로과태료업무 업무지원_개별총정보", value=CLASS_URL+Sprt02Controller.CLASS_URL) @RequestMapping(name="전용차로과태료업무 업무지원_개별총정보", value=CLASS_URL+Sprt02Controller.CLASS_URL)
class Sprt02Controller extends cokr.xit.fims.sprt.web.Sprt02Controller { class Sprt02Controller extends cokr.xit.fims.sprt.web.Sprt02Controller {
@Override
@RequestMapping(name="전용차로과태료업무 개별총정보 메인", value=METHOD_URL.indivTotalInfoMain)
public ModelAndView indivTotalInfoMain(SprtQuery req) {
return super.indivTotalInfoMain(req);
}
@Override @Override
@RequestMapping(name="전용차로과태료업무 단속, 납부자 정보 조회", value=METHOD_URL.getCrdnPayerInfo) @RequestMapping(name="전용차로과태료업무 단속, 납부자 정보 조회", value=METHOD_URL.getCrdnPayerInfo)
public ModelAndView getCrdnPayerInfo(SprtQuery req) { public ModelAndView getCrdnPayerInfo(SprtQuery req) {

@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import cokr.xit.fims.sprt.SprtQuery; import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.fims.sprt.web.Sprt02Controller.METHOD_URL;
import cokr.xit.fims.stat.StatQuery; import cokr.xit.fims.stat.StatQuery;
@Controller @Controller
@ -366,6 +367,12 @@ public class CmnController {
@RequestMapping(name="개별 총정보", value="/sprt/sprt02") @RequestMapping(name="개별 총정보", value="/sprt/sprt02")
class Sprt02Controller extends cokr.xit.fims.sprt.web.Sprt02Controller { class Sprt02Controller extends cokr.xit.fims.sprt.web.Sprt02Controller {
@Override
@RequestMapping(name="장애인과태료업무 개별총정보 메인", value=METHOD_URL.indivTotalInfoMain)
public ModelAndView indivTotalInfoMain(SprtQuery req) {
return super.indivTotalInfoMain(req);
}
} }
@Controller @Controller

@ -574,10 +574,10 @@ public class DpvController {
public ModelAndView getAdvanceNoticeSendingInfo(SndbQuery req) { public ModelAndView getAdvanceNoticeSendingInfo(SndbQuery req) {
return super.getAdvanceNoticeSendingInfo(req); return super.getAdvanceNoticeSendingInfo(req);
} }
@Override @Override
@RequestMapping(name="고지서 발송 현황 목록 조회", value=METHOD_URL.getNoticeSheetSendingList) @RequestMapping(name="고지서 발송 현황 목록 조회", value=METHOD_URL.getNoticeSheetSendingList)
@ -689,7 +689,6 @@ public class DpvController {
} }
@Controller @Controller
@RequestMapping(name="장애인과태료업무 업무지원_통합조회", value=CLASS_URL+"/sprt/sprt01") @RequestMapping(name="장애인과태료업무 업무지원_통합조회", value=CLASS_URL+"/sprt/sprt01")
class Sprt01Controller extends cokr.xit.fims.sprt.web.Sprt01Controller {} class Sprt01Controller extends cokr.xit.fims.sprt.web.Sprt01Controller {}
@ -698,12 +697,6 @@ public class DpvController {
@RequestMapping(name="장애인과태료업무 업무지원_개별총정보", value=CLASS_URL+Sprt02Controller.CLASS_URL) @RequestMapping(name="장애인과태료업무 업무지원_개별총정보", value=CLASS_URL+Sprt02Controller.CLASS_URL)
class Sprt02Controller extends cokr.xit.fims.sprt.web.Sprt02Controller { class Sprt02Controller extends cokr.xit.fims.sprt.web.Sprt02Controller {
@Override
@RequestMapping(name="장애인과태료업무 개별총정보 메인", value=METHOD_URL.indivTotalInfoMain)
public ModelAndView indivTotalInfoMain(SprtQuery req) {
return super.indivTotalInfoMain(req);
}
@Override @Override
@RequestMapping(name="장애인과태료업무 단속, 납부자 정보 조회", value=METHOD_URL.getCrdnPayerInfo) @RequestMapping(name="장애인과태료업무 단속, 납부자 정보 조회", value=METHOD_URL.getCrdnPayerInfo)
public ModelAndView getCrdnPayerInfo(SprtQuery req) { public ModelAndView getCrdnPayerInfo(SprtQuery req) {

@ -472,13 +472,6 @@ public class EcaController {
@RequestMapping(name="전기차과태료업무 업무지원_개별총정보", value=CLASS_URL+Sprt02Controller.CLASS_URL) @RequestMapping(name="전기차과태료업무 업무지원_개별총정보", value=CLASS_URL+Sprt02Controller.CLASS_URL)
class Sprt02Controller extends cokr.xit.fims.sprt.web.Sprt02Controller { class Sprt02Controller extends cokr.xit.fims.sprt.web.Sprt02Controller {
@Override
@RequestMapping(name="전기차과태료업무 개별총정보 메인", value=METHOD_URL.indivTotalInfoMain)
public ModelAndView indivTotalInfoMain(SprtQuery req) {
return super.indivTotalInfoMain(req);
}
@Override @Override
@RequestMapping(name="전기차과태료업무 단속, 납부자 정보 조회", value=METHOD_URL.getCrdnPayerInfo) @RequestMapping(name="전기차과태료업무 단속, 납부자 정보 조회", value=METHOD_URL.getCrdnPayerInfo)
public ModelAndView getCrdnPayerInfo(SprtQuery req) { public ModelAndView getCrdnPayerInfo(SprtQuery req) {

@ -535,13 +535,6 @@ public class PvsController {
@RequestMapping(name="주정차과태료업무 업무지원_개별총정보", value=CLASS_URL+Sprt02Controller.CLASS_URL) @RequestMapping(name="주정차과태료업무 업무지원_개별총정보", value=CLASS_URL+Sprt02Controller.CLASS_URL)
class Sprt02Controller extends cokr.xit.fims.sprt.web.Sprt02Controller { class Sprt02Controller extends cokr.xit.fims.sprt.web.Sprt02Controller {
@Override
@RequestMapping(name="주정차과태료업무 개별총정보 메인", value=METHOD_URL.indivTotalInfoMain)
public ModelAndView indivTotalInfoMain(SprtQuery req) {
return super.indivTotalInfoMain(req);
}
@Override @Override
@RequestMapping(name="주정차과태료업무 단속, 납부자 정보 조회", value=METHOD_URL.getCrdnPayerInfo) @RequestMapping(name="주정차과태료업무 단속, 납부자 정보 조회", value=METHOD_URL.getCrdnPayerInfo)
public ModelAndView getCrdnPayerInfo(SprtQuery req) { public ModelAndView getCrdnPayerInfo(SprtQuery req) {

@ -41,6 +41,7 @@
</resultMap> </resultMap>
<resultMap id="sndngDtlRow" type="cokr.xit.fims.sndb.SndngDtl"> <resultMap id="sndngDtlRow" type="cokr.xit.fims.sndb.SndngDtl">
<!-- TB_SNDNG_DTL 발송 상세 대장 -->
<result property="sndngDtlId" column="SNDNG_DTL_ID" /> <!-- 발송 상세 ID --> <result property="sndngDtlId" column="SNDNG_DTL_ID" /> <!-- 발송 상세 ID -->
<result property="sndngId" column="SNDNG_ID" /> <!-- 발송 ID --> <result property="sndngId" column="SNDNG_ID" /> <!-- 발송 ID -->
<result property="crdnId" column="CRDN_ID" /> <!-- 단속 ID --> <result property="crdnId" column="CRDN_ID" /> <!-- 단속 ID -->
@ -112,7 +113,7 @@
<result property="delRsn" column="DEL_RSN" /> <!-- 삭제 사유 --> <result property="delRsn" column="DEL_RSN" /> <!-- 삭제 사유 -->
</resultMap> </resultMap>
<sql id="selectWrngSndngTrgt"> <sql id="selectWrngTrgt">
, C.SGG_CD <!-- 시군구 코드 --> , C.SGG_CD <!-- 시군구 코드 -->
, C.TASK_SE_CD <!-- 업무 구분 코드 --> , C.TASK_SE_CD <!-- 업무 구분 코드 -->
, (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 --> , (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
@ -327,213 +328,19 @@
</if> </if>
</sql> </sql>
<select id="selectWrngSndngTrgtList" parameterType="map" resultType="dataobject">/* 계고장 발송 대상 목록 조회(sndngMapper.selectWrngSndngTrgtList) */ <select id="selectWrngTrgtList" parameterType="map" resultType="dataobject">/* 계고장 발송 대상 목록 조회(sndngMapper.selectWrngTrgtList) */
<include refid="utility.paging-prefix" /> <include refid="utility.paging-prefix" />
SELECT C.CRDN_ID <!-- 단속 ID --> SELECT C.CRDN_ID <!-- 단속 ID -->
<include refid="selectWrngSndngTrgt" /> <include refid="selectWrngTrgt" />
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
<include refid="utility.paging-suffix" /> <include refid="utility.paging-suffix" />
</select> </select>
<select id="selectWrngSndngTrgts" parameterType="map" resultType="dataobject">/* 계고장 발송 대상 객체 가져오기(sndngMapper.selectWrngSndngTrgts) */ <select id="selectWrngTrgts" parameterType="map" resultType="dataobject">/* 계고장 발송 대상 객체 가져오기(sndngMapper.selectWrngTrgts) */
SELECT COUNT(*) OVER() AS TNOCS <!-- 총건수 --> SELECT COUNT(*) OVER() AS TNOCS <!-- 총건수 -->
, SUM(C.FFNLG_AMT) OVER() AS GRAMT <!-- 총금액 --> , SUM(C.FFNLG_AMT) OVER() AS GRAMT <!-- 총금액 -->
, C.CRDN_ID <!-- 단속 ID --> , C.CRDN_ID <!-- 단속 ID -->
<include refid="selectWrngSndngTrgt" /> <include refid="selectWrngTrgt" />
<include refid="utility.orderBy" />
</select>
<sql id="selectAdvntceSndngTrgt">
, C.SGG_CD <!-- 시군구 코드 -->
, C.TASK_SE_CD <!-- 업무 구분 코드 -->
, (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
, 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 <!-- 단속 일시 -->
, C.VHRNO <!-- 차량번호 -->
, C.CRDN_STDG_NM <!-- 단속 법정동 명 -->
, C.CRDN_ROAD_NM <!-- 단속 도로 명 -->
, C.CRDN_PLC <!-- 단속 장소 -->
, C.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 -->
, C.FFNLG_AMT <!-- 과태료 금액 -->
, C.ADVNTCE_AMT <!-- 사전통지 금액 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
, 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.DTL_CRDN_PLC <!-- 상세 단속 장소 -->
, CA.CRDN_SPAREA_CD <!-- 단속 특별구역 코드 -->
, (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM <!-- 단속 특별구역 명 -->
, CA.CRDN_BGNG_TM <!-- 단속 시작 시각 -->
, CA.CRDN_END_TM <!-- 단속 종료 시각 -->
, CA.CRDN_SN <!-- 단속 일련번호 -->
, CA.USE_FUEL_CD <!-- 사용 연료 코드 -->
, (SELECT GET_CODE_NM('LVS005', CA.USE_FUEL_CD) FROM DUAL) AS USE_FUEL_NM <!-- 사용 연료 명 -->
, CA.FFNLG_CARMDL_CD <!-- 과태료 차종 코드 -->
, (SELECT GET_CODE_NM('FIM009', CA.FFNLG_CARMDL_CD) FROM DUAL) AS FFNLG_CARMDL_NM <!-- 과태료 차종 명 -->
, CA.PARKNG_PSBLTY_RSLT_CD <!-- 주차 가능 결과 코드 -->
, (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM<!-- 주차 가능 결과 명 -->
, CA.VLTN_NMTM <!-- 위반 횟수 -->
, CA.OVTIME_YN <!-- 시간외 여부 -->
, VI.VLTN_ID <!-- 위반 ID -->
, VI.VLTN_CD <!-- 위반 코드 -->
, VI.VLTN_ARTCL <!-- 위반 항목 -->
, CC.CVLCPT_LINK_ID <!-- 민원 연계 ID -->
, CC.CVLCPT_RCPT_YMD <!-- 민원 접수 일자 -->
, CC.CVLCPT_APLY_NO <!-- 민원 신청 번호 -->
, CC.CVLCPT_RCPT_NO <!-- 민원 접수 번호 -->
, CC.CVLCPT_APLCNT_NM <!-- 민원 신청인 명 -->
, CC.CVLCPT_APLY_DT <!-- 민원 신청 일시 -->
, CC.CVLCPT_PRCS_PIC_NM <!-- 민원 처리 담당자 명 -->
, CC.CVLCPT_PRCS_CD <!-- 민원 처리 코드 -->
, (SELECT GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD) FROM DUAL) AS CVLCPT_PRCS_NM <!-- 민원 처리 명 -->
, CC.CVLCPT_PRCS_CMPTN_DT <!-- 민원 처리 완료 일시 -->
, P.RTPYR_ID <!-- 납부자 ID -->
, P.RTPYR_NO <!-- 납부자 번호 -->
, P.RTPYR_NM <!-- 납부자 명 -->
, P.RTPYR_BRDT <!-- 납부자 생년월일 -->
, P.ZIP <!-- 우편번호 -->
, P.ADDR <!-- 주소 -->
, P.DTL_ADDR <!-- 상세 주소 -->
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 AND C.SGG_CD = VI.SGG_CD AND C.TASK_SE_CD = VI.TASK_SE_CD)
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)
WHERE C.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
AND C.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
AND (CC.CVLCPT_PRCS_CD IS NULL OR CC.CVLCPT_PRCS_CD <![CDATA[ <> ]]> '00') <!-- 민원 처리 코드 -->
<if test="crdnIDs != null">
AND C.CRDN_ID IN (
<foreach collection="crdnIDs" item="crdnId" separator=","> #{crdnId} </foreach> <!-- 단속 IDs -->
)
</if>
<if test="crdnId != null">
AND C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
</if>
<choose>
<when test="taskSeCd == 'BPV' or taskSeCd == 'PVS'">
AND C.CRDN_STTS_CD BETWEEN '21' AND '41' <!-- 단속 상태 코드 -->
</when>
<otherwise>
AND C.CRDN_STTS_CD BETWEEN '21' AND '22' <!-- 단속 상태 코드 -->
</otherwise>
</choose>
<if test="schCrdnYmdFrom != null">
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} <!-- 단속 일자 시작 -->
</if>
<if test="schCrdnYmdTo != null">
AND C.CRDN_YMD <![CDATA[ <= ]]> #{schCrdnYmdTo} <!-- 단속 일자 종료 -->
</if>
<if test="schVltnCd != null">
AND VI.VLTN_CD = #{schVltnCd} <!-- 위반 코드 -->
</if>
<if test="schVhrno != null">
AND C.VHRNO = #{schVhrno} <!-- 차량번호 -->
</if>
<if test="schRtpyrNm != null">
AND P.RTPYR_NM = #{schRtpyrNm} <!-- 납부자 명 -->
</if>
<choose>
<when test="schDetailCrdnRegDtOpt == 'regDt'">
<if test="schDetailCrdnRegDtFrom != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ >= ]]> #{schDetailCrdnRegDtFrom} <!-- 등록 일자 시작 -->
</if>
<if test="schDetailCrdnRegDtTo != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ <= ]]> #{schDetailCrdnRegDtTo} <!-- 등록 일자 종료 -->
</if>
</when>
<when test="schDetailCrdnRegDtOpt == 'mdfcnDt'">
<if test="schDetailCrdnRegDtFrom != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schDetailCrdnRegDtFrom} <!-- 수정 일자 시작 -->
</if>
<if test="schDetailCrdnRegDtTo != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schDetailCrdnRegDtTo} <!-- 수정 일자 종료 -->
</if>
</when>
<otherwise>
</otherwise>
</choose>
<choose>
<when test="schDetailCrdnRgtrOpt == 'rgtr'">
<if test="schDetailCrdnRgtrCd != null">
AND C.RGTR = #{schDetailCrdnRgtrCd} <!-- 등록자 코드 -->
</if>
</when>
<when test="schDetailCrdnRgtrOpt == 'mdfr'">
<if test="schDetailCrdnRgtrCd != null">
AND C.MDFR = #{schDetailCrdnRgtrCd} <!-- 수정자 코드 -->
</if>
</when>
<otherwise>
</otherwise>
</choose>
AND C.DEL_YN = 'N' <!-- 삭제 여부 -->
<if test="by != null and by != '' and term != null">
<choose>
<when test="mainOption == 'codeValue' or mainOption == 'match' or mainOption == 'ymd'">
<include refid="dynamicSearch.start" />
<choose>
<when test="by == 'crdnYmd'"> C.CRDN_YMD </when>
<when test="by == 'vhrno'"> C.VHRNO </when>
<when test="by == 'crdnStdgNm'"> C.CRDN_STDG_NM </when>
<when test="by == 'crdnPlc'"> C.CRDN_PLC </when>
<when test="by == 'ffnlgCrdnAmt'"> C.FFNLG_CRDN_AMT </when>
<when test="by == 'ffnlgAmt'"> C.FFNLG_AMT </when>
<when test="by == 'advntceAmt'"> C.ADVNTCE_AMT </when>
<when test="by == 'crdnSttsCd'"> C.CRDN_STTS_CD </when>
<when test="by == 'crdnSeCd'"> CA.CRDN_SE_CD </when>
<when test="by == 'dtlCrdnPlc'"> CA.DTL_CRDN_PLC </when>
<when test="by == 'crdnSpareaCd'"> CA.CRDN_SPAREA_CD </when>
<when test="by == 'crdnBgngTm'"> CA.CRDN_BGNG_TM </when>
<when test="by == 'crdnEndTm'"> CA.CRDN_END_TM </when>
<when test="by == 'crdnSn'"> CA.CRDN_SN </when>
<when test="by == 'useFuelCd'"> CA.USE_FUEL_CD </when>
<when test="by == 'ffnlgCarmdlCd'"> CA.FFNLG_CARMDL_CD </when>
<when test="by == 'parkngPsbltyRsltCd'"> CA.PARKNG_PSBLTY_RSLT_CD </when>
<when test="by == 'vltnNmtm'"> CA.VLTN_NMTM </when>
<when test="by == 'ovtimeYn'"> CA.OVTIME_YN </when>
<when test="by == 'vltnArtcl'"> VI.VLTN_ARTCL </when>
<when test="by == 'rtpyrNm'"> P.RTPYR_NM </when>
<when test="by == 'rtpyrNo'"> P.RTPYR_NO </when>
<when test="by == 'rtpyrBrdt'"> P.RTPYR_BRDT </when>
<when test="by == 'cvlcptAplyNo'"> CC.CVLCPT_APLY_NO </when>
<when test="by == 'cvlcptRcptNo'"> CC.CVLCPT_RCPT_NO </when>
<when test="by == 'cvlcptRcptYmd'"> CC.CVLCPT_RCPT_YMD </when>
<when test="by == 'cvlcptPrcsPicNm'"> CC.CVLCPT_PRCS_PIC_NM </when>
<when test="by == 'cvlcptPrcsCd'"> CC.CVLCPT_PRCS_CD </when>
<when test="by == 'levyExclYmd'"> LE.LEVY_EXCL_YMD </when>
<when test="by == 'levyExclRsnCd'"> LE.LEVY_EXCL_RSN_CD </when>
</choose>
<include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
</when>
<otherwise>
</otherwise>
</choose>
</if>
</sql>
<select id="selectAdvntceSndngTrgtList" parameterType="map" resultType="dataobject">/* 사전통지 발송 대상 목록 조회(sndngMapper.selectAdvntceSndngTrgtList) */
<include refid="utility.paging-prefix" />
SELECT C.CRDN_ID <!-- 단속 ID -->
<include refid="selectAdvntceSndngTrgt" />
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<select id="selectAdvntceSndngTrgts" parameterType="map" resultType="dataobject">/* 사전통지 발송 대상 객체 가져오기(sndngMapper.selectAdvntceSndngTrgts) */
SELECT COUNT(*) OVER() AS TNOCS <!-- 총건수 -->
, SUM(C.FFNLG_AMT) OVER() AS GRAMT <!-- 총금액 -->
, C.CRDN_ID <!-- 단속 ID -->
<include refid="selectAdvntceSndngTrgt" />
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>
@ -692,107 +499,6 @@
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>
<insert id="insertSndng" parameterType="map">/* 발송 대장 등록(sndngMapper.insertSndng) */
<selectKey resultType="string" keyProperty="sndng.sndngId" keyColumn="NEW_ID" order="BEFORE">
SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(SNDNG_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID
FROM TB_SNDNG
WHERE SNDNG_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%')
</selectKey>
INSERT
INTO TB_SNDNG (
SNDNG_ID <!-- 발송 ID -->
, SGG_CD <!-- 시군구 코드 -->
, DEPT_CD <!-- 부서 코드 -->
, TASK_SE_CD <!-- 업무 구분 코드 -->
, SNDNG_REG_SE_CD <!-- 발송 등록 구분 코드 -->
, SNDNG_SE_CD <!-- 발송 구분 코드 -->
, VLTN_ID <!-- 위반 ID -->
, LEVY_BGNG_YMD <!-- 부과 시작 일자 -->
, LEVY_END_YMD <!-- 부과 종료 일자 -->
, SNDNG_YMD <!-- 발송 일자 -->
, DUDT_YMD <!-- 납기 일자 -->
, TTL_NM <!-- 제목 명 -->
, DOC_NO <!-- 문서 번호 -->
, ETC_CN <!-- 기타 내용 -->
, TNOCS <!-- 총건수 -->
, GRAMT <!-- 총금액 -->
, CON_KEY <!-- 외부연계식별키 -->
, DIV_KB <!-- 취급 구분 -->
, EPOST_NOTICE_ID <!-- 전자우편 안내문 ID -->
, SNDNG_STTS_CD <!-- 발송 상태 코드 -->
, RESND_YN <!-- 재발송 여부 -->
, DEL_YN <!-- 삭제 여부 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정자 -->
)
VALUES (
#{sndng.sndngId} <!-- 발송 ID -->
, #{sndng.sggCd} <!-- 시군구 코드 -->
, #{sndng.deptCd} <!-- 부서 코드 -->
, #{sndng.taskSeCd} <!-- 업무 구분 코드 -->
, #{sndng.sndngRegSeCd} <!-- 발송 등록 구분 코드 -->
, #{sndng.sndngSeCd} <!-- 발송 구분 코드 -->
, (SELECT VLTN_ID FROM TB_VLTN_INFO
WHERE SGG_CD=#{sndng.sggCd} AND TASK_SE_CD=#{sndng.taskSeCd} AND VLTN_CD=#{sndng.vltnCd}) <!-- 위반 ID -->
, #{sndng.levyBgngYmd} <!-- 부과 시작 일자 -->
, #{sndng.levyEndYmd} <!-- 부과 종료 일자 -->
, #{sndng.sndngYmd} <!-- 발송 일자 -->
, #{sndng.dudtYmd} <!-- 납기 일자 -->
, #{sndng.ttlNm} <!-- 제목 명 -->
, #{sndng.docNo} <!-- 문서 번호 -->
, #{sndng.etcCn} <!-- 기타 내용 -->
, #{sndng.tnocs} <!-- 총건수 -->
, #{sndng.gramt} <!-- 총금액 -->
, #{sndng.conKey} <!-- 외부연계식별키 -->
, #{sndng.divKb} <!-- 취급 구분 -->
, #{sndng.epostNoticeId} <!-- 전자우편 안내문 ID -->
, #{sndng.sndngSttsCd} <!-- 발송 상태 코드 -->
, #{sndng.resndYn} <!-- 재발송 여부 -->
, #{sndng.delYn} <!-- 삭제 여부 -->
, <include refid="utility.now" /> <!-- 등록 일시 -->
, #{sndng.createdBy} <!-- 등록자 -->
, <include refid="utility.now" /> <!-- 수정 일시 -->
, #{sndng.modifiedBy} <!-- 수정자 -->
)
</insert>
<update id="updateSndng" parameterType="map">/* 발송 대장 수정(sndngMapper.updateSndng) */
UPDATE TB_SNDNG
SET SNDNG_REG_SE_CD = #{sndng.sndngRegSeCd} <!-- 발송 등록 구분 코드 -->
, SNDNG_SE_CD = #{sndng.sndngSeCd} <!-- 발송 구분 코드 -->
, LEVY_BGNG_YMD = #{sndng.levyBgngYmd} <!-- 부과 시작 일자 -->
, LEVY_END_YMD = #{sndng.levyEndYmd} <!-- 부과 종료 일자 -->
, VLTN_ID = #{sndng.vltnId} <!-- 위반 ID -->
, SNDNG_YMD = #{sndng.sndngYmd} <!-- 발송 일자 -->
, DUDT_YMD = #{sndng.dudtYmd} <!-- 납기 일자 -->
, TTL_NM = #{sndng.ttlNm} <!-- 제목 명 -->
, DOC_NO = #{sndng.docNo} <!-- 문서 번호 -->
, ETC_CN = #{sndng.etcCn} <!-- 기타 내용 -->
, TNOCS = #{sndng.tnocs} <!-- 총건수 -->
, GRAMT = #{sndng.gramt} <!-- 총금액 -->
, CON_KEY = #{sndng.conKey} <!-- 외부연계식별키 -->
, DIV_KB = #{sndng.divKb} <!-- 취급 구분 -->
, EPOST_NOTICE_ID = #{sndng.epostNoticeId} <!-- 전자우편 안내문 ID -->
, SNDNG_STTS_CD = #{sndng.sndngSttsCd} <!-- 발송 상태 코드 -->
, RESND_YN = #{sndng.resndYn} <!-- 재발송 여부 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{sndng.modifiedBy} <!-- 수정자 -->
WHERE SNDNG_ID = #{sndng.sndngId} <!-- 발송 ID -->
AND DEL_YN = 'N'
</update>
<update id="deleteSndng" parameterType="map">/* 발송 대장 삭제(sndngMapper.deleteSndng) */
UPDATE TB_SNDNG
SET DEL_YN = 'Y' <!-- 삭제 여부 -->
, DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 -->
, DLTR = #{sndng.modifiedBy} <!-- 삭제자 -->
, DEL_RSN = #{sndng.delRsn} <!-- 삭제 사유 -->
WHERE SNDNG_ID = #{sndng.sndngId} <!-- 발송 ID -->
AND DEL_YN = 'N'
</update>
<sql id="selectSndngDtl"> <sql id="selectSndngDtl">
SELECT SD.SNDNG_DTL_ID <!-- 발송 상세 ID --> SELECT SD.SNDNG_DTL_ID <!-- 발송 상세 ID -->
, SD.SVBTC_ID <!-- 공시송달 ID --> , SD.SVBTC_ID <!-- 공시송달 ID -->
@ -918,6 +624,316 @@
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>
<sql id="selectAdvntceSndngTrgt">
, C.SGG_CD <!-- 시군구 코드 -->
, C.TASK_SE_CD <!-- 업무 구분 코드 -->
, (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
, 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 <!-- 단속 일시 -->
, C.VHRNO <!-- 차량번호 -->
, C.CRDN_STDG_NM <!-- 단속 법정동 명 -->
, C.CRDN_ROAD_NM <!-- 단속 도로 명 -->
, C.CRDN_PLC <!-- 단속 장소 -->
, C.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 -->
, C.FFNLG_AMT <!-- 과태료 금액 -->
, C.ADVNTCE_AMT <!-- 사전통지 금액 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
, 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.DTL_CRDN_PLC <!-- 상세 단속 장소 -->
, CA.CRDN_SPAREA_CD <!-- 단속 특별구역 코드 -->
, (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM <!-- 단속 특별구역 명 -->
, CA.CRDN_BGNG_TM <!-- 단속 시작 시각 -->
, CA.CRDN_END_TM <!-- 단속 종료 시각 -->
, CA.CRDN_SN <!-- 단속 일련번호 -->
, CA.USE_FUEL_CD <!-- 사용 연료 코드 -->
, (SELECT GET_CODE_NM('LVS005', CA.USE_FUEL_CD) FROM DUAL) AS USE_FUEL_NM <!-- 사용 연료 명 -->
, CA.FFNLG_CARMDL_CD <!-- 과태료 차종 코드 -->
, (SELECT GET_CODE_NM('FIM009', CA.FFNLG_CARMDL_CD) FROM DUAL) AS FFNLG_CARMDL_NM <!-- 과태료 차종 명 -->
, CA.PARKNG_PSBLTY_RSLT_CD <!-- 주차 가능 결과 코드 -->
, (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM<!-- 주차 가능 결과 명 -->
, CA.VLTN_NMTM <!-- 위반 횟수 -->
, CA.OVTIME_YN <!-- 시간외 여부 -->
, VI.VLTN_ID <!-- 위반 ID -->
, VI.VLTN_CD <!-- 위반 코드 -->
, VI.VLTN_ARTCL <!-- 위반 항목 -->
, CC.CVLCPT_LINK_ID <!-- 민원 연계 ID -->
, CC.CVLCPT_RCPT_YMD <!-- 민원 접수 일자 -->
, CC.CVLCPT_APLY_NO <!-- 민원 신청 번호 -->
, CC.CVLCPT_RCPT_NO <!-- 민원 접수 번호 -->
, CC.CVLCPT_APLCNT_NM <!-- 민원 신청인 명 -->
, CC.CVLCPT_APLY_DT <!-- 민원 신청 일시 -->
, CC.CVLCPT_PRCS_PIC_NM <!-- 민원 처리 담당자 명 -->
, CC.CVLCPT_PRCS_CD <!-- 민원 처리 코드 -->
, (SELECT GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD) FROM DUAL) AS CVLCPT_PRCS_NM <!-- 민원 처리 명 -->
, CC.CVLCPT_PRCS_CMPTN_DT <!-- 민원 처리 완료 일시 -->
, P.RTPYR_ID <!-- 납부자 ID -->
, P.RTPYR_NO <!-- 납부자 번호 -->
, P.RTPYR_NM <!-- 납부자 명 -->
, P.RTPYR_BRDT <!-- 납부자 생년월일 -->
, P.ZIP <!-- 우편번호 -->
, P.ADDR <!-- 주소 -->
, P.DTL_ADDR <!-- 상세 주소 -->
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 AND C.SGG_CD = VI.SGG_CD AND C.TASK_SE_CD = VI.TASK_SE_CD)
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)
WHERE C.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
AND C.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
AND (CC.CVLCPT_PRCS_CD IS NULL OR CC.CVLCPT_PRCS_CD <![CDATA[ <> ]]> '00') <!-- 민원 처리 코드 -->
<if test="crdnIDs != null">
AND C.CRDN_ID IN (
<foreach collection="crdnIDs" item="crdnId" separator=","> #{crdnId} </foreach> <!-- 단속 IDs -->
)
</if>
<if test="crdnId != null">
AND C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
</if>
<choose>
<when test="taskSeCd == 'BPV' or taskSeCd == 'PVS'">
AND C.CRDN_STTS_CD BETWEEN '21' AND '41' <!-- 단속 상태 코드 -->
</when>
<otherwise>
AND C.CRDN_STTS_CD BETWEEN '21' AND '22' <!-- 단속 상태 코드 -->
</otherwise>
</choose>
<if test="schCrdnYmdFrom != null">
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} <!-- 단속 일자 시작 -->
</if>
<if test="schCrdnYmdTo != null">
AND C.CRDN_YMD <![CDATA[ <= ]]> #{schCrdnYmdTo} <!-- 단속 일자 종료 -->
</if>
<if test="schVltnCd != null">
AND VI.VLTN_CD = #{schVltnCd} <!-- 위반 코드 -->
</if>
<if test="schVhrno != null">
AND C.VHRNO = #{schVhrno} <!-- 차량번호 -->
</if>
<if test="schRtpyrNm != null">
AND P.RTPYR_NM = #{schRtpyrNm} <!-- 납부자 명 -->
</if>
<choose>
<when test="schDetailCrdnRegDtOpt == 'regDt'">
<if test="schDetailCrdnRegDtFrom != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ >= ]]> #{schDetailCrdnRegDtFrom} <!-- 등록 일자 시작 -->
</if>
<if test="schDetailCrdnRegDtTo != null">
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ <= ]]> #{schDetailCrdnRegDtTo} <!-- 등록 일자 종료 -->
</if>
</when>
<when test="schDetailCrdnRegDtOpt == 'mdfcnDt'">
<if test="schDetailCrdnRegDtFrom != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schDetailCrdnRegDtFrom} <!-- 수정 일자 시작 -->
</if>
<if test="schDetailCrdnRegDtTo != null">
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schDetailCrdnRegDtTo} <!-- 수정 일자 종료 -->
</if>
</when>
<otherwise>
</otherwise>
</choose>
<choose>
<when test="schDetailCrdnRgtrOpt == 'rgtr'">
<if test="schDetailCrdnRgtrCd != null">
AND C.RGTR = #{schDetailCrdnRgtrCd} <!-- 등록자 코드 -->
</if>
</when>
<when test="schDetailCrdnRgtrOpt == 'mdfr'">
<if test="schDetailCrdnRgtrCd != null">
AND C.MDFR = #{schDetailCrdnRgtrCd} <!-- 수정자 코드 -->
</if>
</when>
<otherwise>
</otherwise>
</choose>
AND C.DEL_YN = 'N' <!-- 삭제 여부 -->
<if test="by != null and by != '' and term != null">
<choose>
<when test="mainOption == 'codeValue' or mainOption == 'match' or mainOption == 'ymd'">
<include refid="dynamicSearch.start" />
<choose>
<when test="by == 'crdnYmd'"> C.CRDN_YMD </when>
<when test="by == 'vhrno'"> C.VHRNO </when>
<when test="by == 'crdnStdgNm'"> C.CRDN_STDG_NM </when>
<when test="by == 'crdnPlc'"> C.CRDN_PLC </when>
<when test="by == 'ffnlgCrdnAmt'"> C.FFNLG_CRDN_AMT </when>
<when test="by == 'ffnlgAmt'"> C.FFNLG_AMT </when>
<when test="by == 'advntceAmt'"> C.ADVNTCE_AMT </when>
<when test="by == 'crdnSttsCd'"> C.CRDN_STTS_CD </when>
<when test="by == 'crdnSeCd'"> CA.CRDN_SE_CD </when>
<when test="by == 'dtlCrdnPlc'"> CA.DTL_CRDN_PLC </when>
<when test="by == 'crdnSpareaCd'"> CA.CRDN_SPAREA_CD </when>
<when test="by == 'crdnBgngTm'"> CA.CRDN_BGNG_TM </when>
<when test="by == 'crdnEndTm'"> CA.CRDN_END_TM </when>
<when test="by == 'crdnSn'"> CA.CRDN_SN </when>
<when test="by == 'useFuelCd'"> CA.USE_FUEL_CD </when>
<when test="by == 'ffnlgCarmdlCd'"> CA.FFNLG_CARMDL_CD </when>
<when test="by == 'parkngPsbltyRsltCd'"> CA.PARKNG_PSBLTY_RSLT_CD </when>
<when test="by == 'vltnNmtm'"> CA.VLTN_NMTM </when>
<when test="by == 'ovtimeYn'"> CA.OVTIME_YN </when>
<when test="by == 'vltnArtcl'"> VI.VLTN_ARTCL </when>
<when test="by == 'rtpyrNm'"> P.RTPYR_NM </when>
<when test="by == 'rtpyrNo'"> P.RTPYR_NO </when>
<when test="by == 'rtpyrBrdt'"> P.RTPYR_BRDT </when>
<when test="by == 'cvlcptAplyNo'"> CC.CVLCPT_APLY_NO </when>
<when test="by == 'cvlcptRcptNo'"> CC.CVLCPT_RCPT_NO </when>
<when test="by == 'cvlcptRcptYmd'"> CC.CVLCPT_RCPT_YMD </when>
<when test="by == 'cvlcptPrcsPicNm'"> CC.CVLCPT_PRCS_PIC_NM </when>
<when test="by == 'cvlcptPrcsCd'"> CC.CVLCPT_PRCS_CD </when>
<when test="by == 'levyExclYmd'"> LE.LEVY_EXCL_YMD </when>
<when test="by == 'levyExclRsnCd'"> LE.LEVY_EXCL_RSN_CD </when>
</choose>
<include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
</when>
<otherwise>
</otherwise>
</choose>
</if>
</sql>
<select id="selectAdvntceSndngTrgtList" parameterType="map" resultType="dataobject">/* 사전통지 발송 대상 목록 조회(sndngMapper.selectAdvntceSndngTrgtList) */
<include refid="utility.paging-prefix" />
SELECT C.CRDN_ID <!-- 단속 ID -->
<include refid="selectAdvntceSndngTrgt" />
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<select id="selectAdvntceSndngTrgts" parameterType="map" resultType="dataobject">/* 사전통지 발송 대상 객체 가져오기(sndngMapper.selectAdvntceSndngTrgts) */
SELECT COUNT(*) OVER() AS TNOCS <!-- 총건수 -->
, SUM(C.FFNLG_AMT) OVER() AS GRAMT <!-- 총금액 -->
, C.CRDN_ID <!-- 단속 ID -->
<include refid="selectAdvntceSndngTrgt" />
<include refid="utility.orderBy" />
</select>
<insert id="insertSndng" parameterType="map">/* 발송 대장 등록(sndngMapper.insertSndng) */
<selectKey resultType="string" keyProperty="sndng.sndngId" keyColumn="NEW_ID" order="BEFORE">
SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(SNDNG_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID
FROM TB_SNDNG
WHERE SNDNG_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%')
</selectKey>
INSERT
INTO TB_SNDNG (
SNDNG_ID <!-- 발송 ID -->
, SGG_CD <!-- 시군구 코드 -->
, DEPT_CD <!-- 부서 코드 -->
, TASK_SE_CD <!-- 업무 구분 코드 -->
, SNDNG_REG_SE_CD <!-- 발송 등록 구분 코드 -->
, SNDNG_SE_CD <!-- 발송 구분 코드 -->
, VLTN_ID <!-- 위반 ID -->
, LEVY_BGNG_YMD <!-- 부과 시작 일자 -->
, LEVY_END_YMD <!-- 부과 종료 일자 -->
, SNDNG_YMD <!-- 발송 일자 -->
, DUDT_YMD <!-- 납기 일자 -->
, TTL_NM <!-- 제목 명 -->
, DOC_NO <!-- 문서 번호 -->
, ETC_CN <!-- 기타 내용 -->
, TNOCS <!-- 총건수 -->
, GRAMT <!-- 총금액 -->
, CON_KEY <!-- 외부연계식별키 -->
, DIV_KB <!-- 취급 구분 -->
, EPOST_NOTICE_ID <!-- 전자우편 안내문 ID -->
, SNDNG_STTS_CD <!-- 발송 상태 코드 -->
, RESND_YN <!-- 재발송 여부 -->
, DEL_YN <!-- 삭제 여부 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정자 -->
)
VALUES (
#{sndng.sndngId} <!-- 발송 ID -->
, #{sndng.sggCd} <!-- 시군구 코드 -->
, #{sndng.deptCd} <!-- 부서 코드 -->
, #{sndng.taskSeCd} <!-- 업무 구분 코드 -->
, #{sndng.sndngRegSeCd} <!-- 발송 등록 구분 코드 -->
, #{sndng.sndngSeCd} <!-- 발송 구분 코드 -->
, (SELECT VLTN_ID FROM TB_VLTN_INFO
WHERE SGG_CD=#{sndng.sggCd} AND TASK_SE_CD=#{sndng.taskSeCd} AND VLTN_CD=#{sndng.vltnCd}) <!-- 위반 ID -->
, #{sndng.levyBgngYmd} <!-- 부과 시작 일자 -->
, #{sndng.levyEndYmd} <!-- 부과 종료 일자 -->
, #{sndng.sndngYmd} <!-- 발송 일자 -->
, #{sndng.dudtYmd} <!-- 납기 일자 -->
, #{sndng.ttlNm} <!-- 제목 명 -->
, #{sndng.docNo} <!-- 문서 번호 -->
, #{sndng.etcCn} <!-- 기타 내용 -->
, #{sndng.tnocs} <!-- 총건수 -->
, #{sndng.gramt} <!-- 총금액 -->
, #{sndng.conKey} <!-- 외부연계식별키 -->
, #{sndng.divKb} <!-- 취급 구분 -->
, #{sndng.epostNoticeId} <!-- 전자우편 안내문 ID -->
, #{sndng.sndngSttsCd} <!-- 발송 상태 코드 -->
, #{sndng.resndYn} <!-- 재발송 여부 -->
, #{sndng.delYn} <!-- 삭제 여부 -->
, <include refid="utility.now" /> <!-- 등록 일시 -->
, #{sndng.createdBy} <!-- 등록자 -->
, <include refid="utility.now" /> <!-- 수정 일시 -->
, #{sndng.modifiedBy} <!-- 수정자 -->
)
</insert>
<update id="updateSndng" parameterType="map">/* 발송 대장 수정(sndngMapper.updateSndng) */
UPDATE TB_SNDNG
SET SNDNG_REG_SE_CD = #{sndng.sndngRegSeCd} <!-- 발송 등록 구분 코드 -->
, SNDNG_SE_CD = #{sndng.sndngSeCd} <!-- 발송 구분 코드 -->
, LEVY_BGNG_YMD = #{sndng.levyBgngYmd} <!-- 부과 시작 일자 -->
, LEVY_END_YMD = #{sndng.levyEndYmd} <!-- 부과 종료 일자 -->
, VLTN_ID = #{sndng.vltnId} <!-- 위반 ID -->
, SNDNG_YMD = #{sndng.sndngYmd} <!-- 발송 일자 -->
, DUDT_YMD = #{sndng.dudtYmd} <!-- 납기 일자 -->
, TTL_NM = #{sndng.ttlNm} <!-- 제목 명 -->
, DOC_NO = #{sndng.docNo} <!-- 문서 번호 -->
, ETC_CN = #{sndng.etcCn} <!-- 기타 내용 -->
, TNOCS = #{sndng.tnocs} <!-- 총건수 -->
, GRAMT = #{sndng.gramt} <!-- 총금액 -->
, CON_KEY = #{sndng.conKey} <!-- 외부연계식별키 -->
, DIV_KB = #{sndng.divKb} <!-- 취급 구분 -->
, EPOST_NOTICE_ID = #{sndng.epostNoticeId} <!-- 전자우편 안내문 ID -->
, SNDNG_STTS_CD = #{sndng.sndngSttsCd} <!-- 발송 상태 코드 -->
, RESND_YN = #{sndng.resndYn} <!-- 재발송 여부 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{sndng.modifiedBy} <!-- 수정자 -->
WHERE SNDNG_ID = #{sndng.sndngId} <!-- 발송 ID -->
AND DEL_YN = 'N'
</update>
<update id="deleteSndng" parameterType="map">/* 발송 대장 삭제(sndngMapper.deleteSndng) */
UPDATE TB_SNDNG
SET DEL_YN = 'Y' <!-- 삭제 여부 -->
, DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 -->
, DLTR = #{sndng.modifiedBy} <!-- 삭제자 -->
, DEL_RSN = #{sndng.delRsn} <!-- 삭제 사유 -->
WHERE SNDNG_ID = #{sndng.sndngId} <!-- 발송 ID -->
AND DEL_YN = 'N'
</update>
<select id="selectSndbkList" parameterType="map" resultType="dataobject">/* 반송 목록 조회(sndngMapper.selectSndbkList) */ <select id="selectSndbkList" parameterType="map" resultType="dataobject">/* 반송 목록 조회(sndngMapper.selectSndbkList) */
<include refid="utility.paging-prefix" /> <include refid="utility.paging-prefix" />
SELECT SD.SNDNG_DTL_ID <!-- 발송 상세 ID --> SELECT SD.SNDNG_DTL_ID <!-- 발송 상세 ID -->

@ -86,9 +86,6 @@
</if> </if>
<if test="sndngId != null"> <if test="sndngId != null">
AND SD.SNDNG_ID = #{sndngId} <!-- 발송 ID --> AND SD.SNDNG_ID = #{sndngId} <!-- 발송 ID -->
</if>
<if test="crdnId != null">
AND SD.CRDN_ID = #{crdnId} <!-- 단속 ID -->
</if> </if>
<if test="delYn != null"> <if test="delYn != null">
AND SV.DEL_YN = #{delYn} <!-- 삭제 여부 --> AND SV.DEL_YN = #{delYn} <!-- 삭제 여부 -->
@ -169,6 +166,18 @@
<if test="svbtcId != null"> <if test="svbtcId != null">
AND SV.SVBTC_ID = #{svbtcId} <!-- 공시송달 ID --> AND SV.SVBTC_ID = #{svbtcId} <!-- 공시송달 ID -->
</if> </if>
<if test="sndngDtlId != null">
AND SD.SNDNG_DTL_ID = #{sndngDtlId} <!-- 발송 상세 ID -->
</if>
<if test="sndngId != null">
AND SD.SNDNG_ID = #{sndngId} <!-- 발송 ID -->
</if>
<if test="crdnId != null">
AND SD.CRDN_ID = #{crdnId} <!-- 단속 ID -->
</if>
<if test="delYn != null">
AND SV.DEL_YN = #{delYn} <!-- 삭제 여부 -->
</if>
</where> </where>
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>

@ -155,10 +155,10 @@
</div> </div>
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnWrngSndngTrgtInfo--${pageName}" title="발송대상 등록" onclick="${infoPrefix}Info${pageName}();"> <button type="button" class="btn btn-primary w-px-120" id="btnWrngTrgtInfo--${pageName}" title="발송대상 등록" onclick="fnWrngTrgtInfo${pageName}();">
발송대상 등록 발송대상 등록
</button> </button>
<button type="button" class="btn btn-primary w-px-120" id="btnLevyExclInfo--${pageName}" title="계고 정보" onclick="levyExclInfo${pageName}();"> <button type="button" class="btn btn-primary w-px-120" id="btnLevyExclInfo--${pageName}" title="계고 정보" onclick="fnLevyExclInfo${pageName}();">
계고 정보 계고 정보
</button> </button>
</span> </span>
@ -292,13 +292,16 @@
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
var ${pageName}Control = new DatasetControl({ var ${pageName}Control = new DatasetControl({
prefix : "wrngSndngTrgt" prefix : "wrngTrgt"
, prefixName : "계고장 발송 대상" , prefixName : "계고장 발송 대상"
, infoSize : "xxl" , infoSize : "xxl"
, keymapper : info => info ? info.CRDN_ID : "" , keymapper : info => info ? info.CRDN_ID : ""
, dataGetter : obj => obj.wrngSndngTrgtList , dataGetter : obj => obj.wrngTrgtList
, appendData : true , appendData : true
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, urls : {
getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보
}
, formats : { , formats : {
CVLCPT_RCPT_YMD : dateFormat CVLCPT_RCPT_YMD : dateFormat
, LEVY_EXCL_YMD : dateFormat , LEVY_EXCL_YMD : dateFormat
@ -400,7 +403,7 @@
} }
// 계고장 발송 등록 dialog -> callback 추가 // 계고장 발송 등록 dialog -> callback 추가
getInfo${pageName} = (params) => { getWrngTrgtInfo${pageName} = (params) => {
if (!params) return; if (!params) return;
ajax.get({ ajax.get({
@ -408,7 +411,7 @@
, data : params || {} , data : params || {}
, success : resp => { , success : resp => {
dialog.open({ dialog.open({
id : "wrngSndngTrgtDtlDialog" id : "wrngTrgtDtlDialog"
, title : ${pageName}Control.prefixName + " 정보" , title : ${pageName}Control.prefixName + " 정보"
, content : resp , content : resp
, size : "xl" , size : "xl"
@ -431,7 +434,7 @@
, title : "부과제외 정보" , title : "부과제외 정보"
, content : resp , content : resp
, size : "lg" , size : "lg"
, onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback , onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback
}); });
} }
}); });
@ -556,7 +559,6 @@
// URL 설정 // URL 설정
setURL${pageName} = (taskSeCd) => { setURL${pageName} = (taskSeCd) => {
${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회 ${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회
${pageName}Control.urls.getInfo = wctx.url("/" + taskSeCd + "/sprt/sprt02/010/main.do"); // 개별총정보
} }
/************************************************************************** /**************************************************************************
@ -599,17 +601,22 @@
} }
// 계고장 발송 대상 등록 버튼 이벤트 // 계고장 발송 대상 등록 버튼 이벤트
${infoPrefix}Info${pageName} = () => { fnWrngTrgtInfo${pageName} = () => {
let params = ${pageName}Fields.get(); let params = ${pageName}Fields.get();
params.callPurpose = "create"; params.callPurpose = "create";
params.sndngSeCd = "11"; // 발송 구분 코드 - 11 계고장
getInfo${pageName}(params); if (params.taskSeCd == "DPV" && params.schVltnId == "05") {
params.sndngSeCd = "12"; // 발송 구분 코드 - 12 계고장 구형표지
} else {
params.sndngSeCd = "11"; // 발송 구분 코드 - 11 계고장
}
getWrngTrgtInfo${pageName}(params);
} }
// 계고 수정 버튼 이벤트 // 계고 수정 버튼 이벤트
levyExclInfo${pageName} = () => { fnLevyExclInfo${pageName} = () => {
let levyExclId = ${pageName}Control.dataset.getValue("LEVY_EXCL_ID"); let levyExclId = ${pageName}Control.dataset.getValue("LEVY_EXCL_ID");
let levyExclSeCd = ${pageName}Control.dataset.getValue("LEVY_EXCL_SE_CD"); let levyExclSeCd = ${pageName}Control.dataset.getValue("LEVY_EXCL_SE_CD");

@ -167,12 +167,15 @@
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
var ${pageName}Control = new DatasetControl({ var ${pageName}Control = new DatasetControl({
prefix : "wrngSndngTrgtDtl" prefix : "wrngTrgtDtl"
, prefixName : "계고장 발송 대상" , prefixName : "계고장 발송 대상"
, keymapper : info => info ? info.CRDN_ID : "" , keymapper : info => info ? info.CRDN_ID : ""
, dataGetter : obj => obj.wrngSndngTrgtDtlList , dataGetter : obj => obj.wrngTrgtDtlList
, 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
@ -381,7 +384,7 @@
setForm${pageName}(); setForm${pageName}();
// Dataset 셋팅 - 화면이 열리면서 조회하는 경우 addData 하여 자료를 추가 // Dataset 셋팅 - 화면이 열리면서 조회하는 경우 addData 하여 자료를 추가
${pageName}Control.addData(${wrngSndngTrgtDtl}); ${pageName}Control.addData(${wrngTrgtDtl});
$("#tnocs--${pageName}").val(${pageName}Control.dataset.getValue("TNOCS")); // 총건수 $("#tnocs--${pageName}").val(${pageName}Control.dataset.getValue("TNOCS")); // 총건수
$("#gramt--${pageName}").val(${pageName}Control.dataset.getValue("GRAMT")); // 총금액 $("#gramt--${pageName}").val(${pageName}Control.dataset.getValue("GRAMT")); // 총금액

@ -268,8 +268,8 @@
, data : params , data : params
, success : resp => { , success : resp => {
dialog.open({ dialog.open({
id : ${pageName}Control.prefixed("Dialog") id : "wrngSndngDtlDialog"
, title : "계고장 세부 내용" , title : "계고장 발송 상세 정보"
, content : resp , content : resp
, size : ${pageName}Control.infoSize , size : ${pageName}Control.infoSize
}); });
@ -411,7 +411,8 @@
${pageName}Control.query = ${pageName}Fields.get(); ${pageName}Control.query = ${pageName}Fields.get();
${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30 ${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30
${pageName}Control.query.sndngSeCd = "11"; // 발송 구분 코드 - 11 계고장 ${pageName}Control.query.sndngSeCdFrom = "11"; // 발송 구분 코드 - 11 계고장
${pageName}Control.query.sndngSeCdTo = "12"; // 발송 구분 코드 - 12 계고장 구형표지
${pageName}Control.query.delYn = "N"; // 삭제 여부 ${pageName}Control.query.delYn = "N"; // 삭제 여부
${pageName}Control.load(); ${pageName}Control.load();

@ -118,11 +118,14 @@
**************************************************************************/ **************************************************************************/
var ${pageName}Control = new DatasetControl({ var ${pageName}Control = new DatasetControl({
prefix : "wrngSndngDtl" prefix : "wrngSndngDtl"
, prefixName : "발송 상" , prefixName : "계고장 발송 상세 정보"
, keymapper : info => info ? info.SNDNG_DTL_ID : "" , keymapper : info => info ? info.SNDNG_DTL_ID : ""
, dataGetter : obj => obj.wrngSndngDtlList , dataGetter : obj => obj.wrngSndngDtlList
, appendData : true , appendData : true
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, urls : {
getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보
}
, formats : { , formats : {
SNDNG_YMD : dateFormat SNDNG_YMD : dateFormat
, DUDT_YMD : dateFormat , DUDT_YMD : dateFormat
@ -154,8 +157,6 @@
let key = item.data.SNDNG_DTL_ID; let key = item.data.SNDNG_DTL_ID;
$("#tbody--${pageName}").setCurrentRow(key); $("#tbody--${pageName}").setCurrentRow(key);
${pageName}Control.urls.getInfo = wctx.url("/" + item.data.TASK_SE_CD + "/sprt/sprt02/010/main.do"); // 개별총정보
}; };
// 선택(체크) 변경 이벤트 // 선택(체크) 변경 이벤트

Loading…
Cancel
Save