세외수입 등록 수정.

main
jjh 1 year ago
parent 1ad3dd7eaf
commit aa47e84478

@ -37,6 +37,11 @@ public class NxrpMtchg extends AbstractEntity {
*/
private String crdnPlc;
/**
* ID
*/
private String linkRsltId;
/**
*
*/
@ -187,4 +192,9 @@ public class NxrpMtchg extends AbstractEntity {
*/
private String vractno11;
/**
*
*/
private String delYn;
}

@ -16,4 +16,129 @@ public class NxrpMtchgQuery extends QueryRequest {
private static final long serialVersionUID = 1L;
// ID
private String mtchgId; // 매칭 ID
private String lvyKey; // 부과 키
private String[] crdnIDs; // 단속 IDs
private String crdnId; // 단속 ID
private String[] sndngIDs; // 발송 IDs
private String sndngId; // 발송 ID
private String[] sndngDtlIDs; // 발송 상세 IDs
private String sndngDtlId; // 발송 상세 ID
// ETC
private String callPurpose; // 자료 조회시 호출용도. (view 조회, create 등록, update 수정, refresh 재조회)
private String delYn; // 삭제 여부
private String delRsn; // 삭제 사유
private String crdnDelYn; // 단속 삭제 여부
public String getMtchgId() {
return ifEmpty(mtchgId, () -> null);
}
public <T extends NxrpMtchgQuery> T setMtchgId(String mtchgId) {
this.mtchgId = mtchgId;
return self();
}
public String getLvyKey() {
return ifEmpty(lvyKey, () -> null);
}
public <T extends NxrpMtchgQuery> T setLvyKey(String lvyKey) {
this.lvyKey = lvyKey;
return self();
}
public String[] getCrdnIDs() {
return ifEmpty(crdnIDs, () -> null);
}
public <T extends NxrpMtchgQuery> T setCrdnIDs(String... crdnIDs) {
this.crdnIDs = crdnIDs;
return self();
}
public String getCrdnId() {
return ifEmpty(crdnId, () -> null);
}
public <T extends NxrpMtchgQuery> T setCrdnId(String crdnId) {
this.crdnId = crdnId;
return self();
}
public String[] getSndngIDs() {
return ifEmpty(sndngIDs, () -> null);
}
public <T extends NxrpMtchgQuery> T setSndngIDs(String... sndngIDs) {
this.sndngIDs = sndngIDs;
return self();
}
public String getSndngId() {
return ifEmpty(sndngId, () -> null);
}
public <T extends NxrpMtchgQuery> T setSndngId(String sndngId) {
this.sndngId = sndngId;
return self();
}
public String[] getSndngDtlIDs() {
return ifEmpty(sndngDtlIDs, () -> null);
}
public <T extends NxrpMtchgQuery> T setSndngDtlIDs(String... sndngDtlIDs) {
this.sndngDtlIDs = sndngDtlIDs;
return self();
}
public String getSndngDtlId() {
return ifEmpty(sndngDtlId, () -> null);
}
public <T extends NxrpMtchgQuery> T setSndngDtlId(String sndngDtlId) {
this.sndngDtlId = sndngDtlId;
return self();
}
// ETC /////////////////////////////////////////////////////////////////////
public String getCallPurpose() {
return ifEmpty(callPurpose, () -> null);
}
public <T extends NxrpMtchgQuery> T setCallPurpose(String callPurpose) {
this.callPurpose = callPurpose;
return self();
}
public String getDelYn() {
return ifEmpty(delYn, () -> null);
}
public <T extends NxrpMtchgQuery> T setDelYn(String delYn) {
this.delYn = delYn;
return self();
}
public String getDelRsn() {
return ifEmpty(delRsn, () -> null);
}
public <T extends NxrpMtchgQuery> T setDelRsn(String delRsn) {
this.delRsn = delRsn;
return self();
}
public String getCrdnDelYn() {
return ifEmpty(crdnDelYn, () -> null);
}
public <T extends NxrpMtchgQuery> T setCrdnDelYn(String crdnDelYn) {
this.crdnDelYn = crdnDelYn;
return self();
}
// ETC /////////////////////////////////////////////////////////////////////
}

@ -7,7 +7,6 @@ import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
import cokr.xit.foundation.component.AbstractMapper;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.sndb.NxrpMtchg;
import cokr.xit.fims.sndb.NxrpMtchgQuery;
@ -36,6 +35,38 @@ public interface NxrpMtchgMapper extends AbstractMapper {
*/
List<DataObject> selectNxrpMtchgs(NxrpMtchgQuery req);
/** 1 .
* @param req
* @return
*/
default DataObject selectNxrpMtchgInfo(NxrpMtchgQuery req) {
// 기본 정렬
if (req.getOrderBy() == null) {
req.setOrderBy("NM.MTCHG_ID DESC");
}
List<DataObject> nxrpMtchgs = selectNxrpMtchgs(req);
return !nxrpMtchgs.isEmpty() ? nxrpMtchgs.get(0) : null;
}
/** .
* @param req
* @return
*/
List<DataObject> selectCrdnLevys(String crdnId);
/** 1 .
* @param req
* @return
*/
default DataObject selectCrdnLevyInfo(String crdnId) {
List<DataObject> crdnLevys = selectCrdnLevys(crdnId);
return !crdnLevys.isEmpty() ? crdnLevys.get(0) : null;
}
/** .
* @param params
* <ul><li>"nxrpMtchg" - </li>
@ -76,6 +107,32 @@ public interface NxrpMtchgMapper extends AbstractMapper {
return nxrpMtchg != null && updateNxrpMtchg(params().set("nxrpMtchg", nxrpMtchg)) == 1;
}
/** ID .
* @param params
* <ul><li>"nxrpMtchg" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int updateLinkRsltId(Map<String, Object> params);
default boolean updateLinkRsltId(NxrpMtchg nxrpMtchg) {
return nxrpMtchg != null && updateLinkRsltId(params().set("nxrpMtchg", nxrpMtchg)) == 1;
}
/** .
* @param params
* <ul><li>"nxrpMtchg" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int updatePrcsSttsCd(Map<String, Object> params);
default boolean updatePrcsSttsCd(NxrpMtchg nxrpMtchg) {
return nxrpMtchg != null && updatePrcsSttsCd(params().set("nxrpMtchg", nxrpMtchg)) == 1;
}
/** .
* @param params
* <ul><li>"nxrpMtchg" - </li>

@ -56,7 +56,9 @@ public interface SndngMapper extends AbstractMapper {
List<DataObject> selectSndngs(SndbQuery req);
default DataObject selectSndngInfo(String sndngId) {
List<DataObject> InfoSndng = selectSndngs(new SndbQuery().setSndngId(sndngId).setDelYn("N").setOrderBy("S.SNDNG_ID DESC"));
List<DataObject> InfoSndng = selectSndngs(new SndbQuery().setSndngId(sndngId)
.setDelYn("N")
.setOrderBy("S.SNDNG_ID DESC"));
return !InfoSndng.isEmpty() ? InfoSndng.get(0) : null;
}
@ -74,7 +76,9 @@ public interface SndngMapper extends AbstractMapper {
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"));
List<DataObject> sndngDtlInfo = selectSndngDtls(new SndbQuery().setSndngDtlId(sndngDtlId)
.setDelYn("N")
.setOrderBy("SD.SNDNG_DTL_ID DESC"));
return !sndngDtlInfo.isEmpty() ? sndngDtlInfo.get(0) : null;
}
@ -330,6 +334,19 @@ public interface SndngMapper extends AbstractMapper {
*/
int selectTnocsSndngDtlSvbtc(String svbtcId);
/** .
* @param params
* <ul><li>"sndngDtl" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int updateEPostSndngDtlSttsCd(Map<String, Object> params);
default boolean updateEPostSndngDtlSttsCd(SndngDtl sndngDtl) {
return sndngDtl != null && updateEPostSndngDtlSttsCd(params().set("sndngDtl", sndngDtl)) == 1;
}
/** .
* @param params
* <ul><li>"sndngDtl" - </li>

@ -31,6 +31,15 @@ public interface NxrpMtchgService {
*/
List<DataObject> getNxrpMtchgs(NxrpMtchgQuery req);
/** .
* @param req
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String callNxrpLink(NxrpMtchgQuery req);
/** .
* @param nxrpMtchg
* @return

@ -11,7 +11,9 @@ import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.sndb.NxrpMtchg;
import cokr.xit.fims.sndb.NxrpMtchgQuery;
import cokr.xit.fims.sndb.SndngDtl;
import cokr.xit.fims.sndb.dao.NxrpMtchgMapper;
import cokr.xit.fims.sndb.dao.SndngMapper;
/** Bean
*
@ -30,6 +32,10 @@ public class NxrpMtchgBean extends AbstractComponent {
@Resource(name = "nxrpMtchgMapper")
private NxrpMtchgMapper nxrpMtchgMapper;
/** 발송 대장 정보 DAO */
@Resource(name = "sndngMapper")
private SndngMapper sndngMapper;
/** .
* @param req
* @return
@ -46,6 +52,83 @@ public class NxrpMtchgBean extends AbstractComponent {
return nxrpMtchgMapper.selectNxrpMtchgs(req);
}
/** ID 1 .
* @param req
* @return
*/
public DataObject getNxrpMtchgInfo(NxrpMtchgQuery req) {
return nxrpMtchgMapper.selectNxrpMtchgInfo(req);
}
/** .
* @param req
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String callNxrpLink(NxrpMtchgQuery req) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지
// 2023.02.01 KDH 용인 밤샘주차는 세외수입 전송시 본고지 공문번호로 변경하여 전송해야됨
// 20200327 UIJIN 서울시 세외수입 엑셀 양식
// if () {
// retMessage = "[S] 작업이 정상 처리 되었습니다.";
// return retMessage;
// }
// 세외수입 연계관련 정보 확인
for (int iLoop = 0; iLoop < req.getSndngDtlIDs().length; iLoop++) {
// 단속 자료 조회
DataObject crdnLevyInfo = nxrpMtchgMapper.selectCrdnLevyInfo(req.getCrdnIDs()[iLoop]);
// 세외수입 연계 호출
String linkRsltId = "0000000000";
// 세외수입 매칭 내역 정보 조회
DataObject nxrpMtchgInfo = nxrpMtchgMapper.selectNxrpMtchgInfo(req);
if (nxrpMtchgInfo.isEmpty()) {
NxrpMtchg nxrpMtchg = new NxrpMtchg();
nxrpMtchg.setCrdnId(crdnLevyInfo.string("CRND_ID"));
nxrpMtchg.setLinkRsltId(linkRsltId);
nxrpMtchg.setLevyAmt(crdnLevyInfo.number("PCPTAX").intValue());
nxrpMtchg.setAdtnAmt(crdnLevyInfo.number("ADAMT").intValue());
nxrpMtchg.setSumAmt(crdnLevyInfo.number("SUM_AMT").intValue());
retSuccess = nxrpMtchgMapper.insert(nxrpMtchg);
} else {
NxrpMtchg nxrpMtchg = new NxrpMtchg();
nxrpMtchg.setMtchgId(nxrpMtchgInfo.string("MTCHG_ID"));
nxrpMtchg.setLinkRsltId(linkRsltId);
retSuccess = nxrpMtchgMapper.updateLinkRsltId(nxrpMtchg);
}
// 발송 상세 상태 코드 수정.
SndngDtl sndngDtl = new SndngDtl();
sndngDtl.setSndngDtlSttsCd("01"); // FIM050(발송 상세 상태 코드) - 01 세외수입부과
sndngDtl.setSndngDtlId(req.getSndngDtlIDs()[iLoop]);
retSuccess = sndngMapper.updateSndngDtlSttsCd(sndngDtl);
if (!retSuccess) {
throw new RuntimeException("세외수입 매칭 내역 정보를 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}
retMessage = "[S] 작업이 정상 처리 되었습니다.";
return retMessage;
}
/** .
* @param nxrpMtchg
* @return

@ -40,6 +40,11 @@ public class NxrpMtchgServiceBean extends AbstractServiceBean implements NxrpMtc
return nxrpMtchgBean.getNxrpMtchgs(req);
}
@Override
public String callNxrpLink(NxrpMtchgQuery req) {
return nxrpMtchgBean.callNxrpLink(req);
}
@Override
public String createNxrpMtchg(NxrpMtchg nxrpMtchg) {
return nxrpMtchgBean.createNxrpMtchg(nxrpMtchg);

@ -1169,7 +1169,7 @@ public class SndngBean extends AbstractComponent {
sndngDtl.setSndngDtlSttsCd("03");
sndngDtl.setSndngDtlId(sndngDtlInfo.string("SNDNG_DTL_ID"));
retSuccess = sndngMapper.updateSndngDtlSttsCd(sndngDtl);
retSuccess = sndngMapper.updateEPostSndngDtlSttsCd(sndngDtl);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다.");

@ -52,15 +52,19 @@ public class Sndb01Controller extends ApplicationController {
, getAdvanceNoticeSendingInfo = "/080/info.do" // 사전통지 발송 상세 대장 조회
, noticeSheetSendingMain = "/090/main.do" // 고지서 발송 현황 메인 화면
, getNoticeSheetSendingList = "/090/list.do" // 고지서 발송 대상 목록 조회
, getNoticeSheetSendingInfo = "/100/info.do" // 고지서 발송 상세 대장 조회
, noticeSheetSendingMain = "/090/main.do" // 고지서 발송 현황 메인 화면
, getNoticeSheetSendingList = "/090/list.do" // 고지서 발송 대상 목록 조회
, getNoticeSheetSendingInfo = "/100/info.do" // 고지서 발송 상세 대장 조회
, noticeSheetSendingTargetMain = "/110/main.do" // 고지서 발송 대상 메인 화면
, createSending = "/020/createSndng.do" // 발송 대상 등록
, createSendingLink = "/080/createSndngLink.do" // 우편 통합 발송 연계 등록
@ -390,7 +394,6 @@ public class Sndb01Controller extends ApplicationController {
return mav.addObject("pageName", "sndb01080")
.addObject("sggCd", req.getSggCd())
.addObject("taskSeCd", req.getTaskSeCd())
.addObject("sndngSeCd", req.getSndngSeCd()) // 발송 구분 코드
.addObject("advntceSndngDtl", json ? sndngDtls : toJson(sndngDtls)) // 사전통지 발송 현황 세부내용
;
}
@ -464,6 +467,14 @@ public class Sndb01Controller extends ApplicationController {
;
}
/** (sndb/sndb01/110-main) .
*
* @return /sndb/sndb01/110-main

@ -6,6 +6,7 @@ import org.springframework.web.servlet.ModelAndView;
import cokr.xit.base.web.ApplicationController;
import cokr.xit.fims.sndb.NxrpMtchg;
import cokr.xit.fims.sndb.NxrpMtchgQuery;
import cokr.xit.fims.sndb.service.NxrpMtchgService;
/**
@ -24,7 +25,8 @@ public class Sndb02Controller extends ApplicationController {
public class METHOD_URL {
public static final String
createNonTaxReceiptMatching = "/010/create.do" // 세외수입 매핑 내역 등록
callNonTaxReceiptLink = "/010/createNxrpLink.do" // 세외수입 연계 호출 및 매핑 등록
, createNonTaxReceiptMatching = "/010/create.do" // 세외수입 매핑 내역 등록
, updateNonTaxReceiptMatching = "/010/update.do" // 세외수입 매칭 내역 수정
, removeNonTaxReceiptMatching = "/010/remove.do" // 세외수입 매칭 내역 제거
;
@ -34,6 +36,28 @@ public class Sndb02Controller extends ApplicationController {
@Resource(name = "nxrpMtchgService")
private NxrpMtchgService nxrpMtchgService;
/** .
* @param req
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView callNonTaxReceiptLink(NxrpMtchgQuery req) {
boolean saved = false;
String retMessage = nxrpMtchgService.callNxrpLink(req);
if (retMessage.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("retMessage", retMessage);
}
/** .
* @param nxrpMtchg
* @return jsonView

@ -19,6 +19,7 @@ import cokr.xit.fims.levy.Rduct;
import cokr.xit.fims.payer.Payer;
import cokr.xit.fims.payer.PayerQuery;
import cokr.xit.fims.sndb.NxrpMtchg;
import cokr.xit.fims.sndb.NxrpMtchgQuery;
import cokr.xit.fims.sndb.SndbQuery;
import cokr.xit.fims.sndb.Sndng;
import cokr.xit.fims.sndb.SndngDtl;
@ -688,6 +689,12 @@ public class DpvController {
@RequestMapping(name="장애인과태료업무 세외수입 매핑", value=CLASS_URL+Sndb02Controller.CLASS_URL)
class Sndb02Controller extends cokr.xit.fims.sndb.web.Sndb02Controller {
@Override
@RequestMapping(name="세외수입 연계 호출 및 매핑 등록", value=METHOD_URL.callNonTaxReceiptLink)
public ModelAndView callNonTaxReceiptLink(NxrpMtchgQuery req) {
return super.callNonTaxReceiptLink(req);
}
@Override
@RequestMapping(name="세외수입 매핑 내역 등록", value=METHOD_URL.createNonTaxReceiptMatching)
public ModelAndView createNonTaxReceiptMatching(NxrpMtchg nxrpMtchg) {

@ -43,53 +43,58 @@
<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 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 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정자 -->
FROM TB_NXRP_MTCHG
SELECT NM.MTCHG_ID <!-- 매칭 ID -->
, NM.CRDN_ID <!-- 단속 ID -->
, NM.CRDN_DT <!-- 단속 일시 -->
, NM.STDG_NM <!-- 법정동 명 -->
, NM.CRDN_PLC <!-- 단속 장소 -->
, NM.LINK_RSLT_ID <!-- 연계 결과 ID -->
, NM.LVY_KEY <!-- 부과 키 -->
, NM.ACNTG_YR <!-- 회계 연도 -->
, NM.LEVY_NO <!-- 부과 번호 -->
, NM.LEVY_AMT <!-- 부과 금액 -->
, NM.ADTN_AMT <!-- 가산 금액 -->
, NM.SUM_AMT <!-- 합계 금액 -->
, NM.PRCS_STTS_CD <!-- 처리 상태 코드 -->
, NM.EPAYNO <!-- 전자납부번호 -->
, NM.BANK_NM1 <!-- 은행 명1 -->
, NM.VRACTNO1 <!-- 가상계좌번호1 -->
, NM.BANK_NM2 <!-- 은행 명2 -->
, NM.VRACTNO2 <!-- 가상계좌번호2 -->
, NM.BANK_NM3 <!-- 은행 명3 -->
, NM.VRACTNO3 <!-- 가상계좌번호3 -->
, NM.BANK_NM4 <!-- 은행 명4 -->
, NM.VRACTNO4 <!-- 가상계좌번호4 -->
, NM.BANK_NM5 <!-- 은행 명5 -->
, NM.VRACTNO5 <!-- 가상계좌번호5 -->
, NM.BANK_NM6 <!-- 은행 명6 -->
, NM.VRACTNO6 <!-- 가상계좌번호6 -->
, NM.BANK_NM7 <!-- 은행 명7 -->
, NM.VRACTNO7 <!-- 가상계좌번호7 -->
, NM.BANK_NM8 <!-- 은행 명8 -->
, NM.VRACTNO8 <!-- 가상계좌번호8 -->
, NM.BANK_NM9 <!-- 은행 명9 -->
, NM.VRACTNO9 <!-- 가상계좌번호9 -->
, NM.BANK_NM10 <!-- 은행 명10 -->
, NM.VRACTNO10 <!-- 가상계좌번호10 -->
, NM.BANK_NM11 <!-- 은행 명11 -->
, NM.VRACTNO11 <!-- 가상계좌번호11 -->
, NM.REG_DT <!-- 등록 일시 -->
, NM.RGTR <!-- 등록자 -->
, NM.MDFCN_DT <!-- 수정 일시 -->
, NM.MDFR <!-- 수정자 -->
FROM TB_NXRP_MTCHG NM
</sql>
<select id="selectNxrpMtchgList" parameterType="map" resultType="dataobject">/* 세외수입 매칭 내역 목록 조회(nxrpMtchgMapper.selectNxrpMtchgList) */
@ -103,10 +108,94 @@
<select id="selectNxrpMtchgs" parameterType="map" resultType="dataobject">/* 세외수입 매칭 내역 객체 가져오기(nxrpMtchgMapper.selectNxrpMtchgs) */
<include refid="select" />
<where>
<if test="mtchgId != null">
AND NM.MTCHG_ID = #{mtchgId} <!-- 매칭 ID -->
</if>
<if test="crdnId != null">
AND NM.CRDN_ID = #{crdnId} <!-- 단속 ID -->
</if>
<if test="lvyKey != null">
AND NM.LVY_KEY = #{lvyKey} <!-- 부과키 -->
</if>
<if test="delYn != null">
AND NM.DEL_YN = #{delYn} <!-- 삭제 여부 -->
</if>
</where>
<include refid="utility.orderBy" />
</select>
<select id="selectCrdnLevys" parameterType="String" resultType="dataobject">/* 단속, 부과 내역 객체 가져오기(nxrpMtchgMapper.selectCrdnLevys) */
SELECT C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD <!-- 시군구 코드 -->
, C.TASK_SE_CD <!-- 업무 구분 코드 -->
, C.CRDN_INPT_SE_CD <!-- 단속 입력 구분 코드 -->
, C.CRDN_YMD <!-- 단속 일자 -->
, C.CRDN_TM <!-- 단속 시각 -->
, C.VHRNO <!-- 차량번호 -->
, C.CRDN_STDG_NM <!-- 단속 법정동 명 -->
, C.CRDN_ROAD_NM <!-- 단속 도로 명 -->
, C.CRDN_PLC <!-- 단속 장소 -->
, C.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 -->
, C.ADVNTCE_AMT <!-- 사전통지 금액 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, C.CRDN_STTS_CHG_DT <!-- 단속 상태 변경 일시 -->
, CA.CRDN_SE_CD <!-- 단속 구분 코드 -->
, CA.CRDN_SPAREA_CD <!-- 단속 특별구역 코드 -->
, CA.PARKNG_PSBLTY_RSLT_CD <!-- 주차 가능 결과 코드 -->
, VI.VLTN_ID <!-- 위반 ID -->
, VI.VLTN_CD <!-- 위반 코드 -->
, VI.VLTN_ARTCL <!-- 위반 항목 -->
, P.RTPYR_ID <!-- 납부자 ID -->
, P.RTPYR_NO <!-- 납부자 번호 -->
, P.RTPYR_NM <!-- 납부자 명 -->
, P.RTPYR_BRDT <!-- 납부자 생년월일 -->
, P.ZIP <!-- 우편번호 -->
, P.ADDR <!-- 주소 -->
, P.DTL_ADDR <!-- 상세 주소 -->
, L.INST_CD <!-- 기관 코드 -->
, L.DEPT_CD <!-- 부서 코드 -->
, L.FYR <!-- 회계연도 -->
, L.ACNTG_SE_CD <!-- 회계 구분 코드-->
, L.TXITM_CD <!-- 세목 코드 -->
, L.OPER_ITEM_CD <!-- 운영 항목 코드 -->
, L.SPCL_BIZ_CD <!-- 특별회계 사업 코드 -->
, L.LEVY_NO <!-- 부과 번호 -->
, L.INSPY_SN <!-- 분납 순번 -->
, L.LEVY_SE_CD <!-- 부과 구분 코드 -->
, L.LEVY_YMD <!-- 부과 일자 -->
, L.FRST_DUDT_YMD <!-- 최초 납기 일자 -->
, L.DUDT_YMD <!-- 납기 일자 -->
, L.DUDT_AFTR_YMD <!-- 납기 후 일자 -->
, L.LEVY_PCPTAX <!-- 부과 본세 -->
, L.LEVY_ADAMT <!-- 부과 가산금 -->
, L.INSPY_INT <!-- 분납 이자 -->
, L.RCVMT_PCPTAX <!-- 수납 본세 -->
, L.RCVMT_ADAMT <!-- 수납 가산금 -->
, L.RDCAMT_PCPTAX <!-- 감액 본세 -->
, L.RDCAMT_ADAMT <!-- 감액 가산금 -->
, L.SUM_AMT <!-- 합계 금액 -->
, ( SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL ) AS CRDN_INPT_SE_NM <!-- 단속 입력 구분 코드 -->
, ( SELECT CONCAT(C.CRDN_YMD, C.CRDN_TM) FROM DUAL ) AS CRDN_YMD_TM <!-- 단속 일시 -->
, ( SELECT GET_MASK_DATETIME(C.CRDN_YMD, '-', C.CRDN_TM, ':') FROM DUAL ) AS CRDN_YMD_TM_MASK <!-- 단속 일시 마스크 -->
, ( SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL ) AS CRDN_STTS_NM <!-- 단속 상태 코드 -->
, ( SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL ) AS CRDN_SE_NM <!-- 단속 구분 코드 -->
, ( SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL ) AS CRDN_SPAREA_NM <!-- 단속 특별구역 코드 -->
, ( SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL ) AS PARKNG_PSBLTY_RSLT_NM <!-- 주차 가능 결과 코드 -->
, ( CASE WHEN L.FFNLG_AMT IS NOT NULL THEN L.FFNLG_AMT
ELSE C.FFNLG_AMT
END ) AS FFNLG_AMT <!-- 과태료 금액 -->
, ( L.LEVY_PCPTAX - L.RCVMT_PCPTAX - L.RDCAMT_PCPTAX ) AS PCPTAX <!-- 본세 -->
, ( L.LEVY_ADAMT - L.RCVMT_ADAMT - L.RDCAMT_ADAMT ) AS ADAMT <!-- 가산금 -->
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)
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N')
WHERE C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
AND C.DEL_YN = 'N'
<include refid="utility.orderBy" />
</select>
<insert id="insertNxrpMtchg" parameterType="map">/* 세외수입 매칭 내역 등록(nxrpMtchgMapper.insertNxrpMtchg) */
<selectKey resultType="string" keyProperty="nxrpMtchg.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
@ -120,6 +209,7 @@
, CRDN_DT <!-- 단속 일시 -->
, STDG_NM <!-- 법정동 명 -->
, CRDN_PLC <!-- 단속 장소 -->
, LINK_RSLT_ID <!-- 연계 결과 ID -->
, LVY_KEY <!-- 부과 키 -->
, ACNTG_YR <!-- 회계 연도 -->
, LEVY_NO <!-- 부과 번호 -->
@ -161,6 +251,7 @@
, #{nxrpMtchg.crdnDt} <!-- 단속 일시 -->
, #{nxrpMtchg.stdgNm} <!-- 법정동 명 -->
, #{nxrpMtchg.crdnPlc} <!-- 단속 장소 -->
, #{nxrpMtchg.linkRsltId} <!-- 연계 결과 ID -->
, #{nxrpMtchg.lvyKey} <!-- 부과 키 -->
, #{nxrpMtchg.acntgYr} <!-- 회계 연도 -->
, #{nxrpMtchg.levyNo} <!-- 부과 번호 -->
@ -203,6 +294,7 @@
SET CRDN_DT = #{nxrpMtchg.crdnDt} <!-- 단속 일시 -->
, STDG_NM = #{nxrpMtchg.stdgNm} <!-- 법정동 명 -->
, CRDN_PLC = #{nxrpMtchg.crdnPlc} <!-- 단속 장소 -->
, LINK_RSLT_ID = #{nxrpMtchg.linkRsltId} <!-- 연계 결과 ID -->
, LVY_KEY = #{nxrpMtchg.lvyKey} <!-- 부과 키 -->
, ACNTG_YR = #{nxrpMtchg.acntgYr} <!-- 회계 연도 -->
, LEVY_NO = #{nxrpMtchg.levyNo} <!-- 부과 번호 -->
@ -236,15 +328,35 @@
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{nxrpMtchg.modifiedBy} <!-- 수정자 -->
WHERE MTCHG_ID = #{nxrpMtchg.mtchgId}
AND DEL_YN = 'N'
</update>
<update id="deleteNxrpMtchg" parameterType="map">/* 세외수입 매칭 내역 삭제(nxrpMtchgMapper.deleteNxrpMtchg) */
<update id="updateLinkRsltId" parameterType="map">/* 세외수입 매칭 내역에서 연계결과ID 수정 (nxrpMtchgMapper.updateLinkRsltId) */
UPDATE TB_NXRP_MTCHG
SET DEL_YN = 'N' <!-- 삭제 여부 -->
SET LINK_RSLT_ID = #{nxrpMtchg.linkRsltId} <!-- 연계 결과 ID -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{nxrpMtchg.modifiedBy} <!-- 수정자 -->
WHERE MTCHG_ID = #{nxrpMtchg.mtchgId}
AND DEL_YN = 'Y'
AND DEL_YN = 'N'
</update>
<update id="updatePrcsSttsCd" parameterType="map">/* 세외수입 매칭 내역에서 처리상태코드 수정(nxrpMtchgMapper.updatePrcsSttsCd) */
UPDATE TB_NXRP_MTCHG
SET PRCS_STTS_CD = #{nxrpMtchg.prcsSttsCd} <!-- 처리 상태 코드 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{nxrpMtchg.modifiedBy} <!-- 수정자 -->
WHERE MTCHG_ID = #{nxrpMtchg.mtchgId}
AND DEL_YN = 'N'
</update>
<update id="deleteNxrpMtchg" parameterType="map">/* 세외수입 매칭 내역 삭제(nxrpMtchgMapper.deleteNxrpMtchg) */
UPDATE TB_NXRP_MTCHG
SET DEL_YN = 'Y' <!-- 삭제 여부 -->
, DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 -->
, DLTR = #{nxrpMtchg.modifiedBy} <!-- 삭제자 -->
, DEL_RSN = #{nxrpMtchg.delRsn} <!-- 삭제 사유 -->
WHERE MTCHG_ID = #{nxrpMtchg.mtchgId}
AND DEL_YN = 'N'
</update>
</mapper>

@ -1115,11 +1115,6 @@
<include refid="utility.paging-suffix" />
</select>
<update id="createSndbk" parameterType="map">/* 발송상세의 반송 정보 수정(sndngMapper.createSndbk) */
UPDATE TB_SNDNG_DTL
SET BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD <!-- 전 발송 상세 상태 코드 -->
@ -1155,6 +1150,12 @@
AND DEL_YN = 'N'
</update>
<select id="selectSndngDtlLevyInfo" parameterType="string" resultType="dataobject">/* 발송 상세 및 부과 객체 가져오기(sndngMapper.selectSndngDtlLevyInfo) */
SELECT SD.SNDNG_DTL_ID <!-- 발송 상세 ID -->
, SD.SNDNG_ID <!-- 발송 ID -->
@ -1602,7 +1603,7 @@
AND DEL_YN = 'N'
</update>
<update id="updateSndngDtlSttsCd" parameterType="map">/* 발송 상세 상태 코드 수정(sndngMapper.updateSndngDtlSttsCd) */
<update id="updateEPostSndngDtlSttsCd" parameterType="map">/* 우편통합 발송 상세 상태 코드 수정(sndngMapper.updateEPostSndngDtlSttsCd) */
UPDATE TB_SNDNG_DTL
SET CON_KEY = #{sndngDtl.conKey} <!-- 외부연계식별키 -->
, RG_NO = #{sndngDtl.rgNo} <!-- 공시송달 ID -->
@ -1614,6 +1615,16 @@
AND DEL_YN = 'N'
</update>
<update id="updateSndngDtlSttsCd" parameterType="map">/* 발송 상세 상태 코드 수정(sndngMapper.updateSndngDtlSttsCd) */
UPDATE TB_SNDNG_DTL
SET BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD <!-- 이전 발송 상세 상태 코드 -->
, SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{sndngDtl.modifiedBy} <!-- 수정자 -->
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} <!-- 발송 상세 ID -->
AND DEL_YN = 'N'
</update>
<select id="selectTnocsSndngDtlSvbtc" parameterType="map" resultType="int">/* 발송상세 대장에 공시송달ID에 해당하는 총건수 가져오기(sndngMapper.selectTnocsSndngDtlSvbtc) */
SELECT COUNT(*) TNOCS
FROM TB_SNDNG_DTL

