From 10b7c7fd750fa864ce42743c3d7f5b57f29daae9 Mon Sep 17 00:00:00 2001 From: jjh Date: Fri, 2 Feb 2024 13:48:02 +0900 Subject: [PATCH] =?UTF-8?q?1.=20=EB=B6=80=EA=B3=BC=20=EC=B7=A8=EC=86=8C=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D=20=EC=B6=94=EA=B0=80.=202.=20=EA=B0=90?= =?UTF-8?q?=EC=95=A1=20=EC=B6=94=EA=B0=80.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cokr/xit/fims/excl/LevyExclQuery.java | 1 + .../xit/fims/excl/dao/CrdnReRegMapper.java | 10 +- .../xit/fims/excl/dao/LevyExclMapper.java | 24 +- .../xit/fims/excl/dao/OpnnSbmsnMapper.java | 49 +- .../fims/excl/service/bean/CrdnReRegBean.java | 12 +- .../fims/excl/service/bean/LevyExclBean.java | 83 +- .../fims/excl/service/bean/OpnnSbmsnBean.java | 4 +- src/main/java/cokr/xit/fims/levy/Levy.java | 4 +- .../cokr/xit/fims/levy/dao/LevyMapper.java | 37 +- .../xit/fims/levy/service/bean/LevyBean.java | 29 +- .../xit/fims/levy/web/Levy01Controller.java | 4 +- src/main/java/cokr/xit/fims/rcvm/Rcvmt.java | 4 +- .../cokr/xit/fims/rcvm/dao/RcvmtMapper.java | 12 +- .../xit/fims/rcvm/service/bean/RcvmtBean.java | 41 +- src/main/java/cokr/xit/fims/rdca/Rdcamt.java | 85 ++ .../java/cokr/xit/fims/rdca/RdcamtQuery.java | 110 +++ .../cokr/xit/fims/rdca/dao/RdcamtMapper.java | 117 +++ .../xit/fims/rdca/service/RdcamtService.java | 66 ++ .../fims/rdca/service/bean/RdcamtBean.java | 189 +++++ .../rdca/service/bean/RdcamtServiceBean.java | 62 ++ .../xit/fims/rdca/web/Rdca01Controller.java | 234 +++++ .../xit/fims/sndb/service/bean/SndngBean.java | 4 +- .../sql/mapper/fims/excl/crdnReReg-mapper.xml | 86 +- .../sql/mapper/fims/excl/levyExcl-mapper.xml | 355 ++++---- .../sql/mapper/fims/excl/opnnSbmsn-mapper.xml | 617 +++++++------- .../sql/mapper/fims/levy/levy-mapper.xml | 201 +++-- .../sql/mapper/fims/nxrp/nxrpMtchg-mapper.xml | 84 +- .../sql/mapper/fims/rcvm/rcvmt-mapper.xml | 188 +++-- .../sql/mapper/fims/rdca/rdcamt-mapper.xml | 176 ++++ .../sql/mapper/fims/sndb/sndng-mapper.xml | 2 +- .../sql/mapper/fims/sndb/sndngDtl-mapper.xml | 4 +- .../sql/mapper/fims/sprt/totalInfo-mapper.xml | 79 +- .../WEB-INF/jsp/fims/excl/excl01010-main.jsp | 4 +- .../WEB-INF/jsp/fims/excl/excl01020-info.jsp | 2 +- .../WEB-INF/jsp/fims/levy/levy01050-main.jsp | 747 ++++++++-------- .../WEB-INF/jsp/fims/rcvm/rcvm01020-info.jsp | 8 +- .../WEB-INF/jsp/fims/rdca/rdca01010-main.jsp | 796 ++++++++++++++++++ .../WEB-INF/jsp/fims/rdca/rdca01020-info.jsp | 280 ++++++ .../WEB-INF/jsp/fims/sprt/sprt02020-info.jsp | 2 +- .../WEB-INF/jsp/fims/sprt/sprt02060-info.jsp | 81 +- .../WEB-INF/jsp/fims/sprt/sprt02070-info.jsp | 4 +- 41 files changed, 3645 insertions(+), 1252 deletions(-) create mode 100644 src/main/java/cokr/xit/fims/rdca/Rdcamt.java create mode 100644 src/main/java/cokr/xit/fims/rdca/RdcamtQuery.java create mode 100644 src/main/java/cokr/xit/fims/rdca/dao/RdcamtMapper.java create mode 100644 src/main/java/cokr/xit/fims/rdca/service/RdcamtService.java create mode 100644 src/main/java/cokr/xit/fims/rdca/service/bean/RdcamtBean.java create mode 100644 src/main/java/cokr/xit/fims/rdca/service/bean/RdcamtServiceBean.java create mode 100644 src/main/java/cokr/xit/fims/rdca/web/Rdca01Controller.java create mode 100644 src/main/resources/sql/mapper/fims/rdca/rdcamt-mapper.xml create mode 100644 src/main/webapp/WEB-INF/jsp/fims/rdca/rdca01010-main.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/fims/rdca/rdca01020-info.jsp diff --git a/src/main/java/cokr/xit/fims/excl/LevyExclQuery.java b/src/main/java/cokr/xit/fims/excl/LevyExclQuery.java index 8c34b522..eb197647 100644 --- a/src/main/java/cokr/xit/fims/excl/LevyExclQuery.java +++ b/src/main/java/cokr/xit/fims/excl/LevyExclQuery.java @@ -24,6 +24,7 @@ public class LevyExclQuery extends CmmnQuery { private String opnnId; // 의견제출 ID private String[] reRegIDs; // 재등록 IDs private String reRegId; // 재등록 ID + // 검색 조건 private String schLevyExclYmdFrom; // 부과제외_부과제외 일자 시작 private String schLevyExclYmdTo; // 부과제외_부과제외 일자 종료 diff --git a/src/main/java/cokr/xit/fims/excl/dao/CrdnReRegMapper.java b/src/main/java/cokr/xit/fims/excl/dao/CrdnReRegMapper.java index 5998e337..08e43c53 100644 --- a/src/main/java/cokr/xit/fims/excl/dao/CrdnReRegMapper.java +++ b/src/main/java/cokr/xit/fims/excl/dao/CrdnReRegMapper.java @@ -75,14 +75,10 @@ public interface CrdnReRegMapper extends AbstractMapper { return crdnReReg != null && deleteCrdnReReg(params().set("crdnReReg", crdnReReg)) == 1; } - /**지정한 단속ID의 단속 대장 정보를 반환한다. - * @param crdnId 단속ID + /**지정한 단속 ID로 단속 대장 객체를 반환한다. + * @param crdnId 단속 ID * @return 단속 대장 정보 */ - DataObject selectCrdn(LevyExclQuery req); - - default DataObject selectCrdnInfo(String crdnId) { - return selectCrdn(new LevyExclQuery().setCrdnId(crdnId)); - } + DataObject selectCrdnInfo(String crdnId); } diff --git a/src/main/java/cokr/xit/fims/excl/dao/LevyExclMapper.java b/src/main/java/cokr/xit/fims/excl/dao/LevyExclMapper.java index 51f3dea1..a2a113c1 100644 --- a/src/main/java/cokr/xit/fims/excl/dao/LevyExclMapper.java +++ b/src/main/java/cokr/xit/fims/excl/dao/LevyExclMapper.java @@ -57,18 +57,6 @@ public interface LevyExclMapper extends AbstractMapper { return !levyExcls.isEmpty() ? levyExcls.get(0) : null; } - /**지정한 조건에 따라 단속 대장 객체를 반환한다. - * @param crdnId 단속 ID - * @return 단속 대장 객체 - */ - List selectCrdn(LevyExclQuery req); - - default DataObject selectCrdnInfo(LevyExclQuery req) { - List crdn = selectCrdn(req); - - return !crdn.isEmpty() ? crdn.get(0) : null; - } - /**부과제외 대장 정보를 등록한다. * @param params 파라미터 *
  • "excl01" - 부과 제외 대장
  • @@ -112,6 +100,12 @@ public interface LevyExclMapper extends AbstractMapper { return levyExcl != null && deleteLevyExcl(params().set("levyExcl", levyExcl)) == 1; } + /**지정한 단속 ID로 단속 대장 객체를 반환한다. + * @param crdnId 단속 ID + * @return 단속 대장 객체 + */ + DataObject selectCrdnInfo(String crdnId); + /**지정한 조건에 따라 민원답변문구 대장을 조회하여 반환한다. * @param crdnId 단속 ID * @return 단속, 부과제외 정보 @@ -126,10 +120,10 @@ public interface LevyExclMapper extends AbstractMapper { * @param excl 부과제외 대장 * @return 저장된 정보수 */ - int updateCvlcptPrcsRsltCn(Map params); + int updateCrdnCvlcptPrcsRsltCn(Map params); - default boolean updateCvlcptPrcsRsltCn(CrdnCvlcpt crdnCvlcpt) { - return crdnCvlcpt != null && updateCvlcptPrcsRsltCn(params().set("crdnCvlcpt", crdnCvlcpt)) == 1; + default boolean updateCrdnCvlcptPrcsRsltCn(CrdnCvlcpt crdnCvlcpt) { + return crdnCvlcpt != null && updateCrdnCvlcptPrcsRsltCn(params().set("crdnCvlcpt", crdnCvlcpt)) == 1; } /**단속민원(TB_CRDN_CVLCPT) 대장의 민원답변 정보를 초기화 한다. diff --git a/src/main/java/cokr/xit/fims/excl/dao/OpnnSbmsnMapper.java b/src/main/java/cokr/xit/fims/excl/dao/OpnnSbmsnMapper.java index cb126755..a22aae1e 100644 --- a/src/main/java/cokr/xit/fims/excl/dao/OpnnSbmsnMapper.java +++ b/src/main/java/cokr/xit/fims/excl/dao/OpnnSbmsnMapper.java @@ -55,18 +55,6 @@ public interface OpnnSbmsnMapper extends AbstractMapper { return !opnnSbmsns.isEmpty() ? opnnSbmsns.get(0) : null; } - /**지정한 조건에 따라 단속 대장 객체를 반환한다. - * @param crdnId 단속 ID - * @return 단속 대장 객체 - */ - List selectCrdn(LevyExclQuery req); - - default DataObject selectCrdnInfo(LevyExclQuery req) { - List crdn = selectCrdn(req); - - return !crdn.isEmpty() ? crdn.get(0) : null; - } - /**지정한 조건에 따라 의견제출 심의 의결서 객체들을 반환한다. * @param opnnId 의견제출 ID * @return 의견제출 대장 객체 @@ -133,44 +121,43 @@ public interface OpnnSbmsnMapper extends AbstractMapper { return opnnSbmsn != null && updateAnsSttsCd(params().set("opnnSbmsn", opnnSbmsn)) == 1; } - /**단속 대장 정보를 수정한다. + /**지정한 의견제출 대장을 삭제한다. * @param params 파라미터 - *
    • "crdn" - 단속 대장
    • + *
      • "opnnSbmsn" - 의견제출 대장
      • *
      • "currentUser" - 현재 접속한 사용자
      • *
      * @return 저장된 정보수 */ - int updateCrdnOpnnSbmsnYn(Map params); + int deleteOpnnSbmsn(Map params); - /**단속 대장 정보를 수정한다. - * @param crdn 단속 대장 + /**의견제출 대장 정보를 삭제한다. + * @param opnnSbmsn 의견제출 대장 * @return 저장 여부 *
      • 저장됐으면 true
      • *
      • 그렇지 않으면 false
      • *
      */ - default boolean updateCrdn(Crdn crdn) { - return crdn != null && updateCrdnOpnnSbmsnYn(params().set("crdn", crdn)) == 1; + default boolean delete(OpnnSbmsn opnnSbmsn) { + return opnnSbmsn != null && deleteOpnnSbmsn(params().set("opnnSbmsn", opnnSbmsn)) == 1; } - /**지정한 의견제출 대장을 삭제한다. + /**지정한 단속 ID로 단속 대장 객체를 반환한다. + * @param crdnId 단속 ID + * @return 단속 대장 정보 + */ + DataObject selectCrdnInfo(String crdnId); + + /**단속 대장 정보를 수정한다. * @param params 파라미터 - *
      • "opnnSbmsn" - 의견제출 대장
      • + *
        • "crdn" - 단속 대장
        • *
        • "currentUser" - 현재 접속한 사용자
        • *
        * @return 저장된 정보수 */ - int deleteOpnnSbmsn(Map params); + int updateCrdnOpnnSbmsnYn(Map params); - /**의견제출 대장 정보를 삭제한다. - * @param opnnSbmsn 의견제출 대장 - * @return 저장 여부 - *
        • 저장됐으면 true
        • - *
        • 그렇지 않으면 false
        • - *
        - */ - default boolean delete(OpnnSbmsn opnnSbmsn) { - return opnnSbmsn != null && deleteOpnnSbmsn(params().set("opnnSbmsn", opnnSbmsn)) == 1; + default boolean updateCrdn(Crdn crdn) { + return crdn != null && updateCrdnOpnnSbmsnYn(params().set("crdn", crdn)) == 1; } } diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/CrdnReRegBean.java b/src/main/java/cokr/xit/fims/excl/service/bean/CrdnReRegBean.java index d1381eca..fadb42f1 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/CrdnReRegBean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/CrdnReRegBean.java @@ -96,11 +96,11 @@ public class CrdnReRegBean extends AbstractComponent { String rtnMsg = "[F] "; // 처리 결과 메시지 // 단속 ID로 단속(TB_CRDN) 정보 조회 - DataObject crdnInfo = crdnReRegMapper.selectCrdn(new LevyExclQuery().setCrdnId(crdnReReg.getBfrCrdnId())); + DataObject crdnInfo = crdnReRegMapper.selectCrdnInfo(crdnReReg.getBfrCrdnId()); // 단속 ID로 파일(TB_FILE) 정보 조회 List crdnFileList = fileBean.getFileList(new FileQuery().setInfoType(CrdnReReg.INF_TYPE) - .setInfoKeys(crdnReReg.getBfrCrdnId())); + .setInfoKeys(crdnReReg.getBfrCrdnId())); // 재등록 단속 파일 정보(TB_FILE) List fileInfoList = new ArrayList(); @@ -203,12 +203,4 @@ public class CrdnReRegBean extends AbstractComponent { return crdnReRegMapper.delete(crdnReReg); } - /**지정한 조건에 따라 부과제외 대장 목록을 조회하여 반환한다. - * @param req 부과제외 대장 조회 조건 - * @return 부과제외 대장 목록 - */ - public DataObject getCrdnInfo(LevyExclQuery req) { - return crdnReRegMapper.selectCrdn(req); - } - } diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclBean.java b/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclBean.java index b18ad2f6..169e0c53 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclBean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclBean.java @@ -13,6 +13,10 @@ import cokr.xit.fims.crdn.Crdn; import cokr.xit.fims.excl.LevyExclQuery; import cokr.xit.fims.excl.LevyExcl; import cokr.xit.fims.excl.dao.LevyExclMapper; +import cokr.xit.fims.levy.LevyQuery; +import cokr.xit.fims.levy.dao.LevyMapper; +import cokr.xit.fims.rdca.Rdcamt; +import cokr.xit.fims.rdca.service.bean.RdcamtBean; import cokr.xit.foundation.AbstractComponent; import cokr.xit.foundation.data.DataObject; @@ -37,6 +41,14 @@ public class LevyExclBean extends AbstractComponent { @Resource(name = "crdnSttsHstryBean") private CrdnSttsHstryBean crdnSttsHstryBean; + /** 부과 대장 정보 DAO */ + @Resource(name = "levyMapper") + private LevyMapper levyMapper; + + /** 감액 대장 정보 Bean */ + @Resource(name = "rdcamtBean") + private RdcamtBean rdcamtBean; + /**지정한 조건에 따라 부과제외 대장 목록을 조회하여 반환한다. * @param req 부과제외 조회 조건 * @return 부과제외 대장 목록 @@ -67,6 +79,10 @@ public class LevyExclBean extends AbstractComponent { * @return 부과제외 객체 목록 */ public List getLevyExcls(LevyExclQuery req) { + // 사용 여부 확인 + if (req.getUseYN() == null) { + req.setUseYN("Y"); + } // 삭제 여부 확인 if (req.getDelYN() == null) { req.setDelYN("N"); @@ -86,7 +102,7 @@ public class LevyExclBean extends AbstractComponent { DataObject levyExclInfo = new DataObject(); if (req.getCallPurpose().equals("create")) { - levyExclInfo = levyExclMapper.selectCrdnInfo(req); + levyExclInfo = levyExclMapper.selectCrdnInfo(req.getCrdnId()); levyExclInfo.set("LEVY_EXCL_SE_CD", req.getLevyExclSeCd()); // 부과 제외 구분 코드 } else { @@ -105,12 +121,12 @@ public class LevyExclBean extends AbstractComponent { */ public String createLevyExcl(LevyExcl levyExcl) { // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 - String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD) + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 + String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD) // 단속 ID로 단속, 부과제외 정보 조회 - DataObject crdnInfo = levyExclMapper.selectCrdnInfo(new LevyExclQuery().setCrdnId(levyExcl.getCrdnId())); + DataObject crdnInfo = levyExclMapper.selectCrdnInfo(levyExcl.getCrdnId()); // 부과제외 ID가 있다면 이미 부과제외 자료가 존재하므로 종료.. if (!crdnInfo.string("LEVY_EXCL_ID").equals("")) { @@ -144,10 +160,31 @@ public class LevyExclBean extends AbstractComponent { newCrdnSttsCd = "81"; // 비부과(서손) } else if (levyExcl.getLevyExclSeCd().equals("2")) { // 계고 newCrdnSttsCd = "83"; // 계고 - } else if (levyExcl.getLevyExclSeCd().equals("5")) { // 전액감액 + } else if (levyExcl.getLevyExclSeCd().equals("3")) { // 부과취소(전액감액) newCrdnSttsCd = "80"; // 부과취소 } + // 부과취소(전액감액)일 경우 부과(TB_LEVY)에 감액금액 입력이 필요.. + if (levyExcl.getLevyExclSeCd().equals("3")) { + if (crdnInfo.string("LEVY_ID").equals("")) { + rtnMsg = "[F] 작업 중 부과 자료가 존재하지 않습니다.
        비부과로 처리 하시기 바랍니다.
        "; + return rtnMsg; + } + + // 감액 등록 + Rdcamt rdcamt = new Rdcamt(); + + rdcamt.setLevyId(crdnInfo.string("LEVY_ID")); // 부과 ID + rdcamt.setRdcamtYmd(levyExcl.getLevyExclYmd()); // 감액 일자 + rdcamt.setRdcamtSeCd("02"); // 감액 구분 코드 FIM085 - 02:부과취소 + rdcamt.setRdcamtRsnCd(levyExcl.getLevyExclRsnCd()); // 감액 사유 코드 + + rtnMsg = rdcamtBean.createRdcamt(rdcamt); + if (rtnMsg.contains("[F]")) { + throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback + } + } + // 부과제외(TB_LEVY_EXCL) 대장을 등록 한다. rtnScs = levyExclMapper.insert(levyExcl); if (!rtnScs) { @@ -169,11 +206,6 @@ public class LevyExclBean extends AbstractComponent { throw new RuntimeException("부과제외 등록 작업 중 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } - // 전액 감액일 경우 부과(TB_LEVY)에 감액금액 입력이 필요.. - if (levyExcl.getLevyExclSeCd().equals("5")) { - - } - rtnMsg = "[S] 작업이 정상 처리 되었습니다."; return rtnMsg; @@ -188,8 +220,8 @@ public class LevyExclBean extends AbstractComponent { */ public String updateLevyExcl(LevyExcl levyExcl) { // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 // 부과제외(TB_LEVY_EXCL) 대장을 수정 한다. rtnScs = levyExclMapper.update(levyExcl); @@ -211,14 +243,15 @@ public class LevyExclBean extends AbstractComponent { */ public String removeLevyExcl(LevyExcl levyExcl) { // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 // 부과제외(TB_LEVY_EXCL) 정보 조회 - DataObject levyExclInfo = levyExclMapper.selectLevyExclInfo(new LevyExclQuery() - .setLevyExclId(levyExcl.getLevyExclId()) - .setDelYN("N") - ); + LevyExclQuery req = new LevyExclQuery(); + req.setLevyExclId(levyExcl.getLevyExclId()); + req.setDelYN("N"); + + DataObject levyExclInfo = levyExclMapper.selectLevyExclInfo(req); // 부과제외 ID가 조회되지 않았다면 종료.. if (levyExclInfo.string("LEVY_EXCL_ID").equals("")) { @@ -232,7 +265,7 @@ public class LevyExclBean extends AbstractComponent { } else if (levyExclInfo.string("LEVY_EXCL_SE_CD").equals("2") && !("83,84").contains(levyExclInfo.string("CRDN_STTS_CD"))) { // 계고 rtnMsg = "[F] 작업 중 오류가 발생하였습니다.
        현재 자료의 단속 상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 이(가) 아닙니다."; return rtnMsg; - } else if (levyExclInfo.string("LEVY_EXCL_SE_CD").equals("5") && !levyExclInfo.string("CRDN_STTS_CD").equals("80")) { // 부과취소 + } else if (levyExclInfo.string("LEVY_EXCL_SE_CD").equals("3") && !levyExclInfo.string("CRDN_STTS_CD").equals("80")) { // 부과취소 rtnMsg = "[F] 작업 중 오류가 발생하였습니다.
        현재 자료의 단속 상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 이(가) 아닙니다."; return rtnMsg; } @@ -245,10 +278,12 @@ public class LevyExclBean extends AbstractComponent { // 단속상태이력(TB_CRDN_STTS_HSTRY) 대장에 부과제외 이력삭제 및 부과제외삭제 이력을 등록 한다. String deleteCrdnSttsCd = ""; - if (levyExclInfo.string("CRDN_STTS_CD").equals("81")) { - deleteCrdnSttsCd = "91"; // 비부과(서손) 삭제 - } else if (levyExclInfo.string("CRDN_STTS_CD").equals("83") || levyExclInfo.string("CRDN_STTS_CD").equals("84")) { - deleteCrdnSttsCd = "93"; // 계고 삭제 + if (levyExclInfo.string("CRDN_STTS_CD").equals("80")) { // 임시 + throw new RuntimeException("부과취소는 부과제외 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } else if (levyExclInfo.string("CRDN_STTS_CD").equals("81")) { + deleteCrdnSttsCd = "91"; // 비부과(서손) 삭제 + } else if (("83,84").contains(levyExclInfo.string("CRDN_STTS_CD"))) { + deleteCrdnSttsCd = "93"; // 계고 삭제 } rtnScs = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(levyExclInfo.string("CRDN_ID"), levyExclInfo.string("CRDN_STTS_CD"), deleteCrdnSttsCd, true); diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnBean.java b/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnBean.java index d95f7f3c..ee8afd4d 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnBean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnBean.java @@ -99,7 +99,7 @@ public class OpnnSbmsnBean extends AbstractComponent { DataObject opnnSbmsnInfo = new DataObject(); if (req.getCallPurpose().equals("create")) { - opnnSbmsnInfo = opnnSbmsnMapper.selectCrdnInfo(req); + opnnSbmsnInfo = opnnSbmsnMapper.selectCrdnInfo(req.getCrdnId()); } else { opnnSbmsnInfo = opnnSbmsnMapper.selectOpnnSbmsnInfo(req); } @@ -132,7 +132,7 @@ public class OpnnSbmsnBean extends AbstractComponent { String rtnMsg = "[F] "; // 처리 결과 메시지 // 단속 ID로 단속 정보 조회 - DataObject crdnInfo = opnnSbmsnMapper.selectCrdnInfo(new LevyExclQuery().setCrdnId(opnnSbmsn.getCrdnId())); + DataObject crdnInfo = opnnSbmsnMapper.selectCrdnInfo(opnnSbmsn.getCrdnId()); // 의견제출ID가 있다면 이미 자료가 존재하므로 종료.. if (!crdnInfo.string("OPNN_ID").equals("")) { diff --git a/src/main/java/cokr/xit/fims/levy/Levy.java b/src/main/java/cokr/xit/fims/levy/Levy.java index 07a613ad..ad61fe8e 100644 --- a/src/main/java/cokr/xit/fims/levy/Levy.java +++ b/src/main/java/cokr/xit/fims/levy/Levy.java @@ -78,9 +78,9 @@ public class Levy extends AbstractEntity { private String levyNo; /** - * 분납 순번 + * 분납 번호 */ - private String inspySn; + private String inspyNo; /** * 부과 구분 코드 diff --git a/src/main/java/cokr/xit/fims/levy/dao/LevyMapper.java b/src/main/java/cokr/xit/fims/levy/dao/LevyMapper.java index 4eca5d62..2336d71b 100644 --- a/src/main/java/cokr/xit/fims/levy/dao/LevyMapper.java +++ b/src/main/java/cokr/xit/fims/levy/dao/LevyMapper.java @@ -59,12 +59,6 @@ public interface LevyMapper extends AbstractMapper { return !levys.isEmpty() ? levys.get(0) : null; } - /**지정한 단속 ID에 따라 단속 대장 객체를 반환한다. - * @param crdnId 단속 ID - * @return 단속 대장 객체 - */ - DataObject selectCrdn(String crdnId); - /**지정한 단속 ID에 따라 단속 대장 객체를 반환한다. * @param crdnId 단속 ID * @return 고지 번호 @@ -131,10 +125,23 @@ public interface LevyMapper extends AbstractMapper { *
      • 그렇지 않으면 false
      • *
      */ - int updateRcvmtAmt(Map params); + int updateRcvmt(Map params); - default boolean updateRcvmtAmt(Levy levy) { - return levy != null && updateRcvmtAmt(params().set("levy", levy)) == 1; + default boolean updateRcvmt(Levy levy) { + return levy != null && updateRcvmt(params().set("levy", levy)) == 1; + } + + /**부과 대장에 감액 금액 정보를 수정한다. + * @param levy 부과 대장 + * @return 저장 여부 + *
      • 저장됐으면 true
      • + *
      • 그렇지 않으면 false
      • + *
      + */ + int updateRdcamt(Map params); + + default boolean updateRdcamt(Levy levy) { + return levy != null && updateRdcamt(params().set("levy", levy)) == 1; } /**지정한 부과 대장을 삭제한다. @@ -157,4 +164,16 @@ public interface LevyMapper extends AbstractMapper { return levy != null && deleteLevy(params().set("levy", levy)) == 1; } + /**지정한 단속 ID로 단속 대장 객체를 반환한다. + * @param crdnId 단속 ID + * @return 단속 대장 객체 + */ + DataObject selectCrdn(String crdnId); + + /**지정한 조건에 따라 부과 대장 객체들을 반환한다. + * @param req 부과 대장 조회 조건 + * @return 부과 대장 객체 목록 + */ + DataObject selectLevyAmt(LevyQuery req); + } diff --git a/src/main/java/cokr/xit/fims/levy/service/bean/LevyBean.java b/src/main/java/cokr/xit/fims/levy/service/bean/LevyBean.java index a91eb8de..6053f16c 100644 --- a/src/main/java/cokr/xit/fims/levy/service/bean/LevyBean.java +++ b/src/main/java/cokr/xit/fims/levy/service/bean/LevyBean.java @@ -178,7 +178,7 @@ public class LevyBean extends AbstractComponent { levy.setTxitmCd(crdnInfo.string("TXITM_CD")); // 세목 코드 levy.setOperItemCd(crdnInfo.string("OPER_ITEM_CD")); // 운영 항목 코드 levy.setSpclBizCd(crdnInfo.string("SPCL_BIZ_CD")); // 특별회계 사업 코드 - levy.setInspySn("00"); // 분납 순번 + levy.setInspyNo("00"); // 분납 순번 levy.setLevySeCd("02"); // 부과 구분 코드 FIM040 levy.setUntySeCd("02"); // 통합 구분 코드 FIM072 if (crdnInfo.string("TASK_SE_CD").equals("BPV")) { @@ -321,12 +321,35 @@ public class LevyBean extends AbstractComponent { *
    • 그렇지 않으면 false
    • *
    */ - public String updateRcvmtAmt(Levy levy) { + public String updateRcvmt(Levy levy) { // 변수 선언 boolean rtnScs = false; // DB 처리 결과 String rtnMsg = "[F] "; // 처리 결과 메시지 - rtnScs = levyMapper.updateRcvmtAmt(levy); + rtnScs = levyMapper.updateRcvmt(levy); + if (!rtnScs) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과 대장에 수납금액 정보 수정에 실패하였습니다."); + } + + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; + + return rtnMsg; + } + + /**부과 대장에 감액 금액 정보를 수정한다. + * @param levy 부과 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + public String updateRdcamt(Levy levy) { + // 변수 선언 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + rtnScs = levyMapper.updateRdcamt(levy); if (!rtnScs) { // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback throw new RuntimeException("부과 대장에 수납금액 정보 수정에 실패하였습니다."); diff --git a/src/main/java/cokr/xit/fims/levy/web/Levy01Controller.java b/src/main/java/cokr/xit/fims/levy/web/Levy01Controller.java index 0d20edf5..3a6c0fdf 100644 --- a/src/main/java/cokr/xit/fims/levy/web/Levy01Controller.java +++ b/src/main/java/cokr/xit/fims/levy/web/Levy01Controller.java @@ -209,7 +209,7 @@ public class Levy01Controller extends ApplicationController { .addObject("rtnMsg", rtnMsg); } - /**부과 관리 메인화면(levy/levy01030-main)을 연다. + /**부과 관리 메인화면(levy/levy01050-main)을 연다. * @return */ public ModelAndView levyMain() { @@ -271,7 +271,7 @@ public class Levy01Controller extends ApplicationController { , Map.entry("세목코드", xlsx.style("TXITM_CD", center)) , Map.entry("세목명", xlsx.style("TXITM_NM", center)) , Map.entry("부과번호", xlsx.style("LEVY_NO", center)) - , Map.entry("분납순번", xlsx.style("INSPY_SN", center)) + , Map.entry("분납순번", xlsx.style("INSPY_NO", center)) , Map.entry("부과구분", xlsx.style("LEVY_SE_NM", center)) , Map.entry("통합구분", xlsx.style("UNTY_SE_NM", center)) , Map.entry("감경구분", xlsx.style("RDUCT_SE_NM", center)) diff --git a/src/main/java/cokr/xit/fims/rcvm/Rcvmt.java b/src/main/java/cokr/xit/fims/rcvm/Rcvmt.java index 0c8c9bea..296fd43e 100644 --- a/src/main/java/cokr/xit/fims/rcvm/Rcvmt.java +++ b/src/main/java/cokr/xit/fims/rcvm/Rcvmt.java @@ -63,9 +63,9 @@ public class Rcvmt extends AbstractEntity { private String levyNo; /** - * 분납 일련번호 + * 분납 번호 */ - private String inspySn; + private String inspyNo; /** * 최종 본세 diff --git a/src/main/java/cokr/xit/fims/rcvm/dao/RcvmtMapper.java b/src/main/java/cokr/xit/fims/rcvm/dao/RcvmtMapper.java index e5956fad..921818e9 100644 --- a/src/main/java/cokr/xit/fims/rcvm/dao/RcvmtMapper.java +++ b/src/main/java/cokr/xit/fims/rcvm/dao/RcvmtMapper.java @@ -46,12 +46,6 @@ public interface RcvmtMapper extends AbstractMapper { return !rcvmts.isEmpty() ? rcvmts.get(0) : null; } - /**지정한 ID에 따라 부과 대장 객체를 반환한다. - * @param req 수납 대장 조회 조건 - * @return 부과 대장 객체 - */ - DataObject selectLevyInfo(RcvmtQuery req); - /**수납 취소 정보를 수정한다. * @param rcvmt 수납 대장 * @return 저장 여부 @@ -125,4 +119,10 @@ public interface RcvmtMapper extends AbstractMapper { return rcvmt != null && deleteRcvmt(params().set("rcvmt", rcvmt)) == 1; } + /**지정한 조건에 따라 부과 대장 객체를 반환한다. + * @param req 수납 대장 조회 조건 + * @return 부과 대장 객체 + */ + DataObject selectLevyInfo(RcvmtQuery req); + } diff --git a/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtBean.java b/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtBean.java index 9ef53921..2cd166d4 100644 --- a/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtBean.java +++ b/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtBean.java @@ -12,6 +12,7 @@ import cokr.xit.fims.cmmn.CmmnUtil; import cokr.xit.fims.cmmn.CrdnSttsHstry; import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean; import cokr.xit.fims.levy.Levy; +import cokr.xit.fims.levy.LevyQuery; import cokr.xit.fims.levy.dao.LevyMapper; import cokr.xit.fims.rcvm.Rcvmt; import cokr.xit.fims.rcvm.RcvmtQuery; @@ -77,20 +78,20 @@ public class RcvmtBean extends AbstractComponent { return rcvmtMapper.selectRcvmts(req); } - /**지정한 ID의 수납 정보를 반환한다.
    + /**지정한 ID의 부과 정보를 반환한다.
    * @param req 수납 대장 조회 조건 * @return 수납 정보 */ - public DataObject getRcvmtInfo(RcvmtQuery req) { - return rcvmtMapper.selectRcvmtInfo(req); + public DataObject getLevyInfo(RcvmtQuery req) { + return rcvmtMapper.selectLevyInfo(req); } - /**지정한 ID의 부과 정보를 반환한다.
    + /**지정한 ID의 수납 정보를 반환한다.
    * @param req 수납 대장 조회 조건 - * @return 부과 정보 + * @return 수납 정보 */ - public DataObject getLevyInfo(RcvmtQuery req) { - return rcvmtMapper.selectLevyInfo(req); + public DataObject getRcvmtInfo(RcvmtQuery req) { + return rcvmtMapper.selectRcvmtInfo(req); } /**수납 대장 정보를 등록한다. @@ -102,15 +103,15 @@ public class RcvmtBean extends AbstractComponent { */ public String createRcvmt(Rcvmt rcvmt) { // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 - // 부과 ID로 단속, 부과 정보 조회 - DataObject levyInfo = rcvmtMapper.selectLevyInfo(new RcvmtQuery().setLevyId(rcvmt.getLevyId()).setDelYN("N")); - String rcvmtSeCd = ""; // 수납 구분 코드(FIM041) + // 부과 ID로 부과 정보 조회 + DataObject levyInfo = levyMapper.selectLevyAmt(new LevyQuery().setLevyId(rcvmt.getLevyId())); - rcvmt.setDeptCd(levyInfo.string("DEPT_CD")); + String rcvmtSeCd = ""; // 수납 구분 코드(FIM041) + rcvmt.setDeptCd(levyInfo.string("DEPT_CD")); // 부서 코드 rcvmt.setLastPcptax(levyInfo.number("LAST_PCPTAX").intValue()); // 최종 본세 rcvmt.setLastAdamt(levyInfo.number("LAST_ADAMT").intValue()); // 최종 가산금 @@ -132,10 +133,10 @@ public class RcvmtBean extends AbstractComponent { rcvmt.setRcvmtPcptax(rcvmt.getLastPcptax()); // 수납 본세 rcvmt.setRcvmtAdamt(rcvmt.getRcvmtAmt() - rcvmt.getLastPcptax()); // 수납 가산금 } else { - rcvmt.setRcvmtPcptax(rcvmt.getRcvmtAmt()); // 수납 본세 - rcvmt.setRcvmtAdamt(0); // 수납 가산금 + rcvmt.setRcvmtPcptax(rcvmt.getRcvmtAmt()); // 수납 본세 + rcvmt.setRcvmtAdamt(0); // 수납 가산금 } - rcvmtSeCd = "06"; // 수납 구분 코드 = 일부수납 + rcvmtSeCd = "06"; // 수납 구분 코드 = 일부수납 } else { throw new RuntimeException("수납 등록 중 수납금액 계산에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } @@ -145,7 +146,7 @@ public class RcvmtBean extends AbstractComponent { rcvmt.setRcvmtSeCd(rcvmtSeCd); } - rtnScs = rcvmtMapper.insert(rcvmt); // 수납 대장 등록 + rtnScs = rcvmtMapper.insert(rcvmt); // 수납 대장 등록 if (!rtnScs) { throw new RuntimeException("수납 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } @@ -161,7 +162,7 @@ public class RcvmtBean extends AbstractComponent { levy.setRcvmtYmd(rcvmt.getRcvmtYmd()); // 수납 일자 levy.setPayMthdSeCd(rcvmt.getPayMthdSeCd()); // 납부 방법 구분 코드 - rtnScs = levyMapper.updateRcvmtAmt(levy); // 부과 대장 수정 + rtnScs = levyMapper.updateRcvmt(levy); // 부과 대장 수정 if (!rtnScs) { throw new RuntimeException("부과 대장에 수납금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } @@ -283,7 +284,7 @@ public class RcvmtBean extends AbstractComponent { // 수납구분코드(RCVMT_SE_CD)가 이중 수납이 아니라면.. if (!rcvmtInfo.string("RCVMT_SE_CD").equals("02")) { // 부과 ID로 단속, 부과 정보 조회 - DataObject levyInfo = rcvmtMapper.selectLevyInfo(new RcvmtQuery().setLevyId(rcvmtInfo.string("LEVY_ID")).setDelYN("N")); + DataObject levyInfo = levyMapper.selectLevyAmt(new LevyQuery().setLevyId(rcvmtInfo.string("LEVY_ID"))); int rcvmtPcptax = levyInfo.number("RCVMT_PCPTAX").intValue() - rcvmtInfo.number("RCVMT_PCPTAX").intValue(); // 부과 수납본세 - 수납 수납본세 int rcvmtAdamt = levyInfo.number("RCVMT_ADAMT").intValue() - rcvmtInfo.number("RCVMT_ADAMT").intValue(); // 부과 수납가산금 - 수납 수납가산금 @@ -306,7 +307,7 @@ public class RcvmtBean extends AbstractComponent { levy.setPayMthdSeCd(levyInfo.string("PAY_MTHD_SE_CD")); // 납부 방법 구분 코드 } - rtnScs = levyMapper.updateRcvmtAmt(levy); // 부과 대장 수정 + rtnScs = levyMapper.updateRcvmt(levy); // 부과 대장 수정 if (!rtnScs) { throw new RuntimeException("부과 대장에 수납금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } diff --git a/src/main/java/cokr/xit/fims/rdca/Rdcamt.java b/src/main/java/cokr/xit/fims/rdca/Rdcamt.java new file mode 100644 index 00000000..8b985cda --- /dev/null +++ b/src/main/java/cokr/xit/fims/rdca/Rdcamt.java @@ -0,0 +1,85 @@ +package cokr.xit.fims.rdca; + +import lombok.Getter; +import lombok.Setter; +import cokr.xit.foundation.AbstractEntity; + +/** + * 감액 대장 + * @author JoJH + */ +@Getter +@Setter +public class Rdcamt extends AbstractEntity { + /** + * 감액 ID + */ + private String rdcamtId; + + /** + * 부과 ID + */ + private String levyId; + + /** + * 최종 본세 + */ + private Integer lastPcptax; + + /** + * 최종 가산금 + */ + private Integer lastAdamt; + + /** + * 감액 일자 + */ + private String rdcamtYmd; + + /** + * 감액 구분 코드 + */ + private String rdcamtSeCd; + + /** + * 감액 사유 코드 + */ + private String rdcamtRsnCd; + + /** + * 감액 본세 + */ + private Integer rdcamtPcptax; + + /** + * 감액 가산금 + */ + private Integer rdcamtAdamt; + + /** + * 감액 취소 여부 + */ + private String rdcamtRtrcnYn; + + /** + * 감액 취소 일자 + */ + private String rdcamtRtrcnYmd; + + /** + * 감액 취소 사유 + */ + private String rdcamtRtrcnRsn; + + /** + * 삭제 여부 + */ + private String delYN; + + /** + * 삭제 사유 + */ + private String delRsn; + +} + diff --git a/src/main/java/cokr/xit/fims/rdca/RdcamtQuery.java b/src/main/java/cokr/xit/fims/rdca/RdcamtQuery.java new file mode 100644 index 00000000..c7efa964 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rdca/RdcamtQuery.java @@ -0,0 +1,110 @@ +package cokr.xit.fims.rdca; + +import cokr.xit.fims.cmmn.CmmnQuery; + +/**감액 대장 정보 조회 요청 + * + *

    상세 설명: + * + *

    + * ============ 변경 이력 ============
    + * 2024-02-01	JoJH 최초 작성
    + * ================================
    + * 
    + */ +public class RdcamtQuery extends CmmnQuery { + + private static final long serialVersionUID = 1L; + + // ID + private String[] rdcamtIDs; // 감액 IDs + private String rdcamtId; // 감액 ID + private String[] levyIDs; // 부과 IDs + private String levyId; // 부과 ID + + // 검색 조건 + private String schLevyExclYmdFrom; // 부과제외_부과제외 일자 시작 + private String schLevyExclYmdTo; // 부과제외_부과제외 일자 종료 + // 상세 검색 조건 + + // 동적 검색 조건 + + // ETC + private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회). + private String delRsn; // 삭제 사유 + + + public String[] getRdcamtIDs() { + return ifEmpty(rdcamtIDs, () -> null); + } + + public T setRdcamtIDs(String... rdcamtIDs) { + this.rdcamtIDs = rdcamtIDs; + return self(); + } + + public String getRdcamtId() { + return ifEmpty(rdcamtId, () -> null); + } + + public T setRdcamtId(String rdcamtId) { + this.rdcamtId = rdcamtId; + return self(); + } + + public String[] getLevyIDs() { + return ifEmpty(levyIDs, () -> null); + } + + public T setLevyIDs(String... levyIDs) { + this.levyIDs = levyIDs; + return self(); + } + + public String getLevyId() { + return ifEmpty(levyId, () -> null); + } + + public T setLevyId(String levyId) { + this.levyId = levyId; + return self(); + } + + public String getSchLevyExclYmdFrom() { + return ifEmpty(schLevyExclYmdFrom, () -> null); + } + + public T setSchLevyExclYmdFrom(String schLevyExclYmdFrom) { + this.schLevyExclYmdFrom = schLevyExclYmdFrom; + return self(); + } + + public String getSchLevyExclYmdTo() { + return ifEmpty(schLevyExclYmdTo, () -> null); + } + + public T setSchLevyExclYmdTo(String schLevyExclYmdTo) { + this.schLevyExclYmdTo = schLevyExclYmdTo; + return self(); + } + + // ETC ///////////////////////////////////////////////////////////////////// + public String getCallPurpose() { + return ifEmpty(callPurpose, () -> null); + } + + public T setCallPurpose(String callPurpose) { + this.callPurpose = callPurpose; + return self(); + } + + public String getDelRsn() { + return ifEmpty(delRsn, () -> null); + } + + public T setDelRsn(String delRsn) { + this.delRsn = delRsn; + return self(); + } + // ETC ///////////////////////////////////////////////////////////////////// +} diff --git a/src/main/java/cokr/xit/fims/rdca/dao/RdcamtMapper.java b/src/main/java/cokr/xit/fims/rdca/dao/RdcamtMapper.java new file mode 100644 index 00000000..6bf03ae2 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rdca/dao/RdcamtMapper.java @@ -0,0 +1,117 @@ +package cokr.xit.fims.rdca.dao; + +import java.util.List; +import java.util.Map; + +import org.egovframe.rte.psl.dataaccess.mapper.Mapper; + +import cokr.xit.foundation.component.AbstractMapper; +import cokr.xit.foundation.data.DataObject; +import cokr.xit.fims.rdca.Rdcamt; +import cokr.xit.fims.rdca.RdcamtQuery; + +/** 감액 대장 정보 DAO + * + *

    상세 설명: + * + *

    + * ============ 변경 이력 ============
    + * 2024-02-01	JoJH 최초 작성
    + * ================================
    + * 
    + */ +@Mapper("rdcamtMapper") +public interface RdcamtMapper extends AbstractMapper { + + /**지정한 조건에 따라 감액 대장 목록을 조회하여 반환한다.
    + * @param req 감액 대장 조회 조건 + * @return 감액 대장 목록 + */ + List selectRdcamtList(RdcamtQuery req); + + /**지정한 조건에 따라 감액 대장 객체들을 반환한다. + * @param req 감액 대장 조회 조건 + * @return 감액 대장 객체 목록 + */ + List selectRdcamts(RdcamtQuery req); + + /**지정한 조건에 따라 감액 대장 객체 1건을 반환한다. + * @param req 감액 대장 조회 조건 + * @return 감액 대장 객체 + */ + default DataObject selectRdcamtInfo(RdcamtQuery req) { + // 삭제 여부 확인 + if (req.getDelYN() == null) { + req.setDelYN("N"); + } + // 기본 정렬 + if (req.getOrderBy() == null) { + req.setOrderBy("R.RDCAMT_ID DESC"); + } + + List rdcamts = selectRdcamts(req); + + return !rdcamts.isEmpty() ? rdcamts.get(0) : null; + } + + /**감액 대장 정보를 등록한다. + * @param params 파라미터 + *
    • "rdcamt" - 감액 대장
    • + *
    • "currentUser" - 현재 접속한 사용자
    • + *
    + * @return 저장된 정보수 + */ + int insertRdcamt(Map params); + + /**감액 대장 정보를 등록한다. + * @param rdcamt 감액 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + default boolean insert(Rdcamt rdcamt) { + return rdcamt != null && insertRdcamt(params().set("rdcamt", rdcamt)) == 1; + } + + /**감액 대장 정보를 수정한다. + * @param params 파라미터 + *
    • "rdcamt" - 감액 대장
    • + *
    • "currentUser" - 현재 접속한 사용자
    • + *
    + * @return 저장된 정보수 + */ + int updateRdcamt(Map params); + + /**감액 대장 정보를 수정한다. + * @param rdcamt 감액 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + default boolean update(Rdcamt rdcamt) { + return rdcamt != null && updateRdcamt(params().set("rdcamt", rdcamt)) == 1; + } + + /**지정한 감액 대장을 삭제한다. + * @param params 파라미터 + *
    • "rdcamt" - 감액 대장
    • + *
    • "currentUser" - 현재 접속한 사용자
    • + *
    + * @return 저장된 정보수 + */ + int deleteRdcamt(Map params); + + /**감액 대장 정보를 삭제한다. + * @param rdcamt 감액 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + default boolean delete(Rdcamt rdcamt) { + return rdcamt != null && deleteRdcamt(params().set("rdcamt", rdcamt)) == 1; + } + +} diff --git a/src/main/java/cokr/xit/fims/rdca/service/RdcamtService.java b/src/main/java/cokr/xit/fims/rdca/service/RdcamtService.java new file mode 100644 index 00000000..80f08209 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rdca/service/RdcamtService.java @@ -0,0 +1,66 @@ +package cokr.xit.fims.rdca.service; + +import java.util.List; + +import cokr.xit.foundation.data.DataObject; +import cokr.xit.fims.rdca.Rdcamt; +import cokr.xit.fims.rdca.RdcamtQuery; + +/**감액 대장 관리 서비스 인터페이스. + * + *

    상세 설명: + * + *

    + * ============ 변경 이력 ============
    + * 2024-02-01	JoJH 최초 작성
    + * ================================
    + * 
    + */ +public interface RdcamtService { + + /**지정한 조건에 따라 감액 대장 목록을 조회하여 반환한다. + * @param req 감액 대장 조회 조건 + * @return 감액 대장 목록 + */ + List getRdcamtList(RdcamtQuery req); + + /**지정한 조건에 따라 감액 대장 객체들을 반환한다. + * @param req 감액 대장 조회 조건 + * @return 감액 대장 객체 목록 + */ + List getRdcamts(RdcamtQuery req); + + /**지정한 조건에 따라 감액 대장 정보 1건을 반환한다.
    + * @param req 감액 대장 조회 조건 + * @return 감액 대장 객체 + */ + DataObject getRdcamtInfo(RdcamtQuery req); + + /**감액 대장 정보를 등록한다. + * @param rdcamt 감액 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + String createRdcamt(Rdcamt rdcamt); + + /**감액 대장 정보를 수정한다. + * @param rdcamt 감액 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + String updateRdcamt(Rdcamt rdcamt); + + /**감액 대장 정보를 삭제한다. + * @param rdcamt 감액 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + String removeRdcamt(Rdcamt rdcamt); + +} diff --git a/src/main/java/cokr/xit/fims/rdca/service/bean/RdcamtBean.java b/src/main/java/cokr/xit/fims/rdca/service/bean/RdcamtBean.java new file mode 100644 index 00000000..ff4654ca --- /dev/null +++ b/src/main/java/cokr/xit/fims/rdca/service/bean/RdcamtBean.java @@ -0,0 +1,189 @@ +package cokr.xit.fims.rdca.service.bean; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Component; + +import cokr.xit.foundation.AbstractComponent; +import cokr.xit.foundation.data.DataObject; +import cokr.xit.fims.cmmn.CmmnUtil; +import cokr.xit.fims.levy.Levy; +import cokr.xit.fims.levy.LevyQuery; +import cokr.xit.fims.levy.dao.LevyMapper; +import cokr.xit.fims.rdca.Rdcamt; +import cokr.xit.fims.rdca.RdcamtQuery; +import cokr.xit.fims.rdca.dao.RdcamtMapper; + +/**감액 대장 정보 관리 Bean + * + *

    상세 설명: + * + *

    + * ============ 변경 이력 ============
    + * 2024-02-01	JoJH 최초 작성
    + * ================================
    + * 
    + */ +@Component("rdcamtBean") +public class RdcamtBean extends AbstractComponent { + + /** 감액 대장 정보 DAO */ + @Resource(name = "rdcamtMapper") + private RdcamtMapper rdcamtMapper; + + /** 부과 대장 정보 DAO */ + @Resource(name = "levyMapper") + private LevyMapper levyMapper; + + /**지정한 조건에 따라 감액 대장 목록을 조회하여 반환한다. + * @param req 감액 대장 조회 조건 + * @return 감액 대장 목록 + */ + public List getRdcamtList(RdcamtQuery req) { + // 삭제 여부 확인 + if (req.getDelYN() == null) { + req.setDelYN("N"); + } + // 정렬 확인 + if (req.getOrderBy() == null) { + if (req.getBy() == null) { + req.setOrderBy("REG_DT"); + } else { + req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy())); + } + } + + return rdcamtMapper.selectRdcamtList(req); + } + + /**지정한 조건에 따라 감액 대장 객체들을 반환한다. + * @param req 감액 대장 조회 조건 + * @return 감액 대장 객체 목록 + */ + public List getRdcamts(RdcamtQuery req) { + // 삭제 여부 확인 + if (req.getDelYN() == null) { + req.setDelYN("N"); + } + if (req.getOrderBy() == null) { + req.setOrderBy("R.RDCAMT_ID DESC"); + } + + return rdcamtMapper.selectRdcamts(req); + } + + /**지정한 조건에 따라 감액 대장 객체 1건을 반환한다. + * @param req 감액 대장 조회 조건 + * @return 감액 대장 객체 + */ + public DataObject getRdcamtInfo(RdcamtQuery req) { + DataObject rdcamtInfo = new DataObject(); + +// if (req.getCallPurpose().equals("create")) { +// rdcamtInfo = rdcamtMapper.selectCrdnInfo(req); +// } else { + rdcamtInfo = rdcamtMapper.selectRdcamtInfo(req); +// } + + return rdcamtInfo; + } + + /**감액 대장 정보를 등록한다. + * @param rdcamt 감액 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + public String createRdcamt(Rdcamt rdcamt) { + // 변수 선언 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + // 부과 ID로 부과 정보 조회 + DataObject levyInfo = levyMapper.selectLevyAmt(new LevyQuery().setLevyId(rdcamt.getLevyId())); + + // 부과 확인 + + // 부과(TB_LEVY) 대장 정보를 수정한다. + Levy levy = new Levy(); + + // 부과 취소(전액감액) + if (rdcamt.getRdcamtSeCd().equals("02")) { + rdcamt.setLastPcptax(levyInfo.number("LAST_PCPTAX").intValue()); + rdcamt.setLastAdamt(levyInfo.number("LAST_ADAMT").intValue()); + rdcamt.setRdcamtPcptax(levyInfo.number("LAST_PCPTAX").intValue()); + rdcamt.setRdcamtAdamt(levyInfo.number("LAST_ADAMT").intValue()); + } + + levy.setLevyId(levyInfo.string("LEVY_ID")); // 부과 ID + levy.setRdcamtPcptax(levyInfo.number("RDCAMT_PCPTAX").intValue() + rdcamt.getRdcamtPcptax()); // 감액 본세 + levy.setRdcamtAdamt(levyInfo.number("RDCAMT_ADAMT").intValue() + rdcamt.getRdcamtAdamt()); // 감액 가산금 + levy.setSumAmt(levyInfo.number("SUM_AMT").intValue() - rdcamt.getRdcamtPcptax() - rdcamt.getRdcamtAdamt()); // 합계 금액 + levy.setDudtAftrAmt(levyInfo.number("DUDT_AFTR_AMT").intValue() - rdcamt.getRdcamtPcptax() - rdcamt.getRdcamtAdamt()); // 납기 후 금액 + + rtnScs = levyMapper.updateRdcamt(levy); + if (!rtnScs) { + throw new RuntimeException("부과 대장의 감액 금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + // 감액(TB_RDCAMT) 대장 정보를 등록한다. + rtnScs = rdcamtMapper.insert(rdcamt); + if (!rtnScs) { + throw new RuntimeException("감액 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; + + return rtnMsg; + } + + /**감액 대장 정보를 수정한다. + * @param rdcamt 감액 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + public String updateRdcamt(Rdcamt rdcamt) { + // 변수 선언 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + // 감액(TB_RDCAMT) 대장 정보를 수정한다. + rtnScs = rdcamtMapper.update(rdcamt); + if (!rtnScs) { + throw new RuntimeException("감액 대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; + + return rtnMsg; + } + + /**감액 대장 정보를 삭제한다. + * @param rdcamt 감액 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + public String removeRdcamt(Rdcamt rdcamt) { + // 변수 선언 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + // 감액(TB_RDCAMT) 대장 정보를 삭제한다. + rtnScs = rdcamtMapper.delete(rdcamt); + if (!rtnScs) { + throw new RuntimeException("감액 정보 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; + + return rtnMsg; + } + +} diff --git a/src/main/java/cokr/xit/fims/rdca/service/bean/RdcamtServiceBean.java b/src/main/java/cokr/xit/fims/rdca/service/bean/RdcamtServiceBean.java new file mode 100644 index 00000000..9c9a3211 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rdca/service/bean/RdcamtServiceBean.java @@ -0,0 +1,62 @@ +package cokr.xit.fims.rdca.service.bean; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import cokr.xit.foundation.component.AbstractServiceBean; +import cokr.xit.foundation.data.DataObject; +import cokr.xit.fims.rdca.Rdcamt; +import cokr.xit.fims.rdca.RdcamtQuery; +import cokr.xit.fims.rdca.service.RdcamtService; + +/**감액 대장 서비스 구현체. + * + *

    상세 설명: + * + *

    + * ============ 변경 이력 ============
    + * 2024-02-01	JoJH 최초 작성
    + * ================================
    + * 
    + */ +@Service("rdcamtService") +public class RdcamtServiceBean extends AbstractServiceBean implements RdcamtService { + + /** 감액 대장 정보 Bean */ + @Resource(name = "rdcamtBean") + private RdcamtBean rdcamtBean; + + @Override + public List getRdcamtList(RdcamtQuery req) { + return rdcamtBean.getRdcamtList(req); + } + + @Override + public List getRdcamts(RdcamtQuery req) { + return rdcamtBean.getRdcamts(req); + } + + @Override + public DataObject getRdcamtInfo(RdcamtQuery req) { + return rdcamtBean.getRdcamtInfo(req); + } + + @Override + public String createRdcamt(Rdcamt rdcamt) { + return rdcamtBean.createRdcamt(rdcamt); + } + + @Override + public String updateRdcamt(Rdcamt rdcamt) { + return rdcamtBean.updateRdcamt(rdcamt); + } + + @Override + public String removeRdcamt(Rdcamt rdcamt) { + return rdcamtBean.removeRdcamt(rdcamt); + } + +} diff --git a/src/main/java/cokr/xit/fims/rdca/web/Rdca01Controller.java b/src/main/java/cokr/xit/fims/rdca/web/Rdca01Controller.java new file mode 100644 index 00000000..3754938c --- /dev/null +++ b/src/main/java/cokr/xit/fims/rdca/web/Rdca01Controller.java @@ -0,0 +1,234 @@ +package cokr.xit.fims.rdca.web; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.apache.poi.ss.usermodel.CellStyle; +import org.springframework.web.servlet.ModelAndView; + +import com.fasterxml.jackson.core.type.TypeReference; + +import cokr.xit.base.code.CommonCode; +import cokr.xit.base.file.xls.XLSWriter; +import cokr.xit.base.file.xls.XLSWriter.CellDef; +import cokr.xit.base.file.xls.XLSWriter.Styler; +import cokr.xit.base.user.ManagedUser; +import cokr.xit.base.web.ApplicationController; +import cokr.xit.fims.cmmn.CmmnUtil; +import cokr.xit.fims.cmmn.service.bean.StngBean; +import cokr.xit.fims.rdca.Rdcamt; +import cokr.xit.fims.rdca.RdcamtQuery; +import cokr.xit.fims.rdca.service.RdcamtService; +import cokr.xit.foundation.data.DataObject; + +/**감액 대장 서비스의 웹 컨트롤러 + * + *

    상세 설명: + * + *

    + * ============ 변경 이력 ============
    + * 2024-02-01	JoJH 최초 작성
    + * ================================
    + * 
    + */ +public class Rdca01Controller extends ApplicationController { + + public static final String CLASS_URL = "/rdca/rdca01"; + + public class METHOD_URL { + public static final String + reducedAmountMain = "/010/main.do" // 감액 관리 메인 화면 + , getReducedAmountList = "/010/list.do" // 감액 대장 목록 조회 + , getReducedAmountInfo = "/020/info.do" // 감액 대장 조회 + , createReducedAmount = "/020/create.do" // 감액 대장 등록 + , updateReducedAmount = "/020/update.do" // 감액 대장 수정 + , removeReducedAmount = "/010/remove.do" // 감액 대장 삭제 + ; + } + + /**감액 대장 서비스*/ + @Resource(name = "rdcamtService") + private RdcamtService rdcamtService; + + @Resource(name = "stngBean") + private StngBean stngBean; + + /**감액 대장 관리 메인화면(rdcamt/rdcamt-main)을 연다. + * 조건없는 {@link #getRdcamtList(RdcamtQuery) 감액 대장 조회 결과}를 포함시킨다. + * @return /rdcamt/rdcamt-main + */ + public ModelAndView reducedAmountMain() { + ModelAndView mav = new ModelAndView("fims/rdca/rdca01010-main"); + + // 사용자 정보 + ManagedUser managedUser = (ManagedUser)currentUser().getUser(); + + // View(jsp)에서 사용할 공통코드를 조회 + Map> commonCodes = getCodesOf("FIM021", "FIM022", "FIM054", "FIM085"); + + addCodes(commonCodes, mav, "FIM021", "FIM022", "FIM085"); + + return mav + .addObject("pageName", "rdca01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix + .addObject("infoPrefix", "rdcamt") // prefix + .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) + .addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) + .addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD) + .addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD) + .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) + .addObject("FIM085List", commonCodes.get("FIM085")) // 감액 구분 코드(RDCAMT_SE_CD) + ; + } + + /**감액 대장 목록을 조회하여 반환한다.
    + * {@link RdcamtService#getRdcamtList(RdcamtQuery)} 참고 + * @param req 감액 대장 조회 조건 + * @return jsonView + *
     {
    +	 *     "rdcamtList": [감액 대장 목록]
    +	 *     "rdcamtStart": 감액 대장 목록 시작 인덱스
    +	 *     "rdcamtFetch": 한 번에 가져오는 감액 대장 목록 수
    +	 *     "rdcamtTotal": 조회 결과 찾은 전체 감액 대장 수
    +	 * }
    + */ + public ModelAndView getReducedAmountList(RdcamtQuery req) { + if (!"xls".equals(req.getDownload())) { + List result = rdcamtService.getRdcamtList(setFetchSize(req)); + return setCollectionInfo(new ModelAndView("jsonView"), result, "rdcamt"); + } else { + // 현재 날짜 구하기 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String dateTime = dateFormat.format(System.currentTimeMillis()); + + ArrayList cellDefs = fromJson(req.getCellDefs(), new TypeReference>() {}); + + XLSWriter xlsx = new XLSWriter() + .setFilename("감액" + "_목록_" + dateTime + ".xlsx") + .worksheet(0); + + // CellStyle 지정은 여기에서.. + CellStyle center = xlsx.cellStyle(Styler.CENTER); // 가운데 정렬 + CellStyle numeric = xlsx.n_nn0(); // 숫자 3자리 콤마(,) + CellStyle dateYMD = xlsx.yyyy_mm_dd(); // 연월일 + CellStyle dateDT = xlsx.yyyy_mm_dd_hh_mm_ss(); // 연월일+시간 + + List list = rdcamtService.getRdcamtList(req.setFetchSize(0)); + + CellDef.setValues(cellDefs, Map.ofEntries( + Map.entry("업무구분", xlsx.style("TASK_SE_NM", center)) + , Map.entry("부과제외일자", xlsx.format(o -> xlsx.str2date(o.get("LEVY_EXCL_YMD"))).style(dateYMD)) + , Map.entry("부과제외구분", xlsx.style("LEVY_EXCL_SE_NM", center)) + , Map.entry("부과제외사유", "LEVY_EXCL_RSN_NM") + , Map.entry("기타내용", "ETC_CN") + , Map.entry("민원신청번호", xlsx.style("CVLCPT_APLY_NO", center)) + , Map.entry("민원접수번호", xlsx.style("CVLCPT_RCPT_NO", center)) + , Map.entry("민원접수일자", xlsx.format(o -> xlsx.str2date(o.get("CVLCPT_RCPT_YMD"))).style(dateYMD)) + , Map.entry("단속일시", xlsx.format(o -> xlsx.str2datetime(o.get("CRDN_YMD_TM"))).style(dateDT)) + , Map.entry("차량번호", "VHRNO") + , Map.entry("납부자구분", xlsx.style("RTPYR_SE_NM", center)) + , Map.entry("납부자번호", xlsx.style("RTPYR_NO", center)) + , Map.entry("납부자명", "RTPYR_NM") + , Map.entry("단속법정동", xlsx.style("CRDN_STDG_NM", center)) + , Map.entry("단속장소", "CRDN_PLC") + , Map.entry("상세단속장소", "DTL_CRDN_PLC") + , Map.entry("위반항목", "VLTN_ARTCL") + , Map.entry("최초단속금액", xlsx.style("FFNLG_CRDN_AMT", numeric)) + , Map.entry("처리상태", "CRDN_STTS_NM") + , Map.entry("단속특별구역", xlsx.style("CRDN_SPAREA_NM", center)) + , Map.entry("사용연료", xlsx.style("USE_FUEL_NM", center)) + , Map.entry("주차가능여부", xlsx.style("PARKNG_PSBLTY_RSLT_NM", center)) + , Map.entry("우편번호", xlsx.style("ZIP", center)) + , Map.entry("주소", "ADDR") + , Map.entry("상세주소", "DTL_ADDR") + , Map.entry("등록일시", xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT)) + , Map.entry("등록사용자", xlsx.style("RGTR_NM", center)) + , Map.entry("수정일시", xlsx.format(o -> xlsx.str2datetime(o.get("MDFCN_DT"))).style(dateDT)) + , Map.entry("수정사용자", xlsx.style("MDFR_NM", center)) + ) + ); + + xlsx.cell(0, 0) + .value("감액", center) + .merge(0, cellDefs.size() - 1) + .cell(3, 0) + .rowValues(CellDef.header(cellDefs, () -> CmmnUtil.headerStyle(xlsx))) + .cell(4, 0) + .values(list, CellDef.values(cellDefs)); + + return new ModelAndView("xlsView") + .addObject("xls", xlsx); + } + } + + /**감액 대장를 등록한다. + * @param rdcamt 감액 대장 정보 + * @return jsonView + *
     {
    +	 *     "saved": 등록되었으면 true, 그렇지 않으면 false
    +	 * }
    + */ + public ModelAndView createReducedAmount(Rdcamt rdcamt) { + boolean saved = false; + String rtnMsg = rdcamtService.createRdcamt(rdcamt); + + if (rtnMsg.contains("[S]")) { + saved = true; + } else { + saved = false; + } + + return new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("rtnMsg", rtnMsg); + } + + /**감액 대장 정보를 수정한다. + * @param rdcamt 감액 대장 정보 + * @return jsonView + *
     {
    +	 *     "saved": 수정되었으면 true, 그렇지 않으면 false
    +	 * }
    + */ + public ModelAndView updateReducedAmount(Rdcamt rdcamt) { + boolean saved = false; + String rtnMsg = rdcamtService.updateRdcamt(rdcamt); + + if (rtnMsg.contains("[S]")) { + saved = true; + } else { + saved = false; + } + + return new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("rtnMsg", rtnMsg); + } + + /**지정한 감액 대장를 제거한다. + * @param rdcamtIDs 감액 대장 아이디 + * @return jsonView + *
     {
    +	 *     "affected": 저장된 정보수
    +	 *     "saved": 저장되었으면 true, 그렇지 않으면 false
    +	 * }
    + */ + public ModelAndView removeReducedAmount(Rdcamt rdcamt) { + boolean saved = false; + String rtnMsg = rdcamtService.removeRdcamt(rdcamt); + + if (rtnMsg.contains("[S]")) { + saved = true; + } else { + saved = false; + } + + return new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("rtnMsg", rtnMsg); + } + +} 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 31799e1a..301b3ad1 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 @@ -1164,12 +1164,12 @@ public class SndngBean extends AbstractComponent { // OCR 1번째 줄 54 // band1 = 부서코드 + 회계연도 + 회계구분 + 세목코드 + 고지번호 + 분납순번 - band1 = sndngDtlInfo.string("DEPT_CD") + "0000" + band1 = sndngDtlInfo.string("DEPT_CD") + sndngDtlInfo.string("SPCL_BIZ_CD") + sndngDtlInfo.string("FYR") + sndngDtlInfo.string("ACNTG_SE_CD") + sndngDtlInfo.string("TXITM_CD") + sndngDtlInfo.string("LEVY_NO") - + sndngDtlInfo.string("INSPY_SN"); + + sndngDtlInfo.string("INSPY_NO"); ocrVrfcCode = getOcrVrfcCode("12357", band1, 31); band1 = band1 + ocrVrfcCode; diff --git a/src/main/resources/sql/mapper/fims/excl/crdnReReg-mapper.xml b/src/main/resources/sql/mapper/fims/excl/crdnReReg-mapper.xml index 593c3976..e50089cb 100644 --- a/src/main/resources/sql/mapper/fims/excl/crdnReReg-mapper.xml +++ b/src/main/resources/sql/mapper/fims/excl/crdnReReg-mapper.xml @@ -33,7 +33,6 @@ , CRR.DEL_YN , CRR.REG_DT , CRR.DEL_DT - , CRR.DEL_RSN , (SELECT GET_CODE_NM('FIM026', CRR.CRDN_REG_SE_CD) FROM DUAL) AS CRDN_REG_SE_NM , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CRR.RGTR) AS RGTR_NM , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CRR.DLTR) AS DLTR_NM @@ -66,33 +65,31 @@ , P.RTPYR_SE_CD , P.RTPYR_NO , P.RTPYR_NM - , P.RTPYR_BRDT , P.ZIP , P.ADDR , P.DTL_ADDR - , (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM - , (SELECT GET_BRDT_FORMAT(P.RTPYR_BRDT, '.') FROM DUAL) AS RTPYR_BRDT_MASK - FROM TB_CRDN_RE_REG CRR - INNER JOIN TB_CRDN C ON (CRR.CRDN_ID = C.CRDN_ID) - INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) - INNER JOIN TB_VLTN V ON (C.VLTN_ID = V.VLTN_ID) - LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) + , (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM + , (SELECT GET_BRDT_FORMAT(P.RTPYR_BRDT, '.') FROM DUAL) AS RTPYR_BRDT_MASK + FROM TB_CRDN_RE_REG CRR + INNER JOIN TB_CRDN C ON (CRR.CRDN_ID = C.CRDN_ID) + INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) + INNER JOIN TB_VLTN V ON (C.VLTN_ID = V.VLTN_ID) + LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) /* 단속 재등록 객체 가져오기(crdnReRegMapper.selectCrdnReRegs) */ - - AND C.CRDN_ID = #{crdnId} - AND C.DEL_YN = 'N' - AND CRR.RE_REG_ID IN ( #{reRegId} @@ -184,6 +179,9 @@ AND CRR.DEL_YN = #{delYN} + + AND C.CRDN_ID = #{crdnId} + @@ -207,29 +205,29 @@ , RGTR ) VALUES ( - #{crdnReReg.reRegId} - , #{crdnReReg.bfrCrdnId} - , #{crdnReReg.crdnId} - , - , #{crdnReReg.crdnRegSeCd} - , #{crdnReReg.etcCn} - , 'N' - , - , #{crdnReReg.createdBy} + #{crdnReReg.reRegId} + , #{crdnReReg.bfrCrdnId} + , #{crdnReReg.crdnId} + , + , #{crdnReReg.crdnRegSeCd} + , #{crdnReReg.etcCn} + , 'N' + , + , #{crdnReReg.createdBy} ) /* 단속 재등록 삭제(crdnReRegMapper.deleteCrdnReReg) */ UPDATE TB_CRDN_RE_REG - SET DEL_YN = 'Y' - , DEL_DT = - , DLTR = #{crdnReReg.modifiedBy} - , DEL_RSN = #{crdnReReg.delRsn} - WHERE RE_REG_ID = #{crdnReReg.reRegId} - AND DEL_YN = 'N' + SET DEL_YN = 'Y' + , DEL_DT = + , DLTR = #{crdnReReg.modifiedBy} + , DEL_RSN = #{crdnReReg.delRsn} + WHERE RE_REG_ID = #{crdnReReg.reRegId} + AND DEL_YN = 'N' - /* 단속 재등록 객체 가져오기(crdnReRegMapper.selectCrdnInfo) */ SELECT C.CRDN_ID , C.SGG_CD , C.TASK_SE_CD @@ -285,10 +283,10 @@ , CA.VLTN_NMTM , CA.OVTIME_YN , (SELECT VLTN_CD FROM TB_VLTN X WHERE X.VLTN_ID=C.VLTN_ID AND X.SGG_CD=C.SGG_CD AND X.TASK_SE_CD=C.TASK_SE_CD) AS VLTN_CD - FROM TB_CRDN C - INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) - WHERE C.CRDN_ID = #{crdnId} - AND C.DEL_YN = 'N' + FROM TB_CRDN C + INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) + WHERE C.CRDN_ID = #{crdnId} + AND C.DEL_YN = 'N' diff --git a/src/main/resources/sql/mapper/fims/excl/levyExcl-mapper.xml b/src/main/resources/sql/mapper/fims/excl/levyExcl-mapper.xml index ba35cf61..a21c2c32 100644 --- a/src/main/resources/sql/mapper/fims/excl/levyExcl-mapper.xml +++ b/src/main/resources/sql/mapper/fims/excl/levyExcl-mapper.xml @@ -36,7 +36,6 @@ , LE.REG_DT , LE.MDFCN_DT , LE.DEL_DT - , LE.DEL_RSN , (SELECT GET_CODE_NM('FIM021', LE.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM , (SELECT GET_CODE_NM('FIM022', LE.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.RGTR) AS RGTR_NM @@ -68,7 +67,6 @@ , P.RTPYR_SE_CD , P.RTPYR_NO , P.RTPYR_NM - , P.RTPYR_BRDT , P.ZIP , P.ADDR , P.DTL_ADDR @@ -79,7 +77,6 @@ , CC.CVLCPT_APLY_NO , CC.CVLCPT_RCPT_NO , CC.CVLCPT_PRCS_CD - , CC.CVLCPT_PRCS_CMPTN_DT , (SELECT GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD) FROM DUAL) AS CVLCPT_PRCS_NM FROM TB_LEVY_EXCL LE INNER JOIN TB_CRDN C ON (LE.CRDN_ID = C.CRDN_ID) @@ -92,101 +89,105 @@ @@ -217,58 +218,33 @@ , C.CRDN_STTS_CD , C.CRDN_STTS_CHG_DT , (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM - , (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM - , CA.PARKNG_PSBLTY_RSLT_CD + , (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM FROM TB_LEVY_EXCL LE - LEFT OUTER JOIN TB_CRDN C ON (LE.CRDN_ID = C.CRDN_ID) - LEFT OUTER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) + INNER JOIN TB_CRDN C ON (LE.CRDN_ID = C.CRDN_ID) - - /* 부과제외 대장 등록(levyExclMapper.insertLevyExcl) */ SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(LEVY_EXCL_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID @@ -306,90 +282,115 @@ /* 부과제외 대장 수정(levyExclMapper.updateLevyExcl) */ UPDATE TB_LEVY_EXCL - SET LEVY_EXCL_YMD = #{levyExcl.levyExclYmd} - , LEVY_EXCL_RSN_CD = #{levyExcl.levyExclRsnCd} - , ETC_CN = #{levyExcl.etcCn} - , MDFCN_DT = - , MDFR = #{levyExcl.modifiedBy} - WHERE LEVY_EXCL_ID = #{levyExcl.levyExclId} - AND DEL_YN = 'N' + SET LEVY_EXCL_YMD = #{levyExcl.levyExclYmd} + , LEVY_EXCL_RSN_CD = #{levyExcl.levyExclRsnCd} + , ETC_CN = #{levyExcl.etcCn} + , MDFCN_DT = + , MDFR = #{levyExcl.modifiedBy} + WHERE LEVY_EXCL_ID = #{levyExcl.levyExclId} + AND DEL_YN = 'N' /* 부과제외 대장 삭제(levyExclMapper.deleteLevyExcl) */ UPDATE TB_LEVY_EXCL - SET DEL_YN = 'Y' - , DEL_DT = - , DLTR = #{levyExcl.modifiedBy} - , DEL_RSN = #{levyExcl.delRsn} - WHERE LEVY_EXCL_ID = #{levyExcl.levyExclId} - AND DEL_YN = 'N' + SET DEL_YN = 'Y' + , DEL_DT = + , DLTR = #{levyExcl.modifiedBy} + , DEL_RSN = #{levyExcl.delRsn} + WHERE LEVY_EXCL_ID = #{levyExcl.levyExclId} + AND DEL_YN = 'N' + + - /* 단속민원 대장 민원처리결과내용 초기화(levyExclMapper.updateCvlcptPrcsRsltCn) */ + /* 단속민원 대장 민원처리결과내용 초기화(levyExclMapper.updateCrdnCvlcptPrcsRsltCn) */ UPDATE TB_CRDN_CVLCPT - SET CVLCPT_PRCS_SUMRY = NULL - , CVLCPT_PRCS_RSLT_CN = NULL - , MDFCN_DT = - , MDFR = #{crdnCvlcpt.modifiedBy} - WHERE CVLCPT_LINK_ID = #{crdnCvlcpt.cvlcptLinkId} - AND DEL_YN = 'N' + SET CVLCPT_PRCS_SUMRY = NULL + , CVLCPT_PRCS_RSLT_CN = NULL + , CVLCPT_PRCS_CMPTN_DT = NULL + , MDFCN_DT = + , MDFR = #{crdnCvlcpt.modifiedBy} + WHERE CVLCPT_LINK_ID = #{crdnCvlcpt.cvlcptLinkId} + AND DEL_YN = 'N' /* 단속민원 대장 민원답변 수정(levyExclMapper.updateCrdnCvlcpt) */ UPDATE TB_CRDN_CVLCPT - SET CVLCPT_PRCS_CD = #{crdnCvlcpt.cvlcptPrcsCd} - , CVLCPT_PRCS_SUMRY = #{crdnCvlcpt.cvlcptPrcsSumry} - , CVLCPT_PRCS_RSLT_CN = #{crdnCvlcpt.cvlcptPrcsRsltCn} - , CVLCPT_PRCS_CMPTN_DT = #{crdnCvlcpt.cvlcptPrcsCmptnDt} - , CVLCPT_PRCS_PIC = #{crdnCvlcpt.cvlcptPrcsPic} - , CVLCPT_TRSM_CD = #{crdnCvlcpt.cvlcptTrsmCd} - , MDFCN_DT = - , MDFR = #{crdnCvlcpt.modifiedBy} - WHERE CVLCPT_LINK_ID = #{crdnCvlcpt.cvlcptLinkId} - AND DEL_YN = 'N' + SET CVLCPT_PRCS_CD = #{crdnCvlcpt.cvlcptPrcsCd} + , CVLCPT_PRCS_SUMRY = #{crdnCvlcpt.cvlcptPrcsSumry} + , CVLCPT_PRCS_RSLT_CN = #{crdnCvlcpt.cvlcptPrcsRsltCn} + , CVLCPT_PRCS_CMPTN_DT = #{crdnCvlcpt.cvlcptPrcsCmptnDt} + , CVLCPT_PRCS_PIC = #{crdnCvlcpt.cvlcptPrcsPic} + , CVLCPT_TRSM_CD = #{crdnCvlcpt.cvlcptTrsmCd} + , MDFCN_DT = + , MDFR = #{crdnCvlcpt.modifiedBy} + WHERE CVLCPT_LINK_ID = #{crdnCvlcpt.cvlcptLinkId} + AND DEL_YN = 'N' /* 단속 대장 주차가능결과코드를 수정(levyExclMapper.updateParkngPsbltyRsltCd) */ UPDATE TB_CRDN_ADI - SET PARKNG_PSBLTY_RSLT_CD= #{crdn.parkngPsbltyRsltCd} - , MDFCN_DT = - , MDFR = #{crdn.modifiedBy} - WHERE CRDN_ID = #{crdn.crdnId} - AND DEL_YN = 'N' + SET PARKNG_PSBLTY_RSLT_CD= #{crdn.parkngPsbltyRsltCd} + , MDFCN_DT = + , MDFR = #{crdn.modifiedBy} + WHERE CRDN_ID = #{crdn.crdnId} + AND DEL_YN = 'N' /* 발송상세 대장 수납코드를 수정(levyExclMapper.updateRcvmtCd) */ UPDATE TB_SNDNG_DTL - SET SNDNG_RCVMT_CD = NULL - , MDFCN_DT = - , MDFR = #{sndngDtl.modifiedBy} - WHERE CRDN_ID = #{sndngDtl.crdnId} - AND DEL_YN = 'N' + SET SNDNG_RCVMT_CD = NULL + , MDFCN_DT = + , MDFR = #{sndngDtl.modifiedBy} + WHERE CRDN_ID = #{sndngDtl.crdnId} + AND DEL_YN = 'N' diff --git a/src/main/resources/sql/mapper/fims/excl/opnnSbmsn-mapper.xml b/src/main/resources/sql/mapper/fims/excl/opnnSbmsn-mapper.xml index 00562cf4..99559ac6 100644 --- a/src/main/resources/sql/mapper/fims/excl/opnnSbmsn-mapper.xml +++ b/src/main/resources/sql/mapper/fims/excl/opnnSbmsn-mapper.xml @@ -50,34 +50,33 @@ - SELECT OS.OPNN_ID - , OS.RCPT_NO - , OS.RCPT_YMD - , OS.RCPT_SE_CD - , OS.OWNR_REL_CD - , OS.STTR_NM - , OS.STTR_BRDT - , OS.STTR_RRNO - , OS.STTR_ADDR - , OS.STTR_DADDR - , OS.STTR_ZIP - , OS.STTR_CTTPC - , OS.STTR_EML - , OS.OPNN_SBMSN_CN - , OS.OPNN_SBMSN_SE_CD - , OS.OPNN_SBMSN_GIST - , OS.DOC_NO - , OS.NTFCTN_SE_CD - , OS.PIC_RVW_OPNN - , OS.OPNN_SBMSN_STTS_CD - , OS.ANS_YMD - , OS.ANS_TM - , OS.ANS_CN - , OS.DEL_YN - , OS.REG_DT - , OS.MDFCN_DT - , OS.DEL_DT - , OS.DEL_RSN + SELECT OS.OPNN_ID + , OS.RCPT_NO + , OS.RCPT_YMD + , OS.RCPT_SE_CD + , OS.OWNR_REL_CD + , OS.STTR_NM + , OS.STTR_BRDT + , OS.STTR_RRNO + , OS.STTR_ADDR + , OS.STTR_DADDR + , OS.STTR_ZIP + , OS.STTR_CTTPC + , OS.STTR_EML + , OS.OPNN_SBMSN_CN + , OS.OPNN_SBMSN_SE_CD + , OS.OPNN_SBMSN_GIST + , OS.DOC_NO + , OS.NTFCTN_SE_CD + , OS.PIC_RVW_OPNN + , OS.OPNN_SBMSN_STTS_CD + , OS.ANS_YMD + , OS.ANS_TM + , OS.ANS_CN + , OS.DEL_YN + , OS.REG_DT + , OS.MDFCN_DT + , OS.DEL_DT , (CONCAT(OS.ANS_YMD, OS.ANS_TM)) AS ANS_YMD_TM , (SELECT GET_CODE_NM('FIM029', OS.RCPT_SE_CD) FROM DUAL) AS RCPT_SE_NM , (SELECT GET_CODE_NM('FIM032', OS.OWNR_REL_CD) FROM DUAL) AS OWNR_REL_NM @@ -88,46 +87,44 @@ , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = OS.RGTR) AS RGTR_NM , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = OS.MDFR) AS MDFR_NM , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = OS.DLTR) AS DLTR_NM - , C.CRDN_ID - , C.SGG_CD - , C.TASK_SE_CD - , C.CRDN_INPT_SE_CD - , C.VHRNO - , C.CRDN_STDG_NM - , C.CRDN_ROAD_NM - , C.CRDN_PLC - , C.FFNLG_CRDN_AMT - , C.FFNLG_AMT - , C.CRDN_STTS_CD + , C.CRDN_ID + , C.SGG_CD + , C.TASK_SE_CD + , C.CRDN_INPT_SE_CD + , C.VHRNO + , C.CRDN_STDG_NM + , C.CRDN_ROAD_NM + , C.CRDN_PLC + , C.FFNLG_CRDN_AMT + , C.FFNLG_AMT + , C.CRDN_STTS_CD , (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM - , (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM - , (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM - , (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM - , CA.CRDN_SE_CD - , CA.CRDN_SPAREA_CD + , (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM + , (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM + , (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM + , CA.CRDN_SE_CD + , CA.CRDN_SPAREA_CD , CA.PARKNG_PSBLTY_RSLT_CD - , (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM - , (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM + , (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM + , (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM , (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM - , V.VLTN_ID - , V.VLTN_CD - , V.VLTN_ARTCL - , P.RTPYR_ID - , P.RTPYR_SE_CD - , P.RTPYR_NO - , P.RTPYR_NM - , P.RTPYR_BRDT - , P.ZIP - , P.ADDR - , P.DTL_ADDR - , (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM - , (SELECT GET_BRDT_FORMAT(P.RTPYR_BRDT, '.') FROM DUAL) AS RTPYR_BRDT_MASK - , R.RDUCT_ID - , R.RDUCT_RSN_CD - , R.ETC_CN AS RDUCT_ETC_CN + , V.VLTN_ID + , V.VLTN_CD + , V.VLTN_ARTCL + , P.RTPYR_ID + , P.RTPYR_SE_CD + , P.RTPYR_NO + , P.RTPYR_NM + , P.ZIP + , P.ADDR + , P.DTL_ADDR + , (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM + , (SELECT GET_BRDT_FORMAT(P.RTPYR_BRDT, '.') FROM DUAL) AS RTPYR_BRDT_MASK + , R.RDUCT_ID + , R.RDUCT_RSN_CD , (CASE WHEN R.RDUCT_AMT IS NOT NULL THEN R.RDUCT_AMT ELSE (SELECT C.FFNLG_CRDN_AMT*T.WKSN_RDUCT_RT/100 FROM TB_TASK T WHERE C.SGG_CD=T.SGG_CD AND C.TASK_SE_CD=T.TASK_SE_CD AND T.USE_YN='Y') - END ) AS RDUCT_AMT + END ) AS RDUCT_AMT FROM TB_OPNN_SBMSN OS INNER JOIN TB_CRDN C ON (OS.CRDN_ID = C.CRDN_ID) INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) @@ -139,111 +136,115 @@ @@ -272,6 +273,14 @@ , OS.ANS_YMD , OS.ANS_TM , OS.ANS_CN + , OS.DEL_YN + , OS.REG_DT + , OS.RGTR + , OS.MDFCN_DT + , OS.MDFR + , OS.DEL_DT + , OS.DLTR + , OS.DEL_RSN , (CONCAT(OS.ANS_YMD, OS.ANS_TM)) AS ANS_YMD_TM , (SELECT GET_CODE_NM('FIM029', OS.RCPT_SE_CD) FROM DUAL) AS RCPT_SE_NM , (SELECT GET_CODE_NM('FIM032', OS.OWNR_REL_CD) FROM DUAL) AS OWNR_REL_NM @@ -302,7 +311,7 @@ , P.ADDR , P.DTL_ADDR FROM TB_OPNN_SBMSN OS - LEFT OUTER JOIN TB_CRDN C ON (OS.CRDN_ID = C.CRDN_ID) + INNER JOIN TB_CRDN C ON (OS.CRDN_ID = C.CRDN_ID) LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) @@ -310,69 +319,42 @@ - AND OS.OPNN_ID IN ( + AND OS.OPNN_ID IN ( #{opnnId} ) - AND OS.OPNN_ID = #{opnnId} - - - AND C.CRDN_ID = #{crdnId} - AND C.DEL_YN = 'N' + AND OS.OPNN_ID = #{opnnId} - AND OS.DEL_YN = #{delYN} + AND OS.DEL_YN = #{delYN} + + + AND C.CRDN_ID = #{crdnId} + AND C.DEL_YN = 'N' - - @@ -427,35 +409,35 @@ INSERT INTO TB_OPNN_SBMSN ( - OPNN_ID - , CRDN_ID - , RCPT_NO - , RCPT_YMD - , RCPT_SE_CD - , OWNR_REL_CD - , STTR_NM - , STTR_BRDT - , STTR_RRNO - , STTR_ADDR - , STTR_DADDR - , STTR_ZIP - , STTR_CTTPC - , STTR_EML - , OPNN_SBMSN_CN - , OPNN_SBMSN_SE_CD - , OPNN_SBMSN_GIST - , DOC_NO - , NTFCTN_SE_CD - , PIC_RVW_OPNN - , ANS_CN - , ANS_YMD - , ANS_TM - , OPNN_SBMSN_STTS_CD - , DEL_YN - , REG_DT - , RGTR - , MDFCN_DT - , MDFR + OPNN_ID + , CRDN_ID + , RCPT_NO + , RCPT_YMD + , RCPT_SE_CD + , OWNR_REL_CD + , STTR_NM + , STTR_BRDT + , STTR_RRNO + , STTR_ADDR + , STTR_DADDR + , STTR_ZIP + , STTR_CTTPC + , STTR_EML + , OPNN_SBMSN_CN + , OPNN_SBMSN_SE_CD + , OPNN_SBMSN_GIST + , DOC_NO + , NTFCTN_SE_CD + , PIC_RVW_OPNN + , ANS_CN + , ANS_YMD + , ANS_TM + , OPNN_SBMSN_STTS_CD + , DEL_YN + , REG_DT + , RGTR + , MDFCN_DT + , MDFR ) VALUES ( #{opnnSbmsn.opnnId} @@ -492,61 +474,88 @@ /* 의견제출 대장 수정(opnnSbmsnMapper.updateOpnnSbmsn) */ UPDATE TB_OPNN_SBMSN - SET RCPT_NO = #{opnnSbmsn.rcptNo} - , RCPT_YMD = #{opnnSbmsn.rcptYmd} - , RCPT_SE_CD = #{opnnSbmsn.rcptSeCd} - , OWNR_REL_CD = #{opnnSbmsn.ownrRelCd} - , STTR_NM = #{opnnSbmsn.sttrNm} - , STTR_BRDT = #{opnnSbmsn.sttrBrdt} - , STTR_RRNO = #{opnnSbmsn.sttrRrno} - , STTR_ADDR = #{opnnSbmsn.sttrAddr} - , STTR_DADDR = #{opnnSbmsn.sttrDaddr} - , STTR_ZIP = #{opnnSbmsn.sttrZip} - , STTR_CTTPC = #{opnnSbmsn.sttrCttpc} - , STTR_EML = #{opnnSbmsn.sttrEml} - , OPNN_SBMSN_CN = #{opnnSbmsn.opnnSbmsnCn} - , OPNN_SBMSN_SE_CD = #{opnnSbmsn.opnnSbmsnSeCd} - , OPNN_SBMSN_GIST = #{opnnSbmsn.opnnSbmsnGist} - , PIC_RVW_OPNN = #{opnnSbmsn.picRvwOpnn} - , MDFCN_DT = - , MDFR = #{opnnSbmsn.modifiedBy} - WHERE OPNN_ID = #{opnnSbmsn.opnnId} - AND DEL_YN = 'N' + SET RCPT_NO = #{opnnSbmsn.rcptNo} + , RCPT_YMD = #{opnnSbmsn.rcptYmd} + , RCPT_SE_CD = #{opnnSbmsn.rcptSeCd} + , OWNR_REL_CD = #{opnnSbmsn.ownrRelCd} + , STTR_NM = #{opnnSbmsn.sttrNm} + , STTR_BRDT = #{opnnSbmsn.sttrBrdt} + , STTR_RRNO = #{opnnSbmsn.sttrRrno} + , STTR_ADDR = #{opnnSbmsn.sttrAddr} + , STTR_DADDR = #{opnnSbmsn.sttrDaddr} + , STTR_ZIP = #{opnnSbmsn.sttrZip} + , STTR_CTTPC = #{opnnSbmsn.sttrCttpc} + , STTR_EML = #{opnnSbmsn.sttrEml} + , OPNN_SBMSN_CN = #{opnnSbmsn.opnnSbmsnCn} + , OPNN_SBMSN_SE_CD = #{opnnSbmsn.opnnSbmsnSeCd} + , OPNN_SBMSN_GIST = #{opnnSbmsn.opnnSbmsnGist} + , PIC_RVW_OPNN = #{opnnSbmsn.picRvwOpnn} + , MDFCN_DT = + , MDFR = #{opnnSbmsn.modifiedBy} + WHERE OPNN_ID = #{opnnSbmsn.opnnId} + AND DEL_YN = 'N' /* 의견제출 대장 답변 수정(opnnSbmsnMapper.updateAnsSttsCd) */ UPDATE TB_OPNN_SBMSN - SET OPNN_SBMSN_GIST = #{opnnSbmsn.opnnSbmsnGist} - , DOC_NO = #{opnnSbmsn.docNo} - , NTFCTN_SE_CD = #{opnnSbmsn.ntfctnSeCd} - , PIC_RVW_OPNN = #{opnnSbmsn.picRvwOpnn} - , OPNN_SBMSN_STTS_CD = #{opnnSbmsn.opnnSbmsnSttsCd} - , ANS_YMD = #{opnnSbmsn.ansYmd} - , ANS_TM = #{opnnSbmsn.ansTm} - , ANS_CN = #{opnnSbmsn.ansCn} - , MDFCN_DT = - , MDFR = #{opnnSbmsn.modifiedBy} - WHERE OPNN_ID = #{opnnSbmsn.opnnId} - AND DEL_YN = 'N' + SET OPNN_SBMSN_GIST = #{opnnSbmsn.opnnSbmsnGist} + , DOC_NO = #{opnnSbmsn.docNo} + , NTFCTN_SE_CD = #{opnnSbmsn.ntfctnSeCd} + , PIC_RVW_OPNN = #{opnnSbmsn.picRvwOpnn} + , OPNN_SBMSN_STTS_CD = #{opnnSbmsn.opnnSbmsnSttsCd} + , ANS_YMD = #{opnnSbmsn.ansYmd} + , ANS_TM = #{opnnSbmsn.ansTm} + , ANS_CN = #{opnnSbmsn.ansCn} + , MDFCN_DT = + , MDFR = #{opnnSbmsn.modifiedBy} + WHERE OPNN_ID = #{opnnSbmsn.opnnId} + AND DEL_YN = 'N' /* 의견제출 대장 삭제(opnnSbmsnMapper.deleteOpnnSbmsn) */ UPDATE TB_OPNN_SBMSN - SET DEL_YN = 'Y' - , DEL_DT = - , DLTR = #{opnnSbmsn.modifiedBy} - , DEL_RSN = #{opnnSbmsn.delRsn} - WHERE OPNN_ID = #{opnnSbmsn.opnnId} - AND DEL_YN = 'N' + SET DEL_YN = 'Y' + , DEL_DT = + , DLTR = #{opnnSbmsn.modifiedBy} + , DEL_RSN = #{opnnSbmsn.delRsn} + WHERE OPNN_ID = #{opnnSbmsn.opnnId} + AND DEL_YN = 'N' + + /* 단속 대장 의견제출여부 수정(opnnSbmsnMapper.updateCrdnOpnnSbmsnYn) */ UPDATE TB_CRDN - SET OPNN_SBMSN_YN = #{crdn.opnnSbmsnYn} - , MDFCN_DT = - , MDFR = #{crdn.modifiedBy} - WHERE CRDN_ID = #{crdn.crdnId} - AND DEL_YN = 'N' + SET OPNN_SBMSN_YN= #{crdn.opnnSbmsnYn} + , MDFCN_DT = + , MDFR = #{crdn.modifiedBy} + WHERE CRDN_ID = #{crdn.crdnId} + AND DEL_YN = 'N' \ No newline at end of file diff --git a/src/main/resources/sql/mapper/fims/levy/levy-mapper.xml b/src/main/resources/sql/mapper/fims/levy/levy-mapper.xml index c59b09a4..c43272d0 100644 --- a/src/main/resources/sql/mapper/fims/levy/levy-mapper.xml +++ b/src/main/resources/sql/mapper/fims/levy/levy-mapper.xml @@ -21,7 +21,7 @@ - + @@ -178,10 +178,10 @@ AND C.CRDN_YMD #{schCrdnYmdTo} - AND C.VHRNO = #{schVhrno} + AND C.VHRNO = #{schVhrno} - AND V.VLTN_CD = #{schVltnCd} + AND V.VLTN_CD = #{schVltnCd} AND CC.CVLCPT_RCPT_YMD =]]> #{schCvlcptRcptYmdFrom} @@ -199,9 +199,9 @@ AND CC.CVLCPT_PRCS_PIC = #{schCvlcptPrcsPic} - AND P.RTPYR_NM = #{schRtpyrNm} + AND P.RTPYR_NM = #{schRtpyrNm} - AND C.DEL_YN = 'N' + AND C.DEL_YN = 'N' @@ -225,12 +225,12 @@ - AND C.RGTR = #{schRgtrCd} + AND C.RGTR = #{schRgtrCd} - AND C.MDFR = #{schRgtrCd} + AND C.MDFR = #{schRgtrCd} @@ -283,7 +283,7 @@ , L.OPER_ITEM_CD , L.SPCL_BIZ_CD , L.LEVY_NO - , L.INSPY_SN + , L.INSPY_NO , L.LEVY_SE_CD , L.UNTY_SE_CD , L.RDUCT_SE_CD @@ -542,65 +542,6 @@ - - + + /* 부과 대장 등록(levyMapper.insertLevy) */ SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(LEVY_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID @@ -632,7 +617,7 @@ , OPER_ITEM_CD , SPCL_BIZ_CD , LEVY_NO - , INSPY_SN + , INSPY_NO , LEVY_SE_CD , UNTY_SE_CD , RDUCT_SE_CD @@ -730,7 +715,7 @@ , #{levy.operItemCd} , #{levy.spclBizCd} , #{levy.levyNo} - , #{levy.inspySn} + , #{levy.inspyNo} , #{levy.levySeCd} , #{levy.untySeCd} , #{levy.rductSeCd} @@ -825,7 +810,7 @@ , OPER_ITEM_CD = #{levy.operItemCd} , SPCL_BIZ_CD = #{levy.spclBizCd} , LEVY_NO = #{levy.levyNo} - , INSPY_SN = #{levy.inspySn} + , INSPY_NO = #{levy.inspyNo} , LEVY_SE_CD = #{levy.levySeCd} , UNTY_SE_CD = #{levy.untySeCd} , RDUCT_SE_CD = #{levy.rductSeCd} @@ -929,11 +914,12 @@ AND DEL_YN = 'N' - /* 부과 대장에 수납 금액 정보를 수정(levyMapper.updateRcvmtAmt) */ + /* 부과 대장에 수납 금액 정보를 수정(levyMapper.updateRcvmt) */ UPDATE TB_LEVY SET RCVMT_PCPTAX = #{levy.rcvmtPcptax} , RCVMT_ADAMT = #{levy.rcvmtAdamt} , SUM_AMT = #{levy.sumAmt} + , DUDT_AFTR_AMT = #{levy.dudtAftrAmt} , RCVMT_YMD = #{levy.rcvmtYmd} , PAY_MTHD_SE_CD = #{levy.payMthdSeCd} , MDFCN_DT = @@ -942,9 +928,21 @@ AND DEL_YN = 'N' + /* 부과 대장에 감액 금액 정보를 수정(levyMapper.updateRdcamt) */ + UPDATE TB_LEVY + SET RDCAMT_PCPTAX = #{levy.rdcamtPcptax} + , RDCAMT_ADAMT = #{levy.rdcamtAdamt} + , SUM_AMT = #{levy.sumAmt} + , DUDT_AFTR_AMT = #{levy.dudtAftrAmt} + , MDFCN_DT = + , MDFR = #{levy.modifiedBy} + WHERE LEVY_ID = #{levy.levyId} + AND DEL_YN = 'N' + + /* 부과 대장 삭제(levyMapper.deleteLevy) */ UPDATE TB_LEVY - SET DEL_YN = 'Y' + SET DEL_YN = 'Y' , DEL_DT = , DLTR = #{levy.modifiedBy} , DEL_RSN = #{levy.delRsn} @@ -952,4 +950,63 @@ AND DEL_YN = 'N' + + diff --git a/src/main/resources/sql/mapper/fims/nxrp/nxrpMtchg-mapper.xml b/src/main/resources/sql/mapper/fims/nxrp/nxrpMtchg-mapper.xml index fe3ccd3c..cc666276 100644 --- a/src/main/resources/sql/mapper/fims/nxrp/nxrpMtchg-mapper.xml +++ b/src/main/resources/sql/mapper/fims/nxrp/nxrpMtchg-mapper.xml @@ -158,7 +158,7 @@ , L.OPER_ITEM_CD , L.SPCL_BIZ_CD , L.LEVY_NO - , L.INSPY_SN + , L.INSPY_NO , L.LEVY_SE_CD , L.LEVY_YMD , L.FRST_DUDT_YMD @@ -195,47 +195,47 @@ INSERT INTO TB_NXRP_MTCHG ( - MTCHG_ID - , CRDN_ID - , CRDN_DT - , STDG_NM - , CRDN_PLC - , LINK_RSLT_ID - , LVY_KEY - , ACNTG_YR - , LEVY_NO - , LEVY_AMT - , ADTN_AMT - , SUM_AMT - , EPAYNO - , BANK_NM - , VR_ACTNO - , BANK_NM2 - , VR_ACTNO2 - , BANK_NM3 - , VR_ACTNO3 - , BANK_NM4 - , VR_ACTNO4 - , BANK_NM5 - , VR_ACTNO5 - , BANK_NM6 - , VR_ACTNO6 - , BANK_NM7 - , VR_ACTNO7 - , BANK_NM8 - , VR_ACTNO8 - , BANK_NM9 - , VR_ACTNO9 - , BANK_NM10 - , VR_ACTNO10 - , BANK_NM11 - , VR_ACTNO11 - , NXRP_MTCHG_STTS_CD - , DEL_YN - , REG_DT - , RGTR - , MDFCN_DT - , MDFR + MTCHG_ID + , CRDN_ID + , CRDN_DT + , STDG_NM + , CRDN_PLC + , LINK_RSLT_ID + , LVY_KEY + , ACNTG_YR + , LEVY_NO + , LEVY_AMT + , ADTN_AMT + , SUM_AMT + , EPAYNO + , BANK_NM + , VR_ACTNO + , BANK_NM2 + , VR_ACTNO2 + , BANK_NM3 + , VR_ACTNO3 + , BANK_NM4 + , VR_ACTNO4 + , BANK_NM5 + , VR_ACTNO5 + , BANK_NM6 + , VR_ACTNO6 + , BANK_NM7 + , VR_ACTNO7 + , BANK_NM8 + , VR_ACTNO8 + , BANK_NM9 + , VR_ACTNO9 + , BANK_NM10 + , VR_ACTNO10 + , BANK_NM11 + , VR_ACTNO11 + , NXRP_MTCHG_STTS_CD + , DEL_YN + , REG_DT + , RGTR + , MDFCN_DT + , MDFR ) VALUES ( #{nxrpMtchg.mtchgId} diff --git a/src/main/resources/sql/mapper/fims/rcvm/rcvmt-mapper.xml b/src/main/resources/sql/mapper/fims/rcvm/rcvmt-mapper.xml index 75e501c2..69a47f00 100644 --- a/src/main/resources/sql/mapper/fims/rcvm/rcvmt-mapper.xml +++ b/src/main/resources/sql/mapper/fims/rcvm/rcvmt-mapper.xml @@ -18,7 +18,7 @@ - + @@ -59,7 +59,7 @@ , R.ACNTG_SE_CD , R.TXITM_CD , R.LEVY_NO - , R.INSPY_SN + , R.INSPY_NO , R.LAST_PCPTAX , R.LAST_ADAMT , R.RCVMT_SN @@ -139,8 +139,8 @@ - - /* 수납 대장 수납취소 정보 수정(rcvmtMapper.updateRcvmtRtrcn) */ UPDATE TB_RCVMT SET RCVMT_RTRCN_YN = #{rcvmt.rcvmtRtrcnYn} @@ -387,42 +346,42 @@ INSERT INTO TB_RCVMT ( - RCVMT_ID - , SGG_CD - , TASK_SE_CD - , LEVY_ID - , RCVMT_INPT_SE_CD - , DEPT_CD - , FYR - , ACNTG_SE_CD - , TXITM_CD - , LEVY_NO - , INSPY_SN - , LAST_PCPTAX - , LAST_ADAMT - , RCVMT_SN - , RCVMT_YMD - , RCVMT_AMT - , RCVMT_PCPTAX - , RCVMT_ADAMT - , RCVMT_INT - , RCVMT_BANK_NM - , PAY_MTHD_SE_CD - , PSTMRK_YMD - , ACNTG_YMD - , VRACTNO - , EPAYNO - , RCVMT_SE_CD - , NXRP_LEVY_KEY - , RCVMT_RTRCN_YN - , RCVMT_RTRCN_DT - , RCVMT_RTRCN_RSN - , RCVMT_STTS_CD - , DEL_YN - , REG_DT - , RGTR - , MDFCN_DT - , MDFR + RCVMT_ID + , SGG_CD + , TASK_SE_CD + , LEVY_ID + , RCVMT_INPT_SE_CD + , DEPT_CD + , FYR + , ACNTG_SE_CD + , TXITM_CD + , LEVY_NO + , INSPY_NO + , LAST_PCPTAX + , LAST_ADAMT + , RCVMT_SN + , RCVMT_YMD + , RCVMT_AMT + , RCVMT_PCPTAX + , RCVMT_ADAMT + , RCVMT_INT + , RCVMT_BANK_NM + , PAY_MTHD_SE_CD + , PSTMRK_YMD + , ACNTG_YMD + , VRACTNO + , EPAYNO + , RCVMT_SE_CD + , NXRP_LEVY_KEY + , RCVMT_RTRCN_YN + , RCVMT_RTRCN_DT + , RCVMT_RTRCN_RSN + , RCVMT_STTS_CD + , DEL_YN + , REG_DT + , RGTR + , MDFCN_DT + , MDFR ) VALUES ( #{rcvmt.rcvmtId} @@ -435,7 +394,7 @@ , #{rcvmt.acntgSeCd} , #{rcvmt.txitmCd} , #{rcvmt.levyNo} - , #{rcvmt.inspySn} + , #{rcvmt.inspyNo} , #{rcvmt.lastPcptax} , #{rcvmt.lastAdamt} , #{rcvmt.rcvmtSn} @@ -473,7 +432,7 @@ , ACNTG_SE_CD = #{rcvmt.acntgSeCd} , TXITM_CD = #{rcvmt.txitmCd} , LEVY_NO = #{rcvmt.levyNo} - , INSPY_SN = #{rcvmt.inspySn} + , INSPY_NO = #{rcvmt.inspyNo} , LAST_PCPTAX = #{rcvmt.lastPcptax} , LAST_ADAMT = #{rcvmt.lastAdamt} , RCVMT_SN = #{rcvmt.rcvmtSn} @@ -510,4 +469,55 @@ AND DEL_YN = 'N' + + diff --git a/src/main/resources/sql/mapper/fims/rdca/rdcamt-mapper.xml b/src/main/resources/sql/mapper/fims/rdca/rdcamt-mapper.xml new file mode 100644 index 00000000..22a2a680 --- /dev/null +++ b/src/main/resources/sql/mapper/fims/rdca/rdcamt-mapper.xml @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT R.RDCAMT_ID + , R.LEVY_ID + , R.LAST_PCPTAX + , R.LAST_ADAMT + , R.RDCAMT_YMD + , R.RDCAMT_SE_CD + , R.RDCAMT_RSN_CD + , R.RDCAMT_PCPTAX + , R.RDCAMT_ADAMT + , R.RDCAMT_RTRCN_YN + , R.RDCAMT_RTRCN_YMD + , R.RDCAMT_RTRCN_RSN + , R.DEL_YN + , R.REG_DT + , R.RGTR + , R.MDFCN_DT + , R.MDFR + , R.DEL_DT + , R.DLTR + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.RGTR) AS RGTR_NM + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.MDFR) AS MDFR_NM + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.DLTR) AS DLTR_NM + FROM TB_RDCAMT R + INNER JOIN TB_LEVY L ON (R.LEVY_ID = L.LEVY_ID) + + + + SELECT R.RDCAMT_ID + , R.LEVY_ID + , R.LAST_PCPTAX + , R.LAST_ADAMT + , R.RDCAMT_YMD + , R.RDCAMT_SE_CD + , R.RDCAMT_RSN_CD + , R.RDCAMT_PCPTAX + , R.RDCAMT_ADAMT + , R.RDCAMT_RTRCN_YN + , R.RDCAMT_RTRCN_YMD + , R.RDCAMT_RTRCN_RSN + , R.DEL_YN + , R.REG_DT + , R.RGTR + , R.MDFCN_DT + , R.MDFR + , R.DEL_DT + , R.DLTR + , R.DEL_RSN + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.RGTR) AS RGTR_NM + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.MDFR) AS MDFR_NM + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.DLTR) AS DLTR_NM + FROM TB_RDCAMT + + + + + + + /* 감액 대장 등록(rdcamtMapper.insertRdcamt) */ + + SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(LEVY_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID + FROM TB_RDCAMT + WHERE RDCAMT_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%') + + INSERT + INTO TB_RDCAMT ( + RDCAMT_ID + , LEVY_ID + , LAST_PCPTAX + , LAST_ADAMT + , RDCAMT_YMD + , RDCAMT_SE_CD + , RDCAMT_RSN_CD + , RDCAMT_PCPTAX + , RDCAMT_ADAMT + , RDCAMT_RTRCN_YN + , RDCAMT_RTRCN_YMD + , RDCAMT_RTRCN_RSN + , DEL_YN + , REG_DT + , RGTR + , MDFCN_DT + , MDFR + ) + VALUES ( + #{rdcamt.rdcamtId} + , #{rdcamt.levyId} + , #{rdcamt.lastPcptax} + , #{rdcamt.lastAdamt} + , #{rdcamt.rdcamtYmd} + , #{rdcamt.rdcamtSeCd} + , #{rdcamt.rdcamtRsnCd} + , #{rdcamt.rdcamtPcptax} + , #{rdcamt.rdcamtAdamt} + , 'N' + , #{rdcamt.rdcamtRtrcnYmd} + , #{rdcamt.rdcamtRtrcnRsn} + , 'N' + , + , #{rdcamt.createdBy} + , + , #{rdcamt.modifiedBy} + ) + + + /* 감액 대장 수정(rdcamtMapper.updateRdcamt) */ + UPDATE TB_RDCAMT + SET LAST_PCPTAX = #{rdcamt.lastPcptax} + , LAST_ADAMT = #{rdcamt.lastAdamt} + , RDCAMT_YMD = #{rdcamt.rdcamtYmd} + , RDCAMT_SE_CD = #{rdcamt.rdcamtSeCd} + , RDCAMT_RSN_CD = #{rdcamt.rdcamtRsnCd} + , RDCAMT_PCPTAX = #{rdcamt.rdcamtPcptax} + , RDCAMT_ADAMT = #{rdcamt.rdcamtAdamt} + , RDCAMT_RTRCN_YN = #{rdcamt.rdcamtRtrcnYn} + , RDCAMT_RTRCN_YMD = #{rdcamt.rdcamtRtrcnYmd} + , RDCAMT_RTRCN_RSN = #{rdcamt.rdcamtRtrcnRsn} + , MDFCN_DT = + , MDFR = #{rdcamt.modifiedBy} + WHERE RDCAMT_ID = #{rdcamt.rdcamtId} + AND DEL_YN = 'N' + + + /* 감액 대장 삭제(rdcamtMapper.deleteRdcamt) */ + UPDATE TB_RDCAMT + SET DEL_YN = 'Y' + , DEL_DT = + , DLTR = #{rdcamt.modifiedBy} + , DEL_RSN = #{rdcamt.delRsn} + WHERE RDCAMT_ID = #{rdcamt.rdcamtId} + 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 7bcee203..e9efc085 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml @@ -683,7 +683,7 @@ , L.OPER_ITEM_CD , L.SPCL_BIZ_CD , L.LEVY_NO - , L.INSPY_SN + , L.INSPY_NO , L.LEVY_SE_CD , L.LEVY_YMD , L.FRST_DUDT_YMD diff --git a/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml b/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml index 6897826a..baef776f 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml @@ -314,13 +314,13 @@ , P.ZIP , L.LEVY_ID , L.DEPT_CD + , L.SPCL_BIZ_CD , L.FYR , L.ACNTG_SE_CD , L.TXITM_CD , L.OPER_ITEM_CD - , L.SPCL_BIZ_CD , L.LEVY_NO - , L.INSPY_SN + , L.INSPY_NO , L.LEVY_SE_CD , L.LEVY_YMD , L.FRST_DUDT_YMD diff --git a/src/main/resources/sql/mapper/fims/sprt/totalInfo-mapper.xml b/src/main/resources/sql/mapper/fims/sprt/totalInfo-mapper.xml index 52e72aef..703562ca 100644 --- a/src/main/resources/sql/mapper/fims/sprt/totalInfo-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sprt/totalInfo-mapper.xml @@ -122,45 +122,46 @@ , P.WHOL_ADDR , P.MDFCN_DT AS P_MDFCN_DT , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = P.MDFR) AS P_MDFR_NM - , CC.CVLCPT_LINK_ID - , CC.CVLCPT_APLY_SE_CD - , CC.DSTRBNC_YN - , CC.CVLCPT_RCPT_YMD - , CC.CVLCPT_APLY_NO - , CC.CVLCPT_RCPT_NO - , CC.CVLCPT_LIST_NO - , CC.CVLCPT_APLCNT_NM - , CC.CVLCPT_APLY_DT - , CC.CVLCPT_APLY_TTL_NM - , CC.CVLCPT_APLY_CN - , CC.CVLCPT_GIST - , CC.CVLCPT_PRCS_PIC_NM - , CC.CVLCPT_PRCS_PRNMNT_DT - , CC.CVLCPT_PRCS_CD - , CC.CVLCPT_PRCS_SUMRY - , CC.CVLCPT_PRCS_RSLT_CN - , CC.CVLCPT_PRCS_CMPTN_DT - , CC.CVLCPT_PRCS_PIC - , L.LEVY_ID - , L.INST_CD - , L.DEPT_CD - , L.FYR - , L.ACNTG_SE_CD - , L.TXITM_CD - , L.LEVY_NO - , L.INSPY_SN - , (CONCAT(L.FYR, '-', L.LEVY_NO)) AS GOJI_NO - , L.LEVY_PCPTAX - , L.LEVY_ADAMT - , L.INSPY_INT - , L.LEVY_PCPTAX + L.LEVY_ADAMT + L.INSPY_INT AS LEVY_AMT - , L.RCVMT_PCPTAX - , L.RCVMT_ADAMT - , L.RCVMT_PCPTAX + L.RCVMT_ADAMT AS RCVMT_AMT - , L.RDCAMT_PCPTAX - , L.RDCAMT_ADAMT - , L.RDCAMT_PCPTAX + L.RDCAMT_ADAMT AS REDUC_AMT - , L.SUM_AMT + , CC.CVLCPT_LINK_ID + , CC.CVLCPT_APLY_SE_CD + , CC.DSTRBNC_YN + , CC.CVLCPT_RCPT_YMD + , CC.CVLCPT_APLY_NO + , CC.CVLCPT_RCPT_NO + , CC.CVLCPT_LIST_NO + , CC.CVLCPT_APLCNT_NM + , CC.CVLCPT_APLY_DT + , CC.CVLCPT_APLY_TTL_NM + , CC.CVLCPT_APLY_CN + , CC.CVLCPT_GIST + , CC.CVLCPT_PRCS_PIC_NM + , CC.CVLCPT_PRCS_PRNMNT_DT + , CC.CVLCPT_PRCS_CD + , CC.CVLCPT_PRCS_SUMRY + , CC.CVLCPT_PRCS_RSLT_CN + , CC.CVLCPT_PRCS_CMPTN_DT + , CC.CVLCPT_PRCS_PIC + , L.LEVY_ID + , L.INST_CD + , L.DEPT_CD + , L.SPCL_BIZ_CD + , L.FYR + , L.ACNTG_SE_CD + , L.TXITM_CD + , L.LEVY_NO + , L.INSPY_NO + , L.LEVY_PCPTAX + , L.LEVY_ADAMT + , L.INSPY_INT + , L.RCVMT_PCPTAX + , L.RCVMT_ADAMT + , L.RDCAMT_PCPTAX + , L.RDCAMT_ADAMT + , L.SUM_AMT + , (CONCAT(L.FYR, '-', L.LEVY_NO)) AS GOJI_NO + , L.LEVY_PCPTAX + L.LEVY_ADAMT + L.INSPY_INT AS LEVY_AMT + , L.RCVMT_PCPTAX + L.RCVMT_ADAMT AS RCVMT_AMT + , L.RDCAMT_PCPTAX + L.RDCAMT_ADAMT AS RDCAMT_AMT FROM TB_CRDN C INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) INNER JOIN TB_VLTN V ON (C.VLTN_ID = V.VLTN_ID) diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp index c28fc9cd..0b127a5f 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp @@ -348,7 +348,7 @@ , func : "$P.control.load({index})" }); - $P.control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 + $P.control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 }; // 현재 선택 자료 변경 이벤트 @@ -374,7 +374,7 @@ $("#btnRemove--${pageName}").prop("disabled", keys.length < 1); }; - // 수정 dialog + // 부과제외 정보 dialog $P.control.getInfo = (params) => { if (!params) return; diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp index a9fe64a2..6cb45a96 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp @@ -184,7 +184,7 @@ $("#levyExclSeCd--${pageName}").val(cmnCode.code); $("#levyExclSeNm--${pageName}").val(cmnCode.value); - let reasons = FIM022.list().filter(reason => "1" == seCode ? reason.code < "200" : reason.code > "200"); + let reasons = FIM022.list().filter(reason => "2" == seCode ? reason.code > "200" : reason.code < "200"); $("#levyExclRsnCd--${pageName}").html(reasons.map(reason => "").join()); if (typeof rsnCode != "undefined" && rsnCode != "") { diff --git a/src/main/webapp/WEB-INF/jsp/fims/levy/levy01050-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/levy/levy01050-main.jsp index 7b3aba01..88f666b2 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/levy/levy01050-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/levy/levy01050-main.jsp @@ -13,14 +13,14 @@
    - - - @@ -201,73 +201,76 @@ - NO. - - 업무구분 - 회계연도 - 회계코드 - 세목코드 - 세목명 - 부과번호 - 분납순번 - 부과구분 - 통합구분 - 감경구분 - 부과일자 - 최초납기일자 - 납기일자 - 과태료금액 - 부과본세 - 부과가산금 - 분납이자 - 수납본세 - 수납가산금 - 감액본세 - 감액가산금 - 합계금액 - 과세물건 - 체납사유 - 수납일자 - 압류일자 - 압류물건 - 대체압류차량 - 압류해제일자 - 전자납부번호 - 은행명 - 가상계좌번호 - 단속일시 - 차량번호 - 법정동 - 단속장소 - 위반항목 - 최초금액 - 처리상태 - 납부자구분 - 납부자명 - 납부자생일 - 우편번호 - 주소 - 상세주소 - 등록일시 - 등록사용자 - 수정일시 - 수정사용자 - + + @@ -329,8 +344,6 @@
    - -
    @@ -339,343 +352,405 @@ /************************************************************************** * Global Variable **************************************************************************/ - // URL - var ${pageName}PrefixUrl = "/levy/levy01"; - // FormFields - var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}"); + pageObject["${pageName}"] = {}; /************************************************************************** - * DatasetControl + * script 진입 **************************************************************************/ - var ${pageName}Control = new DatasetControl({ - prefix : "levy" - , prefixName : "부과" - , infoSize : "xl" - , keymapper : info => info ? info.LEVY_ID : "" - , dataGetter : obj => obj.levyList - , appendData : true - , untilPageNum : 0 // 현재 페이지 번호 - , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 - , formats : { - LEVY_YMD : dateFormat - , FRST_DUDT_YMD : dateFormat - , DUDT_YMD : dateFormat - , RCVMT_YMD : dateFormat - , SZR_YMD : dateFormat - , SZR_RMV_YMD : dateFormat - , FFNLG_AMT : numberFormat - , LEVY_PCPTAX : numberFormat - , LEVY_ADAMT : numberFormat - , INSPY_INT : numberFormat - , RCVMT_PCPTAX : numberFormat - , RCVMT_ADAMT : numberFormat - , RDCAMT_PCPTAX : numberFormat - , RDCAMT_ADAMT : numberFormat - , SUM_AMT : numberFormat - , CRDN_YMD_TM : datetimeFormat - , FFNLG_CRDN_AMT : numberFormat - , REG_DT : datetimeFormat - , MDFCN_DT : datetimeFormat + $(document).ready(function() { + // pageObject + var $P = pageObject["${pageName}"]; + + // URL + $P.PrefixUrl = "/levy/levy01"; + // FormFields + $P.formFields = new FimsFormFields("#frmSearch--${pageName}"); + + /************************************************************************** + * DatasetControl + **************************************************************************/ + $P.control = new DatasetControl({ + prefix : "levy" + , prefixName : "부과" + , infoSize : "xl" + , keymapper : info => info ? info.LEVY_ID : "" + , dataGetter : obj => obj.levyList + , appendData : true + , formats : { + LEVY_YMD : dateFormat + , FRST_DUDT_YMD : dateFormat + , DUDT_YMD : dateFormat + , RCVMT_YMD : dateFormat + , SZR_YMD : dateFormat + , SZR_RMV_YMD : dateFormat + , FFNLG_AMT : numberFormat + , LEVY_PCPTAX : numberFormat + , LEVY_ADAMT : numberFormat + , INSPY_INT : numberFormat + , RCVMT_PCPTAX : numberFormat + , RCVMT_ADAMT : numberFormat + , RDCAMT_PCPTAX : numberFormat + , RDCAMT_ADAMT : numberFormat + , SUM_AMT : numberFormat + , CRDN_YMD_TM : datetimeFormat + , FFNLG_CRDN_AMT : numberFormat + , REG_DT : datetimeFormat + , MDFCN_DT : datetimeFormat + } + }); + // $P.control 설정 + $P.control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 + $P.control.untilPageNum = 0; // 현재 페이지 번호 + $P.control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 여부 + $P.control.beforeCurrent = null; + + /************************************************************************** + * DatasetControl 이벤트 + **************************************************************************/ + // Dataset 변경 + $P.control.onDatasetChange = obj => { + $P.renderList(obj.${infoPrefix}Total); + + $("#paging--${pageName}").setPagingInfo({ + list : $P.control.dataset + , prefix : "paging--${pageName}" + , start : obj.${infoPrefix}Start + , totalSize : obj.${infoPrefix}Total + , fetchSize : obj.${infoPrefix}Fetch + , func : "$P.control.load({index})" + }); + + $P.control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 + }; + + // 현재 선택 자료 변경 이벤트 + $P.control.onCurrentChange = item => { + if (!item) return; + + let key = item.data.LEVY_ID; + + $("#tbody--${pageName}").setCurrentRow(key); + }; + + // 선택(체크) 변경 이벤트 + $P.control.onSelectionChange = selected => { + let ${infoPrefix}List = $P.control.dataset; + let keys = selected.map(e => ${infoPrefix}List.getKey(e)); + + $("#tbody--${pageName} input[type='checkbox']").each(function() { + let checkbox = $(this); + + checkbox.prop("checked", keys.includes(checkbox.val())); + }); + }; + + // 부과 정보 dialog + $P.control.getInfo = (params) => { + if (!params) return; + + let dialogTitle = ""; + + if (params.callPurpose == "create") { + dialogTitle = $P.control.prefixName + " 등록"; + } else if (params.callPurpose == "update") { + dialogTitle = $P.control.prefixName + " 수정"; + } else { + dialogTitle = $P.control.prefixName + " 정보"; + } } - }); - /************************************************************************** - * DatasetControl 이벤트 - **************************************************************************/ - // Dataset 변경 - ${pageName}Control.onDatasetChange = obj => { - renderList${pageName}(obj.${infoPrefix}Total); - - $("#paging--${pageName}").setPagingInfo({ - list : ${pageName}Control.dataset - , prefix : "paging--${pageName}" - , start : obj.${infoPrefix}Start - , totalSize : obj.${infoPrefix}Total - , fetchSize : obj.${infoPrefix}Fetch - , func : "${pageName}Control.load({index})" - }); + /************************************************************************** + * DataTables 이벤트 + **************************************************************************/ + // DataTables에 click, dbclick 이벤트 + $P.renderList = (totalSize) => { + let ${infoPrefix}List = $P.control.dataset; + let empty = ${infoPrefix}List.empty; + let clsForTask = $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val().toLowerCase(); // 소문자 + + // 업무별 DataTables(그리드) tr, td + let foundContent = document.getElementById("${infoPrefix}Row--${pageName}").content; + let foundTr = $(foundContent).find("tr")[0].cloneNode(false); + let foundTds = $(foundContent).find("." + clsForTask + ",.cmn"); + + foundTds.each(function() { + foundTr.appendChild(this.cloneNode(true)); + }); - ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 - }; + // + let replacer = (str, dataItem) => str + .replace(/{onclick}/gi, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("LEVY_ID") + "');") + .replace(/{ondblclick}/gi, "pageObject['${pageName}'].getTotalInfo('" + dataItem.getValue("CRDN_ID") + "');"); - // 현재 선택 자료 변경 이벤트 - ${pageName}Control.onCurrentChange = item => { - if (!item) return; + let trs = empty ? [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML] + : ${infoPrefix}List.inStrings(foundTr.outerHTML, replacer); - let key = item.data.LEVY_ID; + let noMore = (totalSize == ${infoPrefix}List.length); + let initScroll = ($P.control.query.pageNum < 2) && ($P.control.untilPageNum == 0); - $("#tbody--${pageName}").setCurrentRow(key); - }; + $("#table-responsive--${pageName}")[0].changeContent(trs.join(), initScroll, noMore); - // 선택(체크) 변경 이벤트 - ${pageName}Control.onSelectionChange = selected => { - let ${infoPrefix}List = ${pageName}Control.dataset; - let keys = selected.map(e => ${infoPrefix}List.getKey(e)); + if ($P.control.untilPageNum != 0) { + $P.control.query.fetchSize = $P.control.defaultFetchSize; + $P.control.query.pageNum = $P.control.untilPageNum; + $P.control.untilPageNum = 0; + } - $("#tbody--${pageName} input[type='checkbox']").each(function() { - let checkbox = $(this); + // checkbox 체크 해제 + $("th input[type='checkbox']").prop("checked", false); - checkbox.prop("checked", keys.includes(checkbox.val())); - }); - }; + // 보안모드 + fn_securityModeToggle($("#securityMode--top").is(":checked")); + } - // 부과 정보 dialog - ${pageName}Control.getInfo = (params) => { - if (!params) return; + // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 + $P.scrollDataList = () => { + $P.control.tableRenderComplete = false; // dataTables 에 자료 추가 false - let dialogTitle = ""; + $P.control.load($P.control.query.pageNum + 1); + } - if (params.callPurpose == "create") { - dialogTitle = ${pageName}Control.prefixName + " 등록"; - } else if (params.callPurpose == "update") { - dialogTitle = ${pageName}Control.prefixName + " 수정"; - } else { - dialogTitle = ${pageName}Control.prefixName + " 정보"; + /************************************************************************** + * 사용자 함수(function) + **************************************************************************/ + // callback 사용자 검색 + $P.callbackFindUser = (userId, userNm) => { + $("#schRgtrCd--${pageName}").val(userId); // 사용자 ID + $("#schRgtrNm--${pageName}").val(userNm); // 사용자 명 } - } - /************************************************************************** - * DataTables 이벤트 - **************************************************************************/ - // DataTables에 click, dbclick 이벤트 - renderList${pageName} = (totalSize) => { - let ${infoPrefix}List = ${pageName}Control.dataset; - let empty = ${infoPrefix}List.empty; - - let trs = empty ? - [document.getElementById("${infoPrefix}NotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%> - ${infoPrefix}List.inStrings( - document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%> - (str, dataItem) => str - .replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("LEVY_ID") + "');") - .replace(/{ondblclick}/gi, "getTotalInfo${pageName}('" + dataItem.getValue("CRDN_ID") + "');") - ); - - let noMore = (totalSize == ${infoPrefix}List.length); - let initScroll = (${pageName}Control.query.pageNum < 2) && (${pageName}Control.untilPageNum == 0); - - $("#table-responsive--${pageName}")[0].changeContent(trs.join(), initScroll, noMore); - - if (${pageName}Control.untilPageNum != 0) { - ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; - ${pageName}Control.query.pageNum = ${pageName}Control.untilPageNum; - ${pageName}Control.untilPageNum = 0; + // 사용자 검색 + $P.getFindUser = () => { + let params = { + callbackFuncName : "$P.callbackFindUser" + } + + ajax.get({ + url : wctx.url("/user/user02/010/main.do") + , data : params || {} + , success : resp => { + dialog.open({ + id : "userDialog" + , title : "사용자 검색" + , content : resp + , size : "lg" + }); + } + }); } - // checkbox 체크 해제 - $("th input[type='checkbox']").prop("checked", false); + // 개별총정보 dialog + $P.getTotalInfo = (crdnId) => { + if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; - //보안모드 - fn_securityModeToggle($("#securityMode--top").is(":checked")); - } + let params = { + callControlName : "pageObject['${pageName}'].control" + , sggCd : $("#sggCd--${pageName}").val() + , taskSeCd : $("input[name=taskSeCd]:checked").val() + , crdnId : crdnId + } - // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 - scrollDataList${pageName} = () => { - ${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 false + ajax.get({ + url : wctx.url("/" + params.taskSeCd + "/sprt/sprt02/010/main.do") + , data : params + , success : resp => { + dialog.open({ + id : "totalInfoMainDialog" + , title : "개별총정보" + , content : resp + , size : "xxl" + , init : () => { } + , onClose : () => { } + }); + } + }); + } - ${pageName}Control.load(${pageName}Control.query.pageNum + 1); - } + // 검색 자료 재조회 + $P.refreshList = () => { + $P.control.untilPageNum = $P.control.query.pageNum; + $P.control.query.fetchSize = $P.control.defaultFetchSize * $P.control.query.pageNum; - /************************************************************************** - * 사용자 함수(function) - **************************************************************************/ - // callback 사용자 검색 - callbackFindUser${pageName} = (userId, userNm) => { - $("#schRgtrCd--${pageName}").val(userId); // 사용자 ID - $("#schRgtrNm--${pageName}").val(userNm); // 사용자 명 - } - - // 사용자 검색 - getFindUser${pageName} = () => { - let params = { - callbackFuncName : "callbackFindUser${pageName}" + $P.control.load(1); } - ajax.get({ - url : wctx.url("/user/user02/010/main.do") - , data : params || {} - , success : resp => { - dialog.open({ - id : "userDialog" - , title : "사용자 검색" - , content : resp - , size : "lg" - }); + /************************************************************************** + * 버튼 clickEvent + **************************************************************************/ + // 업무 구분 변경 + $P.fnResetAndChangeBiz = (taskSeCd) => { + // 업무 구분 코드 + if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { + taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); } - }); - } - // 개별총정보 dialog - getTotalInfo${pageName} = (crdnId) => { - if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; + // 초기 기본 설정 + $P.initForm(); + // 기본 데이터 설정 + $P.initData(taskSeCd); + // 업무 구분별 설정 + $P.setTask(taskSeCd); - let params = { - callControlName : "${pageName}Control" - , sggCd : $("#sggCd--${pageName}").val() - , taskSeCd : $("input[name=taskSeCd]:checked").val() - , crdnId : crdnId + // dataset 초기화 + $P.control.dataset.clear(); } - ajax.get({ - url : wctx.url(params.taskSeCd + "/sprt/sprt02/010/main.do") - , data : params - , success : resp => { - dialog.open({ - id : "totalInfoMainDialog" - , title : "개별총정보" - , content : resp - , size : "xxl" + // 검색 버튼 이벤트 + $P.fnSearchList = () => { + // 검색조건 + $P.control.query = $P.formFields.get(); + $P.control.query.fetchSize = $P.control.defaultFetchSize; // 한번에 조회되는 자료 건수 + $P.control.query.delYN = "N"; // 삭제 여부 + + $P.control.load(1); + } + + // 엑셀 버튼 이벤트 + $P.fnExcel = () => { + if ($P.control.dataset.empty) { + dialog.alert({ + content : "검색된 자료가 없습니다." + , onOK : () => { } }); + + return; } - }); - } - // 검색 자료 재조회 - refreshList${pageName} = () => { - ${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum; - ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum; + // DataTables(그리드) + let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)") + , $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)")); + $P.control.query.cellDefs = cellDefs; - ${pageName}Control.load(1); - } + $P.control.download(); + } - /************************************************************************** - * 버튼 clickEvent - **************************************************************************/ - // 업무 구분 변경 - fnResetAndChangeBiz${pageName} = (taskSeCd) => { - // 업무 구분 코드 - if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { - taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); + // 사용자 조회 버튼 이벤트 + $P.fnFindUser = () => { + $P.getFindUser(); } - // 초기 기본 설정 - initForm${pageName}(); + /************************************************************************** + * 초기 설정 + **************************************************************************/ + // 이벤트 + $P.setEvent = () => { + // 기본 버튼 이벤트 + $("#btnReset--${pageName}").on("click", () => $P.fnResetAndChangeBiz()); // 초기화 + $("#btnSearch--${pageName}").on("click", () => $P.fnSearchList()); // 검색 + $("#btnExcel--${pageName}").on("click", () => $P.fnExcel()); // 엑셀 + $("#btnFindUser--${pageName}").on("click", () => $P.fnFindUser()); // 사용자 검색 + + // 동적검색에서 엔터(Enter) 키를 누르면 검색한다. + $("#term--${pageName}").keypress(function(e) { + if (e.keyCode == 13) { + fnSearchList${pageName}();    + }     + }); - // 기본 데이터 설정 - setFormData${pageName}(taskSeCd); - } - - // 검색 버튼 이벤트 - fnSearchList${pageName} = () => { - // 검색조건 - ${pageName}Control.query = ${pageName}Fields.get(); - - ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 한번에 조회되는 자료 건수 FETCH_XS = 30 - ${pageName}Control.query.delYn = "N"; // 삭제 여부 - - ${pageName}Control.load(1); - } - - // 엑셀 버튼 이벤트 - fnExcel${pageName} = () => { - if (${pageName}Control.dataset.empty) { - dialog.alert({ - content : "검색된 자료가 없습니다." - , onOK : () => { } + // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 + $("#frmSearch--${pageName}").find(".form-date").each(function() { + $(this).on("input", function() { + let value = this.value.replaceAll("-", ""); + + if (value.length > 7) { + this.value = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6); + } else if(value.length > 5) { + this.value = value.substring(0, 4) + "-" + value.substring(4); + } + }); }); - return; - } + // 업무 버튼 이벤트 - // DataTables(그리드) - let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)") - , $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)")); - ${pageName}Control.query.cellDefs = cellDefs; + // DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고 + $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); - ${pageName}Control.download(); - } + // DataTables 스크롤 이벤트 생성 + fnMakeScrollableTable($("#table-responsive--${pageName}")[0], $P.scrollDataList); + } - // 사용자 조회 버튼 이벤트 - fnFindUser${pageName} = () => { - getFindUser${pageName}(); - } + // 초기 화면 설정 + $P.initForm = () => { + // 화면 초기화 + $("#frmSearch--${pageName}")[0].reset(); - /************************************************************************** - * 초기 설정 - **************************************************************************/ - // 이벤트 - setEvent${pageName} = () => { - // 동적검색에서 엔터(Enter) 키를 누르면 검색한다. - $("#term--${pageName}").keypress(function(e) { - if (e.keyCode == 13) { - fnSearchList${pageName}();    - }     - }); + // input, select 초기화 + let searchForm = $("#frmSearch--${pageName}"); + searchForm.find("input[type='radio']").not("[name='taskSeCd']").prop("checked", false); + searchForm.find("input[type='checkbox']").prop("checked", false); + searchForm.find("input[type='text']").val(""); + searchForm.find("input[type='hidden']").val(""); + searchForm.find("select").each(function() { $(this).find("option:eq(0)").prop("selected", true); }); - // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 - $("#frmSearch--${pageName}").find(".form-date").each(function() { - $(this).on("input", function() { - let value = this.value.replaceAll("-", ""); + // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. + $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { + $(this).prop("disabled", "true"); + }); - if (value.length > 7) { - this.value = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6); - } else if(value.length > 5) { - this.value = value.substring(0, 4) + "-" + value.substring(4); - } - }); - }); + // 달력 초기화 + initDatepicker("frmSearch--${pageName}"); - // DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고 - $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); + $("#schFyr--${pageName}").val(new Date().getFullYear()); + $("#schLevyNoFrom--${pageName}").val("000000"); + $("#schLevyNoTo--${pageName}").val("999999"); - // DataTables 스크롤 이벤트 생성 - fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName}); - } + // 동적 검색 + $("#byOutput--${pageName}").val("동적 검색"); - // 화면 초기 설정 - initForm${pageName} = () => { - // 화면 초기화 - $("#frmSearch--${pageName}")[0].reset(); + // 사용자 이름 + $("#schRgtrNm--${pageName}").prop("readonly", true); + } - // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. - $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { - $(this).prop("disabled", "true"); - }); + // 기본 데이터 설정 + $P.initData = (taskSeCd) => { + // 시군구 코드 + $("#sggCd--${pageName}").val("${sggCd}"); + // 업무 구분 코드 + $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); + } - $("#schFyr--${pageName}").val(new Date().getFullYear()); - $("#schLevyNoFrom--${pageName}").val("000000"); - $("#schLevyNoTo--${pageName}").val("999999"); + // 업무 구분별 설정 + $P.setTask = (taskSeCd) => { + let clsForTask = taskSeCd.toLowerCase(); - // 달력 초기화 - initDatepicker("frmSearch--${pageName}"); + // 업무별 조회조건 + renderForTask("frmSearch--${pageName}", clsForTask); - // 사용자 이름 - $("#schRgtrNm--${pageName}").prop("readonly", true); + // 업무별 그리드 th + $("#DataTables_Table_0--${pageName}").find("th").resizable( "destroy" ); - // dataset 초기화 - ${pageName}Control.dataset.clear(); - } + let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content; + let cols = $(colContent).find("." + clsForTask + ",.cmn"); + let colsOuterHTML = ""; - // 기본 데이터 설정 - setFormData${pageName} = (taskSeCd) => { - // ${pageName}Control 설정 - ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 + cols.each(function() { + colsOuterHTML += this.outerHTML; + }); - // 화면 데이터 설정 - $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 - $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 + $("#theadTr--${pageName}").html(colsOuterHTML); + $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); - // URL 설정 - setURL${pageName}(taskSeCd); - } + // URL 설정 + $P.setURL(taskSeCd); + } - // URL 설정 - setURL${pageName} = (taskSeCd) => { - ${pageName}Control.urls.load = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/050/list.do"); // 조회 - } + // 업무구분에 따른 URL 설정 + $P.setURL = (taskSeCd) => { + $P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/050/list.do"); // 조회 + } - /************************************************************************** - * script 진입 - **************************************************************************/ - $(document).ready(function() { - // 이벤트 설정 - setEvent${pageName}(); + /************************************************************************** + * 최초 실행 함수 + **************************************************************************/ + // 1. 이벤트 설정 + $P.setEvent(); - // 보안모드 - fn_securityModeToggle($("#securityMode--top").is(":checked")); + // 2. 화면 초기 설정 및 업무 구분 변경 +// $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); + $P.fnResetAndChangeBiz("DPV"); - // 화면 초기 설정 및 업무 구분 변경 - fnResetAndChangeBiz${pageName}($("#layout-navbar input[name='taskSeCd']:checked").val()); + // 3. 보안모드 + fn_securityModeToggle($("#securityMode--top").is(":checked")); }); diff --git a/src/main/webapp/WEB-INF/jsp/fims/rcvm/rcvm01020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/rcvm/rcvm01020-info.jsp index 49f52dec..d5db0619 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/rcvm/rcvm01020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/rcvm/rcvm01020-info.jsp @@ -57,10 +57,10 @@ - +
    - - + +
    @@ -302,7 +302,7 @@ $("#txitmCd--${pageName}").prop("readonly", true); // 세목 코드 $("#fyr--${pageName}").prop("readonly", true); // 회계연도 $("#levyNo--${pageName}").prop("readonly", true); // 부과 번호 - $("#inspySn--${pageName}").prop("readonly", true); // 분납 순번 + $("#inspyNo--${pageName}").prop("readonly", true); // 분납 순번 $("#levyPcptax--${pageName}").prop("readonly", true); // 부과 본세 $("#levyAdamt--${pageName}").prop("readonly", true); // 부과 가산금 $("#inspyInt--${pageName}").prop("readonly", true); // 단속 상태 diff --git a/src/main/webapp/WEB-INF/jsp/fims/rdca/rdca01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/rdca/rdca01010-main.jsp new file mode 100644 index 00000000..c28fc9cd --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/fims/rdca/rdca01010-main.jsp @@ -0,0 +1,796 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%> +<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%> + + +
    + +
    + 부과제외 관리 + + +
    +
    +
    + +
    + + + + + +
    + + + +
    + + + + + + + + +
    + + +
    + + +
    + +
      +
    +
    + + + + + +
    +
    + + + +
    + +
    + +
    +
    +
    +
    + + +
    +
    + + + diff --git a/src/main/webapp/WEB-INF/jsp/fims/rdca/rdca01020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/rdca/rdca01020-info.jsp new file mode 100644 index 00000000..6cb45a96 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/fims/rdca/rdca01020-info.jsp @@ -0,0 +1,280 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%> +<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%> + + +
    + +
    + 부과제외 정보 + + +
    + +
    + + + + + + +
    + +
    + + +
    + +
    + + +
    + +
    + + + +
    + +
    + + + +
    + +
    + + +
    + +
    + + +
    +
    +
    +
    + + +
    + + + + + + +
    + + +
    +
    + + diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02020-info.jsp index 84f94031..c9901525 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02020-info.jsp @@ -842,7 +842,7 @@ **************************************************************************/ // 이벤트 설정 $P.setEvent = () => { - // 버튼 이벤트 + // 업무 버튼 이벤트 $("#btnViewCvlcptOrgnl--${pageName}").on("click", () => $P.fnViewCvlcptOrgnl()); // 민원 원본 보기 $("#btnViewAnswerPreview--${pageName}").on("click", () => $P.fnViewAnswerPreview()); // 민원 답변 보기 $("#btnUpdateCrdn--${pageName}").on("click", () => $P.fnUpdateCrdn()); // 단속 정보 수정 diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02060-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02060-info.jsp index 0f1fad40..459daaf8 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02060-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02060-info.jsp @@ -15,6 +15,15 @@
    + + + + +
    @@ -45,7 +54,7 @@
    - +
    @@ -277,6 +286,7 @@ **************************************************************************/ $P.control = new DatasetControl({ prefix : "levy" + , prefixName : "부과" , keymapper : info => info ? info.LEVY_ID : "" , dataGetter : obj => obj.levy , formats : { @@ -378,10 +388,75 @@ }); } + // 부과제외 dialog + $P.createLevyExcl = (params) => { + if (!params) return; + + ajax.get({ + url : wctx.url("/" + params.taskSeCd + "/excl/excl01/020/info.do") + , data : params || {} + , success : resp => { + if ((typeof resp) != "string") { + if (resp.rtnMsg != "") { + dialog.alert(resp.rtnMsg); + } + return; + } else { + dialog.open({ + id : "levyExclDialog" + , title : params.btnTitle + , content : resp + , size : "md" + , onClose : () => { $P.refreshDataInfo(); } + }); + } + } + }); + } + /************************************************************************** * 버튼 clickEvent **************************************************************************/ + // 부과 등록 + $P.fnCreateLevy = () => { + + } + // 부과 취소 + $P.fnCreateLevyExcl = () => { + // 버튼 title + let btnTitle = $("#btnCreateLevyExcl--${pageName}").attr("title"); + + // 단속 ID + let crdnId = $("#crdnId--${pageNameMain}").val(); + // 단속 ID 가 없다면.. return + if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; + + // 단속 상태 코드 + let crdnSttsCd = $("#crdnSttsCd--${pageNameMain}").val(); + let crdnSttsNm = $("#crdnSttsNm--${pageNameMain}").val(); + // 단속 상태 코드 확인 + if (Number(crdnSttsCd) < 51 || Number(crdnSttsCd) > 55) { + dialog.alert({ + content : "단속상태가 '" + crdnSttsNm + "' 입니다." + + "
    " + "[" + btnTitle + "]" + " 실행이 취소되었습니다." + , onOK : () => { } + }); + return; + } + + let params = { + callPurpose : "create" + , btnTitle : btnTitle + , crdnId : crdnId + , sggCd : $("#sggCd--${pageNameMain}").val() + , taskSeCd : $("#taskSeCd--${pageNameMain}").val() + , levyExclSeCd : "3" + , delYN : "N" + }; + + $P.createLevyExcl(params); + } /************************************************************************** * 초기 셋팅 @@ -389,6 +464,8 @@ // 이벤트 설정 $P.setEvent = () => { // 업무 버튼 이벤트 + $("#btnCreateLevy--${pageName}").on("click", () => $P.fnCreateLevy()); // 부과 등록 + $("#btnCreateLevyExcl--${pageName}").on("click", () => $P.fnCreateLevyExcl()); // 부과 취소 } // 기본 데이터 설정 @@ -396,6 +473,8 @@ // 화면 호출(callPurpose)이 view 라면 버튼 비활성화 if (${pageNameMain}CallPurpose == "view") { // button 요소들을 disabled = true + $("#btnCreateLevy--${pageName}").prop("disabled", true); + $("#btnCreateLevyExcl--${pageName}").prop("disabled", true); } } diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02070-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02070-info.jsp index 17cd2b57..76787ffb 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02070-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02070-info.jsp @@ -70,7 +70,7 @@ {ACNTG_SE_CD} {TXITM_CD} {LEVY_NO} - {INSPY_SN} + {INSPY_NO} {RCVMT_YMD} {RCVMT_AMT} {RCVMT_PCPTAX} @@ -134,7 +134,7 @@
    - +