From cbd8a4a9ce537a87857263b14b49520ce7aaefd0 Mon Sep 17 00:00:00 2001 From: jjh Date: Fri, 13 Oct 2023 18:44:38 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9A=B0=ED=8E=B8=ED=86=B5=ED=95=A9=20?= =?UTF-8?q?=EB=B0=9C=EC=86=A1=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xit/fims/epst/dao/EpostRcptRegMapper.java | 18 ++ .../epst/service/bean/EpostRcptRegBean.java | 28 +++ src/main/java/cokr/xit/fims/sndb/Sndng.java | 10 + .../xit/fims/sndb/service/bean/SndngBean.java | 188 ++++++++++++++---- .../mapper/fims/epst/epostRcptReg-mapper.xml | 37 +++- .../sql/mapper/fims/sndb/sndng-mapper.xml | 11 +- .../WEB-INF/jsp/fims/sndb/sndb01020-info.jsp | 2 +- .../WEB-INF/jsp/fims/sndb/sndb01060-info.jsp | 1 + .../WEB-INF/jsp/fims/sndb/sndb01070-main.jsp | 2 +- .../WEB-INF/jsp/fims/sndb/sndb01080-info.jsp | 16 +- .../resources/html/inputDateDialog.html | 8 +- 11 files changed, 264 insertions(+), 57 deletions(-) diff --git a/src/main/java/cokr/xit/fims/epst/dao/EpostRcptRegMapper.java b/src/main/java/cokr/xit/fims/epst/dao/EpostRcptRegMapper.java index 964c4ff4..165e321e 100644 --- a/src/main/java/cokr/xit/fims/epst/dao/EpostRcptRegMapper.java +++ b/src/main/java/cokr/xit/fims/epst/dao/EpostRcptRegMapper.java @@ -96,4 +96,22 @@ public interface EpostRcptRegMapper extends AbstractMapper { return epostRcptReg != null && deleteEpostRcptReg(params().set("epostRcptReg", epostRcptReg)) == 1; } + /**지정한 조건에 따라 전자우편 접수 등록 목록을 조회하여 반환한다.
+ * @param req 전자우편 접수 등록 조회 조건 + * @return 전자우편 접수 등록 목록 + */ + String selectEpostSenderRegSeq(String conKey); + + /**
+ * @param req 전자우편 접수 등록 조회 조건 + * @return 전자우편 접수 등록 목록 + */ + String getEpostSenderDetailSeq(String sndngYmd); + + /**
+ * @param req 전자우편 접수 등록 조회 조건 + * @return 전자우편 접수 등록 목록 + */ + DataObject getEpostPostInfo(String deptCd); + } diff --git a/src/main/java/cokr/xit/fims/epst/service/bean/EpostRcptRegBean.java b/src/main/java/cokr/xit/fims/epst/service/bean/EpostRcptRegBean.java index f86d480f..a77b8662 100644 --- a/src/main/java/cokr/xit/fims/epst/service/bean/EpostRcptRegBean.java +++ b/src/main/java/cokr/xit/fims/epst/service/bean/EpostRcptRegBean.java @@ -134,4 +134,32 @@ public class EpostRcptRegBean extends AbstractComponent { return epostRcptDtlMapper.delete(epostRcptDtl); } + /**지정한 조건에 따라 전자우편 CON_KEY 를 반환한다. + * @param req 전자우편 접수 등록 조회 조건 + * @return 전자우편 접수 등록 객체 목록 + */ + public String getEpostSenderRegSeq(String sndngYmd, String deptCd) { + String conKey = sndngYmd + "-" + deptCd + "0000"; + + return epostRcptRegMapper.selectEpostSenderRegSeq(conKey); + } + + /** + * @param req 전자우편 접수 등록 조회 조건 + * @return 전자우편 접수 등록 객체 목록 + */ + public String getEpostSenderDetailSeq(String sndngYmd) { + return epostRcptRegMapper.getEpostSenderDetailSeq(sndngYmd); + } + + /** + * @param req 전자우편 접수 등록 조회 조건 + * @return 전자우편 접수 등록 객체 목록 + */ + public DataObject getEpostPostInfo(String deptCd) { + return epostRcptRegMapper.getEpostPostInfo(deptCd); + } + + + } diff --git a/src/main/java/cokr/xit/fims/sndb/Sndng.java b/src/main/java/cokr/xit/fims/sndb/Sndng.java index a8b1f423..049ebe48 100644 --- a/src/main/java/cokr/xit/fims/sndb/Sndng.java +++ b/src/main/java/cokr/xit/fims/sndb/Sndng.java @@ -22,6 +22,11 @@ public class Sndng extends AbstractEntity { */ private String sggCd; + /** + * 부서 코드 + */ + private String deptCd; + /** * 업무 구분 코드 */ @@ -137,4 +142,9 @@ public class Sndng extends AbstractEntity { */ private String[] sndngDtlIDs; + /** + * 우편 발송 구분 코드 - 0:일반 1:등기 + */ + private String postSndngSeCd; + } 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 f3f0138e..5b596db2 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 @@ -1,23 +1,28 @@ package cokr.xit.fims.sndb.service.bean; import java.util.List; +import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Component; import cokr.xit.foundation.AbstractComponent; +import cokr.xit.foundation.UserInfo; import cokr.xit.foundation.data.DataObject; import cokr.xit.fims.sndb.Sndng; import cokr.xit.fims.sndb.SndngDtl; import cokr.xit.fims.sndb.Svbtc; +import cokr.xit.base.user.service.bean.UserBean; import cokr.xit.fims.cmmn.CrdnSttsHstry; import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean; import cokr.xit.fims.enis.EnisMtchg; import cokr.xit.fims.enis.service.bean.EnisMtchgBean; import cokr.xit.fims.epst.EpostRcptDtl; import cokr.xit.fims.epst.EpostRcptReg; +import cokr.xit.fims.epst.dao.EpostRcptRegMapper; +import cokr.xit.fims.epst.service.bean.EpostRcptRegBean; import cokr.xit.fims.levy.Levy; import cokr.xit.fims.levy.service.bean.LevyBean; import cokr.xit.fims.sndb.SndbQuery; @@ -49,6 +54,10 @@ public class SndngBean extends AbstractComponent { @Resource(name = "crdnSttsHstryBean") private CrdnSttsHstryBean crdnSttsHstryBean; + /** 사용자 정보 DAO */ + @Resource(name="userBean") + protected UserBean userBean; + /** 부과 대장 정보 Bean */ @Resource(name = "levyBean") private LevyBean levyBean; @@ -57,6 +66,10 @@ public class SndngBean extends AbstractComponent { @Resource(name = "enisMtchgBean") private EnisMtchgBean enisMtchgBean; + /** 전자우편 접수 등록 정보 Bean */ + @Resource(name = "epostRcptRegBean") + private EpostRcptRegBean epostRcptRegBean; + /**지정한 조건에 따라 계도장 발송 대상 목록을 조회하여 반환한다. * @param req 발송 대장 조회 조건 * @return 계도장 발송 대상 목록 @@ -150,6 +163,11 @@ public class SndngBean extends AbstractComponent { int levyAdamt = 0; // 부과 가산금 int levySumAmt = 0; // 부과 합계 금액 + // 사용자 정보 + DataObject userInfo = userBean.getUserInfo(currentUser().getId()); + + // 부서 코드 + sndng.setDeptCd(userInfo.string("DEPT_CD")); // 위반 ID sndng.setVltnId(sndng.getVltnId()); // 계고장 @@ -225,6 +243,8 @@ public class SndngBean extends AbstractComponent { levy.setSggCd(infoCrdnPayer.string("SGG_CD")); // 시군구 코드 levy.setCrdnId(infoCrdnPayer.string("CRDN_ID")); // 단속 ID levy.setRtpyrId(infoCrdnPayer.string("RTPYR_ID")); // 납부자 ID + levy.setInstCd(userInfo.string("NSTT_CD")); // 자치단체 코드 + levy.setDeptCd(userInfo.string("DEPT_CD")); // 부서 코드 levy.setFfnlgAmt(ffnlgAmt); // 과태료 금액 levy.setLevyPcptax(levyPcptax); // 부과 금액 levy.setLevyAdamt(levyAdamt); // 가산 금액 @@ -364,50 +384,51 @@ public class SndngBean extends AbstractComponent { boolean retSuccess = false; // DB 처리 결과 String retMessage = "[F] "; // 처리 결과 메시지 - // 전자우편 접수 등록 - EpostRcptReg epostRcptReg = new EpostRcptReg(); - String workId = ""; String jobCd = ""; - // 발송 정보 조회 - DataObject infoSndng = sndngMapper.selectSndngInfo(sndng.getSndngId()); - - if (infoSndng.string("SNDNG_SE_CD").equals("01")) { // 계고장 + if (sndng.getSndngSeCd().equals("01")) { // 계고장 workId = "E"; - } else if (infoSndng.string("TASK_SE_CD").equals("DPV")) { // 장애인전용 - if (infoSndng.string("SNDNG_SE_CD").equals("02")) { // 사전통지 + } else if (sndng.getTaskSeCd().equals("DPV")) { // 장애인전용 + if (sndng.getSndngSeCd().equals("02")) { // 사전통지 workId = "2"; } else { workId = "7"; } - } else if (infoSndng.string("TASK_SE_CD").equals("ECA")) { // 전기차주차 - if (infoSndng.string("SNDNG_SE_CD").equals("02")) { // 사전통지 + } else if (sndng.getTaskSeCd().equals("ECA")) { // 전기차주차 + if (sndng.getSndngSeCd().equals("02")) { // 사전통지 workId = "L"; } else { workId = "M"; } + } else { + retMessage = "[E] 작업중 지정되지 않았습니다."; + + return retMessage; } - if (infoSndng.string("VLTN_CD").equals("")) { + // 발송 정보 조회 + DataObject sndngInfo = sndngMapper.selectSndngInfo(sndng.getSndngId()); + + if (sndngInfo.string("VLTN_CD").equals("")) { jobCd = "01"; } else { - jobCd = infoSndng.string("VLTN_CD"); + jobCd = sndngInfo.string("VLTN_CD"); } - if (infoSndng.string("SNDNG_SE_CD").equals("01")) { // 계고장 + if (sndng.getSndngSeCd().equals("01")) { // 계고장 jobCd = jobCd + "01"; - } else if (infoSndng.string("SNDNG_SE_CD").equals("02")) { // 사전통지 + } else if (sndng.getSndngSeCd().equals("02")) { // 사전통지 jobCd = jobCd + "02"; - } else if (infoSndng.string("SNDNG_SE_CD").equals("03")) { // 부과 + } else if (sndng.getSndngSeCd().equals("03")) { // 부과 jobCd = jobCd + "03"; - } else if (infoSndng.string("SNDNG_SE_CD").equals("04")) { // 독촉 + } else if (sndng.getSndngSeCd().equals("04")) { // 독촉 jobCd = jobCd + "04"; - } else if (infoSndng.string("SNDNG_SE_CD").equals("05")) { // 압류예고 + } else if (sndng.getSndngSeCd().equals("05")) { // 압류예고 jobCd = jobCd + "05"; - } else if (infoSndng.string("SNDNG_SE_CD").equals("06")) { // 압류통지 + } else if (sndng.getSndngSeCd().equals("06")) { // 압류통지 jobCd = jobCd + "06"; - } else if (infoSndng.string("SNDNG_SE_CD").equals("09")) { // 체납분 + } else if (sndng.getSndngSeCd().equals("09")) { // 체납분 jobCd = jobCd + "09"; } else { retMessage = "[E] 작업중 발송구분이 지정되지 않았습니다."; @@ -415,40 +436,123 @@ public class SndngBean extends AbstractComponent { return retMessage; } -// String today = infoSndng.string("TODAY"); -// String seq = sndngMapper.getEpostSenderRegSeq(today, ); -// String conKey = ""; -// sToday := Today; -// im_seq := Get_EPOST_SENDER_REG_Seq(sToday, CPSystem_Info.TAXELSE_DEP_CODE + '0000'); -// im_con_key := sToday + '-' + CPSystem_Info.TAXELSE_DEP_CODE + '0000' + '-' + im_seq; -// -// -// if regist_gubun = '0' then -// begin -// nSeqNo := Get_EPOST_SENDER_DETAIL_Seq(sToday); -// end; + String seq = epostRcptRegBean.getEpostSenderRegSeq(sndngInfo.string("TODAY"), sndngInfo.string("DEPT_CD")); + String conKey = sndngInfo.string("TODAY") + "-" + sndngInfo.string("DEPT_CD") + "0000" + "-" + seq; - for (int iLoop = 0; iLoop < sndng.getSndngDtlIDs().length; iLoop++) { - // 전자우편 접수 상세 - EpostRcptDtl epostRcptDtl = new EpostRcptDtl(); + if (sndng.getPostSndngSeCd().equals("0")) { + String seqNo = epostRcptRegBean.getEpostSenderDetailSeq(sndngInfo.string("TODAY")); + } + // 포맷: 등록일(REG_YMD)-발송기관코드(RECEV_SENDER_ORG_CODE)-업무코드(WORK_ID)-우편물구분(POST_SE)일련번호(RECEV_SEQ_NO) + // 예시: 20170719-40504370000-003-1001 - // 발송 상세 정보 조회 - DataObject infoSndngDtl = sndngMapper.selectSndngDtlInfo(sndng.getSndngDtlIDs()[iLoop]); + // 사용자 정보 + DataObject userInfo = userBean.getUserInfo(currentUser().getId()); + // 등기우편 관련 자치단체 및 부서 정보 + DataObject epostInfo = epostRcptRegBean.getEpostPostInfo(sndngInfo.string("DEPT_CD")); - } + // 전자우편 접수 등록 + EpostRcptReg epostRcptReg = new EpostRcptReg(); - retMessage = "[S] 작업이 정상 처리 되었습니다."; - - return retMessage; - } + epostRcptReg.setConKey(conKey); // + epostRcptReg.setRceptId(epostInfo.string("RCEPT_ID")); // + epostRcptReg.setDataCd("00"); // + // 000=일반 001=등기 201=선택등기 + if (sndng.getPostSndngSeCd().equals("1")) { + if (sndng.getSggCd().equals("11500")) { + epostRcptReg.setDivKb("00" + sndng.getPostSndngSeCd()); + epostRcptReg.setSealCd("1" + "2" + workId); + } else { + epostRcptReg.setDivKb("20" + sndng.getPostSndngSeCd()); + epostRcptReg.setSealCd("E" + "2" + workId); + } + } else { + epostRcptReg.setDivKb("00" + sndng.getPostSndngSeCd()); + epostRcptReg.setSealCd(sndng.getPostSndngSeCd() + "2" + workId); + } + epostRcptReg.setDfpayyn("001"); + epostRcptReg.setRcptKb("020"); + epostRcptReg.setWordKb("001"); + epostRcptReg.setRecevCnt(sndngInfo.number("TNOCS").intValue()); // 건수 확인 필요하다. + epostRcptReg.setEnvCd("003"); // 접착식 + + // 서울 + if ("11".equals(sndng.getSggCd().substring(0, 2))) { + epostRcptReg.setColorYn("Y"); + epostRcptReg.setMailCnt(2); + + if (workId.equals("E")) { + epostRcptReg.setFlexCd("N"); + } else { + epostRcptReg.setFlexCd("Y"); + } + } else { + if (sndng.getSggCd().equals("44200")) { // 아산시청 + if (sndng.getSndngSeCd().equals("02")) { // 사전통지는 컬러로.. + epostRcptReg.setColorYn("Y"); + } else { + epostRcptReg.setColorYn("N"); + } + } else if (sndng.getSggCd().equals("50110")) { // 제주시청 + if (sndng.getSndngSeCd().equals("02") || sndng.getSndngSeCd().equals("01") || sndng.getSndngSeCd().equals("10")) { // 사전통지, 계도 컬러로 + epostRcptReg.setColorYn("Y"); + } else { + epostRcptReg.setColorYn("N"); + } + } + epostRcptReg.setFlexCd("N"); + epostRcptReg.setMailCnt(1); + } + epostRcptReg.setMmYn("Y"); + epostRcptReg.setDmCnt(0); + epostRcptReg.setSbFg("Y"); + epostRcptReg.setApvlNb(epostInfo.string("APVL_NB")); // 후납계약 승인번호 + epostRcptReg.setSendDate(sndngInfo.string("NOW").substring(0, 8)); + epostRcptReg.setSendTime(sndngInfo.string("NOW").substring(8)); + if ("420".equals(epostInfo.string("DEPT_CD").substring(0,3)) && (sndngInfo.string("TASK_SE_CD").equals("ECA"))) { + epostRcptReg.setRelorsectCd(epostInfo.string("4200999")); + } else { + epostRcptReg.setRelorsectCd(epostInfo.string("DEPT_CD")); + } + epostRcptReg.setRecevSenderOrgCode(epostInfo.string("DEPT_CD") + "0000"); + epostRcptReg.setRecevSenderNm(epostInfo.string("INST_NM") + " " + epostInfo.string("DEPT_NM")); + epostRcptReg.setRecevSenderZipcode(epostInfo.string("INST_ZIP")); + epostRcptReg.setRecevSenderAddr(epostInfo.string("INST_ADDR")); + epostRcptReg.setRecevSenderDetailaddr(epostInfo.string("INST_DADDR")); + epostRcptReg.setRecevSenderDepartTel(epostInfo.string("DEPT_TELNO")); + epostRcptReg.setRecevSenderDepartNm(epostInfo.string("DEPT_NM")); + epostRcptReg.setRecevDivCd(sndng.getPostSndngSeCd()); + epostRcptReg.setRecevPrintDt(sndngInfo.string("TODAY_MASK")); + epostRcptReg.setRecevPrintYear(sndngInfo.string("TODAY").substring(0, 4)); + epostRcptReg.setRecevPrintMonth(sndngInfo.string("TODAY").substring(4, 6)); + epostRcptReg.setRecevPrintDay(sndngInfo.string("TODAY").substring(6, 8)); + epostRcptReg.setRecevSenderFax(epostInfo.string("DEPT_FXNO")); + epostRcptReg.setRecevSerderStaff(userInfo.string("USER_NM")); + epostRcptReg.setRecevSenderEmail(userInfo.string("EML_ADRS")); +// epostRcptReg.set_ + + + + +// for (int iLoop = 0; iLoop < sndng.getSndngDtlIDs().length; iLoop++) { +// // 전자우편 접수 상세 +// EpostRcptDtl epostRcptDtl = new EpostRcptDtl(); +// +// // 발송 상세 정보 조회 +// DataObject sndngDtlInfo = sndngMapper.selectSndngDtlInfo(sndng.getSndngDtlIDs()[iLoop]); +// +// +// } + retMessage = "[S] 작업이 정상 처리 되었습니다."; + return retMessage; + } diff --git a/src/main/resources/sql/mapper/fims/epst/epostRcptReg-mapper.xml b/src/main/resources/sql/mapper/fims/epst/epostRcptReg-mapper.xml index 01d53e9b..bd03b336 100644 --- a/src/main/resources/sql/mapper/fims/epst/epostRcptReg-mapper.xml +++ b/src/main/resources/sql/mapper/fims/epst/epostRcptReg-mapper.xml @@ -652,6 +652,41 @@ UPDATE TB_EPOST_RCPT_DTL SET , MDFCN_DT = , MDFR = #{currentUser.id} WHERE CON_KEY = #{epostRcptDtl.conKey} - AND RGST_NMBR = #{epostRcptDtl.rgstNmbr} + AND RGST_NMBR = #{epostRcptDtl.rgstNmbr} + + + + + + + diff --git a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml index 16393b1f..31bcdd31 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml @@ -11,6 +11,7 @@ + @@ -538,7 +539,7 @@ - + + @@ -126,6 +126,8 @@ return false; } + + return true; } // 날짜형식에 "-"이 사용된 경우에 한하여 날짜값에서 "-" 기호를 제거한다. @@ -146,7 +148,7 @@ if (inputDateComparison($("#sndngYmd").val(), $("#dudtYmd").val())) { inputDate.sndngYmd = $("#sndngYmd").val(); inputDate.dudtYmd = $("#dudtYmd").val(); - inputDate.divKb = $("input[name='divKb']:checked").val(); + inputDate.postSndngSeCd = $("input[name='postSndngSeCd']:checked").val(); window.opener[callbackFuncName](inputDate); window.close();