From aa47e8447871cc944973af6d0dca8a545b7eb8be Mon Sep 17 00:00:00 2001 From: jjh Date: Fri, 17 Nov 2023 16:19:19 +0900 Subject: [PATCH] =?UTF-8?q?=EC=84=B8=EC=99=B8=EC=88=98=EC=9E=85=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cokr/xit/fims/sndb/NxrpMtchg.java | 10 + .../cokr/xit/fims/sndb/NxrpMtchgQuery.java | 125 ++++++++ .../xit/fims/sndb/dao/NxrpMtchgMapper.java | 59 +++- .../cokr/xit/fims/sndb/dao/SndngMapper.java | 21 +- .../fims/sndb/service/NxrpMtchgService.java | 9 + .../fims/sndb/service/bean/NxrpMtchgBean.java | 83 ++++++ .../service/bean/NxrpMtchgServiceBean.java | 5 + .../xit/fims/sndb/service/bean/SndngBean.java | 2 +- .../xit/fims/sndb/web/Sndb01Controller.java | 19 +- .../xit/fims/sndb/web/Sndb02Controller.java | 30 +- .../cokr/xit/fims/task/web/DpvController.java | 7 + .../sql/mapper/fims/sndb/nxrpMtchg-mapper.xml | 274 ++++++++++++------ .../sql/mapper/fims/sndb/sndng-mapper.xml | 27 +- .../WEB-INF/jsp/fims/sndb/sndb01080-info.jsp | 21 +- .../WEB-INF/jsp/fims/sndb/sndb01090-main.jsp | 4 +- 15 files changed, 590 insertions(+), 106 deletions(-) diff --git a/src/main/java/cokr/xit/fims/sndb/NxrpMtchg.java b/src/main/java/cokr/xit/fims/sndb/NxrpMtchg.java index a00e0c58..18798bf6 100644 --- a/src/main/java/cokr/xit/fims/sndb/NxrpMtchg.java +++ b/src/main/java/cokr/xit/fims/sndb/NxrpMtchg.java @@ -37,6 +37,11 @@ public class NxrpMtchg extends AbstractEntity { */ private String crdnPlc; + /** + * 연계 결과 ID + */ + private String linkRsltId; + /** * 부과 키 */ @@ -187,4 +192,9 @@ public class NxrpMtchg extends AbstractEntity { */ private String vractno11; + /** + * 삭제 여부 + */ + private String delYn; + } diff --git a/src/main/java/cokr/xit/fims/sndb/NxrpMtchgQuery.java b/src/main/java/cokr/xit/fims/sndb/NxrpMtchgQuery.java index fccf8092..e4c545d7 100644 --- a/src/main/java/cokr/xit/fims/sndb/NxrpMtchgQuery.java +++ b/src/main/java/cokr/xit/fims/sndb/NxrpMtchgQuery.java @@ -16,4 +16,129 @@ public class NxrpMtchgQuery extends QueryRequest { private static final long serialVersionUID = 1L; + // ID + private String mtchgId; // 매칭 ID + private String lvyKey; // 부과 키 + private String[] crdnIDs; // 단속 IDs + private String crdnId; // 단속 ID + private String[] sndngIDs; // 발송 IDs + private String sndngId; // 발송 ID + private String[] sndngDtlIDs; // 발송 상세 IDs + private String sndngDtlId; // 발송 상세 ID + // ETC + private String callPurpose; // 자료 조회시 호출용도. (view 조회, create 등록, update 수정, refresh 재조회) + private String delYn; // 삭제 여부 + private String delRsn; // 삭제 사유 + private String crdnDelYn; // 단속 삭제 여부 + + public String getMtchgId() { + return ifEmpty(mtchgId, () -> null); + } + + public T setMtchgId(String mtchgId) { + this.mtchgId = mtchgId; + return self(); + } + + public String getLvyKey() { + return ifEmpty(lvyKey, () -> null); + } + + public T setLvyKey(String lvyKey) { + this.lvyKey = lvyKey; + return self(); + } + + public String[] getCrdnIDs() { + return ifEmpty(crdnIDs, () -> null); + } + + public T setCrdnIDs(String... crdnIDs) { + this.crdnIDs = crdnIDs; + return self(); + } + + public String getCrdnId() { + return ifEmpty(crdnId, () -> null); + } + + public T setCrdnId(String crdnId) { + this.crdnId = crdnId; + return self(); + } + + public String[] getSndngIDs() { + return ifEmpty(sndngIDs, () -> null); + } + + public T setSndngIDs(String... sndngIDs) { + this.sndngIDs = sndngIDs; + return self(); + } + + public String getSndngId() { + return ifEmpty(sndngId, () -> null); + } + + public T setSndngId(String sndngId) { + this.sndngId = sndngId; + return self(); + } + + public String[] getSndngDtlIDs() { + return ifEmpty(sndngDtlIDs, () -> null); + } + + public T setSndngDtlIDs(String... sndngDtlIDs) { + this.sndngDtlIDs = sndngDtlIDs; + return self(); + } + + public String getSndngDtlId() { + return ifEmpty(sndngDtlId, () -> null); + } + + public T setSndngDtlId(String sndngDtlId) { + this.sndngDtlId = sndngDtlId; + return self(); + } + + // ETC ///////////////////////////////////////////////////////////////////// + public String getCallPurpose() { + return ifEmpty(callPurpose, () -> null); + } + + public T setCallPurpose(String callPurpose) { + this.callPurpose = callPurpose; + return self(); + } + + public String getDelYn() { + return ifEmpty(delYn, () -> null); + } + + public T setDelYn(String delYn) { + this.delYn = delYn; + return self(); + } + + public String getDelRsn() { + return ifEmpty(delRsn, () -> null); + } + + public T setDelRsn(String delRsn) { + this.delRsn = delRsn; + return self(); + } + + public String getCrdnDelYn() { + return ifEmpty(crdnDelYn, () -> null); + } + + public T setCrdnDelYn(String crdnDelYn) { + this.crdnDelYn = crdnDelYn; + return self(); + } + // ETC ///////////////////////////////////////////////////////////////////// + } diff --git a/src/main/java/cokr/xit/fims/sndb/dao/NxrpMtchgMapper.java b/src/main/java/cokr/xit/fims/sndb/dao/NxrpMtchgMapper.java index 0b45775b..2d8de619 100644 --- a/src/main/java/cokr/xit/fims/sndb/dao/NxrpMtchgMapper.java +++ b/src/main/java/cokr/xit/fims/sndb/dao/NxrpMtchgMapper.java @@ -7,7 +7,6 @@ import org.egovframe.rte.psl.dataaccess.mapper.Mapper; import cokr.xit.foundation.component.AbstractMapper; import cokr.xit.foundation.data.DataObject; - import cokr.xit.fims.sndb.NxrpMtchg; import cokr.xit.fims.sndb.NxrpMtchgQuery; @@ -36,6 +35,38 @@ public interface NxrpMtchgMapper extends AbstractMapper { */ List selectNxrpMtchgs(NxrpMtchgQuery req); + /**지정한 조건에 따라 세외수입 매핑 내역 객체의 마지막 1개를 반환한다. + * @param req 세외수입 매칭 내역 조회 조건 + * @return 세외수입 매칭 내역 객체 + */ + default DataObject selectNxrpMtchgInfo(NxrpMtchgQuery req) { + // 기본 정렬 + if (req.getOrderBy() == null) { + req.setOrderBy("NM.MTCHG_ID DESC"); + } + + List nxrpMtchgs = selectNxrpMtchgs(req); + + return !nxrpMtchgs.isEmpty() ? nxrpMtchgs.get(0) : null; + } + + /**지정한 조건에 따라 세외수입 매칭 내역 객체들을 반환한다. + * @param req 세외수입 매칭 내역 조회 조건 + * @return 세외수입 매칭 내역 객체 목록 + */ + List selectCrdnLevys(String crdnId); + + /**지정한 조건에 따라 세외수입 매핑 내역 객체의 마지막 1개를 반환한다. + * @param req 세외수입 매칭 내역 조회 조건 + * @return 세외수입 매칭 내역 객체 + */ + default DataObject selectCrdnLevyInfo(String crdnId) { + + List crdnLevys = selectCrdnLevys(crdnId); + + return !crdnLevys.isEmpty() ? crdnLevys.get(0) : null; + } + /**세외수입 매칭 내역 정보를 등록한다. * @param params 파라미터 *
  • "nxrpMtchg" - 세외수입 매칭 내역
  • @@ -76,6 +107,32 @@ public interface NxrpMtchgMapper extends AbstractMapper { return nxrpMtchg != null && updateNxrpMtchg(params().set("nxrpMtchg", nxrpMtchg)) == 1; } + /**세외수입 매칭 내역 정보에서 연계결과ID를 수정한다. + * @param params 파라미터 + *
    • "nxrpMtchg" - 세외수입 매칭 내역
    • + *
    • "currentUser" - 현재 접속한 사용자
    • + *
    + * @return 저장된 정보수 + */ + int updateLinkRsltId(Map params); + + default boolean updateLinkRsltId(NxrpMtchg nxrpMtchg) { + return nxrpMtchg != null && updateLinkRsltId(params().set("nxrpMtchg", nxrpMtchg)) == 1; + } + + /**세외수입 매칭 내역 정보에서 처리상태코드를 수정한다. + * @param params 파라미터 + *
    • "nxrpMtchg" - 세외수입 매칭 내역
    • + *
    • "currentUser" - 현재 접속한 사용자
    • + *
    + * @return 저장된 정보수 + */ + int updatePrcsSttsCd(Map params); + + default boolean updatePrcsSttsCd(NxrpMtchg nxrpMtchg) { + return nxrpMtchg != null && updatePrcsSttsCd(params().set("nxrpMtchg", nxrpMtchg)) == 1; + } + /**지정한 세외수입 매칭 내역을 삭제한다. * @param params 파라미터 *
    • "nxrpMtchg" - 세외수입 매칭 내역
    • diff --git a/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java b/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java index 0fd32cae..83379d4a 100644 --- a/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java +++ b/src/main/java/cokr/xit/fims/sndb/dao/SndngMapper.java @@ -56,7 +56,9 @@ public interface SndngMapper extends AbstractMapper { List selectSndngs(SndbQuery req); default DataObject selectSndngInfo(String sndngId) { - List InfoSndng = selectSndngs(new SndbQuery().setSndngId(sndngId).setDelYn("N").setOrderBy("S.SNDNG_ID DESC")); + List InfoSndng = selectSndngs(new SndbQuery().setSndngId(sndngId) + .setDelYn("N") + .setOrderBy("S.SNDNG_ID DESC")); return !InfoSndng.isEmpty() ? InfoSndng.get(0) : null; } @@ -74,7 +76,9 @@ public interface SndngMapper extends AbstractMapper { List selectSndngDtls(SndbQuery req); default DataObject selectSndngDtlInfo(String sndngDtlId) { - List sndngDtlInfo = selectSndngDtls(new SndbQuery().setSndngDtlId(sndngDtlId).setDelYn("N").setOrderBy("SD.SNDNG_DTL_ID DESC")); + List sndngDtlInfo = selectSndngDtls(new SndbQuery().setSndngDtlId(sndngDtlId) + .setDelYn("N") + .setOrderBy("SD.SNDNG_DTL_ID DESC")); return !sndngDtlInfo.isEmpty() ? sndngDtlInfo.get(0) : null; } @@ -330,6 +334,19 @@ public interface SndngMapper extends AbstractMapper { */ int selectTnocsSndngDtlSvbtc(String svbtcId); + /**발송 상세 정보의 우편통합 발송 상세 상태 코드를 수정한다. + * @param params 파라미터 + *
      • "sndngDtl" - 발송 상세
      • + *
      • "currentUser" - 현재 접속한 사용자
      • + *
      + * @return 저장된 정보수 + */ + int updateEPostSndngDtlSttsCd(Map params); + + default boolean updateEPostSndngDtlSttsCd(SndngDtl sndngDtl) { + return sndngDtl != null && updateEPostSndngDtlSttsCd(params().set("sndngDtl", sndngDtl)) == 1; + } + /**발송 상세 정보의 발송 상세 상태 코드를 수정한다. * @param params 파라미터 *
      • "sndngDtl" - 발송 상세
      • diff --git a/src/main/java/cokr/xit/fims/sndb/service/NxrpMtchgService.java b/src/main/java/cokr/xit/fims/sndb/service/NxrpMtchgService.java index 6fec0f9f..3538562d 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/NxrpMtchgService.java +++ b/src/main/java/cokr/xit/fims/sndb/service/NxrpMtchgService.java @@ -31,6 +31,15 @@ public interface NxrpMtchgService { */ List getNxrpMtchgs(NxrpMtchgQuery req); + /**세외수입 연계 서비스 호출 및 세외수입 매핑 내역를 등록한다. + * @param req 세외수입 매칭 내역 조회 조건 + * @return 저장 여부 + *
        • 저장됐으면 true
        • + *
        • 그렇지 않으면 false
        • + *
        + */ + String callNxrpLink(NxrpMtchgQuery req); + /**세외수입 매칭 내역 정보를 등록한다. * @param nxrpMtchg 세외수입 매칭 내역 * @return 저장 여부 diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/NxrpMtchgBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/NxrpMtchgBean.java index 5f3945ab..95d81229 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/NxrpMtchgBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/NxrpMtchgBean.java @@ -11,7 +11,9 @@ import cokr.xit.foundation.data.DataObject; import cokr.xit.fims.sndb.NxrpMtchg; import cokr.xit.fims.sndb.NxrpMtchgQuery; +import cokr.xit.fims.sndb.SndngDtl; import cokr.xit.fims.sndb.dao.NxrpMtchgMapper; +import cokr.xit.fims.sndb.dao.SndngMapper; /**세외수입 매칭 내역 정보 관리 Bean * @@ -30,6 +32,10 @@ public class NxrpMtchgBean extends AbstractComponent { @Resource(name = "nxrpMtchgMapper") private NxrpMtchgMapper nxrpMtchgMapper; + /** 발송 대장 정보 DAO */ + @Resource(name = "sndngMapper") + private SndngMapper sndngMapper; + /**지정한 조건에 따라 세외수입 매칭 내역 목록을 조회하여 반환한다. * @param req 세외수입 매칭 내역 조회 조건 * @return 세외수입 매칭 내역 목록 @@ -46,6 +52,83 @@ public class NxrpMtchgBean extends AbstractComponent { return nxrpMtchgMapper.selectNxrpMtchgs(req); } + /**지정한 ID의 조건에 따라 세외수입 매칭 내역의 마지막 객체 1개만 반환한다. + * @param req 세외수입 매칭 내역 조회 조건 + * @return 세외수입 매칭 내역 객체 목록 + */ + public DataObject getNxrpMtchgInfo(NxrpMtchgQuery req) { + return nxrpMtchgMapper.selectNxrpMtchgInfo(req); + } + + /**세외수입 연계 서비스 호출 및 세외수입 매핑 내역를 등록한다. + * @param req 세외수입 매칭 내역 조회 조건 + * @return 저장 여부 + *
        • 저장됐으면 true
        • + *
        • 그렇지 않으면 false
        • + *
        + */ + public String callNxrpLink(NxrpMtchgQuery req) { + // 변수 선언 + boolean retSuccess = false; // DB 처리 결과 + String retMessage = "[F] "; // 처리 결과 메시지 + + // 2023.02.01 KDH 용인 밤샘주차는 세외수입 전송시 본고지 공문번호로 변경하여 전송해야됨 + + // 20200327 UIJIN 서울시 세외수입 엑셀 양식 +// if () { +// retMessage = "[S] 작업이 정상 처리 되었습니다."; +// return retMessage; +// } + + // 세외수입 연계관련 정보 확인 + + + for (int iLoop = 0; iLoop < req.getSndngDtlIDs().length; iLoop++) { + // 단속 자료 조회 + DataObject crdnLevyInfo = nxrpMtchgMapper.selectCrdnLevyInfo(req.getCrdnIDs()[iLoop]); + + // 세외수입 연계 호출 + String linkRsltId = "0000000000"; + + // 세외수입 매칭 내역 정보 조회 + DataObject nxrpMtchgInfo = nxrpMtchgMapper.selectNxrpMtchgInfo(req); + + if (nxrpMtchgInfo.isEmpty()) { + NxrpMtchg nxrpMtchg = new NxrpMtchg(); + + nxrpMtchg.setCrdnId(crdnLevyInfo.string("CRND_ID")); + nxrpMtchg.setLinkRsltId(linkRsltId); + nxrpMtchg.setLevyAmt(crdnLevyInfo.number("PCPTAX").intValue()); + nxrpMtchg.setAdtnAmt(crdnLevyInfo.number("ADAMT").intValue()); + nxrpMtchg.setSumAmt(crdnLevyInfo.number("SUM_AMT").intValue()); + + retSuccess = nxrpMtchgMapper.insert(nxrpMtchg); + } else { + NxrpMtchg nxrpMtchg = new NxrpMtchg(); + + nxrpMtchg.setMtchgId(nxrpMtchgInfo.string("MTCHG_ID")); + nxrpMtchg.setLinkRsltId(linkRsltId); + + retSuccess = nxrpMtchgMapper.updateLinkRsltId(nxrpMtchg); + } + + // 발송 상세 상태 코드 수정. + SndngDtl sndngDtl = new SndngDtl(); + + sndngDtl.setSndngDtlSttsCd("01"); // FIM050(발송 상세 상태 코드) - 01 세외수입부과 + sndngDtl.setSndngDtlId(req.getSndngDtlIDs()[iLoop]); + + retSuccess = sndngMapper.updateSndngDtlSttsCd(sndngDtl); + if (!retSuccess) { + throw new RuntimeException("세외수입 매칭 내역 정보를 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + } + + retMessage = "[S] 작업이 정상 처리 되었습니다."; + + return retMessage; + } + /**세외수입 매칭 내역 정보를 등록한다. * @param nxrpMtchg 세외수입 매칭 내역 * @return 저장 여부 diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/NxrpMtchgServiceBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/NxrpMtchgServiceBean.java index 3fc41821..94ade834 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/NxrpMtchgServiceBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/NxrpMtchgServiceBean.java @@ -40,6 +40,11 @@ public class NxrpMtchgServiceBean extends AbstractServiceBean implements NxrpMtc return nxrpMtchgBean.getNxrpMtchgs(req); } + @Override + public String callNxrpLink(NxrpMtchgQuery req) { + return nxrpMtchgBean.callNxrpLink(req); + } + @Override public String createNxrpMtchg(NxrpMtchg nxrpMtchg) { return nxrpMtchgBean.createNxrpMtchg(nxrpMtchg); 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 c0e05675..f76f5755 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 @@ -1169,7 +1169,7 @@ public class SndngBean extends AbstractComponent { sndngDtl.setSndngDtlSttsCd("03"); sndngDtl.setSndngDtlId(sndngDtlInfo.string("SNDNG_DTL_ID")); - retSuccess = sndngMapper.updateSndngDtlSttsCd(sndngDtl); + retSuccess = sndngMapper.updateEPostSndngDtlSttsCd(sndngDtl); if (!retSuccess) { // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다."); 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 ae091fe5..8bf3fd29 100644 --- a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java +++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java @@ -52,15 +52,19 @@ public class Sndb01Controller extends ApplicationController { , getAdvanceNoticeSendingInfo = "/080/info.do" // 사전통지 발송 상세 대장 조회 + , noticeSheetSendingMain = "/090/main.do" // 고지서 발송 현황 메인 화면 + , getNoticeSheetSendingList = "/090/list.do" // 고지서 발송 대상 목록 조회 + , getNoticeSheetSendingInfo = "/100/info.do" // 고지서 발송 상세 대장 조회 + - , noticeSheetSendingMain = "/090/main.do" // 고지서 발송 현황 메인 화면 - , getNoticeSheetSendingList = "/090/list.do" // 고지서 발송 대상 목록 조회 - , getNoticeSheetSendingInfo = "/100/info.do" // 고지서 발송 상세 대장 조회 , noticeSheetSendingTargetMain = "/110/main.do" // 고지서 발송 대상 메인 화면 + + + , createSending = "/020/createSndng.do" // 발송 대상 등록 , createSendingLink = "/080/createSndngLink.do" // 우편 통합 발송 연계 등록 @@ -390,7 +394,6 @@ public class Sndb01Controller extends ApplicationController { return mav.addObject("pageName", "sndb01080") .addObject("sggCd", req.getSggCd()) .addObject("taskSeCd", req.getTaskSeCd()) - .addObject("sndngSeCd", req.getSndngSeCd()) // 발송 구분 코드 .addObject("advntceSndngDtl", json ? sndngDtls : toJson(sndngDtls)) // 사전통지 발송 현황 세부내용 ; } @@ -464,6 +467,14 @@ public class Sndb01Controller extends ApplicationController { ; } + + + + + + + + /**고지서 발송 대상 자료 메인화면(sndb/sndb01/110-main)을 연다. * * @return /sndb/sndb01/110-main diff --git a/src/main/java/cokr/xit/fims/sndb/web/Sndb02Controller.java b/src/main/java/cokr/xit/fims/sndb/web/Sndb02Controller.java index f35bad40..6a39e13b 100644 --- a/src/main/java/cokr/xit/fims/sndb/web/Sndb02Controller.java +++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb02Controller.java @@ -6,6 +6,7 @@ import org.springframework.web.servlet.ModelAndView; import cokr.xit.base.web.ApplicationController; import cokr.xit.fims.sndb.NxrpMtchg; +import cokr.xit.fims.sndb.NxrpMtchgQuery; import cokr.xit.fims.sndb.service.NxrpMtchgService; /**발송 세외수입 매핑 서비스의 웹 컨트롤러 @@ -24,9 +25,10 @@ public class Sndb02Controller extends ApplicationController { public class METHOD_URL { public static final String - createNonTaxReceiptMatching = "/010/create.do" // 세외수입 매핑 내역 등록 - , updateNonTaxReceiptMatching = "/010/update.do" // 세외수입 매칭 내역 수정 - , removeNonTaxReceiptMatching = "/010/remove.do" // 세외수입 매칭 내역 제거 + callNonTaxReceiptLink = "/010/createNxrpLink.do" // 세외수입 연계 호출 및 매핑 등록 + , createNonTaxReceiptMatching = "/010/create.do" // 세외수입 매핑 내역 등록 + , updateNonTaxReceiptMatching = "/010/update.do" // 세외수입 매칭 내역 수정 + , removeNonTaxReceiptMatching = "/010/remove.do" // 세외수입 매칭 내역 제거 ; } @@ -34,6 +36,28 @@ public class Sndb02Controller extends ApplicationController { @Resource(name = "nxrpMtchgService") private NxrpMtchgService nxrpMtchgService; + /**세외수입 연계 서비스 호출 및 세외수입 매핑 내역를 등록한다. + * @param req 세외수입 매칭 내역 정보 + * @return jsonView + *
         {
        +	 *     "saved": 등록되었으면 true, 그렇지 않으면 false
        +	 * }
        + */ + public ModelAndView callNonTaxReceiptLink(NxrpMtchgQuery req) { + boolean saved = false; + String retMessage = nxrpMtchgService.callNxrpLink(req); + + if (retMessage.contains("[S]")) { + saved = true; + } else { + saved = false; + } + + return new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("retMessage", retMessage); + } + /**세외수입 매칭 내역를 등록한다. * @param nxrpMtchg 세외수입 매칭 내역 정보 * @return jsonView diff --git a/src/main/java/cokr/xit/fims/task/web/DpvController.java b/src/main/java/cokr/xit/fims/task/web/DpvController.java index f6591bed..ce384fe5 100644 --- a/src/main/java/cokr/xit/fims/task/web/DpvController.java +++ b/src/main/java/cokr/xit/fims/task/web/DpvController.java @@ -19,6 +19,7 @@ import cokr.xit.fims.levy.Rduct; import cokr.xit.fims.payer.Payer; import cokr.xit.fims.payer.PayerQuery; import cokr.xit.fims.sndb.NxrpMtchg; +import cokr.xit.fims.sndb.NxrpMtchgQuery; import cokr.xit.fims.sndb.SndbQuery; import cokr.xit.fims.sndb.Sndng; import cokr.xit.fims.sndb.SndngDtl; @@ -688,6 +689,12 @@ public class DpvController { @RequestMapping(name="장애인과태료업무 세외수입 매핑", value=CLASS_URL+Sndb02Controller.CLASS_URL) class Sndb02Controller extends cokr.xit.fims.sndb.web.Sndb02Controller { + @Override + @RequestMapping(name="세외수입 연계 호출 및 매핑 등록", value=METHOD_URL.callNonTaxReceiptLink) + public ModelAndView callNonTaxReceiptLink(NxrpMtchgQuery req) { + return super.callNonTaxReceiptLink(req); + } + @Override @RequestMapping(name="세외수입 매핑 내역 등록", value=METHOD_URL.createNonTaxReceiptMatching) public ModelAndView createNonTaxReceiptMatching(NxrpMtchg nxrpMtchg) { diff --git a/src/main/resources/sql/mapper/fims/sndb/nxrpMtchg-mapper.xml b/src/main/resources/sql/mapper/fims/sndb/nxrpMtchg-mapper.xml index cb30ab35..bbfeb7f3 100644 --- a/src/main/resources/sql/mapper/fims/sndb/nxrpMtchg-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/nxrpMtchg-mapper.xml @@ -43,53 +43,58 @@ + + + + - SELECT MTCHG_ID - , CRDN_ID - , CRDN_DT - , STDG_NM - , CRDN_PLC - , LVY_KEY - , ACNTG_YR - , LEVY_NO - , LEVY_AMT - , ADTN_AMT - , SUM_AMT - , PRCS_STTS_CD - , EPAYNO - , BANK_NM1 - , VRACTNO1 - , BANK_NM2 - , VRACTNO2 - , BANK_NM3 - , VRACTNO3 - , BANK_NM4 - , VRACTNO4 - , BANK_NM5 - , VRACTNO5 - , BANK_NM6 - , VRACTNO6 - , BANK_NM7 - , VRACTNO7 - , BANK_NM8 - , VRACTNO8 - , BANK_NM9 - , VRACTNO9 - , BANK_NM10 - , VRACTNO10 - , BANK_NM11 - , VRACTNO11 - , REG_DT - , RGTR - , MDFCN_DT - , MDFR - FROM TB_NXRP_MTCHG + SELECT NM.MTCHG_ID + , NM.CRDN_ID + , NM.CRDN_DT + , NM.STDG_NM + , NM.CRDN_PLC + , NM.LINK_RSLT_ID + , NM.LVY_KEY + , NM.ACNTG_YR + , NM.LEVY_NO + , NM.LEVY_AMT + , NM.ADTN_AMT + , NM.SUM_AMT + , NM.PRCS_STTS_CD + , NM.EPAYNO + , NM.BANK_NM1 + , NM.VRACTNO1 + , NM.BANK_NM2 + , NM.VRACTNO2 + , NM.BANK_NM3 + , NM.VRACTNO3 + , NM.BANK_NM4 + , NM.VRACTNO4 + , NM.BANK_NM5 + , NM.VRACTNO5 + , NM.BANK_NM6 + , NM.VRACTNO6 + , NM.BANK_NM7 + , NM.VRACTNO7 + , NM.BANK_NM8 + , NM.VRACTNO8 + , NM.BANK_NM9 + , NM.VRACTNO9 + , NM.BANK_NM10 + , NM.VRACTNO10 + , NM.BANK_NM11 + , NM.VRACTNO11 + , NM.REG_DT + , NM.RGTR + , NM.MDFCN_DT + , NM.MDFR + FROM TB_NXRP_MTCHG NM /* 세외수입 매칭 내역 객체 가져오기(nxrpMtchgMapper.selectNxrpMtchgs) */ + + AND NM.MTCHG_ID = #{mtchgId} + + + AND NM.CRDN_ID = #{crdnId} + + + AND NM.LVY_KEY = #{lvyKey} + + + AND NM.DEL_YN = #{delYn} + + + /* 세외수입 매칭 내역 등록(nxrpMtchgMapper.insertNxrpMtchg) */ SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(MTCHG_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID @@ -120,6 +209,7 @@ , CRDN_DT , STDG_NM , CRDN_PLC + , LINK_RSLT_ID , LVY_KEY , ACNTG_YR , LEVY_NO @@ -161,6 +251,7 @@ , #{nxrpMtchg.crdnDt} , #{nxrpMtchg.stdgNm} , #{nxrpMtchg.crdnPlc} + , #{nxrpMtchg.linkRsltId} , #{nxrpMtchg.lvyKey} , #{nxrpMtchg.acntgYr} , #{nxrpMtchg.levyNo} @@ -200,51 +291,72 @@ /* 세외수입 매칭 내역 수정(nxrpMtchgMapper.updateNxrpMtchg) */ UPDATE TB_NXRP_MTCHG - SET CRDN_DT = #{nxrpMtchg.crdnDt} - , STDG_NM = #{nxrpMtchg.stdgNm} - , CRDN_PLC = #{nxrpMtchg.crdnPlc} - , LVY_KEY = #{nxrpMtchg.lvyKey} - , ACNTG_YR = #{nxrpMtchg.acntgYr} - , LEVY_NO = #{nxrpMtchg.levyNo} - , LEVY_AMT = #{nxrpMtchg.levyAmt} - , ADTN_AMT = #{nxrpMtchg.adtnAmt} - , SUM_AMT = #{nxrpMtchg.sumAmt} - , PRCS_STTS_CD = #{nxrpMtchg.prcsSttsCd} - , EPAYNO = #{nxrpMtchg.epayno} - , BANK_NM1 = #{nxrpMtchg.bankNm1} - , VRACTNO1 = #{nxrpMtchg.vractno1} - , BANK_NM2 = #{nxrpMtchg.bankNm2} - , VRACTNO2 = #{nxrpMtchg.vractno2} - , BANK_NM3 = #{nxrpMtchg.bankNm3} - , VRACTNO3 = #{nxrpMtchg.vractno3} - , BANK_NM4 = #{nxrpMtchg.bankNm4} - , VRACTNO4 = #{nxrpMtchg.vractno4} - , BANK_NM5 = #{nxrpMtchg.bankNm5} - , VRACTNO5 = #{nxrpMtchg.vractno5} - , BANK_NM6 = #{nxrpMtchg.bankNm6} - , VRACTNO6 = #{nxrpMtchg.vractno6} - , BANK_NM7 = #{nxrpMtchg.bankNm7} - , VRACTNO7 = #{nxrpMtchg.vractno7} - , BANK_NM8 = #{nxrpMtchg.bankNm8} - , VRACTNO8 = #{nxrpMtchg.vractno8} - , BANK_NM9 = #{nxrpMtchg.bankNm9} - , VRACTNO9 = #{nxrpMtchg.vractno9} - , BANK_NM10 = #{nxrpMtchg.bankNm10} - , VRACTNO10 = #{nxrpMtchg.vractno10} - , BANK_NM11 = #{nxrpMtchg.bankNm11} - , VRACTNO11 = #{nxrpMtchg.vractno11} - , MDFCN_DT = - , MDFR = #{nxrpMtchg.modifiedBy} - WHERE MTCHG_ID = #{nxrpMtchg.mtchgId} + SET CRDN_DT = #{nxrpMtchg.crdnDt} + , STDG_NM = #{nxrpMtchg.stdgNm} + , CRDN_PLC = #{nxrpMtchg.crdnPlc} + , LINK_RSLT_ID = #{nxrpMtchg.linkRsltId} + , LVY_KEY = #{nxrpMtchg.lvyKey} + , ACNTG_YR = #{nxrpMtchg.acntgYr} + , LEVY_NO = #{nxrpMtchg.levyNo} + , LEVY_AMT = #{nxrpMtchg.levyAmt} + , ADTN_AMT = #{nxrpMtchg.adtnAmt} + , SUM_AMT = #{nxrpMtchg.sumAmt} + , PRCS_STTS_CD = #{nxrpMtchg.prcsSttsCd} + , EPAYNO = #{nxrpMtchg.epayno} + , BANK_NM1 = #{nxrpMtchg.bankNm1} + , VRACTNO1 = #{nxrpMtchg.vractno1} + , BANK_NM2 = #{nxrpMtchg.bankNm2} + , VRACTNO2 = #{nxrpMtchg.vractno2} + , BANK_NM3 = #{nxrpMtchg.bankNm3} + , VRACTNO3 = #{nxrpMtchg.vractno3} + , BANK_NM4 = #{nxrpMtchg.bankNm4} + , VRACTNO4 = #{nxrpMtchg.vractno4} + , BANK_NM5 = #{nxrpMtchg.bankNm5} + , VRACTNO5 = #{nxrpMtchg.vractno5} + , BANK_NM6 = #{nxrpMtchg.bankNm6} + , VRACTNO6 = #{nxrpMtchg.vractno6} + , BANK_NM7 = #{nxrpMtchg.bankNm7} + , VRACTNO7 = #{nxrpMtchg.vractno7} + , BANK_NM8 = #{nxrpMtchg.bankNm8} + , VRACTNO8 = #{nxrpMtchg.vractno8} + , BANK_NM9 = #{nxrpMtchg.bankNm9} + , VRACTNO9 = #{nxrpMtchg.vractno9} + , BANK_NM10 = #{nxrpMtchg.bankNm10} + , VRACTNO10 = #{nxrpMtchg.vractno10} + , BANK_NM11 = #{nxrpMtchg.bankNm11} + , VRACTNO11 = #{nxrpMtchg.vractno11} + , MDFCN_DT = + , MDFR = #{nxrpMtchg.modifiedBy} + WHERE MTCHG_ID = #{nxrpMtchg.mtchgId} + AND DEL_YN = 'N' + + + /* 세외수입 매칭 내역에서 연계결과ID 수정 (nxrpMtchgMapper.updateLinkRsltId) */ + UPDATE TB_NXRP_MTCHG + SET LINK_RSLT_ID = #{nxrpMtchg.linkRsltId} + , MDFCN_DT = + , MDFR = #{nxrpMtchg.modifiedBy} + WHERE MTCHG_ID = #{nxrpMtchg.mtchgId} + AND DEL_YN = 'N' + + + /* 세외수입 매칭 내역에서 처리상태코드 수정(nxrpMtchgMapper.updatePrcsSttsCd) */ + UPDATE TB_NXRP_MTCHG + SET PRCS_STTS_CD = #{nxrpMtchg.prcsSttsCd} + , MDFCN_DT = + , MDFR = #{nxrpMtchg.modifiedBy} + WHERE MTCHG_ID = #{nxrpMtchg.mtchgId} + AND DEL_YN = 'N' /* 세외수입 매칭 내역 삭제(nxrpMtchgMapper.deleteNxrpMtchg) */ UPDATE TB_NXRP_MTCHG - SET DEL_YN = 'N' - , MDFCN_DT = - , MDFR = #{nxrpMtchg.modifiedBy} - WHERE MTCHG_ID = #{nxrpMtchg.mtchgId} - AND DEL_YN = 'Y' + SET DEL_YN = 'Y' + , DEL_DT = + , DLTR = #{nxrpMtchg.modifiedBy} + , DEL_RSN = #{nxrpMtchg.delRsn} + WHERE MTCHG_ID = #{nxrpMtchg.mtchgId} + AND DEL_YN = 'N' 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 8fa10d66..0b723467 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml @@ -7,7 +7,7 @@ 2023-08-25 JoJH 최초 작성 ============================ --> - + @@ -39,7 +39,7 @@ - + @@ -1115,11 +1115,6 @@ - - - - - /* 발송상세의 반송 정보 수정(sndngMapper.createSndbk) */ UPDATE TB_SNDNG_DTL SET BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD @@ -1155,6 +1150,12 @@ AND DEL_YN = 'N' + + + + + + /* 발송상세 대장에 공시송달ID에 해당하는 총건수 가져오기(sndngMapper.selectTnocsSndngDtlSvbtc) */ SELECT COUNT(*) TNOCS FROM TB_SNDNG_DTL diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01080-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01080-info.jsp index 076837b5..0314d421 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01080-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01080-info.jsp @@ -237,24 +237,37 @@ fn_securityModeToggle($("#securityMode--top").is(":checked")); } +/////////////////////////////////////////////////////////////// + getCrdnKey = (info) => { + return info ? info.CRDN_ID : null; + } + getCrdnKeys = (status) => { + let dataset = ${pageName}Control.dataset.getDataset(status); + + return dataset.map(e => getCrdnKey(e)); + } +/////////////////////////////////////////////////////////////// + // 세외수입 등록 createNxrpMtchg${pageName} = (params) => { - let btnTitle = $("#btnCreateNxrpMtchg--${pageName}").attr("title"); - // 선택된 자료의 발송 상세 ID 추가 let selected = ${pageName}Control.dataset.getKeys("selected"); + let crdnKeys = getCrdnKeys("selected"); if (selected.length < 1) return; params.sndngDtlIDs = selected.join(","); // 발송 상세 IDs + params.crdnIDs = crdnKeys.join(","); // 단속 IDs params.delYn = "N"; // 삭제 여부 ajax.post({ - url : wctx.url("/" + params.taskSeCd + "/sndb/sndb02/010/create.do") + url : wctx.url("/" + params.taskSeCd + "/sndb/sndb02/010/createNxrpLink.do") , data : params || {} , success : resp => { + let btnTitle = $("#btnCreateNxrpMtchg--${pageName}").attr("title"); let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle); - dialog.alert(showMessage); + + dialog.alert(showMessage); } }); } diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01090-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01090-main.jsp index e79ffa24..6003a194 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01090-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01090-main.jsp @@ -122,7 +122,7 @@ - @@ -447,7 +447,7 @@ } // 신규 등록 - ${infoPrefix}Info${pageName} = () => { + fnNhtSndngInfo${pageName} = () => { let params = ${pageName}Fields.get(); params.callPurpose = "create";