From b29d6a44c5f45177f642e995e992586ddc22f527 Mon Sep 17 00:00:00 2001 From: jjh Date: Wed, 29 Nov 2023 17:56:59 +0900 Subject: [PATCH] =?UTF-8?q?=EC=88=98=EA=B8=B0=20=EC=88=98=EB=82=A9?= =?UTF-8?q?=EB=93=B1=EB=A1=9D,=20=EC=88=98=EA=B8=B0=20=EC=88=98=EB=82=A9?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xit/fims/levy/service/LevyService.java | 15 +- .../xit/fims/levy/service/bean/LevyBean.java | 7 +- .../levy/service/bean/LevyServiceBean.java | 39 +--- .../xit/fims/levy/web/Levy01Controller.java | 50 +++--- src/main/java/cokr/xit/fims/rcvm/Rcvmt.java | 5 + .../java/cokr/xit/fims/rcvm/RcvmtQuery.java | 2 +- .../xit/fims/rcvm/service/RcvmtService.java | 24 ++- .../xit/fims/rcvm/service/bean/RcvmtBean.java | 121 ++++++++++++- .../rcvm/service/bean/RcvmtServiceBean.java | 23 ++- .../xit/fims/rcvm/web/Rcvm01Controller.java | 63 +++++-- .../xit/fims/sprt/web/Sprt02Controller.java | 2 +- .../cokr/xit/fims/task/web/DpvController.java | 14 +- .../sql/mapper/fims/rcvm/rcvmt-mapper.xml | 30 +++- .../WEB-INF/jsp/fims/rcvm/rcvm01020-info.jsp | 120 +++++++++---- .../WEB-INF/jsp/fims/sndb/sndb01240-main.jsp | 15 +- .../WEB-INF/jsp/fims/sprt/sprt02010-main.jsp | 97 +++++----- .../WEB-INF/jsp/fims/sprt/sprt02050-info.jsp | 96 +++++----- .../WEB-INF/jsp/fims/sprt/sprt02070-info.jsp | 170 ++++++++++++------ .../WEB-INF/jsp/fims/sprt/sprt02080-info.jsp | 46 ++--- .../webapp/resources/html/inputRsnDialog.html | 3 +- 20 files changed, 596 insertions(+), 346 deletions(-) diff --git a/src/main/java/cokr/xit/fims/levy/service/LevyService.java b/src/main/java/cokr/xit/fims/levy/service/LevyService.java index 900fdf4c..c1f131b0 100644 --- a/src/main/java/cokr/xit/fims/levy/service/LevyService.java +++ b/src/main/java/cokr/xit/fims/levy/service/LevyService.java @@ -66,7 +66,7 @@ public interface LevyService { *
  • 그렇지 않으면 false
  • * */ - boolean createLevy(Levy levy); + boolean create(Levy levy); /**부과 대장 정보를 수정한다. * @param levy 부과 대장 @@ -75,7 +75,7 @@ public interface LevyService { *
  • 그렇지 않으면 false
  • * */ - boolean updateLevy(Levy levy); + boolean update(Levy levy); /**부과 대장 정보를 삭제한다. * @param levy 부과 대장 @@ -84,15 +84,6 @@ public interface LevyService { *
  • 그렇지 않으면 false
  • * */ - boolean removeLevy(Levy levy); - - /**부과 대장 정보를 삭제한다. - * @param levy 부과 대장 - * @return 저장 여부 - * - */ - boolean removeLevys(LevyQuery req); + boolean remove(Levy levy); } 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 4fe80f2f..4dce9205 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 @@ -262,6 +262,7 @@ public class LevyBean extends AbstractComponent { + /**부과 대장 정보를 등록한다. * @param levy 부과 대장 * @return 저장 여부 @@ -269,7 +270,7 @@ public class LevyBean extends AbstractComponent { *
  • 그렇지 않으면 false
  • * */ - public boolean createLevy(Levy levy) { + public boolean create(Levy levy) { return levyMapper.insert(levy); } @@ -280,7 +281,7 @@ public class LevyBean extends AbstractComponent { *
  • 그렇지 않으면 false
  • * */ - public boolean updateLevy(Levy levy) { + public boolean update(Levy levy) { return levyMapper.update(levy); } @@ -291,7 +292,7 @@ public class LevyBean extends AbstractComponent { *
  • 그렇지 않으면 false
  • * */ - public boolean removeLevy(Levy levy) { + public boolean remove(Levy levy) { return levyMapper.delete(levy); } diff --git a/src/main/java/cokr/xit/fims/levy/service/bean/LevyServiceBean.java b/src/main/java/cokr/xit/fims/levy/service/bean/LevyServiceBean.java index 7a3501c1..56cc108a 100644 --- a/src/main/java/cokr/xit/fims/levy/service/bean/LevyServiceBean.java +++ b/src/main/java/cokr/xit/fims/levy/service/bean/LevyServiceBean.java @@ -65,45 +65,18 @@ public class LevyServiceBean extends AbstractServiceBean implements LevyService } @Override - public boolean createLevy(Levy levy) { - return levyBean.createLevy(levy); + public boolean create(Levy levy) { + return levyBean.create(levy); } @Override - public boolean updateLevy(Levy levy) { - return levyBean.updateLevy(levy); + public boolean update(Levy levy) { + return levyBean.update(levy); } @Override - public boolean removeLevy(Levy levy) { - return levyBean.removeLevy(levy); - } - - @Override - public boolean removeLevys(LevyQuery req) { - // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - - // 부과 IDs 건수를 확인하여 1건이하면.. 종료 - if (req.getRductIDs().length < 1 ) { - return retSuccess; - } - - // 부과 IDs 만큼 반복.. - for (int iLoop = 0; iLoop < req.getRductIDs().length; iLoop++) { - Levy levy = new Levy(); - - levy.setLevyId(req.getLevyIDs()[iLoop]); // 부과 ID - levy.setDelRsn(req.getDelRsn()); // 삭제 사유 - - // 의견제출 삭제 호출 - retSuccess = levyBean.removeLevy(levy); - if (!retSuccess) { - return retSuccess; - } - } - - return true; + public boolean remove(Levy levy) { + return levyBean.remove(levy); } } 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 ac318402..f29bcee1 100644 --- a/src/main/java/cokr/xit/fims/levy/web/Levy01Controller.java +++ b/src/main/java/cokr/xit/fims/levy/web/Levy01Controller.java @@ -35,10 +35,10 @@ public class Levy01Controller extends ApplicationController { public class METHOD_URL { public static final String - reductionLevyTargetMain = "/010/main.do" // 사전 감경부과 대상 메인 화면 - , getReductionLevyTargetList = "/010/list.do" // 사전 감경부과 대상 대장 목록 조회 - , getReductionLevyTargetInfo = "/020/info.do" // 사전 감경부과 대상 정보 - , createReductionLevyList = "/020/createRductLevyList.do" // 사전 감경부과 대장 등록 + reductionLevyTargetMain = "/010/main.do" // 사전 감경부과 대상 메인 화면 + , getReductionLevyTargetList = "/010/list.do" // 사전 감경부과 대상 대장 목록 조회 + , getReductionLevyTargetInfo = "/020/info.do" // 사전 감경부과 대상 정보 + , createReductionLevyList = "/020/createRductLevyList.do" // 사전 감경부과 대장 등록 ; } @@ -100,11 +100,11 @@ public class Levy01Controller extends ApplicationController { return mav.addObject("pageName", "levy01020") .addObject("levyQuery", json ? req : toJson(req)) - .addObject("rductLevyYmdInfo", json ? rductLevyYmdInfo : toJson(rductLevyYmdInfo)) // + .addObject("rductLevyYmdInfo", json ? rductLevyYmdInfo : toJson(rductLevyYmdInfo)) ; } - /**부과 대장를 등록한다. + /**감경부과 대상자료를 부과 대장를 등록한다. * @param levy 부과 대장 정보 * @return jsonView *
     {
    @@ -124,9 +124,13 @@ public class Levy01Controller extends ApplicationController {
     		return new ModelAndView("jsonView")
     				.addObject("saved", saved)
     				.addObject("retMessage", retMessage);
    -
     	}
     
    +
    +
    +
    +
    +
     	/**부과 대장 목록을 조회하여 반환한다.
    * {@link LevyService#getLevyList(LevyQuery)} 참고 * @param req 부과 대장 조회 조건 @@ -145,6 +149,8 @@ public class Levy01Controller extends ApplicationController { return setCollectionInfo(new ModelAndView("jsonView"), result, "levy"); } + + /**부과 대장를 등록한다. * @param levy 부과 대장 정보 * @return jsonView @@ -152,24 +158,12 @@ public class Levy01Controller extends ApplicationController { * "saved": 등록되었으면 true, 그렇지 않으면 false * }
    */ - public ModelAndView createLevy(Levy levy) { - boolean saved = levyService.createLevy(levy); + @PostMapping(name = "부과 대장 등록", value = "/010/create.do") + public ModelAndView create(Levy levy) { + boolean saved = levyService.create(levy); return new ModelAndView("jsonView") .addObject("saved", saved); -// boolean saved = false; -// String retMessage = levyService.createLevy(true, levy); -// -// if (retMessage.contains("[S]")) { -// saved = true; -// } else { -// saved = false; -// } -// -// return new ModelAndView("jsonView") -// .addObject("saved", saved) -// .addObject("retMessage", retMessage); - } /**부과 대장 정보를 수정한다. @@ -179,9 +173,9 @@ public class Levy01Controller extends ApplicationController { * "saved": 수정되었으면 true, 그렇지 않으면 false * } */ - @PostMapping(name = "부과 대장 수정", value = "/020/update.do") - public ModelAndView updateLevy(Levy levy) { - boolean saved = levyService.updateLevy(levy); + @PostMapping(name = "부과 대장 수정", value = "/010/update.do") + public ModelAndView update(Levy levy) { + boolean saved = levyService.update(levy); return new ModelAndView("jsonView") .addObject("saved", saved); @@ -195,9 +189,9 @@ public class Levy01Controller extends ApplicationController { * "saved": 저장되었으면 true, 그렇지 않으면 false * } */ - @PostMapping(name = "부과 대장 제거", value = "/020/remove.do") - public ModelAndView removeLevy(Levy levy) { - boolean saved = levyService.removeLevy(levy); + @PostMapping(name = "부과 대장 제거", value = "/010/remove.do") + public ModelAndView remove(Levy levy) { + boolean saved = levyService.remove(levy); return new ModelAndView("jsonView") .addObject("saved", saved); diff --git a/src/main/java/cokr/xit/fims/rcvm/Rcvmt.java b/src/main/java/cokr/xit/fims/rcvm/Rcvmt.java index cfbd5e81..abd59571 100644 --- a/src/main/java/cokr/xit/fims/rcvm/Rcvmt.java +++ b/src/main/java/cokr/xit/fims/rcvm/Rcvmt.java @@ -77,6 +77,11 @@ public class Rcvmt extends AbstractEntity { */ private String rcvmtYmd; + /** + * 수납 금액 + */ + private Integer rcvmtAmt; + /** * 수납 본세 */ diff --git a/src/main/java/cokr/xit/fims/rcvm/RcvmtQuery.java b/src/main/java/cokr/xit/fims/rcvm/RcvmtQuery.java index 7c877f91..4d6c779b 100644 --- a/src/main/java/cokr/xit/fims/rcvm/RcvmtQuery.java +++ b/src/main/java/cokr/xit/fims/rcvm/RcvmtQuery.java @@ -31,7 +31,7 @@ public class RcvmtQuery extends CmmnQuery { private String schVhrno; // 단속(TB_CRDN)_차량번호 private String schRtpyrNm; // 납부자(TB_PAYER)_납부자 명 // ETC - private String callPurpose; // infoDialog 호출 용도(view 조회, create 등록, update 수정, refresh 재조회). + private String callPurpose; // infoDialog 호출 용도(view 조회, create 등록, update 수정, remove 삭제, refresh 재조회). private String delYn; // 삭제 여부 private String delRsn; // 삭제 사유 diff --git a/src/main/java/cokr/xit/fims/rcvm/service/RcvmtService.java b/src/main/java/cokr/xit/fims/rcvm/service/RcvmtService.java index 4de6b953..cade681a 100644 --- a/src/main/java/cokr/xit/fims/rcvm/service/RcvmtService.java +++ b/src/main/java/cokr/xit/fims/rcvm/service/RcvmtService.java @@ -43,7 +43,25 @@ public interface RcvmtService { *
  • 그렇지 않으면 false
  • * */ - boolean createRcvmt(Rcvmt rcvmt); + String createRcvmt(Rcvmt rcvmt); + + /**수납 대장 정보를 삭제한다. + * @param rcvmt 수납 대장 + * @return 저장 여부 + * + */ + String removeRcvmt(Rcvmt rcvmt); + + /**수납 대장 정보를 등록한다. + * @param rcvmt 수납 대장 + * @return 저장 여부 + * + */ + boolean create(Rcvmt rcvmt); /**수납 대장 정보를 수정한다. * @param rcvmt 수납 대장 @@ -52,7 +70,7 @@ public interface RcvmtService { *
  • 그렇지 않으면 false
  • * */ - boolean updateRcvmt(Rcvmt rcvmt); + boolean update(Rcvmt rcvmt); /**수납 대장 정보를 삭제한다. * @param rcvmt 수납 대장 @@ -61,6 +79,6 @@ public interface RcvmtService { *
  • 그렇지 않으면 false
  • * */ - boolean removeRcvmt(Rcvmt rcvmt); + boolean remove(Rcvmt rcvmt); } 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 d4abcb8e..c88db0d0 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 @@ -34,6 +34,13 @@ public class RcvmtBean extends AbstractComponent { * @return 수납 대장 목록 */ public List getRcvmtList(RcvmtQuery req) { + if (req.getDelYn() == null) { + req.setDelYn("N"); + } + if (req.getOrderBy() == null) { + req.setOrderBy("RCVMT_ID"); + } + return rcvmtMapper.selectRcvmtList(req); } @@ -68,7 +75,114 @@ public class RcvmtBean extends AbstractComponent { *
  • 그렇지 않으면 false
  • * */ - public boolean createRcvmt(Rcvmt rcvmt) { + public String createRcvmt(Rcvmt rcvmt) { + // 변수 선언 + boolean retSuccess = false; // DB 처리 결과 + String retMessage = "[F] "; // 처리 결과 메시지 + + // 부과 ID로 단속, 부과 정보 조회 + DataObject levyInfo = rcvmtMapper.selectLevyInfo(new RcvmtQuery().setLevyId(rcvmt.getLevyId()) + .setDelYn("N")); + + String rcvmtSeCd = ""; // 수납 구분 코드(FIM041) + + // 입력된 수납 금액으로 수납 본세, 수납 가산금 나누기 + int pcptax = levyInfo.number("PCPTAX").intValue(); // 본세 + int adamt = levyInfo.number("ADAMT").intValue(); // 가산금 + + if (pcptax + adamt == rcvmt.getRcvmtAmt()) { + rcvmt.setRcvmtPcptax(pcptax); // 수납 본세 + rcvmt.setRcvmtAdamt(adamt); // 수납 가산금 + rcvmtSeCd = "01"; // 수납 구분 코드 = 완납 + } else if (pcptax + adamt == 0) { // 납부할 금액이 없다면.. + rcvmt.setRcvmtPcptax(0); // 수납 본세 + rcvmt.setRcvmtAdamt(0); // 수납 가산금 + rcvmtSeCd = "02"; // 수납 구분 코드 = 이중수납 + } else if (pcptax + adamt < rcvmt.getRcvmtAmt()) { + rcvmt.setRcvmtPcptax(pcptax); // 수납 본세 + rcvmt.setRcvmtAdamt(adamt); // 수납 가산금 + rcvmtSeCd = "04"; // 수납 구분 코드 = 과납 + } else if (pcptax + adamt > rcvmt.getRcvmtAmt()) { + if (rcvmt.getRcvmtAmt() > pcptax) { + rcvmt.setRcvmtPcptax(pcptax); // 수납 본세 + rcvmt.setRcvmtAdamt(rcvmt.getRcvmtAmt() - pcptax); // 수납 가산금 + } else { + rcvmt.setRcvmtPcptax(rcvmt.getRcvmtAmt()); // 수납 본세 + rcvmt.setRcvmtAdamt(0); // 수납 가산금 + } + rcvmtSeCd = "06"; // 수납 구분 코드 = 일부수납 + } else { + throw new RuntimeException("수납 등록 중 수납금액 계산에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + // 수납 구분 코드가 입력 되지 않았다면.. + if (rcvmt.getRcvmtSeCd() == null) { + rcvmt.setRcvmtSeCd(rcvmtSeCd); + } + + retSuccess = rcvmtMapper.insert(rcvmt); + if (!retSuccess) { + throw new RuntimeException("수납 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + // 부과 테이블 수정 + + + // 단속 상태 변경 + + + + retMessage = "[S] 작업이 정상 처리 되었습니다."; + + return retMessage; + } + + /**수납 대장 정보를 삭제한다. + * @param rcvmt 수납 대장 + * @return 저장 여부 + * + */ + public String removeRcvmt(Rcvmt rcvmt) { + // 변수 선언 + boolean retSuccess = false; // DB 처리 결과 + String retMessage = "[F] "; // 처리 결과 메시지 + + // 수납 ID로 수납 정보 조회 + DataObject rcvmtInfo = rcvmtMapper.selectRcvmtInfo(new RcvmtQuery().setRcvmtId(rcvmt.getRcvmtId()) + .setDelYn("N")); + + if (!rcvmtInfo.string("RCVMT_INPT_SE_CD").equals("03")) { + retMessage = "[F] 수납입력구분이 수기 입력이 아닙니다."; + return retMessage; + } + + retSuccess = rcvmtMapper.delete(rcvmt); + if (!retSuccess) { + throw new RuntimeException("수납 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + // 부과 테이블 수정 + + + // 단속 상태 변경 + + + + retMessage = "[S] 작업이 정상 처리 되었습니다."; + + return retMessage; + } + + /**수납 대장 정보를 등록한다. + * @param rcvmt 수납 대장 + * @return 저장 여부 + * + */ + public boolean create(Rcvmt rcvmt) { return rcvmtMapper.insert(rcvmt); } @@ -79,7 +193,7 @@ public class RcvmtBean extends AbstractComponent { *
  • 그렇지 않으면 false
  • * */ - public boolean updateRcvmt(Rcvmt rcvmt) { + public boolean update(Rcvmt rcvmt) { return rcvmtMapper.update(rcvmt); } @@ -90,7 +204,8 @@ public class RcvmtBean extends AbstractComponent { *
  • 그렇지 않으면 false
  • * */ - public boolean removeRcvmt(Rcvmt rcvmt) { + public boolean remove(Rcvmt rcvmt) { return rcvmtMapper.delete(rcvmt); } + } diff --git a/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtServiceBean.java b/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtServiceBean.java index 7abf4ad6..2270f58f 100644 --- a/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtServiceBean.java +++ b/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtServiceBean.java @@ -44,6 +44,9 @@ public class RcvmtServiceBean extends AbstractServiceBean implements RcvmtServic if (req.getCallPurpose() == null) { req.setCallPurpose("view"); } + if (req.getDelYn() == null) { + req.setDelYn("N"); + } if (req.getCallPurpose().equals("create")) { return rcvmtBean.getLevyInfo(req); // 부과 정보 조회 @@ -53,18 +56,28 @@ public class RcvmtServiceBean extends AbstractServiceBean implements RcvmtServic } @Override - public boolean createRcvmt(Rcvmt rcvmt) { + public String createRcvmt(Rcvmt rcvmt) { return rcvmtBean.createRcvmt(rcvmt); } @Override - public boolean updateRcvmt(Rcvmt rcvmt) { - return rcvmtBean.updateRcvmt(rcvmt); + public String removeRcvmt(Rcvmt rcvmt) { + return rcvmtBean.removeRcvmt(rcvmt); } @Override - public boolean removeRcvmt(Rcvmt rcvmt) { - return rcvmtBean.removeRcvmt(rcvmt); + public boolean create(Rcvmt rcvmt) { + return rcvmtBean.create(rcvmt); + } + + @Override + public boolean update(Rcvmt rcvmt) { + return rcvmtBean.update(rcvmt); + } + + @Override + public boolean remove(Rcvmt rcvmt) { + return rcvmtBean.remove(rcvmt); } } diff --git a/src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java b/src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java index b1d4267b..0b7fd9d7 100644 --- a/src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java +++ b/src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java @@ -10,7 +10,6 @@ import org.springframework.web.servlet.ModelAndView; import cokr.xit.base.code.CommonCode; import cokr.xit.base.user.ManagedUser; import cokr.xit.base.web.ApplicationController; -import cokr.xit.fims.excl.LevyExclQuery; import cokr.xit.fims.rcvm.Rcvmt; import cokr.xit.fims.rcvm.RcvmtQuery; import cokr.xit.fims.rcvm.service.RcvmtService; @@ -35,10 +34,8 @@ public class Rcvm01Controller extends ApplicationController { receivingMoneyMain = "/010/main.do" // 수납 관리 메인 화면 , getReceivingMoneyList = "/010/list.do" // 수납 대장 목록 조회 , getReceivingMoneyInfo = "/020/info.do" // 수납 정보 조회 - , createReceivingMoney = "/020/create.do" // 수납 대장 등럭 - , updateReceivingMoney = "/020/update.do" // 수납 대장 수정 - , removeReceivingMoneyList = "/010/removes.do" // 수납 대장 목록 삭제 - , removeReceivingMoney = "/010/remove.do" // 수납 대장 삭제 + , createReceivingMoney = "/020/createRcvmt.do" // 수납 대장 등록 + , removeReceivingMoney = "/010/removeRcvmt.do" // 수납 대장 삭제 ; } @@ -112,7 +109,7 @@ public class Rcvm01Controller extends ApplicationController { ; } - /**수납 대장를 등록한다. + /**수납 대장 정보를 등록한다. * @param rcvmt 수납 대장 정보 * @return jsonView *
     {
    @@ -120,7 +117,51 @@ public class Rcvm01Controller extends ApplicationController {
     	 * }
    */ public ModelAndView createReceivingMoney(Rcvmt rcvmt) { - boolean saved = rcvmtService.createRcvmt(rcvmt); + boolean saved = false; + String retMessage = rcvmtService.createRcvmt(rcvmt); + + if (retMessage.contains("[S]")) { + saved = true; + } else { + saved = false; + } + + return new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("retMessage", retMessage); + } + + /**수납 대장 정보를 삭제한다. + * @param rcvmt 수납 대장 정보 + * @return jsonView + *
     {
    +	 *     "saved": 등록되었으면 true, 그렇지 않으면 false
    +	 * }
    + */ + public ModelAndView removeReceivingMoney(Rcvmt rcvmt) { + boolean saved = false; + String retMessage = rcvmtService.removeRcvmt(rcvmt); + + if (retMessage.contains("[S]")) { + saved = true; + } else { + saved = false; + } + + return new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("retMessage", retMessage); + } + + /**수납 대장를 등록한다. + * @param rcvmt 수납 대장 정보 + * @return jsonView + *
     {
    +	 *     "saved": 등록되었으면 true, 그렇지 않으면 false
    +	 * }
    + */ + public ModelAndView create(Rcvmt rcvmt) { + boolean saved = rcvmtService.create(rcvmt); return new ModelAndView("jsonView") .addObject("saved", saved); @@ -133,8 +174,8 @@ public class Rcvm01Controller extends ApplicationController { * "saved": 수정되었으면 true, 그렇지 않으면 false * } */ - public ModelAndView updateReceivingMoney(Rcvmt rcvmt) { - boolean saved = rcvmtService.updateRcvmt(rcvmt); + public ModelAndView update(Rcvmt rcvmt) { + boolean saved = rcvmtService.update(rcvmt); return new ModelAndView("jsonView") .addObject("saved", saved); @@ -148,8 +189,8 @@ public class Rcvm01Controller extends ApplicationController { * "saved": 저장되었으면 true, 그렇지 않으면 false * } */ - public ModelAndView removeReceivingMoney(Rcvmt rcvmt) { - boolean saved = rcvmtService.removeRcvmt(rcvmt); + public ModelAndView remove(Rcvmt rcvmt) { + boolean saved = rcvmtService.remove(rcvmt); return new ModelAndView("jsonView") .addObject("saved", saved); diff --git a/src/main/java/cokr/xit/fims/sprt/web/Sprt02Controller.java b/src/main/java/cokr/xit/fims/sprt/web/Sprt02Controller.java index 03747b38..da356cb8 100644 --- a/src/main/java/cokr/xit/fims/sprt/web/Sprt02Controller.java +++ b/src/main/java/cokr/xit/fims/sprt/web/Sprt02Controller.java @@ -447,7 +447,7 @@ public class Sprt02Controller extends ApplicationController { List rcvmt = rcvmtService.getRcvmts(new RcvmtQuery().setCallPurpose(req.getCallPurpose()) .setCrdnId(req.getCrdnId()) .setDelYn(req.getDelYn()) - .setOrderBy("R.RCVMT_SN DESC")); + .setOrderBy("R.RCVMT_ID DESC")); boolean json = jsonResponse(); diff --git a/src/main/java/cokr/xit/fims/task/web/DpvController.java b/src/main/java/cokr/xit/fims/task/web/DpvController.java index ac0a7276..ac1f2526 100644 --- a/src/main/java/cokr/xit/fims/task/web/DpvController.java +++ b/src/main/java/cokr/xit/fims/task/web/DpvController.java @@ -759,19 +759,7 @@ public class DpvController { } @Override - @RequestMapping(name="수납 대장 수정", value=METHOD_URL.updateReceivingMoney) - public ModelAndView updateReceivingMoney(Rcvmt rcvmt) { - return super.updateReceivingMoney(rcvmt); - } - -// @Override -// @RequestMapping(name="수납 대장 목록 삭제", value=METHOD_URL.removeReceivingMoneyList) -// public ModelAndView removeReceivingMoneyList(RcvmtQuery req) { -// return super.removeReceivingMoneyList(req); -// } - - @Override - @RequestMapping(name="수납 대장 삭제", value=METHOD_URL.removeReceivingMoney) + @RequestMapping(name="수납 대장 등록", value=METHOD_URL.removeReceivingMoney) public ModelAndView removeReceivingMoney(Rcvmt rcvmt) { return super.removeReceivingMoney(rcvmt); } 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 b6990803..8b8c040b 100644 --- a/src/main/resources/sql/mapper/fims/rcvm/rcvmt-mapper.xml +++ b/src/main/resources/sql/mapper/fims/rcvm/rcvmt-mapper.xml @@ -21,6 +21,7 @@ + @@ -59,6 +60,7 @@ , R.INSPY_SN /* 분납 일련번호 */ , R.RCVMT_SN /* 수납 일련번호 */ , R.RCVMT_YMD /* 수납 일자 */ + , R.RCVMT_AMT /* 수납 금액 */ , R.RCVMT_PCPTAX /* 수납 본세 */ , R.RCVMT_ADAMT /* 수납 가산금 */ , R.RCVMT_INT /* 수납 이자 */ @@ -84,8 +86,8 @@ , R.DEL_RSN /* 삭제 사유 */ , (SELECT GET_CODE_NM('FIM054', R.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */ , (SELECT GET_CODE_NM('FIM044', R.RCVMT_INPT_SE_CD) FROM DUAL) AS RCVMT_INPT_SE_NM /* 수납 입력 구분 명 */ - , (SELECT GET_CODE_NM('FIM044', R.ACNTG_SE_CD) FROM DUAL) AS ACNTG_SE_NM /* 회계 구분 명 */ - , (SELECT GET_CODE_NM('FIM044', R.TXITM_CD) FROM DUAL) AS TXITM_NM /* 세목 코드 명 */ + , (SELECT GET_CODE_NM('FIM074', R.ACNTG_SE_CD) FROM DUAL) AS ACNTG_SE_NM /* 회계 구분 명 */ + , (SELECT GET_CODE_NM('FIM075', R.TXITM_CD) FROM DUAL) AS TXITM_NM /* 세목 코드 명 */ , (SELECT GET_CODE_NM('FIM045', R.PAY_MTHD_SE_CD) FROM DUAL) AS PAY_MTHD_SE_NM /* 납부 방법 구분 명 */ , (SELECT GET_CODE_NM('FIM041', R.RCVMT_SE_CD) FROM DUAL) AS RCVMT_SE_NM /* 수납 구분 명 */ , (SELECT GET_CODE_NM('CMM005', R.RCVMT_RTRCN_YN) FROM DUAL) AS RCVMT_RTRCN_NM /* 수납 취소 여부 명 */ @@ -149,6 +151,9 @@ AND R.RCVMT_YMD #{schRcvmtYmdTo} /* 소인 일자 종료 */ + + AND R.DEL_YN = #{delYn} /* 삭제 여부 */ + AND C.CRDN_YMD = ]]> #{schCrdnYmdFrom} /* 단속 일자 시작 */ @@ -258,13 +263,21 @@ , L.FFNLG_AMT /* 과태료 금액 */ , L.LEVY_PCPTAX /* 부과 본세 */ , L.LEVY_ADAMT /* 부과 가산금 */ + , L.INSPY_INT /* 분납 이자 */ + , L.LEVY_PCPTAX - L.RCVMT_PCPTAX - L.RDCAMT_PCPTAX AS PCPTAX /* 본세 */ + , L.LEVY_ADAMT - L.RCVMT_ADAMT - L.RDCAMT_ADAMT AS ADAMT /* 가산금 */ , C.CRDN_ID /* 단속 ID */ + , C.SGG_CD /* 시군구 코드 */ + , C.TASK_SE_CD /* 업무 구분 코드 */ , C.VHRNO /* 차량번호 */ , C.CRDN_PLC /* 단속 장소 */ , 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 /* 단속 상태 명 */ + , (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 /* 단속 상태 명 */ + , AS RCVMT_YMD /* 수납 일자 */ + , AS PSTMRK_YMD /* 소인 일자 */ + , AS ACNTG_YMD /* 회계 일자 */ FROM TB_LEVY L INNER JOIN TB_CRDN C ON (L.CRDN_ID = C.CRDN_ID) @@ -280,6 +293,12 @@ /* 수납 대장 등록(rcvmtMapper.insertRcvmt) */ + + SELECT (CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(RCVMT_ID, 5)) + 1, 1) AS INT), 16, '0'))) AS NEW_ID + , (SELECT LPAD(CAST(IFNULL(MAX(RCVMT_SN) + 1, 1) AS INT), 2, '0') FROM TB_RCVMT WHERE LEVY_ID = #{rcvmt.levyId}) AS NEW_RCVMT_SN + FROM TB_RCVMT + WHERE RCVMT_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%') + INSERT INTO TB_RCVMT ( RCVMT_ID /* 수납 ID */ @@ -295,6 +314,7 @@ , INSPY_SN /* 분납 일련번호 */ , RCVMT_SN /* 수납 일련번호 */ , RCVMT_YMD /* 수납 일자 */ + , RCVMT_AMT /* 수납 금액 */ , RCVMT_PCPTAX /* 수납 본세 */ , RCVMT_ADAMT /* 수납 가산금 */ , RCVMT_INT /* 수납 이자 */ @@ -330,6 +350,7 @@ , #{rcvmt.inspySn} /* 분납 일련번호 */ , #{rcvmt.rcvmtSn} /* 수납 일련번호 */ , #{rcvmt.rcvmtYmd} /* 수납 일자 */ + , #{rcvmt.rcvmtAmt} /* 수납 금액 */ , #{rcvmt.rcvmtPcptax} /* 수납 본세 */ , #{rcvmt.rcvmtAdamt} /* 수납 가산금 */ , #{rcvmt.rcvmtInt} /* 수납 이자 */ @@ -365,6 +386,7 @@ , INSPY_SN = #{rcvmt.inspySn} /* 분납 일련번호 */ , RCVMT_SN = #{rcvmt.rcvmtSn} /* 수납 일련번호 */ , RCVMT_YMD = #{rcvmt.rcvmtYmd} /* 수납 일자 */ + , RCVMT_AMT = #{rcvmt.rcvmtAmt} /* 수납 금액 */ , RCVMT_PCPTAX = #{rcvmt.rcvmtPcptax} /* 수납 본세 */ , RCVMT_ADAMT = #{rcvmt.rcvmtAdamt} /* 수납 가산금 */ , RCVMT_INT = #{rcvmt.rcvmtInt} /* 수납 이자 */ 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 77258b93..0ed6dd30 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 @@ -16,28 +16,66 @@ +
    - -
    - - + +
    + + +
    + +
    + + +
    + +
    + +
    -
    +
    - +
    -
    +
    - + +
    + +
    +
    + +
    + +
    -
    +
    - - + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + +

    @@ -64,7 +102,7 @@
    -
    +
    - +
    - - + +
    - +
    - - -
    - -
    - -
    -
    +
    - +
    -
    +
    - + - +
    - +
    - +
    - +
    - +
    - +
    - +
    - +
    - - + +
    - +
    - +
    - +
    + +
    + + +
    - +
    - +
    + +
    +
    - +
    - +
    @@ -132,8 +140,9 @@ 회계구분 세목코드 부과번호 - 분납일련번호 + 분납번호 수납일자 + 수납금액 수납본세 수납가산금 수납이자 @@ -164,11 +173,12 @@ {LEVY_NO} {INSPY_SN} {RCVMT_YMD} + {RCVMT_AMT} {RCVMT_PCPTAX} {RCVMT_ADAMT} {RCVMT_INT} - {RCVMT_BANK_NM} - {PAY_MTHD_SE_NM} + {RCVMT_BANK_NM} + {PAY_MTHD_SE_NM} {PSTMRK_YMD} {ACNTG_YMD} {VRACTNO} @@ -184,7 +194,7 @@ @@ -218,6 +228,7 @@ RCVMT_YMD : dateFormat , ACNTG_YMD : dateFormat , PSTMRK_YMD : dateFormat + , RCVMT_AMT : numberFormat , RCVMT_PCPTAX : numberFormat , RCVMT_ADAMT : numberFormat , RCVMT_INT : numberFormat @@ -253,7 +264,7 @@ ${pageName}Fields.set(item); // 화면에 자료 셋팅 }; - // 민원 상담 내용 Dialog + // 등록 ${pageName}Control.getInfo = (params) => { let dialogTitle = ""; @@ -281,26 +292,32 @@ }); } - // 삭제 callback - ${pageName}Control.onRemove = (resp) => { - let btnTitle = $("#btnRemove--${pageName}").attr("title"); - let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle); + // 삭제 + callbackRemoveRcvmt${pageName} = () => { + // 서버에 전송할 data(파라미터) 생성 + let params = { + callPurpose : "remove" + , rcvmtId : ${pageName}Control.dataset.getValue("RCVMT_ID") // 수납 ID + , delYn : "Y" // 삭제 여부 + , delRsn : obj.reason // 삭제 사유 + }; - dialog.alert(showMessage); + // 삭제 url + ${pageName}Control.urls.remove = wctx.url(${pageName}Control.dataset.getValue("TASK_SE_CD") + ${pageName}PrefixUrl + "/010/removeRcvmt.do"); - if (resp.saved) { - $("#dscsnCn--${pageName}").val(""); // 상담내용 초기화 + ajax.post({ + url : ${pageName}Control.urls.remove + , data : params + , success : resp => { + let btnTitle = $("#btnRemoveRcvmt--${pageName}").attr("title"); + let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle); - refreshDataInfo${pageName}(); // 자료 재조회 - } - } + dialog.alert(showMessage); // 메시지 출력 - // 삭제 - ${pageName}Control.remove = (params) => { - ajax.post({ - url : wctx.url(params.taskSeCd + ${pageName}PrefixUrl + "/010/remove.do") - , data : params || {} - , success : resp => ${pageName}Control.onRemove(resp) // 삭제 callback + if (resp.saved) { + refreshDataInfo${pageName}(); // 자료 재조회 + } + } }); } @@ -323,6 +340,32 @@ $("#tbody--${pageName}").html(trs.join()); } + // 자료 재조회 + refreshDataInfo${pageName} = () => { + let crdnId = $("#crdnId--${pageNameMain}").val(); + + // 단속 ID 가 없다면.. return + if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; + + let params = { + callPurpose : "refresh" + , crdnId : crdnId + , sggCd : sggCd = $("#sggCd--${pageNameMain}").val() + , taskSeCd : taskSeCd = $("#taskSeCd--${pageNameMain}").val() + , delYn : "N" + }; + + ajax.get({ + url : wctx.url(taskSeCd + "/sprt/sprt02/070/info.do") + , headers: { Accept: "application/json; charset=utf-8" } // json + , data : params || {} + , success : resp => { + ${pageName}Control.dataset.clear(); + ${pageName}Control.setData(resp.rcvmt); // Dataset 셋팅 + } + }); + } + /************************************************************************** * 초기 셋팅 **************************************************************************/ @@ -346,20 +389,18 @@ **************************************************************************/ // 수기 수납 등록 fnCreateRcvmt${pageName} = () => { - let sggCd = $("#sggCd--${pageNameMain}").val(); - let taskSeCd = $("#taskSeCd--${pageNameMain}").val(); + let crdnId = $("#crdnId--${pageNameMain}").val(); let levyId = $("#levyId--${pageName}").val(); // 부과 ID 가 없다면.. return - if (levyId == undefined || levyId == "") { - return; - } + if (typeof levyId == "undefined" || levyId == null || levyId == "") return; let params = { - callPurpose : "create" - , sggCd : sggCd - , taskSeCd : taskSeCd - , levyId : levyId + callPurpose : "create" + , crdnId : crdnId + , sggCd : $("#sggCd--${pageNameMain}").val() + , taskSeCd : $("#taskSeCd--${pageNameMain}").val() + , levyId : levyId }; ${pageName}Control.getInfo(params); @@ -367,7 +408,36 @@ // 수기 수납 삭제 fnRemoveRcvmt${pageName} = () => { - alert("수기 수납 삭제"); + // 수납 ID + let rcvmtId = ${pageName}Control.dataset.getValue("RCVMT_ID"); + + // 수납 ID 가 없다면.. return + if (typeof rcvmtId == "undefined" || rcvmtId == null || rcvmtId == "") return; + + // 수납 입력 구분이 03(수기) 일때만 삭제 가능 + if (${pageName}Control.dataset.getValue("RCVMT_INPT_SE_CD") != "03") { + dialog.alert({ + content : "수납입력구분이 수기로 등록된 자료만 삭제 가능합니다." + , onOK : () => { } + }); + + return; + } + + let callbackFuncName = "callbackRemoveRcvmt${pageName}"; + let popupWidth = 640; + let popupHeight = 360; + let popupX = (window.screen.width / 2) - (popupWidth / 2); + let popupY= (window.screen.height / 2) - (popupHeight / 2); + + window.open( + wctx.url("/resources/html/inputRsnDialog.html" + + "?callbackFuncName=" + callbackFuncName + + "&CALL_PURPOSE=" + "remove" + ) + , "inputDelRsnDialog" + , 'status=no, height=' + popupHeight + ', width=' + popupWidth + ', left='+ popupX + ', top='+ popupY + ); } /************************************************************************** diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02080-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02080-info.jsp index dbfabe2e..6bcd75cb 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02080-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02080-info.jsp @@ -208,9 +208,7 @@ let vhrno = $("#vhrno--${pageNameMain}").val(); // 단속 ID 가 없다면.. return - if (crdnId == null || crdnId == "") { - return; - } + if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; let params = { callPurpose : "refresh" @@ -257,19 +255,15 @@ // 민원 상담 내용 등록 fnCreate${pageName} = () => { let crdnId = $("#crdnId--${pageNameMain}").val(); - let sggCd = $("#sggCd--${pageNameMain}").val(); - let taskSeCd = $("#taskSeCd--${pageNameMain}").val(); // 단속 ID 가 없다면.. return - if (crdnId == undefined || crdnId == "") { - return; - } + if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; let params = { - callPurpose : "create" - , crdnId : crdnId - , sggCd : sggCd - , taskSeCd : taskSeCd + callPurpose : "create" + , crdnId : crdnId + , sggCd : $("#sggCd--${pageNameMain}").val() + , taskSeCd : $("#taskSeCd--${pageNameMain}").val() }; ${pageName}Control.getInfo(params); @@ -280,16 +274,14 @@ let cvlcptDscsnId = ${pageName}Control.dataset.getValue("CVLCPT_DSCSN_ID"); // 민원 상담 ID 가 없다면.. return - if (cvlcptDscsnId == undefined || cvlcptDscsnId == "") { - return; - } + if (typeof cvlcptDscsnId == "undefined" || cvlcptDscsnId == null || cvlcptDscsnId == "") return; let params = { - callPurpose : "update" - , crdnId : ${pageName}Control.dataset.getValue("CRDN_ID") - , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") - , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") - , cvlcptDscsnId : cvlcptDscsnId + callPurpose : "update" + , crdnId : ${pageName}Control.dataset.getValue("CRDN_ID") + , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") + , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") + , cvlcptDscsnId : cvlcptDscsnId }; ${pageName}Control.getInfo(params); @@ -300,16 +292,14 @@ let cvlcptDscsnId = ${pageName}Control.dataset.getValue("CVLCPT_DSCSN_ID"); // 민원 상담 ID 가 없다면.. return - if (cvlcptDscsnId == null || cvlcptDscsnId == "") { - return; - } + if (typeof cvlcptDscsnId == "undefined" || cvlcptDscsnId == null || cvlcptDscsnId == "") return; let params = { - callPurpose : "remove" - , crdnId : ${pageName}Control.dataset.getValue("CRDN_ID") - , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") - , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") - , cvlcptDscsnId : cvlcptDscsnId + callPurpose : "remove" + , crdnId : ${pageName}Control.dataset.getValue("CRDN_ID") + , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") + , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") + , cvlcptDscsnId : cvlcptDscsnId }; dialog.alert({ diff --git a/src/main/webapp/resources/html/inputRsnDialog.html b/src/main/webapp/resources/html/inputRsnDialog.html index 84faab48..8e643e22 100644 --- a/src/main/webapp/resources/html/inputRsnDialog.html +++ b/src/main/webapp/resources/html/inputRsnDialog.html @@ -64,7 +64,7 @@