@ -237,23 +237,36 @@
fn_securityModeToggle($("#securityMode--top").is(":checked"));
}
///////////////////////////////////////////////////////////////
getCrdnKey = (info) => {
return info ? info.CRDN_ID : null;
}
getCrdnKeys = (status) => {
let dataset = ${pageName}Control.dataset.getDataset(status);
return dataset.map(e => getCrdnKey(e));
}
///////////////////////////////////////////////////////////////
// 세외수입 등록
createNxrpMtchg${pageName} = (params) => {
let btnTitle = $("#btnCreateNxrpMtchg--${pageName}").attr("title");
// 선택된 자료의 발송 상세 ID 추가
let selected = ${pageName}Control.dataset.getKeys("selected");
let crdnKeys = getCrdnKeys("selected");
if (selected.length < 1) return;
params.sndngDtlIDs = selected.join(","); // 발송 상세 IDs
params.crdnIDs = crdnKeys.join(","); // 단속 IDs
params.delYn = "N"; // 삭제 여부
ajax.post({
url : wctx.url("/" + params.taskSeCd + "/sndb/sndb02/010/create.do")
url : wctx.url("/" + params.taskSeCd + "/sndb/sndb02/010/createNxrpLink.do")
, data : params || {}
, success : resp => {
let btnTitle = $("#btnCreateNxrpMtchg--${pageName}").attr("title");
let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage);
}
});

@ -122,7 +122,7 @@
</div>
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnNhtSndngInfo--${pageName}" title="신규 발송 등록" onclick="${infoPrefix}Info${pageName}();">
<button type="button" class="btn btn-primary w-px-120" id="btnNhtSndngInfo--${pageName}" title="신규 발송 등록" onclick="fnNhtSndngInfo${pageName}();">
신규 발송 등록
</button>
</span>
@ -447,7 +447,7 @@
}
// 신규 등록
${infoPrefix}Info${pageName} = () => {
fnNhtSndngInfo${pageName} = () => {
let params = ${pageName}Fields.get();
params.callPurpose = "create";

Loading…
Cancel
Save