diff --git a/src/main/java/cokr/xit/fims/cmmn/service/bean/CrdnPayerAddrHstryBean.java b/src/main/java/cokr/xit/fims/cmmn/service/bean/CrdnPayerAddrHstryBean.java index 79ef729d..a96c398d 100644 --- a/src/main/java/cokr/xit/fims/cmmn/service/bean/CrdnPayerAddrHstryBean.java +++ b/src/main/java/cokr/xit/fims/cmmn/service/bean/CrdnPayerAddrHstryBean.java @@ -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 { * */ 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 { * */ 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; } - -} +} \ No newline at end of file diff --git a/src/main/java/cokr/xit/fims/nxrp/service/bean/SnisBean.java b/src/main/java/cokr/xit/fims/nxrp/service/bean/SnisBean.java index 99d82418..4540ebe4 100644 --- a/src/main/java/cokr/xit/fims/nxrp/service/bean/SnisBean.java +++ b/src/main/java/cokr/xit/fims/nxrp/service/bean/SnisBean.java @@ -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 getNisIndivA01List(NisIndivQuery req) { - return nisA01Mapper.selectNisIndivA01List(req); - } - - /**지정한 조건에 따라 과태료 대장 단속 정보 등록 객체들을 반환한다. - * @param req 과태료 대장 단속 정보 등록 조회 조건 - * @return 과태료 대장 단속 정보 등록 객체 목록 - */ - public List getNisIndivA01s(NisIndivQuery req) { - return nisA01Mapper.selectNisIndivA01s(req); - } - /**발송대상 사전통보를 서울 세외수입 시스템의 과태료대장에 등록한다. * @param req 발송대상 사전통보 조회조건 */ public void registerPreNotices(SndbQuery req) { // 과태료대장 등록을 위한 사전통보 추출 Map prenotices = getPreNotices(req); - // 발송대상 사전통보를 과태료대장에 등록 - Ye22InputDTO input = new Ye22InputDTO(); - input.setSystemGubun(req.getTaskSeCd()); - Map notices = sntrisBean.registerPreNotices(input, prenotices); // 발송대상 ID별 과태료 등록 응답 + Map results = sntrisBean.registerPreNotices(prenotices); // 발송대상 ID별 과태료 등록 응답 // 로컬 발송대상 상세 업데이트 - Set ids = notices.keySet(); // 발송대상 ID + Set ids = results.keySet(); // 발송대상 상세ID List 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 byCrdnIds = details.stream().collect(Collectors.toMap( // 단속 ID별 과태료 등록 응답 + Map 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 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 getPreNoticeList(Ye22InputDTO input) { + List prenotices = sntrisBean.getPreNoticeList(input); + update(prenotices); + return prenotices; + } + + public void update(List notices) { + if (isEmpty(notices)) return; + + Map noticeMap = notices.stream().collect(Collectors.toMap( + notice -> Long.toString(notice.getBuAk()), + notice -> notice + )); + List nxrpLevyKeys = noticeMap.keySet().stream().toList(); + List 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 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 저장 여부 diff --git a/src/main/java/cokr/xit/fims/payer/service/bean/PayerBean.java b/src/main/java/cokr/xit/fims/payer/service/bean/PayerBean.java index 9d485994..df8085e8 100644 --- a/src/main/java/cokr/xit/fims/payer/service/bean/PayerBean.java +++ b/src/main/java/cokr/xit/fims/payer/service/bean/PayerBean.java @@ -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 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 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 { * */ public boolean create(Payer payer) { - // 납부자 등록 - boolean rtnScs = payerMapper.insert(payer); - // 납부자 주소 등록 - if (rtnScs) - createPayerAddr(payer); - - return rtnScs; + return payerMapper.insert(payer) // 납부자 등록 + && createPayerAddr(payer); // 납부자 주소 등록 } /**납부자 정보를 수정한다. diff --git a/src/main/java/cokr/xit/fims/sndb/SndngDtl.java b/src/main/java/cokr/xit/fims/sndb/SndngDtl.java index fdee3355..833dc3d6 100644 --- a/src/main/java/cokr/xit/fims/sndb/SndngDtl.java +++ b/src/main/java/cokr/xit/fims/sndb/SndngDtl.java @@ -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> bankAccountSetters() { ArrayList> setters = new ArrayList<>(); setters.add((bankNm, accountNo) -> {setBankNm(bankNm); setVrActno(accountNo);}); diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java index fd40b3ac..848dda8d 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java @@ -137,31 +137,7 @@ 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.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 { + "

"; // 발송 상세(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 { * */ 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")); // 납부기한 diff --git a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java index 95bafa5b..5821c7a7 100644 --- a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java +++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java @@ -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> commonCodes = getCodesOf("FIM004", "FIM005", "FIM006", "FIM047", "FIM061", "FIM064"); + List cdGrpList = TaskProcessor.get().getVltnCdGrps(); + cdGrpList.add("FIM047"); + String[] cdGrps = cdGrpList.toArray(new String[cdGrpList.size()]); + Map> 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 diff --git a/src/main/resources/sql/mapper/fims/payerAddr-mapper.xml b/src/main/resources/sql/mapper/fims/payerAddr-mapper.xml index 9bc59468..84eb9a9d 100644 --- a/src/main/resources/sql/mapper/fims/payerAddr-mapper.xml +++ b/src/main/resources/sql/mapper/fims/payerAddr-mapper.xml @@ -122,26 +122,16 @@ @@ -216,9 +206,9 @@ , #{spclHo} , #{spclAddr} , #{wholAddr} - , + , , #{createdBy} - , + , , #{modifiedBy} ) @@ -276,4 +266,4 @@ - + \ No newline at end of file