납부자 주소 설정 수정, 발송현황 수정, 서울 세외수입 연계(진행 중)

main
mjkhan21 7 months ago
parent 9a3d1d488a
commit 4815cfa15b

@ -25,7 +25,6 @@ import cokr.xit.foundation.data.DataObject;
*/
@Component("crdnPayerAddrHstryBean")
public class CrdnPayerAddrHstryBean extends AbstractBean {
/** 단속 납부자 이력 정보 DAO */
@Resource(name = "crdnPayerAddrHstryMapper")
private CrdnPayerAddrHstryMapper crdnPayerAddrHstryMapper;
@ -54,12 +53,7 @@ public class CrdnPayerAddrHstryBean extends AbstractBean {
* </ul>
*/
public boolean create(CrdnPayerAddrHstry crdnPayerAddrHstry) {
int rtnNocs = crdnPayerAddrHstryMapper.insertCrdnPayerAddrHstry(crdnPayerAddrHstry);
if (rtnNocs != 1) {
return false;
}
return true;
return crdnPayerAddrHstryMapper.insertCrdnPayerAddrHstry(crdnPayerAddrHstry) == 1;
}
public int createCrdnPayerAddrHstry(CrdnPayerAddrHstry crdnPayerAddrHstry) {
@ -85,21 +79,16 @@ public class CrdnPayerAddrHstryBean extends AbstractBean {
* </ul>
*/
public boolean createHstryUpdateCrdnPayerAddr(CrdnPayerAddrHstry crdnPayerAddrHstry) {
int rtnNocs = -1; // 처리 결과 건수
// 단속 납부자 주소 이력(TB_CRDN_PAYER_ADDR_HSTRY) 대장을 등록한다.
rtnNocs = crdnPayerAddrHstryMapper.insertCrdnPayerAddrHstry(crdnPayerAddrHstry);
if (rtnNocs != 1) {
int rtnNocs = crdnPayerAddrHstryMapper.insertCrdnPayerAddrHstry(crdnPayerAddrHstry);
if (rtnNocs != 1)
throw new RuntimeException("납부자주소 이력 대장 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 단속 대장(TB_CRDN)을 수정한다.
rtnNocs = updateCrdnPayerAddr(crdnPayerAddrHstry);
if (rtnNocs != 1) {
if (rtnNocs != 1)
throw new RuntimeException("단속 대장에 납부자, 주소 정보 수정 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback
}
return true;
}
}
}

@ -1,7 +1,5 @@
package cokr.xit.fims.nxrp.service.bean;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@ -14,24 +12,15 @@ import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import cokr.xit.base.code.service.bean.CodeBean;
import cokr.xit.base.file.service.bean.FileBean;
import cokr.xit.base.user.service.bean.UserBean;
import cokr.xit.fims.base.service.bean.OgdpBean;
import cokr.xit.fims.cmmn.service.bean.StngBean;
import cokr.xit.fims.crdn.Crdn;
import cokr.xit.fims.crdn.dao.CrdnInfoMapper;
import cokr.xit.fims.crdn.dao.CrdnStngMapper;
import cokr.xit.fims.crdn.dao.CrdnUpdtMapper;
import cokr.xit.fims.levy.Levy;
import cokr.xit.fims.levy.LevyQuery;
import cokr.xit.fims.levy.dao.LevyMapper;
import cokr.xit.fims.mngt.Vltn;
import cokr.xit.fims.mngt.dao.TaskMapper;
import cokr.xit.fims.nxrp.NisIndivQuery;
import cokr.xit.fims.nxrp.dao.NisA01Mapper;
import cokr.xit.fims.nxrp.dao.NisA02Mapper;
import cokr.xit.fims.nxrp.dao.NisA03Mapper;
import cokr.xit.fims.sndb.SndbQuery;
import cokr.xit.fims.sndb.SndngDtl;
import cokr.xit.fims.sndb.dao.SndngDtlMapper;
@ -39,7 +28,6 @@ import cokr.xit.foundation.Downloadable;
import cokr.xit.foundation.UserInfo;
import cokr.xit.foundation.component.AbstractBean;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.foundation.data.JSON;
import cokr.xit.interfaces.sntris.buga.Bu04BugaWSDTO;
import cokr.xit.interfaces.sntris.fileoffer.Ye22InputDTO;
import cokr.xit.interfaces.sntris.fileoffer.Ye22NoticeInfoDTO;
@ -59,136 +47,71 @@ import cokr.xit.interfaces.sntris.service.bean.SntrisBean;
*/
@Component("snisBean")
public class SnisBean extends AbstractBean {
private JSON json = new JSON();
@Resource(name = "sntrisBean")
private SntrisBean sntrisBean;
/** 발송 상세 정보 DAO */
@Resource(name = "sndngDtlMapper")
private SndngDtlMapper sndngDtlMapper;
/** 과태료 대장 단속 정보 등록 정보 DAO */
@Resource(name = "nisA01Mapper")
private NisA01Mapper nisA01Mapper;
/** 과태료 대장 등록 자료 일괄 조회 정보 DAO */
@Resource(name = "nisA02Mapper")
private NisA02Mapper nisA02Mapper;
/** 과태료 대장 등록 자료 상세 조회 정보 DAO */
@Resource(name = "nisA03Mapper")
private NisA03Mapper nisA03Mapper;
/** 단속 대장 수정 정보 DAO */
@Resource(name = "crdnUpdtMapper")
private CrdnUpdtMapper crdnUpdtMapper;
@Resource(name="crdnInfoMapper")
private CrdnInfoMapper crdnInfoMapper;
@Resource(name="crdnStngMapper")
private CrdnStngMapper crdnStngMapper;
@Resource(name="taskMapper")
private TaskMapper taskMapper;
@Resource(name="fileBean")
private FileBean fileBean;
/** 사용자 정보 DAO */
@Resource(name="userBean")
protected UserBean userBean;
/** 코드 정보 DAO */
@Resource(name="codeBean")
protected CodeBean codeBean;
/** 설정 정보 DAO */
@Resource(name="stngBean")
protected StngBean stngBean;
/** 부서 정보 DAO */
@Resource(name = "ogdpBean")
private OgdpBean ogdpBean;
private UserBean userBean;
@Resource(name = "levyMapper")
private LevyMapper levyMapper;
/** .
* @param req
* @return
*/
public List<DataObject> getNisIndivA01List(NisIndivQuery req) {
return nisA01Mapper.selectNisIndivA01List(req);
}
/** .
* @param req
* @return
*/
public List<DataObject> getNisIndivA01s(NisIndivQuery req) {
return nisA01Mapper.selectNisIndivA01s(req);
}
/** .
* @param req
*/
public void registerPreNotices(SndbQuery req) {
// 과태료대장 등록을 위한 사전통보 추출
Map<String, Bu18WebPreNoticeDTO> prenotices = getPreNotices(req);
// 발송대상 사전통보를 과태료대장에 등록
Ye22InputDTO input = new Ye22InputDTO();
input.setSystemGubun(req.getTaskSeCd());
Map<String, Ye22NoticeInfoDTO> notices = sntrisBean.registerPreNotices(input, prenotices); // 발송대상 ID별 과태료 등록 응답
Map<String, Bu18WebReturnInfoDTO> results = sntrisBean.registerPreNotices(prenotices); // 발송대상 ID별 과태료 등록 응답
// 로컬 발송대상 상세 업데이트
Set<String> ids = notices.keySet(); // 발송대상 ID
Set<String> ids = results.keySet(); // 발송대상 상세ID
List<SndngDtl> details = sndngDtlMapper.selectSndngDetails(req.setSndngDtlIds(ids.toArray(new String[ids.size()]))).stream()
.map(detail -> {
Ye22NoticeInfoDTO notice = notices.get(detail.getSndngDtlId());
return update(notice, detail);
Bu18WebReturnInfoDTO returned = results.get(detail.getSndngDtlId());
return update(returned, detail);
})
.filter(detail -> detail != null)
.toList();
sndngDtlMapper.updateSndngDtls(details);
// 부과정보 업데이트
Map<String, Ye22NoticeInfoDTO> byCrdnIds = details.stream().collect(Collectors.toMap( // 단속 ID별 과태료 등록 응답
Map<String, Bu18WebReturnInfoDTO> byCrdnIds = details.stream().collect(Collectors.toMap( // 단속 ID별 과태료 등록 응답
detail -> detail.getCrdnId(),
detail -> {
String sndngDtlId = detail.getSndngDtlId();
return notices.get(sndngDtlId);
return results.get(sndngDtlId);
}
));
// 업데이트를 위한 부과정보 가져오기
ids = details.stream().map(SndngDtl::getCrdnId).collect(Collectors.toSet()); // 발송대상의 단속 ID
List<Levy> levies = levyMapper.selectLevys(new LevyQuery().setCrdnIds(ids.toArray(new String[ids.size()]))).stream()
.map(levy -> {
Ye22NoticeInfoDTO notice = byCrdnIds.get(levy.getCrdnId());
return update(notice, levy);
Bu18WebReturnInfoDTO returned = byCrdnIds.get(levy.getCrdnId());
return update(returned, levy);
})
.filter(levy -> levy != null)
.toList();
levyMapper.updateLevies(levies);
}
private SndngDtl update(Ye22NoticeInfoDTO notice, SndngDtl sndngDtl) {
if (notice == null) return null;
sndngDtl.setLinkMngKey(Long.toString(notice.getBuAk())); // 과태료 키
sndngDtl.setTaxNo(notice.getTaxNo()); // 과세번호
sndngDtl.setLevyYmd(notice.getTaxYmd()); // 과세일자
sndngDtl.setEpayno(notice.getEnapbuNo()); // 전자납부번호
sndngDtl.setPcptax((int)notice.getTaxAmt()); // 본세
sndngDtl.setAdamt((int)notice.getGasanAmt()); // 가산금
sndngDtl.setDudtYmd(notice.getNapgiYmd()); // 납기일자
sndngDtl.setDudtAftrYmd(notice.getNapgiAftYmd()); // 납기후 일자
setBankAccounts(notice.accountGetters(), sndngDtl.bankAccountSetters()); // 은행 / 계좌번호
private SndngDtl update(Bu18WebReturnInfoDTO returned, SndngDtl sndngDtl) {
if (returned == null) return null;
sndngDtl.setLinkMngKey(returned.getNoticeAk()); // 연계 키 <- 과태료대장 키
sndngDtl.setEpayno(returned.getEnapbuNo()); // 전자납부번호
setBankAccounts(returned.accountGetters(), sndngDtl.bankAccountSetters()); // 은행 / 계좌번호
sndngDtl.setSndngDtlSttsCd("01");
return sndngDtl;
}
@ -200,28 +123,17 @@ public class SnisBean extends AbstractBean {
});
}
private Levy update(Ye22NoticeInfoDTO notice, Levy levy) {
if (notice == null) return null;
private Levy update(Bu18WebReturnInfoDTO returned, Levy levy) {
if (returned == null) return null;
levy.setNxrpLevyKey(Long.toString(notice.getBuAk())); // 과태료대장 키
levy.setEpayno(notice.getEnapbuNo()); // 전자납부번호
levy.setLevyYmd(notice.getTaxYmd()); //부과일자
levy.setTxitmCd(notice.getSemokCd()); // 세목코드
String napgiYmd = notice.getNapgiYmd();
levy.setFrstDudtYmd(napgiYmd); // 최초 납기일자
levy.setDudtYmd(napgiYmd); // 납기일자
levy.setDudtAftrYmd(notice.getNapgiAftYmd()); // 납기후일자
levy.setLevyPcptax((int)notice.getTaxAmt()); // 부과본세
levy.setLevyAdamt((int)notice.getGasanAmt()); //부과가산금
setBankAccounts(notice.accountGetters(), levy.bankAccountSetters()); // 은행 / 계좌번호
levy.setNxrpLevyKey(returned.getNoticeAk()); // 세외수입부과 키 <- 과태료대장 키
levy.setEpayno(returned.getEnapbuNo()); // 전자납부번호
setBankAccounts(returned.accountGetters(), levy.bankAccountSetters()); // 은행 / 계좌번호
return levy;
}
/** ID .
/** ID .
* @param req
* @return ID
*/
@ -247,7 +159,7 @@ public class SnisBean extends AbstractBean {
});
// 발송대상 ID별 사전통지 생성
String now = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
String now = dateFormats.format("yyyyMMddHHmmss", System.currentTimeMillis());
UserInfo currentUser = currentUser();
DataObject userInfo = userBean.getUserInfo(currentUser.getId());
return targets.stream().collect(Collectors.toMap(
@ -270,17 +182,16 @@ public class SnisBean extends AbstractBean {
// 2. 세외수입 과태료대장에 연계할 단속 정보를 조회
DataObject crdnInfo = nisA01Mapper.selectCrdnInfo(sndngDtl.getCrdnId());
String now = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
String now = dateFormats.format("yyyyMMddHHmmss", System.currentTimeMillis());
Bu18WebPreNoticeDTO prenotice = createPreNotice(currentUser, now, userInfo, crdnInfo);
try {
Bu18WebReturnInfoDTO result = sntrisBean.register(prenotice);
if (result.isSuccess()) {
SndngDtl uptSndngDtl = new SndngDtl();
uptSndngDtl.setSndngDtlSttsCd("01"); // 발송 상태 코드(FIM050) 01:세외수입부과
uptSndngDtl.setSndngDtlId(sndngDtl.getSndngDtlId()); // 발송 상세 ID
// uptSndngDtl.setLinkTrgtCd(resVo1.get("linkTrgtCd").asText()); // 연계 대상 코드
uptSndngDtl.setLinkMngKey(result.getNoticeAk()); // 연계 관리 키
uptSndngDtl.setSndngDtlSttsCd("01"); // 발송 상태 코드(FIM050) 01:세외수입부과
uptSndngDtl.setSndngDtlId(sndngDtl.getSndngDtlId()); // 발송 상세 ID
update(result, uptSndngDtl);
return uptSndngDtl;
} else
return null;
@ -291,7 +202,6 @@ public class SnisBean extends AbstractBean {
private Bu18WebPreNoticeDTO createPreNotice(UserInfo currentUser, String now, DataObject userInfo, DataObject crdnInfo) {
String sggCd = crdnInfo.string("SGG_CD");
String taskSeCd = crdnInfo.string("TASK_SE_CD");
String linkMngKey = sggCd + crdnInfo.string("CRDN_ID") + '_' + now;
Bu18WebPreNoticeDTO prenotice = new Bu18WebPreNoticeDTO();
@ -335,7 +245,7 @@ public class SnisBean extends AbstractBean {
prenotice.setSendYmd(crdnInfo.string("ADVNTCE_BGNG_YMD")); // 사전통지일
prenotice.setSubmitYmd(crdnInfo.string("ADVNTCE_DUDT_YMD")); // 의견제출기한
prenotice.setSysGubun(taskSeCd); // 시스템 구분
prenotice.setSysGubun("PZMS"); // 시스템 구분
prenotice.setLastWorkId(currentUser.getAccount()); // 작업자 ID
prenotice.setLastWorkNm(currentUser.getName()); // 작업자 이름
prenotice.setWorkYmd(now); // 작업일자
@ -343,6 +253,79 @@ public class SnisBean extends AbstractBean {
return prenotice;
}
/** .
* @param input
* @return
*/
public List<Ye22NoticeInfoDTO> getPreNoticeList(Ye22InputDTO input) {
List<Ye22NoticeInfoDTO> prenotices = sntrisBean.getPreNoticeList(input);
update(prenotices);
return prenotices;
}
public void update(List<Ye22NoticeInfoDTO> notices) {
if (isEmpty(notices)) return;
Map<String, Ye22NoticeInfoDTO> noticeMap = notices.stream().collect(Collectors.toMap(
notice -> Long.toString(notice.getBuAk()),
notice -> notice
));
List<String> nxrpLevyKeys = noticeMap.keySet().stream().toList();
List<Levy> levies = levyMapper.selectLevys(new LevyQuery());
levies.forEach(levy -> {
Ye22NoticeInfoDTO notice = noticeMap.get(levy.getNxrpLevyKey());
if (notice == null) return;
levy.setSggCd(notice.getSiguCd()); // 시군구 코드
levy.setDeptCd(notice.getBuseoCd()); // 부서코드
levy.setTxitmCd(notice.getSemokCd()); // 세목코드
levy.setLevyNo(notice.getTaxNo()); // 부과번호
levy.setLevyYmd(notice.getTaxYmd()); // 부과일자
levy.setDudtYmd(notice.getNapgiYmd()); // 납기일자
levy.setLevyPcptax((int)notice.getTaxAmt()); // 부과본세 <- 과세금액
levy.setLevyAdamt((int)notice.getGasanAmt()); // 부과가산금
levy.setLastAmt((int)notice.getFinalAmt()); // 최종금액
levy.setDudtAftrAmt(null);
levy.setDudtAftrYmd(notice.getNapgiAftYmd()); // 납기후일자
levy.setTxtnThing(notice.getMulNm()); // 물건이름
levy.setSzrYmd(notice.getApYmd()); // 압류일자
levy.setEpayno(notice.getEnapbuNo()); // 전자납부번호
setBankAccounts(notice.accountGetters(), levy.bankAccountSetters()); // 은행 / 계좌번호
});
int affected = levyMapper.updateLevies(levies);
List<SndngDtl> details = sndngDtlMapper.selectSndngDetails(new SndbQuery());
details.forEach(detail -> {
Ye22NoticeInfoDTO notice = noticeMap.get(detail.getLinkMngKey());
if (notice == null) return;
detail.setSggCd(notice.getSiguCd()); // 시군구 코드
detail.setEpayno(notice.getEnapbuNo()); // 전자납부번호
detail.setVhrno(notice.getMulNm()); // 차량번호
detail.setLevyNo(notice.getTaxNo()); // 부과번호
detail.setLevyYmd(notice.getTaxYmd()); // 부과일자
detail.setDudtYmd(notice.getNapgiYmd()); // 납기일자
detail.setDudtAftrYmd(notice.getNapgiAftYmd()); // 납기후일자
detail.setPcptax((int)notice.getTaxAmt()); // 본세
detail.setAdamt((int)notice.getGasanAmt()); // 가산금
detail.setLastAmt((int)notice.getFinalAmt()); // 최종금액
detail.setDudtAftrAmt(null); // 납기후 금액
setBankAccounts(notice.accountGetters(), detail.bankAccountSetters()); // 은행 / 계좌번호
});
for (SndngDtl detail: details) {
affected += sndngDtlMapper.updateSndngDtl(detail);
}
}
/** .
* @param nisIndivA01
* @return

@ -106,36 +106,29 @@ public class PayerBean extends AbstractBean {
}
public Payer getPayerAddrInfo(Payer payer) {
// PayerQuery
// 최근 납부자 ID 설정
PayerQuery req = new PayerQuery();
req.setRtpyrSeCd(payer.getRtpyrSeCd()); // 납부자 구분 코드
req.setRtpyrNo(payer.getRtpyrNo()); // 납부자 번호
req.setAddrInptSeCd(payer.getAddrInptSeCd()); // 주소 입력 구분 코드
req.setRoadNmCd(payer.getRoadNmCd()); // 도로명 코드
req.setAddr(payer.getAddr()); // 주소
req.setDtlAddr(payer.getDtlAddr()); // 상세 주소
// 납부자 정보 조회
req.setRtpyrSeCd(payer.getRtpyrSeCd()); // 납부자 구분 코드
req.setRtpyrNo(payer.getRtpyrNo()); // 납부자 번호
req.setAddrInptSeCd(payer.getAddrInptSeCd()); // 주소 입력 구분 코드
req.setRoadNmCd(payer.getRoadNmCd()); // 도로명 코드
req.setAddr(payer.getAddr()); // 주소
req.setDtlAddr(payer.getDtlAddr()); // 상세 주소
req.setOrderBy("P.RTPYR_ID DESC");
List<Payer> payers = getPayers(req);
Payer loaded = payers.get(0);
Payer last = getPayer(req);
payer.setRtpyrId(last.getRtpyrId());
// 납부자 ID 설정
payer.setRtpyrId(loaded.getRtpyrId());
// 납부자 주소 정보를 조회
req.setRtpyrId(payer.getRtpyrId());
req.setOrderBy("PA.ADDR_SN DESC");
payers = payerAddrMapper.selectPayerAddrInfo(req);
// 주소 일련번호 설정
if (payers.isEmpty()) {
// 주소 등록
createPayerAddr(payer);
// 최근 납부자 주소 일련번호 설정
List<Payer> addrs = payerAddrMapper.selectPayerAddrInfo(
req.setRtpyrId(payer.getRtpyrId())
.setOrderBy("PA.ADDR_SN DESC")
);
if (addrs.isEmpty()) {
createPayerAddr(payer); // 주소 등록
} else {
payer.setAddrSn(loaded.getAddrSn()); // 주소 일련번호
// 주소 수정
updatePayerAddr(payer);
last = addrs.get(0); // 최근 주소
payer.setAddrSn(last.getAddrSn()); // 주소 일련번호
updatePayerAddr(payer); // 주소 수정
}
return payer;
@ -149,13 +142,8 @@ public class PayerBean extends AbstractBean {
* </ul>
*/
public boolean create(Payer payer) {
// 납부자 등록
boolean rtnScs = payerMapper.insert(payer);
// 납부자 주소 등록
if (rtnScs)
createPayerAddr(payer);
return rtnScs;
return payerMapper.insert(payer) // 납부자 등록
&& createPayerAddr(payer); // 납부자 주소 등록
}
/** .

@ -5,6 +5,8 @@ import java.util.List;
import java.util.function.BiConsumer;
import cokr.xit.foundation.AbstractEntity;
import cokr.xit.foundation.data.Convert;
import cokr.xit.foundation.data.DataObject;
import lombok.Getter;
import lombok.Setter;
@ -194,6 +196,83 @@ public class SndngDtl extends AbstractEntity {
/** 업무구분 코드 */
private String taskSeCd;
public SndngDtl() {}
public SndngDtl(Sndng sndng) {
setSggCd(sndng.getSggCd()); // 시군구 코드
setSndngId(sndng.getSndngId()); // 발송 ID
setSndngSeCd(sndng.getSndngSeCd()); // 발송 구분 코드
setSndngYmd(sndng.getSndngYmd()); // 발송 일자
setSndngEndYmd(sndng.getSndngEndYmd()); // 발송 종료 일자
setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 처리전
setDelYn("N"); // 삭제 여부
}
public SndngDtl setPayerInfo(DataObject payerInfo) {
setCrdnId(payerInfo.string("CRDN_ID")); // 단속 ID
setRcpnNm(payerInfo.string("RTPYR_NM")); // 수령인 명
setRcpnBrdt(payerInfo.string("RTPYR_BRDT")); // 수령인 생년월일
setRcpnAddr(payerInfo.string("ADDR")); // 수령인 주소
setRcpnDtlAddr(payerInfo.string("DTL_ADDR")); // 수령인 상세 주소
setRcpnZip(payerInfo.string("ZIP")); // 수령인 우편번호
setVhrno(payerInfo.string("VHRNO")); // 차량번호
setCrdnDt(payerInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시
setCrdnStdgNm(payerInfo.string("CRDN_STDG_NM")); // 단속 법정동 명
setCrdnPlc(payerInfo.string("CRDN_PLC")); // 단속 장소
setFyr(payerInfo.string("FYR")); // 회계연도
setLevyNo(payerInfo.string("LEVY_NO")); // 부과 번호
setLevyYmd(payerInfo.string("LEVY_YMD")); // 부과 일자
setDudtYmd(payerInfo.string("DUDT_YMD")); // 납기 일자
setFfnlgAmt(Convert.toInt(payerInfo.get("FFNLG_AMT"))); // 과태료 금액
setPcptax(Convert.toInt(payerInfo.get("PCPTAX"))); // 본세 : 부과본세 - 수납본세 - 감액본세
setAdamt(Convert.toInt(payerInfo.get("ADAMT"))); // 가산금 : 부과가산금 - 수납가산금 - 감액가산금
setLastAmt(Convert.toInt(payerInfo.get("LAST_AMT"))); // 최종 금액
setDudtAftrAmt(Convert.toInt(payerInfo.get("DUDT_AFTR_AMT"))); // 납기 후 금액
setEpayno(payerInfo.string("TAX_NO")); // 납세 번호
setEpayno(payerInfo.string("EPAYNO")); // 전자납부번호
setBankNm(payerInfo.string("BANK_NM")); // 은행 명
setVrActno(payerInfo.string("VR_ACTNO")); // 가상 계좌번호
setBankNm2(payerInfo.string("BANK_NM2")); // 은행 명2
setVrActno2(payerInfo.string("VR_ACTNO2")); // 가상 계좌번호2
setBankNm3(payerInfo.string("BANK_NM3")); // 은행 명3
setVrActno3(payerInfo.string("VR_ACTNO3")); // 가상 계좌번호3
setBankNm4(payerInfo.string("BANK_NM4")); // 은행 명4
setVrActno4(payerInfo.string("VR_ACTNO4")); // 가상 계좌번호4
setBankNm5(payerInfo.string("BANK_NM5")); // 은행 명5
setVrActno5(payerInfo.string("VR_ACTNO5")); // 가상 계좌번호5
setBankNm6(payerInfo.string("BANK_NM6")); // 은행 명6
setVrActno6(payerInfo.string("VR_ACTNO6")); // 가상 계좌번호6
setBankNm7(payerInfo.string("BANK_NM7")); // 은행 명7
setVrActno7(payerInfo.string("VR_ACTNO7")); // 가상 계좌번호7
setBankNm8(payerInfo.string("BANK_NM8")); // 은행 명8
setVrActno8(payerInfo.string("VR_ACTNO8")); // 가상 계좌번호8
setBankNm9(payerInfo.string("BANK_NM9")); // 은행 명9
setVrActno9(payerInfo.string("VR_ACTNO9")); // 가상 계좌번호9
setBankNm10(payerInfo.string("BANK_NM10")); // 은행 명10
setVrActno10(payerInfo.string("VR_ACTNO10")); // 가상 계좌번호10
setBankNm11(payerInfo.string("BANK_NM11")); // 은행 명11
setVrActno11(payerInfo.string("VR_ACTNO11")); // 가상 계좌번호11
setBankNm12(payerInfo.string("BANK_NM12")); // 은행 명12
setVrActno12(payerInfo.string("VR_ACTNO12")); // 가상 계좌번호12
setBankNm13(payerInfo.string("BANK_NM13")); // 은행 명13
setVrActno13(payerInfo.string("VR_ACTNO13")); // 가상 계좌번호13
setBankNm14(payerInfo.string("BANK_NM14")); // 은행 명14
setVrActno14(payerInfo.string("VR_ACTNO14")); // 가상 계좌번호14
setBankNm15(payerInfo.string("BANK_NM15")); // 은행 명15
setVrActno15(payerInfo.string("VR_ACTNO15")); // 가상 계좌번호15
setBankNm16(payerInfo.string("BANK_NM16")); // 은행 명16
setVrActno16(payerInfo.string("VR_ACTNO16")); // 가상 계좌번호16
setBankNm17(payerInfo.string("BANK_NM17")); // 은행 명17
setVrActno17(payerInfo.string("VR_ACTNO17")); // 가상 계좌번호17
setBankNm18(payerInfo.string("BANK_NM18")); // 은행 명18
setVrActno18(payerInfo.string("VR_ACTNO18")); // 가상 계좌번호18
setBankNm19(payerInfo.string("BANK_NM19")); // 은행 명19
setVrActno19(payerInfo.string("VR_ACTNO19")); // 가상 계좌번호19
setBankNm20(payerInfo.string("BANK_NM20")); // 은행 명20
setVrActno20(payerInfo.string("VR_ACTNO20")); // 가상 계좌번호20
return this;
}
public List<BiConsumer<String, String>> bankAccountSetters() {
ArrayList<BiConsumer<String, String>> setters = new ArrayList<>();
setters.add((bankNm, accountNo) -> {setBankNm(bankNm); setVrActno(accountNo);});

@ -137,31 +137,7 @@ public class SndngBean extends AbstractBean {
+ "</p>";
// 발송 상세(TB_SNDNG_DTL)
SndngDtl sndngDtl = new SndngDtl();
sndngDtl.setSggCd(sndng.getSggCd()); // 시군구 코드
sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID
sndngDtl.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
sndngDtl.setSndngSeCd(sndng.getSndngSeCd()); // 발송 구분 코드
sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자
sndngDtl.setSndngEndYmd(sndng.getSndngEndYmd()); // 발송 종료 일자
sndngDtl.setRcpnNm(crdnPayerInfo.string("RTPYR_NM")); // 수령인 명
sndngDtl.setRcpnBrdt(crdnPayerInfo.string("RTPYR_BRDT")); // 수령인 생년월일
sndngDtl.setRcpnAddr(crdnPayerInfo.string("ADDR")); // 수령인 주소
sndngDtl.setRcpnDtlAddr(crdnPayerInfo.string("DTL_ADDR")); // 수령인 상세 주소
sndngDtl.setRcpnZip(crdnPayerInfo.string("ZIP")); // 수령인 우편번호
sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 처리전
sndngDtl.setCrdnDt(crdnPayerInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시
sndngDtl.setVhrno(crdnPayerInfo.string("VHRNO")); // 차량번호
sndngDtl.setCrdnStdgNm(crdnPayerInfo.string("CRDN_STDG_NM")); // 단속 법정동 명
sndngDtl.setCrdnPlc(crdnPayerInfo.string("CRDN_PLC")); // 단속 장소
sndngDtl.setFfnlgAmt(toInt(crdnPayerInfo.get("FFNLG_CRDN_AMT")));// 과태료 금액
sndngDtl.setPcptax(toInt(crdnPayerInfo.get("FFNLG_CRDN_AMT"))); // 본세
sndngDtl.setAdamt(0); // 가산금
sndngDtl.setLastAmt(0); // 최종 금액
sndngDtl.setDudtAftrAmt(0); // 납기 후 금액
sndngDtl.setDelYn("N"); // 삭제 여부
// 발송 상세(TB_SNDNG_DTL) 대장을 등록한다.
SndngDtl sndngDtl = new SndngDtl(sndng).setPayerInfo(crdnPayerInfo);
int rtnNocs = sndngDtlMapper.insertSndngDtl(sndngDtl);
if (rtnNocs != 1)
throw new RuntimeException("발송상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
@ -178,7 +154,7 @@ public class SndngBean extends AbstractBean {
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
boolean rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!rtnScs)
throw new RuntimeException("발송상세 등록 작업중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
throw new RuntimeException("발송상세 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
return "[S] 작업이 정상 처리 되었습니다.";
@ -460,28 +436,9 @@ public class SndngBean extends AbstractBean {
}
// 발송 상세(TB_SNDNG_DTL)
SndngDtl sndngDtl = new SndngDtl();
sndngDtl.setSggCd(sndng.getSggCd()); // 시군구 코드
sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID
sndngDtl.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
sndngDtl.setSndngSeCd(sndng.getSndngSeCd()); // 발송 구분 코드
sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자
sndngDtl.setSndngEndYmd(sndng.getSndngEndYmd()); // 발송 종료 일자
sndngDtl.setRcpnNm(crdnPayerInfo.string("RTPYR_NM")); // 수령인 명
sndngDtl.setRcpnBrdt(crdnPayerInfo.string("RTPYR_BRDT")); // 수령인 생년월일
sndngDtl.setRcpnAddr(crdnPayerInfo.string("ADDR")); // 수령인 주소
sndngDtl.setRcpnDtlAddr(crdnPayerInfo.string("DTL_ADDR")); // 수령인 상세 주소
sndngDtl.setRcpnZip(crdnPayerInfo.string("ZIP")); // 수령인 우편번호
sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 처리전
sndngDtl.setVhrno(crdnPayerInfo.string("VHRNO")); // 차량번호
sndngDtl.setCrdnDt(crdnPayerInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시
sndngDtl.setCrdnStdgNm(crdnPayerInfo.string("CRDN_STDG_NM")); // 단속 법정동 명
sndngDtl.setCrdnPlc(crdnPayerInfo.string("CRDN_PLC")); // 단속 장소
sndngDtl.setFyr(crdnPayerInfo.string("FYR")); // 회계연도
sndngDtl.setLevyNo(crdnPayerInfo.string("LEVY_NO")); // 부과 번호
SndngDtl sndngDtl = new SndngDtl(sndng).setPayerInfo(crdnPayerInfo);
sndngDtl.setLevyYmd(sndng.getSndngYmd()); // 부과 일자
sndngDtl.setDudtYmd(sndng.getSndngEndYmd()); // 납기 일자
sndngDtl.setFfnlgAmt(toInt(crdnPayerInfo.get("FFNLG_AMT"))); // 과태료 금액
if (isEmpty(crdnPayerInfo.string("PCPTAX"))) {
sndngDtl.setPcptax(toInt(crdnPayerInfo.get("ADVNTCE_AMT"))); // 본세 = 사전통지 금액
} else {
@ -494,49 +451,6 @@ public class SndngBean extends AbstractBean {
sndngDtl.setLastAmt(toInt(crdnPayerInfo.get("LAST_AMT"))); // 최종 금액
}
sndngDtl.setDudtAftrAmt(0); // 납기 후 금액
sndngDtl.setTaxNo(crdnPayerInfo.string("TAX_NO")); // 납세 번호
sndngDtl.setEpayno(crdnPayerInfo.string("EPAYNO")); // 전자납부번호
sndngDtl.setBankNm(crdnPayerInfo.string("BANK_NM")); // 은행 명
sndngDtl.setVrActno(crdnPayerInfo.string("VR_ACTNO")); // 가상 계좌번호
sndngDtl.setBankNm2(crdnPayerInfo.string("BANK_NM2")); // 은행 명2
sndngDtl.setVrActno2(crdnPayerInfo.string("VR_ACTNO2")); // 가상 계좌번호2
sndngDtl.setBankNm3(crdnPayerInfo.string("BANK_NM3")); // 은행 명3
sndngDtl.setVrActno3(crdnPayerInfo.string("VR_ACTNO3")); // 가상 계좌번호3
sndngDtl.setBankNm4(crdnPayerInfo.string("BANK_NM4")); // 은행 명4
sndngDtl.setVrActno4(crdnPayerInfo.string("VR_ACTNO4")); // 가상 계좌번호4
sndngDtl.setBankNm5(crdnPayerInfo.string("BANK_NM5")); // 은행 명5
sndngDtl.setVrActno5(crdnPayerInfo.string("VR_ACTNO5")); // 가상 계좌번호5
sndngDtl.setBankNm6(crdnPayerInfo.string("BANK_NM6")); // 은행 명6
sndngDtl.setVrActno6(crdnPayerInfo.string("VR_ACTNO6")); // 가상 계좌번호6
sndngDtl.setBankNm7(crdnPayerInfo.string("BANK_NM7")); // 은행 명7
sndngDtl.setVrActno7(crdnPayerInfo.string("VR_ACTNO7")); // 가상 계좌번호7
sndngDtl.setBankNm8(crdnPayerInfo.string("BANK_NM8")); // 은행 명8
sndngDtl.setVrActno8(crdnPayerInfo.string("VR_ACTNO8")); // 가상 계좌번호8
sndngDtl.setBankNm9(crdnPayerInfo.string("BANK_NM9")); // 은행 명9
sndngDtl.setVrActno9(crdnPayerInfo.string("VR_ACTNO9")); // 가상 계좌번호9
sndngDtl.setBankNm10(crdnPayerInfo.string("BANK_NM10")); // 은행 명10
sndngDtl.setVrActno10(crdnPayerInfo.string("VR_ACTNO10")); // 가상 계좌번호10
sndngDtl.setBankNm11(crdnPayerInfo.string("BANK_NM11")); // 은행 명11
sndngDtl.setVrActno11(crdnPayerInfo.string("VR_ACTNO11")); // 가상 계좌번호11
sndngDtl.setBankNm12(crdnPayerInfo.string("BANK_NM12")); // 은행 명12
sndngDtl.setVrActno12(crdnPayerInfo.string("VR_ACTNO12")); // 가상 계좌번호12
sndngDtl.setBankNm13(crdnPayerInfo.string("BANK_NM13")); // 은행 명13
sndngDtl.setVrActno13(crdnPayerInfo.string("VR_ACTNO13")); // 가상 계좌번호13
sndngDtl.setBankNm14(crdnPayerInfo.string("BANK_NM14")); // 은행 명14
sndngDtl.setVrActno14(crdnPayerInfo.string("VR_ACTNO14")); // 가상 계좌번호14
sndngDtl.setBankNm15(crdnPayerInfo.string("BANK_NM15")); // 은행 명15
sndngDtl.setVrActno15(crdnPayerInfo.string("VR_ACTNO15")); // 가상 계좌번호15
sndngDtl.setBankNm16(crdnPayerInfo.string("BANK_NM16")); // 은행 명16
sndngDtl.setVrActno16(crdnPayerInfo.string("VR_ACTNO16")); // 가상 계좌번호16
sndngDtl.setBankNm17(crdnPayerInfo.string("BANK_NM17")); // 은행 명17
sndngDtl.setVrActno17(crdnPayerInfo.string("VR_ACTNO17")); // 가상 계좌번호17
sndngDtl.setBankNm18(crdnPayerInfo.string("BANK_NM18")); // 은행 명18
sndngDtl.setVrActno18(crdnPayerInfo.string("VR_ACTNO18")); // 가상 계좌번호18
sndngDtl.setBankNm19(crdnPayerInfo.string("BANK_NM19")); // 은행 명19
sndngDtl.setVrActno19(crdnPayerInfo.string("VR_ACTNO19")); // 가상 계좌번호19
sndngDtl.setBankNm20(crdnPayerInfo.string("BANK_NM20")); // 은행 명20
sndngDtl.setVrActno20(crdnPayerInfo.string("VR_ACTNO20")); // 가상 계좌번호20
sndngDtl.setDelYn("N"); // 삭제 여부
// 발송 상세(TB_SNDNG_DTL) 대장을 등록한다.
int rtnNocs = sndngDtlMapper.insertSndngDtl(sndngDtl);
@ -733,77 +647,7 @@ public class SndngBean extends AbstractBean {
+ "</p>";
// 발송 상세(TB_SNDNG_DTL)
SndngDtl sndngDtl = new SndngDtl();
sndngDtl.setSggCd(sndng.getSggCd()); // 시군구 코드
sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID
sndngDtl.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
sndngDtl.setSndngSeCd(sndng.getSndngSeCd()); // 발송 구분 코드
sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자
sndngDtl.setSndngEndYmd(sndng.getSndngEndYmd()); // 발송 종료 일자
sndngDtl.setRcpnNm(crdnPayerInfo.string("RTPYR_NM")); // 수령인 명
sndngDtl.setRcpnBrdt(crdnPayerInfo.string("RTPYR_BRDT")); // 수령인 생년월일
sndngDtl.setRcpnAddr(crdnPayerInfo.string("ADDR")); // 수령인 주소
sndngDtl.setRcpnDtlAddr(crdnPayerInfo.string("DTL_ADDR")); // 수령인 상세 주소
sndngDtl.setRcpnZip(crdnPayerInfo.string("ZIP")); // 수령인 우편번호
sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 처리전
sndngDtl.setVhrno(crdnPayerInfo.string("VHRNO")); // 차량번호
sndngDtl.setCrdnDt(crdnPayerInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시
sndngDtl.setCrdnStdgNm(crdnPayerInfo.string("CRDN_STDG_NM")); // 단속 법정동 명
sndngDtl.setCrdnPlc(crdnPayerInfo.string("CRDN_PLC")); // 단속 장소
sndngDtl.setFyr(crdnPayerInfo.string("FYR")); // 회계연도
sndngDtl.setLevyNo(crdnPayerInfo.string("LEVY_NO")); // 부과 번호
sndngDtl.setLevyYmd(crdnPayerInfo.string("LEVY_YMD")); // 부과 일자
sndngDtl.setDudtYmd(crdnPayerInfo.string("DUDT_YMD")); // 납기 일자
sndngDtl.setFfnlgAmt(toInt(crdnPayerInfo.get("FFNLG_AMT"))); // 과태료 금액
sndngDtl.setPcptax(toInt(crdnPayerInfo.get("PCPTAX"))); // 본세 : 부과본세 - 수납본세 - 감액본세
sndngDtl.setAdamt(toInt(crdnPayerInfo.get("ADAMT"))); // 가산금 : 부과가산금 - 수납가산금 - 감액가산금
sndngDtl.setLastAmt(toInt(crdnPayerInfo.get("LAST_AMT"))); // 최종 금액
sndngDtl.setDudtAftrAmt(toInt(crdnPayerInfo.get("DUDT_AFTR_AMT"))); // 납기 후 금액
sndngDtl.setEpayno(crdnPayerInfo.string("TAX_NO")); // 납세 번호
sndngDtl.setEpayno(crdnPayerInfo.string("EPAYNO")); // 전자납부번호
sndngDtl.setBankNm(crdnPayerInfo.string("BANK_NM")); // 은행 명
sndngDtl.setVrActno(crdnPayerInfo.string("VR_ACTNO")); // 가상 계좌번호
sndngDtl.setBankNm2(crdnPayerInfo.string("BANK_NM2")); // 은행 명2
sndngDtl.setVrActno2(crdnPayerInfo.string("VR_ACTNO2")); // 가상 계좌번호2
sndngDtl.setBankNm3(crdnPayerInfo.string("BANK_NM3")); // 은행 명3
sndngDtl.setVrActno3(crdnPayerInfo.string("VR_ACTNO3")); // 가상 계좌번호3
sndngDtl.setBankNm4(crdnPayerInfo.string("BANK_NM4")); // 은행 명4
sndngDtl.setVrActno4(crdnPayerInfo.string("VR_ACTNO4")); // 가상 계좌번호4
sndngDtl.setBankNm5(crdnPayerInfo.string("BANK_NM5")); // 은행 명5
sndngDtl.setVrActno5(crdnPayerInfo.string("VR_ACTNO5")); // 가상 계좌번호5
sndngDtl.setBankNm6(crdnPayerInfo.string("BANK_NM6")); // 은행 명6
sndngDtl.setVrActno6(crdnPayerInfo.string("VR_ACTNO6")); // 가상 계좌번호6
sndngDtl.setBankNm7(crdnPayerInfo.string("BANK_NM7")); // 은행 명7
sndngDtl.setVrActno7(crdnPayerInfo.string("VR_ACTNO7")); // 가상 계좌번호7
sndngDtl.setBankNm8(crdnPayerInfo.string("BANK_NM8")); // 은행 명8
sndngDtl.setVrActno8(crdnPayerInfo.string("VR_ACTNO8")); // 가상 계좌번호8
sndngDtl.setBankNm9(crdnPayerInfo.string("BANK_NM9")); // 은행 명9
sndngDtl.setVrActno9(crdnPayerInfo.string("VR_ACTNO9")); // 가상 계좌번호9
sndngDtl.setBankNm10(crdnPayerInfo.string("BANK_NM10")); // 은행 명10
sndngDtl.setVrActno10(crdnPayerInfo.string("VR_ACTNO10")); // 가상 계좌번호10
sndngDtl.setBankNm11(crdnPayerInfo.string("BANK_NM11")); // 은행 명11
sndngDtl.setVrActno11(crdnPayerInfo.string("VR_ACTNO11")); // 가상 계좌번호11
sndngDtl.setBankNm12(crdnPayerInfo.string("BANK_NM12")); // 은행 명12
sndngDtl.setVrActno12(crdnPayerInfo.string("VR_ACTNO12")); // 가상 계좌번호12
sndngDtl.setBankNm13(crdnPayerInfo.string("BANK_NM13")); // 은행 명13
sndngDtl.setVrActno13(crdnPayerInfo.string("VR_ACTNO13")); // 가상 계좌번호13
sndngDtl.setBankNm14(crdnPayerInfo.string("BANK_NM14")); // 은행 명14
sndngDtl.setVrActno14(crdnPayerInfo.string("VR_ACTNO14")); // 가상 계좌번호14
sndngDtl.setBankNm15(crdnPayerInfo.string("BANK_NM15")); // 은행 명15
sndngDtl.setVrActno15(crdnPayerInfo.string("VR_ACTNO15")); // 가상 계좌번호15
sndngDtl.setBankNm16(crdnPayerInfo.string("BANK_NM16")); // 은행 명16
sndngDtl.setVrActno16(crdnPayerInfo.string("VR_ACTNO16")); // 가상 계좌번호16
sndngDtl.setBankNm17(crdnPayerInfo.string("BANK_NM17")); // 은행 명17
sndngDtl.setVrActno17(crdnPayerInfo.string("VR_ACTNO17")); // 가상 계좌번호17
sndngDtl.setBankNm18(crdnPayerInfo.string("BANK_NM18")); // 은행 명18
sndngDtl.setVrActno18(crdnPayerInfo.string("VR_ACTNO18")); // 가상 계좌번호18
sndngDtl.setBankNm19(crdnPayerInfo.string("BANK_NM19")); // 은행 명19
sndngDtl.setVrActno19(crdnPayerInfo.string("VR_ACTNO19")); // 가상 계좌번호19
sndngDtl.setBankNm20(crdnPayerInfo.string("BANK_NM20")); // 은행 명20
sndngDtl.setVrActno20(crdnPayerInfo.string("VR_ACTNO20")); // 가상 계좌번호20
sndngDtl.setDelYn("N"); // 삭제 여부
// 발송 상세(TB_SNDNG_DTL) 대장을 등록한다.
SndngDtl sndngDtl = new SndngDtl(sndng).setPayerInfo(crdnPayerInfo);
int rtnNocs = sndngDtlMapper.insertSndngDtl(sndngDtl);
if (rtnNocs != 1)
throw new RuntimeException("발송상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
@ -861,12 +705,9 @@ public class SndngBean extends AbstractBean {
* </ul>
*/
public String removeSndng(Sndng sndng) {
// 발송 상세(TB_SNDNG_DTL)
SndngDtl sndngDtl = new SndngDtl();
sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID
sndngDtl.setDelRsn(sndng.getDelRsn()); // 삭제 사유
// 발송 상세(TB_SNDNG_DTL) 대장을 삭제한다.
SndngDtl sndngDtl = new SndngDtl(sndng);
sndngDtl.setDelRsn(sndng.getDelRsn()); // 삭제 사유
int rtnNocs = sndngDtlMapper.deleteSndngDtl(sndngDtl);
if (rtnNocs < 1)
throw new RuntimeException("발송상세 정보 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
@ -1060,7 +901,8 @@ public class SndngBean extends AbstractBean {
String epostSenderRegSeq = epostRcptRegBean.getEpostSenderRegSeq(sndngInfo.string("TODAY"), sndngInfo.string("DEPT_CD"));
int seqNo = 0;
if ("0".equals(sndng.getPostSndngSeCd())) {
String postSndngSeCd = sndng.getPostSndngSeCd();
if ("0".equals(postSndngSeCd)) {
seqNo = epostRcptDtlBean.getEpostSenderDetailSeq(sndngInfo.string("TODAY"));
}
// 포맷: 등록일(REG_YMD)-발송기관코드(RECEV_SENDER_ORG_CODE)-업무코드(WORK_ID)-우편물구분(POST_SE)일련번호(RECEV_SEQ_NO)
@ -1075,17 +917,17 @@ public class SndngBean extends AbstractBean {
epostRcptReg.setDataCd("00"); // 접수코드
// 취급구분(DIV_KB) 000=일반 001=등기 201=선택등기
if (sndng.getPostSndngSeCd().equals("1")) {
if ("1".equals(postSndngSeCd)) {
if (sggCd.equals("11500")) {
epostRcptReg.setDivKb("00" + sndng.getPostSndngSeCd());
epostRcptReg.setDivKb("00" + postSndngSeCd);
epostRcptReg.setSealCd("1" + "2" + sealCd3);
} else {
epostRcptReg.setDivKb("20" + sndng.getPostSndngSeCd());
epostRcptReg.setDivKb("20" + postSndngSeCd);
epostRcptReg.setSealCd("E" + "2" + sealCd3);
}
} else {
epostRcptReg.setDivKb("00" + sndng.getPostSndngSeCd());
epostRcptReg.setSealCd(sndng.getPostSndngSeCd() + "2" + sealCd3);
epostRcptReg.setDivKb("00" + postSndngSeCd);
epostRcptReg.setSealCd(postSndngSeCd + "2" + sealCd3);
}
epostRcptReg.setDfpayyn("001"); // 결재방법(DFPAYYN)
@ -1138,7 +980,7 @@ public class SndngBean extends AbstractBean {
epostRcptReg.setRecevSenderDetailaddr(deptSggInfo.string("INST_DADDR")); // 상세주소(SENDER_DTAILADDR)
epostRcptReg.setRecevSenderDepartTel(deptSggInfo.string("DEPT_TELNO")); // 부과부서 전화번호(RECEV_SENDER_DEPART_TEL)
epostRcptReg.setRecevSenderDepartNm(deptSggInfo.string("DEPT_NM")); // 부과부서(RECEV_SENDER_DEPART_NM)
epostRcptReg.setRecevDivCd(sndng.getPostSndngSeCd()); // 등기구분(RECEV_DIV_CD)
epostRcptReg.setRecevDivCd(postSndngSeCd); // 등기구분(RECEV_DIV_CD)
epostRcptReg.setRecevPrintDt(sndngInfo.string("TODAY_MASK")); // 출력일자(RECEV_PRINT_DT)
epostRcptReg.setRecevPrintYear(sndngInfo.string("TODAY").substring(0, 4)); // 출력연도(RECEV_PRINT_YEAR)
epostRcptReg.setRecevPrintMonth(sndngInfo.string("TODAY").substring(4, 6)); // 출력월(RECEV_PRINT_MONTH)
@ -1221,7 +1063,7 @@ public class SndngBean extends AbstractBean {
String dtlSndngSeCd = sndngDtlInfo.string("SNDNG_SE_CD");
String becevBillNumber = "01,02".contains(dtlSndngSeCd) ? "" : "고지번호:" + sndngDtlInfo.string("FYR") + "-" + sndngDtlInfo.string("LEVY_NO");; // 고지번호
String rgstNmbr = ""; // 등기번호
if (sndng.getPostSndngSeCd().equals("1")) {
if (postSndngSeCd.equals("1")) {
rgstNmbr = epostRcptRegBean.getEpostRgNo(sggCd, taskSeCd);
} else {
seqNo++;
@ -1332,31 +1174,19 @@ public class SndngBean extends AbstractBean {
epostRcptDtl.setRecevOcr2(ocr2);
epostRcptDtl.setRecevOnlinePayNumber(sndngDtlInfo.string("EPAYNO")); // 전자 납부번호
// 가상계좌
if (seoul) {
epostRcptDtl.setVractno(sndngDtlInfo.string("VR_ACTNO"));
epostRcptDtl.setVractno2(sndngDtlInfo.string("VR_ACTNO2"));
epostRcptDtl.setVractno3(sndngDtlInfo.string("VR_ACTNO3"));
epostRcptDtl.setVractno4(sndngDtlInfo.string("VR_ACTNO4"));
epostRcptDtl.setVractno5(sndngDtlInfo.string("VR_ACTNO5"));
epostRcptDtl.setVractno6(sndngDtlInfo.string("VR_ACTNO6"));
epostRcptDtl.setVractno7(sndngDtlInfo.string("VR_ACTNO7"));
epostRcptDtl.setVractno8(sndngDtlInfo.string("VR_ACTNO8"));
epostRcptDtl.setVractno9(sndngDtlInfo.string("VR_ACTNO9"));
epostRcptDtl.setVractno10(sndngDtlInfo.string("VR_ACTNO10"));
epostRcptDtl.setVractno11(sndngDtlInfo.string("VR_ACTNO11"));
} else {
epostRcptDtl.setVractno(sndngDtlInfo.string("BANK_NM") + " " + sndngDtlInfo.string("VR_ACTNO"));
epostRcptDtl.setVractno2(sndngDtlInfo.string("BANK_NM2") + " " + sndngDtlInfo.string("VR_ACTNO2"));
epostRcptDtl.setVractno3(sndngDtlInfo.string("BANK_NM3") + " " + sndngDtlInfo.string("VR_ACTNO3"));
epostRcptDtl.setVractno4(sndngDtlInfo.string("BANK_NM4") + " " + sndngDtlInfo.string("VR_ACTNO4"));
epostRcptDtl.setVractno5(sndngDtlInfo.string("BANK_NM5") + " " + sndngDtlInfo.string("VR_ACTNO5"));
epostRcptDtl.setVractno6(sndngDtlInfo.string("BANK_NM6") + " " + sndngDtlInfo.string("VR_ACTNO6"));
epostRcptDtl.setVractno7(sndngDtlInfo.string("BANK_NM7") + " " + sndngDtlInfo.string("VR_ACTNO7"));
epostRcptDtl.setVractno8(sndngDtlInfo.string("BANK_NM8") + " " + sndngDtlInfo.string("VR_ACTNO8"));
epostRcptDtl.setVractno9(sndngDtlInfo.string("BANK_NM9") + " " + sndngDtlInfo.string("VR_ACTNO9"));
epostRcptDtl.setVractno10(sndngDtlInfo.string("BANK_NM10") + " " + sndngDtlInfo.string("VR_ACTNO10"));
epostRcptDtl.setVractno11(sndngDtlInfo.string("BANK_NM11") + " " + sndngDtlInfo.string("VR_ACTNO11"));
}
epostRcptDtl.setVractno(seoul ? sndngDtlInfo.string("VR_ACTNO") : sndngDtlInfo.string("BANK_NM") + " " + sndngDtlInfo.string("VR_ACTNO"));
epostRcptDtl.setVractno2(seoul ? sndngDtlInfo.string("VR_ACTNO2") : sndngDtlInfo.string("BANK_NM2") + " " + sndngDtlInfo.string("VR_ACTNO2"));
epostRcptDtl.setVractno3(seoul ? sndngDtlInfo.string("VR_ACTNO3") : sndngDtlInfo.string("BANK_NM3") + " " + sndngDtlInfo.string("VR_ACTNO3"));
epostRcptDtl.setVractno4(seoul ? sndngDtlInfo.string("VR_ACTNO4") : sndngDtlInfo.string("BANK_NM4") + " " + sndngDtlInfo.string("VR_ACTNO4"));
epostRcptDtl.setVractno5(seoul ? sndngDtlInfo.string("VR_ACTNO5") : sndngDtlInfo.string("BANK_NM5") + " " + sndngDtlInfo.string("VR_ACTNO5"));
epostRcptDtl.setVractno6(seoul ? sndngDtlInfo.string("VR_ACTNO6") : sndngDtlInfo.string("BANK_NM6") + " " + sndngDtlInfo.string("VR_ACTNO6"));
epostRcptDtl.setVractno7(seoul ? sndngDtlInfo.string("VR_ACTNO7") : sndngDtlInfo.string("BANK_NM7") + " " + sndngDtlInfo.string("VR_ACTNO7"));
epostRcptDtl.setVractno8(seoul ? sndngDtlInfo.string("VR_ACTNO8") : sndngDtlInfo.string("BANK_NM8") + " " + sndngDtlInfo.string("VR_ACTNO8"));
epostRcptDtl.setVractno9(seoul ? sndngDtlInfo.string("VR_ACTNO9") : sndngDtlInfo.string("BANK_NM9") + " " + sndngDtlInfo.string("VR_ACTNO9"));
epostRcptDtl.setVractno10(seoul ? sndngDtlInfo.string("VR_ACTNO10") : sndngDtlInfo.string("BANK_NM10") + " " + sndngDtlInfo.string("VR_ACTNO10"));
epostRcptDtl.setVractno11(seoul ? sndngDtlInfo.string("VR_ACTNO11") : sndngDtlInfo.string("BANK_NM11") + " " + sndngDtlInfo.string("VR_ACTNO11"));
epostRcptDtl.setRecevFinePrice(sndngDtlInfo.string("FFNLG_AMT")); // 과태료금액
epostRcptDtl.setRecevPayPrice(String.valueOf(lastAmt)); // 납부금액
epostRcptDtl.setRecevPayDt(sndngDtlInfo.string("DUDT_YMD_MASK_KOR")); // 납부기한

@ -972,9 +972,12 @@ public class Sndb01Controller extends ApplicationController {
@RequestMapping(name="고지서 발송 대상 상세 화면", value=METHOD_URL.getNoticeSheetTargetInfo)
public ModelAndView getNoticeSheetTargetInfo(HttpServletRequest hReq, SndbQuery req) {
// View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM004", "FIM005", "FIM006", "FIM047", "FIM061", "FIM064");
List<String> cdGrpList = TaskProcessor.get().getVltnCdGrps();
cdGrpList.add("FIM047");
String[] cdGrps = cdGrpList.toArray(new String[cdGrpList.size()]);
Map<String, List<CommonCode>> commonCodes = getCodesOf(cdGrps);
return addCodes(commonCodes, new ModelAndView("fims/sndb/sndb01100-info"), "FIM004", "FIM005", "FIM006", "FIM061", "FIM064", "FIM047")
return addCodes(commonCodes, new ModelAndView("fims/sndb/sndb01100-info"), cdGrps)
.addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("pageName", "sndb01100") // View(jsp)에서 사용할 id 뒤에 붙일 suffix

@ -122,26 +122,16 @@
<select id="selectPayerAddrInfo" parameterType="map" resultMap="payerAddrRow">/* 납부자 주소 객체 가져오기(payerAddrMapper.selectPayerAddrInfo) */
<include refid="selectPayerAddr" />
WHERE P.RTPYR_ID = #{rtpyrId}
<choose>
<when test="addrSn != null">
AND PA.ADDR_SN = #{addrSn}
</when>
<otherwise>
<if test="addrInptSeCd != null">
AND PA.ADDR_INPT_SE_CD= #{addrInptSeCd}
</if>
<if test="roadNmCd != null">
AND PA.ROAD_NM_CD= #{roadNmCd}
</if>
<if test="addr != null">
AND PA.ADDR = #{addr}
</if>
<if test="dtlAddr != null">
AND PA.DTL_ADDR = #{dtlAddr}
</if>
</otherwise>
</choose>
WHERE P.RTPYR_ID = #{rtpyrId}
<choose>
<when test="addrSn != null">AND PA.ADDR_SN = #{addrSn}</when>
<otherwise>
<if test="addrInptSeCd != null">AND PA.ADDR_INPT_SE_CD = #{addrInptSeCd}</if>
<if test="roadNmCd != null">AND PA.ROAD_NM_CD = #{roadNmCd}</if>
<if test="addr != null">AND PA.ADDR = #{addr}</if>
<if test="dtlAddr != null">AND PA.DTL_ADDR = #{dtlAddr}</if>
</otherwise>
</choose>
<include refid="utility.orderBy" />
</select>
@ -216,9 +206,9 @@
, #{spclHo} <!-- 특수 호 -->
, #{spclAddr} <!-- 특수 주소 -->
, #{wholAddr} <!-- 전체 주소 -->
, <include refid="utility.now" /> <!-- 등록 일시 -->
,<include refid="utility.now" /> <!-- 등록 일시 -->
, #{createdBy} <!-- 등록자 -->
, <include refid="utility.now" /> <!-- 수정 일시 -->
,<include refid="utility.now" /> <!-- 수정 일시 -->
, #{modifiedBy} <!-- 수정자 -->
)
</insert>
@ -276,4 +266,4 @@
<include refid="utility.orderBy" />
</select>
</mapper>
</mapper>
Loading…
Cancel
Save