From bb266513c4062904f472417dcd831e1ce24938f1 Mon Sep 17 00:00:00 2001 From: jjh Date: Fri, 25 Aug 2023 17:24:01 +0900 Subject: [PATCH] =?UTF-8?q?1.=20serviceBean=20=EC=97=90=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1=EB=90=9C=20=EC=BD=94=EB=93=9C=20bean=20=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EC=86=8C=EC=8A=A4=20=EB=B3=80=EA=B2=BD.=202.=20?= =?UTF-8?q?=EC=BF=BC=EB=A6=AC=EB=AC=B8=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cokr/xit/fims/excl/ExclQuery.java | 19 +- .../java/cokr/xit/fims/excl/LevyExcl.java | 66 --- .../xit/fims/excl/dao/LevyExclMapper.java | 41 +- .../xit/fims/excl/dao/OpnnSbmsnMapper.java | 43 +- .../xit/fims/excl/service/Excl02Service.java | 21 +- .../fims/excl/service/bean/Excl01Bean.java | 401 +++++++++++++--- .../excl/service/bean/Excl01ServiceBean.java | 326 +------------ .../fims/excl/service/bean/Excl02Bean.java | 242 ++++++++-- .../excl/service/bean/Excl02ServiceBean.java | 219 +-------- .../xit/fims/excl/web/Excl02Controller.java | 4 +- .../java/cokr/xit/fims/sndb/Sndb01Query.java | 24 + .../java/cokr/xit/fims/sprt/SprtQuery.java | 44 +- .../cokr/xit/fims/sprt/dao/Sprt02Mapper.java | 12 +- .../xit/fims/sprt/service/Sprt02Service.java | 9 +- .../fims/sprt/service/bean/Sprt02Bean.java | 9 +- .../sprt/service/bean/Sprt02ServiceBean.java | 35 +- .../xit/fims/sprt/web/Sprt02Controller.java | 18 +- .../cokr/xit/fims/task/web/CmnController.java | 6 +- .../sql/mapper/fims/excl/levyExcl-mapper.xml | 446 +++++++++--------- .../sql/mapper/fims/excl/opnnSbmsn-mapper.xml | 162 +++---- .../WEB-INF/jsp/fims/excl/excl01010-main.jsp | 57 +-- .../WEB-INF/jsp/fims/excl/excl01020-info.jsp | 2 +- .../WEB-INF/jsp/fims/excl/excl02010-main.jsp | 15 +- .../WEB-INF/jsp/fims/excl/excl02030-info.jsp | 2 +- .../WEB-INF/jsp/fims/sprt/sprt02010-main.jsp | 27 +- .../WEB-INF/jsp/fims/sprt/sprt02020-info.jsp | 41 +- .../WEB-INF/jsp/fims/sprt/sprt02030-info.jsp | 49 +- 27 files changed, 1168 insertions(+), 1172 deletions(-) diff --git a/src/main/java/cokr/xit/fims/excl/ExclQuery.java b/src/main/java/cokr/xit/fims/excl/ExclQuery.java index c766cad5..87fbc686 100644 --- a/src/main/java/cokr/xit/fims/excl/ExclQuery.java +++ b/src/main/java/cokr/xit/fims/excl/ExclQuery.java @@ -514,6 +514,16 @@ public class ExclQuery extends QueryRequest { // 동적 검색 조건 /////////////////////////////////////////////////////////////// // ETC ///////////////////////////////////////////////////////////////////// + public String getCallPurpose() { + return ifEmpty(callPurpose, () -> null); + } + + public T setCallPurpose(String callPurpose) { + this.callPurpose = callPurpose; + + return self(); + } + public String getAnsRsnCd() { return ifEmpty(ansRsnCd, () -> null); } @@ -544,15 +554,6 @@ public class ExclQuery extends QueryRequest { return self(); } - public String getCallPurpose() { - return ifEmpty(callPurpose, () -> null); - } - - public T setCallPurpose(String callPurpose) { - this.callPurpose = callPurpose; - - return self(); - } // ETC ///////////////////////////////////////////////////////////////////// } diff --git a/src/main/java/cokr/xit/fims/excl/LevyExcl.java b/src/main/java/cokr/xit/fims/excl/LevyExcl.java index 085c7bcd..56a5bfc7 100644 --- a/src/main/java/cokr/xit/fims/excl/LevyExcl.java +++ b/src/main/java/cokr/xit/fims/excl/LevyExcl.java @@ -92,70 +92,4 @@ public class LevyExcl extends AbstractEntity { */ private String delRsn; -// 추가 ///////////////////////////////////////////////////////////////////// - /** - * 단속(TB_CRDN) - 단속 등록 구분 코드 - */ - private String crdnRegSeCd; - - /** - * 단속(TB_CRDN) - 단속 일자 - */ - private String crdnYmd; - - /** - * 단속(TB_CRDN) - 단속 시각 - */ - private String crdnTm; - - /** - * 단속(TB_CRDN) - 차량번호 - */ - private String vhrno; - - /** - * 단속(TB_CRDN) - 주차 가능 결과 코드 - */ - private String parkngPsbltyRsltCd; - - /** - * 단속 민원(TB_CRDN_CVLCPT) - 민원 연계 ID - */ - private String cvlcptLinkId; - - /** - * 단속 민원(TB_CRDN_CVLCPT) - 민원 처리 코드 - */ - private String cvlcptPrcsCd; - - /** - * 단속 민원(TB_CRDN_CVLCPT) - 민원 처리 요약 - */ - private String cvlcptPrcsSumry; - - /** - * 단속 민원(TB_CRDN_CVLCPT) - 민원 처리 결과 내용 - */ - private String cvlcptPrcsRsltCn; - - /** - * 단속 민원(TB_CRDN_CVLCPT) - 민원 처리 완료 일시 - */ - private String cvlcptPrcsCmptnDt; - - /** - * 단속 민원(TB_CRDN_CVLCPT) - 민원 처리 담당자 - */ - private String cvlcptPrcsPic; - - /** - * 단속 민원(TB_CRDN_CVLCPT) - 민원 전송 코드 - */ - private String cvlcptTrsmCd; - - /** - * 발송 상세(TB_SNDNG_DTL) - 발송 수납 코드 - */ - private String sndngRcvmtCd; - } 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 43a62bcd..cac191bd 100644 --- a/src/main/java/cokr/xit/fims/excl/dao/LevyExclMapper.java +++ b/src/main/java/cokr/xit/fims/excl/dao/LevyExclMapper.java @@ -6,6 +6,9 @@ import java.util.Map; import org.egovframe.rte.psl.dataaccess.mapper.Mapper; import cokr.xit.fims.excl.LevyExcl; +import cokr.xit.fims.sndb.SndngDtl; +import cokr.xit.fims.crdn.Crdn; +import cokr.xit.fims.cvlc.CrdnCvlcpt; import cokr.xit.fims.excl.ExclQuery; import cokr.xit.foundation.component.AbstractMapper; import cokr.xit.foundation.data.DataObject; @@ -61,8 +64,8 @@ public interface LevyExclMapper extends AbstractMapper { *
  • 그렇지 않으면 false
  • * */ - default boolean insert(LevyExcl excl01) { - return excl01 != null && insertLevyExcl(params().set("excl01", excl01)) == 1; + default boolean insert(LevyExcl levyExcl) { + return levyExcl != null && insertLevyExcl(params().set("levyExcl", levyExcl)) == 1; } /**부과제외 대장 정보를 수정한다. @@ -71,8 +74,8 @@ public interface LevyExclMapper extends AbstractMapper { */ int updateLevyExcl(Map params); - default boolean update(LevyExcl excl01) { - return excl01 != null && updateLevyExcl(params().set("excl01", excl01)) == 1; + default boolean update(LevyExcl levyExcl) { + return levyExcl != null && updateLevyExcl(params().set("levyExcl", levyExcl)) == 1; } /**부과제외 대장 정보를 삭제한다. @@ -84,8 +87,8 @@ public interface LevyExclMapper extends AbstractMapper { */ int deleteLevyExcl(Map params); - default boolean delete(LevyExcl excl01) { - return excl01 != null && deleteLevyExcl(params().set("excl01", excl01)) >= 1; + default boolean delete(LevyExcl levyExcl) { + return levyExcl != null && deleteLevyExcl(params().set("levyExcl", levyExcl)) >= 1; } /**지정한 단속 ID의 단속, 부과제외 정보를 반환한다. @@ -112,24 +115,14 @@ public interface LevyExclMapper extends AbstractMapper { return cvlcptAnsWordsInfo; } - /**단속민원(TB_CRDN_CVLCPT) 대장 민원처리코드, 민원전송코드를 수정 한다. - * @param excl 부과제외 대장 - * @return 저장된 정보수 - */ - int updateCrdnCvlcptPrcs(Map params); - - default boolean updateCrdnCvlcptPrcs(LevyExcl excl01) { - return excl01 != null && updateCrdnCvlcptPrcs(params().set("excl01", excl01)) == 1; - } - /**단속민원(TB_CRDN_CVLCPT) 대장의 민원처리결과내용(CVLCPT_PRCS_RSLT_CN)을 초기화 한다. * @param excl 부과제외 대장 * @return 저장된 정보수 */ int updateCvlcptPrcsRsltCn(Map params); - default boolean updateCvlcptPrcsRsltCn(LevyExcl excl01) { - return excl01 != null && updateCvlcptPrcsRsltCn(params().set("excl01", excl01)) == 1; + default boolean updateCvlcptPrcsRsltCn(CrdnCvlcpt crdnCvlcpt) { + return crdnCvlcpt != null && updateCvlcptPrcsRsltCn(params().set("crdnCvlcpt", crdnCvlcpt)) == 1; } /**단속민원(TB_CRDN_CVLCPT) 대장의 민원답변 정보를 초기화 한다. @@ -138,8 +131,8 @@ public interface LevyExclMapper extends AbstractMapper { */ int updateCrdnCvlcpt(Map params); - default boolean updateCrdnCvlcpt(LevyExcl excl01) { - return excl01 != null && updateCrdnCvlcpt(params().set("excl01", excl01)) == 1; + default boolean updateCrdnCvlcpt(CrdnCvlcpt crdnCvlcpt) { + return crdnCvlcpt != null && updateCrdnCvlcpt(params().set("crdnCvlcpt", crdnCvlcpt)) == 1; } /**단속(TB_CRDN) 대장의 주차가능결과코드를 수정 한다. @@ -148,8 +141,8 @@ public interface LevyExclMapper extends AbstractMapper { */ int updateParkngPsbltyRsltCd(Map params); - default boolean updateParkngPsbltyRsltCd(LevyExcl excl01) { - return excl01 != null && updateParkngPsbltyRsltCd(params().set("excl01", excl01)) == 1; + default boolean updateParkngPsbltyRsltCd(Crdn crdn) { + return crdn != null && updateParkngPsbltyRsltCd(params().set("crdn", crdn)) == 1; } /**지정한 조건에 따라 발송상세 대장을 조회하여 반환한다. @@ -171,8 +164,8 @@ public interface LevyExclMapper extends AbstractMapper { */ int updateRcvmtCd(Map params); - default boolean updateRcvmtCd(LevyExcl excl01) { - return excl01 != null && updateRcvmtCd(params().set("excl01", excl01)) >= 1; + default boolean updateRcvmtCd(SndngDtl sndngDtl) { + return sndngDtl != null && updateRcvmtCd(params().set("sndngDtl", sndngDtl)) >= 1; } } 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 c98adc3d..de20b35f 100644 --- a/src/main/java/cokr/xit/fims/excl/dao/OpnnSbmsnMapper.java +++ b/src/main/java/cokr/xit/fims/excl/dao/OpnnSbmsnMapper.java @@ -6,6 +6,7 @@ import java.util.Map; import org.egovframe.rte.psl.dataaccess.mapper.Mapper; import cokr.xit.fims.excl.OpnnSbmsn; +import cokr.xit.fims.crdn.Crdn; import cokr.xit.fims.excl.ExclQuery; import cokr.xit.foundation.component.AbstractMapper; import cokr.xit.foundation.data.DataObject; @@ -73,8 +74,8 @@ public interface OpnnSbmsnMapper extends AbstractMapper { *
  • 그렇지 않으면 false
  • * */ - default boolean insert(OpnnSbmsn excl02) { - return excl02 != null && insertOpnnSbmsn(params().set("excl02", excl02)) == 1; + default boolean insert(OpnnSbmsn opnnSbmsn) { + return opnnSbmsn != null && insertOpnnSbmsn(params().set("opnnSbmsn", opnnSbmsn)) == 1; } /**의견제출 대장 정보를 수정한다. @@ -93,68 +94,68 @@ public interface OpnnSbmsnMapper extends AbstractMapper { *
  • 그렇지 않으면 false
  • * */ - default boolean update(OpnnSbmsn excl02) { - return excl02 != null && updateOpnnSbmsn(params().set("excl02", excl02)) == 1; + default boolean update(OpnnSbmsn opnnSbmsn) { + return opnnSbmsn != null && updateOpnnSbmsn(params().set("opnnSbmsn", opnnSbmsn)) == 1; } - /**지정한 의견제출 대장을 삭제한다. + /**의견제출 심의(결과) 정보를 수정한다. * @param params 파라미터 *
    • "opnnSbmsn" - 의견제출 대장
    • *
    • "currentUser" - 현재 접속한 사용자
    • *
    * @return 저장된 정보수 */ - int deleteOpnnSbmsn(Map params); + int updateAnsSttsCd(Map params); - /**의견제출 대장 정보를 삭제한다. + /**의견제출 심의(결과) 정보를 수정한다. * @param opnnSbmsn 의견제출 대장 * @return 저장 여부 *
    • 저장됐으면 true
    • *
    • 그렇지 않으면 false
    • *
    */ - default boolean delete(OpnnSbmsn excl02) { - return excl02 != null && deleteOpnnSbmsn(params().set("excl02", excl02)) == 1; + default boolean updateOpnnSbmsnAnswer(OpnnSbmsn excl02) { + return excl02 != null && updateAnsSttsCd(params().set("excl02", excl02)) == 1; } - /**의견제출 대장 정보를 수정한다. + /**단속 대장 정보를 수정한다. * @param params 파라미터 - *
    • "opnnSbmsn" - 의견제출 대장
    • + *
      • "crdn" - 단속 대장
      • *
      • "currentUser" - 현재 접속한 사용자
      • *
      * @return 저장된 정보수 */ - int updateOpnnSbmsnYn(Map params); + int updateCrdnOpnnSbmsnYn(Map params); - /**의견제출 대장 정보를 수정한다. - * @param opnnSbmsn 의견제출 대장 + /**단속 대장 정보를 수정한다. + * @param crdn 단속 대장 * @return 저장 여부 *
      • 저장됐으면 true
      • *
      • 그렇지 않으면 false
      • *
      */ - default boolean updateCrdn(OpnnSbmsn excl02) { - return excl02 != null && updateOpnnSbmsnYn(params().set("excl02", excl02)) == 1; + default boolean updateCrdn(Crdn crdn) { + return crdn != null && updateCrdnOpnnSbmsnYn(params().set("crdn", crdn)) == 1; } - /**의견제출 대장 정보를 수정한다. + /**지정한 의견제출 대장을 삭제한다. * @param params 파라미터 *
      • "opnnSbmsn" - 의견제출 대장
      • *
      • "currentUser" - 현재 접속한 사용자
      • *
      * @return 저장된 정보수 */ - int updateAnsSttsCd(Map params); + int deleteOpnnSbmsn(Map params); - /**의견제출 대장 정보를 수정한다. + /**의견제출 대장 정보를 삭제한다. * @param opnnSbmsn 의견제출 대장 * @return 저장 여부 *
      • 저장됐으면 true
      • *
      • 그렇지 않으면 false
      • *
      */ - default boolean updateOpnnSbmsnAnswer(OpnnSbmsn excl02) { - return excl02 != null && updateAnsSttsCd(params().set("excl02", excl02)) == 1; + default boolean delete(OpnnSbmsn opnnSbmsn) { + return opnnSbmsn != null && deleteOpnnSbmsn(params().set("opnnSbmsn", opnnSbmsn)) == 1; } } diff --git a/src/main/java/cokr/xit/fims/excl/service/Excl02Service.java b/src/main/java/cokr/xit/fims/excl/service/Excl02Service.java index b84d649e..4bd71775 100644 --- a/src/main/java/cokr/xit/fims/excl/service/Excl02Service.java +++ b/src/main/java/cokr/xit/fims/excl/service/Excl02Service.java @@ -44,7 +44,7 @@ public interface Excl02Service { *
    • 그렇지 않으면 false
    • *
    */ - boolean createOpnnSbmsn(OpnnSbmsn excl02, List fileInfoList); + boolean createOpnnSbmsn(OpnnSbmsn opnnSbmsn, List fileInfoList); /**의견제출 대장 정보를 수정한다. * @param opnnSbmsn 의견제출 대장 @@ -53,33 +53,34 @@ public interface Excl02Service { *
  • 그렇지 않으면 false
  • * */ - boolean updateOpnnSbmsn(OpnnSbmsn excl02, List fileInfoList); + boolean updateOpnnSbmsn(OpnnSbmsn opnnSbmsn, List fileInfoList); - /**의견제출 대장 정보를 삭제한다. + /**의견제출 대장 심의(답변) 정보를 수정한다. * @param opnnSbmsn 의견제출 대장 * @return 저장 여부 *
    • 저장됐으면 true
    • *
    • 그렇지 않으면 false
    • *
    */ - boolean removeOpnnSbmsn(OpnnSbmsn excl02); + boolean updateOpnnSbmsnAnswer(OpnnSbmsn opnnSbmsn); - /**부과제외 대장 정보를 삭제한다. - * @param excl 부과제외 대장 + /**의견제출 대장 정보를 삭제한다. + * @param opnnSbmsn 의견제출 대장 * @return 저장 여부 *
    • 저장됐으면 true
    • *
    • 그렇지 않으면 false
    • *
    */ - boolean removeOpnnSbmsnList(ExclQuery req); + boolean removeOpnnSbmsn(OpnnSbmsn opnnSbmsn); - /**의견제출 대장 답변(상태) 정보를 수정한다. - * @param opnnSbmsn 의견제출 대장 + /**부과제외 대장 정보를 삭제한다. + * @param excl 부과제외 대장 * @return 저장 여부 *
    • 저장됐으면 true
    • *
    • 그렇지 않으면 false
    • *
    */ - boolean updateOpnnSbmsnAnswer(OpnnSbmsn excl02); + boolean removeOpnnSbmsnList(ExclQuery req); + } diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/Excl01Bean.java b/src/main/java/cokr/xit/fims/excl/service/bean/Excl01Bean.java index 29098b57..80a91ff3 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/Excl01Bean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/Excl01Bean.java @@ -1,5 +1,7 @@ package cokr.xit.fims.excl.service.bean; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.List; import javax.annotation.Resource; @@ -7,9 +9,15 @@ import javax.annotation.Resource; import org.springframework.stereotype.Component; import cokr.xit.fims.excl.LevyExcl; +import cokr.xit.fims.cmmn.CrdnSttsHstry; +import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean; +import cokr.xit.fims.crdn.Crdn; +import cokr.xit.fims.cvlc.CrdnCvlcpt; import cokr.xit.fims.excl.ExclQuery; import cokr.xit.fims.excl.dao.LevyExclMapper; +import cokr.xit.fims.sndb.SndngDtl; import cokr.xit.foundation.AbstractComponent; +import cokr.xit.foundation.UserInfo; import cokr.xit.foundation.data.DataObject; /**부과제외 대장 정보 관리 Bean @@ -29,6 +37,10 @@ public class Excl01Bean extends AbstractComponent { @Resource(name = "levyExclMapper") private LevyExclMapper levyExclMapper; + /** 단속 상태 이력 정보 Bean */ + @Resource(name = "crdnSttsHstryBean") + private CrdnSttsHstryBean crdnSttsHstryBean; + /**지정한 조건에 따라 부과제외 대장 목록을 조회하여 반환한다. * @param req 부과제외 대장 조회 조건 * @return 부과제외 대장 목록 @@ -47,7 +59,7 @@ public class Excl01Bean extends AbstractComponent { if (req.getLevyExclId() != null) { return levyExclMapper.selectLevyExclInfo(req.getLevyExclId()); // 수정(부과제외 조회) } else { - DataObject dataCrdn = levyExclMapper.selectCrdn(req); // 등록(단속 조회) + DataObject dataCrdn = levyExclMapper.selectCrdn(req); // 등록(단속 조회) // 초기 데이터 설정 dataCrdn.set("LEVY_EXCL_YMD", dataCrdn.get("TODAY")); // 부과 제외 일자 @@ -64,8 +76,172 @@ public class Excl01Bean extends AbstractComponent { *
  • 그렇지 않으면 false
  • * */ - public boolean createLevyExcl(LevyExcl excl01) { - return levyExclMapper.insert(excl01); + public boolean createLevyExcl(LevyExcl levyExcl) { + // 변수 선언 + boolean retSuccess = false; // DB 처리 결과 + String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD) + String newCvlcptPrcsCd = ""; // 신규 민원 처리 코드(CVLCPT_PRCS_CD) + String newCvlcptTrsmCd = ""; // 민원 전송 코드(CVLCPT_TRSM_CD) + + // 단속 ID로 단속, 단속민원, 부과제외 정보 조회 + DataObject infoCrdnLevyExcl = levyExclMapper.selectCrdnInfo(levyExcl.getCrdnId()); + + // 부과제외 ID가 있다면 이미 부과제외 자료가 존재하므로 종료.. + if (!infoCrdnLevyExcl.string("LEVY_EXCL_ID").equals("")) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 정보가 이미 존재합니다."); + } + // 단속 상태 코드(CRDN_STTS_CD) 확인.. + if (levyExcl.getLevyExclSeCd().equals("1") || levyExcl.getLevyExclSeCd().equals("2")) { // 비부과(서손), 계고 + // 단속 상태 코드가 부과(51) 보다 크다면, 비부과 또는 계고를 등록 할 수 없다. 종료.. + if (Integer.parseInt(infoCrdnLevyExcl.string("CRDN_STTS_CD")) > 50) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 상태 입니다"); + } + } else if (levyExcl.getLevyExclSeCd().equals("5")) { + // 단속 상태 코드가 부과(51) 보다 작다면, 전액감액 등록 할 수 없다. 종료.. 전액감액 등록은 부과이후... + if (Integer.parseInt(infoCrdnLevyExcl.string("CRDN_STTS_CD")) < 51) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 상태 입니다"); + } + } + + // 단속 상태 코드 설정. + if (levyExcl.getLevyExclSeCd().equals("1")) { // 비부과 + newCrdnSttsCd = "81"; // 비부과(서손) + } else if (levyExcl.getLevyExclSeCd().equals("2")) { // 계고 + newCrdnSttsCd = "83"; // 계고 + } else if (levyExcl.getLevyExclSeCd().equals("5")) { // 전액감액 + newCrdnSttsCd = "80"; // 부과취소 + } + + // 부과제외(TB_LEVY_EXCL) 대장을 등록 한다. + retSuccess = levyExclMapper.insert(levyExcl); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 대장 등록에 실패하였습니다."); + } + + // 단속상태이력(TB_CRDN_STTS_HSTRY) + CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); + + crdnSttsHstry.setCrdnId(infoCrdnLevyExcl.string("CRDN_ID")); + crdnSttsHstry.setBfrSttsCd(infoCrdnLevyExcl.string("CRDN_STTS_CD")); + crdnSttsHstry.setBfrSttsChgDt(infoCrdnLevyExcl.string("CRDN_STTS_CHG_DT")); + crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd); + crdnSttsHstry.setTaskDtlId(levyExcl.getLevyExclId()); + crdnSttsHstry.setEtcCn("부과제외 대장 등록"); + + // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록 한다. + retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 등록 중 단속상태코드 변경에 실패하였습니다."); + } + + // 비부과(서손)일 경우 단속민원(TB_CRDN_CVLCPT) 자료 처리 + if (levyExcl.getLevyExclSeCd().equals("1")) { + // 단속민원ID가 있다면.. + if (!infoCrdnLevyExcl.string("CVLCPT_LINK_ID").equals("")) { + // 자동등록 자료만 단속민원(TB_CRDN_CVLCPT) 답변 부분을 처리 + if (infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("02")) { + // 단속민원(TB_CRDN_CVLCPT) 대장 + CrdnCvlcpt crdnCvlcpt = new CrdnCvlcpt(); + + crdnCvlcpt.setCvlcptLinkId(infoCrdnLevyExcl.string("CVLCPT_LINK_ID")); // 민원 연계 ID + + // 답변내용을 초기화, 답변대상이었다가 답변내용보기를 했다가 서손처리하면 답변내용이 이미 세팅되어 있으므로 초기화해야 한다. + // 서손사유 수정시도 답변내용보기를 했을 수 있으므로 초기화해야 한다. + // 서손취소시도 답변내용이 부과 기본 내용으로 바꾸이야 하므로 초기화해야 한다. + // 단속민원 민원처리결과내용 수정 + retSuccess = levyExclMapper.updateCvlcptPrcsRsltCn(crdnCvlcpt); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 등록 중 단속민원 대장의 민원처리결과내용 초기화에 실패하였습니다."); + } + + // 답변완료 후 서손처리에 대해서는 답변 상태를 업데이트 하지 않는다 + // 전송대상, 전송 미대상 자료에 대해서 업데이트한다. + if (infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("01") + || infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("02") + || infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("03")) { + // 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장 조회 + DataObject infoCvlcptAnsWords = levyExclMapper.selectCvlcptAnsWordsInfo(levyExcl.getLevyExclRsnCd()); + + // 비부과(서손)사유가 민원 답변대상인가? 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장에 답변 사유 코드가 존재한다면.. + if (!infoCvlcptAnsWords.string("ANS_WORDS_ID").equals("")) { + newCvlcptPrcsCd = "04"; // 민원 처리 코드 - 불수용(과태료 부과제외) + newCvlcptTrsmCd = "01"; // 민원 전송 코드 - 전송 대상 + } else { + newCvlcptPrcsCd = "07"; // 민원 처리 코드 - 비부과(서손)사유가 답변 미대상 + newCvlcptTrsmCd = "03"; // 민원 전송 코드 - 비부과(서손)사유가 전송 미대상 + } + + // 현재 날짜 구하기 + LocalDate now = LocalDate.now(); + // 포맷 정의 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); // yyyy년 MM월 dd일 HH시 mm분 ss초 + // 포맷 적용 + String formatedNow = now.format(formatter); + + // 단속민원(TB_CRDN_CVLCPT) 대장을 수정 한다. + crdnCvlcpt.setCvlcptPrcsCd(newCvlcptPrcsCd); // 민원 처리 코드 + crdnCvlcpt.setCvlcptPrcsSumry(infoCvlcptAnsWords.string("PRCS_SUMRY")); // 민원 처리 요약 + crdnCvlcpt.setCvlcptPrcsRsltCn(infoCvlcptAnsWords.string("PRCS_RSLT_CN")); // 민원 처리 결과 내용 + crdnCvlcpt.setCvlcptPrcsCmptnDt(formatedNow); // 민원 처리 완료 일시 + crdnCvlcpt.setCvlcptPrcsPic(UserInfo.current().getId()); // 민원 처리 담당자 + crdnCvlcpt.setCvlcptTrsmCd(newCvlcptTrsmCd); // 민원 전송 코드 + + // 단속민원 민원처리코드 수정 + retSuccess = levyExclMapper.updateCrdnCvlcpt(crdnCvlcpt); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 등록 중 단속민원답변 수정에 실패하였습니다."); + } + } + } // if (infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("02")) + } // 단속민원ID가 있다면.. + + // 표지정보 확인여부가 미확인이면 -> 조회미대상 으로 + if (infoCrdnLevyExcl.string("PARKNG_PSBLTY_RSLT_CD").equals("0")) { + // 단속(TB_CRDN) 대장 + Crdn crdn = new Crdn(); + + crdn.setCrdnId(levyExcl.getCrdnId()); // 단속 ID + crdn.setParkngPsbltyRsltCd("9"); // 주차 가능 결과 코드 + + retSuccess = levyExclMapper.updateParkngPsbltyRsltCd(crdn); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 등록 중 단속 대장의 표지정보확인여부 수정에 실패하였습니다."); + } + } + + // 단속 ID로 발송 상세(TB_SNDNG_DTL) 대장 정보 조회 + DataObject infoSndngDtl = levyExclMapper.selectSndngDtlInfo(levyExcl.getCrdnId(), "1"); + + if (infoSndngDtl != null) { + // 발송 상세(TB_SNDNG_DTL) 대장 + SndngDtl sndngDtl = new SndngDtl(); + + sndngDtl.setCrdnId(levyExcl.getCrdnId()); // 단속 ID + + // 발송상세 수납코드를 수정 + retSuccess = levyExclMapper.updateRcvmtCd(sndngDtl); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 등록 중 발송상세 대장의 수납코드 수정에 실패하였습니다."); + } + } + // 계고 + } else if (levyExcl.getLevyExclSeCd().equals("2")) { + + // 전액감액 + } else if (levyExcl.getLevyExclSeCd().equals("5")) { + // 부과(TB_LEVY)에 감액금액 입력이 필요.. + } + + return true; } /**부과제외 대장 정보를 수정한다. @@ -75,8 +251,84 @@ public class Excl01Bean extends AbstractComponent { *
  • 그렇지 않으면 false
  • * */ - public boolean updateLevyExcl(LevyExcl excl01) { - return levyExclMapper.update(excl01); + public boolean updateLevyExcl(LevyExcl levyExcl) { + // 변수 선언 + boolean retSuccess = false; // DB 처리 결과 + String newCvlcptPrcsCd = ""; // 신규 민원 처리 코드(CVLCPT_PRCS_CD) + String newCvlcptTrsmCd = ""; // 민원 전송 코드(CVLCPT_TRSM_CD) + + // 부과제외(TB_LEVY_EXCL) 자료 조회 + DataObject infoCrdnLevyExcl = levyExclMapper.selectLevyExclInfo(levyExcl.getLevyExclId()); + + // 부과제외(TB_LEVY_EXCL) 대장을 수정 한다. + retSuccess = levyExclMapper.update(levyExcl); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 대장 수정에 실패하였습니다."); + } + + // 비부과(서손)일 경우 단속민원(TB_CRDN_CVLCPT) 자료 처리 + if (levyExcl.getLevyExclSeCd().equals("1") ) { + // 단속민원(TB_CRDN_CVLCPT)에 자료가 있는지 확인 + if (!infoCrdnLevyExcl.string("CVLCPT_LINK_ID").equals("")) { + // 단속 민원 대장 + CrdnCvlcpt crdnCvlcpt = new CrdnCvlcpt(); + + crdnCvlcpt.setCvlcptLinkId(infoCrdnLevyExcl.string("CVLCPT_LINK_ID")); // 민원 연계 ID + + // 답변대상이었다가 답변내용보기를 했다가 서손처리하면 답변내용이 이미 세팅되어 있으므로 초기화해야 한다. + // 서손사유 수정시도 답변내용보기를 했을 수 있으므로 초기화해야 한다. + // 서손취소시도 답변내용이 부과 기본 내용으로 바꾸이야 하므로 초기화해야 한다. + retSuccess = levyExclMapper.updateCvlcptPrcsRsltCn(crdnCvlcpt); // 단속민원 민원처리결과내용 초기화 + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 수정 중 단속민원 대장의 민원처리결과내용 초기화에 실패하였습니다."); + } + + // 자동등록 자료만.. + if (infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("02")) { + // 민원전송코드가 전송대상(01) 또는 전송미대상(03) 자료만 민원답변 부분을 처리 + if (infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("01") || infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("03")) { + // 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장 조회 + DataObject infoCvlcptAnsWords = levyExclMapper.selectCvlcptAnsWordsInfo(levyExcl.getLevyExclRsnCd()); + + // 비부과(서손)사유가 민원 답변대상인가? 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장에 답변 사유 코드가 존재한다면.. + if (infoCvlcptAnsWords != null) { + newCvlcptPrcsCd = "04"; // 민원 처리 코드 - 불수용(과태료 부과제외) + newCvlcptTrsmCd = "01"; // 민원 전송 코드 - 전송 대상 + + // 답변 문구가 필요해 보임.. + } else { + newCvlcptPrcsCd = "07"; // 민원 처리 코드 - 비부과(서손)사유가 답변 미대상 + newCvlcptTrsmCd = "03"; // 민원 전송 코드 - 비부과(서손)사유가 전송 미대상 + } + + // 현재 날짜 구하기 + LocalDate now = LocalDate.now(); + // 포맷 정의 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); // yyyy년 MM월 dd일 HH시 mm분 ss초 + // 포맷 적용 + String formatedNow = now.format(formatter); + + // 단속민원(TB_CRDN_CVLCPT) 대장을 수정 한다. + crdnCvlcpt.setCvlcptPrcsCd(newCvlcptPrcsCd); // 민원 처리 코드 + crdnCvlcpt.setCvlcptPrcsSumry(infoCvlcptAnsWords.string("PRCS_SUMRY")); // 민원 처리 요약 + crdnCvlcpt.setCvlcptPrcsRsltCn(infoCvlcptAnsWords.string("PRCS_RSLT_CN")); // 민원 처리 결과 내용 + crdnCvlcpt.setCvlcptPrcsCmptnDt(formatedNow); // 민원 처리 완료 일시 + crdnCvlcpt.setCvlcptPrcsPic(UserInfo.current().getId()); // 민원 처리 담당자 + crdnCvlcpt.setCvlcptTrsmCd(newCvlcptTrsmCd); // 민원 전송 코드 + + retSuccess = levyExclMapper.updateCrdnCvlcpt(crdnCvlcpt); // 단속민원 민원처리코드 수정 + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 등록 중 민원처리코드 수정에 실패하였습니다."); + } + } + } // 자동등록 자료만.. + } // 단속민원(TB_CRDN_CVLCPT)에 자료가 있는지 확인 + } // 비부과(서손)일 경우.. + + return true; } /**부과제외 대장 정보를 삭제한다. @@ -86,87 +338,80 @@ public class Excl01Bean extends AbstractComponent { *
  • 그렇지 않으면 false
  • * */ - public boolean removeLevyExcl(LevyExcl excl01) { - return levyExclMapper.delete(excl01); - } + public boolean removeLevyExcl(LevyExcl levyExcl) { + // 변수 선언 + boolean retSuccess = false; // DB 처리 결과 - /**지정한 조건에 따라 단속자료 기준의 부과제외 대장 목록을 조회하여 반환한다. - * @param crdnId 단속 ID - * @return 단속, 부과제외 대장 목록 - */ - public DataObject getCrdnLevyExcl(String crdnId) { - return levyExclMapper.selectCrdnInfo(crdnId); - } + // 부과제외(TB_LEVY_EXCL) 자료 조회 + DataObject infoLevyExcl = levyExclMapper.selectLevyExclInfo(levyExcl.getLevyExclId()); - /**지정한 조건에 따라 민원답변문구 대장을 조회하여 반환한다. - * @param crdnId 단속 ID - * @return 단속, 부과제외 대장 목록 - */ - public DataObject selectCvlcptAnsWordsInfo(String ansRsnCd) { - return levyExclMapper.selectCvlcptAnsWordsInfo(ansRsnCd); - } + // 단속 상태 코드(CRDN_STTS_CD) 확인.. + if (infoLevyExcl.string("LEVY_EXCL_SE_CD").equals("1") && !infoLevyExcl.string("CRDN_STTS_CD").equals("81")) { // 비부과(서손) + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("단속 상태가 " + infoLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다."); + } else if (infoLevyExcl.string("LEVY_EXCL_SE_CD").equals("2") && !infoLevyExcl.string("CRDN_STTS_CD").equals("83")) { // 계고 + throw new RuntimeException("단속 상태가 " + infoLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다."); + } else if (infoLevyExcl.string("LEVY_EXCL_SE_CD").equals("5") && !infoLevyExcl.string("CRDN_STTS_CD").equals("80")) { // 부과취소 + throw new RuntimeException("단속 상태가 " + infoLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다."); + } - /**단속민원(TB_CRDN_CVLCPT) 대장 민원처리코드, 민원전송코드를 수정 한다. - * @param excl 부과제외 대장 - * @return 저장 여부 - *
    • 저장됐으면 true
    • - *
    • 그렇지 않으면 false
    • - *
    - */ - public boolean updateCrdnCvlcptPrcs(LevyExcl excl01) { - return levyExclMapper.updateCrdnCvlcptPrcs(excl01); - } + // 부과제외(TB_LEVY_EXCL) 대장을 삭제 한다. + retSuccess = levyExclMapper.delete(levyExcl); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 대장 삭제에 실패하였습니다."); + } - /**단속민원(TB_CRDN_CVLCPT) 대장의 민원처리결과내용(CVLCPT_PRCS_RSLT_CN)을 초기화 한다. - * @param excl 부과제외 대장 - * @return 저장 여부 - *
    • 저장됐으면 true
    • - *
    • 그렇지 않으면 false
    • - *
    - */ - public boolean updateCvlcptPrcsRsltCn(LevyExcl excl01) { - return levyExclMapper.updateCvlcptPrcsRsltCn(excl01); - } + // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다. + retSuccess = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(infoLevyExcl.string("CRDN_ID")); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 삭제 중 단속상태 변경에 실패하였습니다."); + } - /**단속민원(TB_CRDN_CVLCPT) 대장의 민원답변 정보를 초기화 한다. - * @param excl 부과제외 대장 - * @return 저장 여부 - *
    • 저장됐으면 true
    • - *
    • 그렇지 않으면 false
    • - *
    - */ - public boolean updateCrdnCvlcpt(LevyExcl excl01) { - return levyExclMapper.updateCrdnCvlcpt(excl01); - } + // 부과제외 구분이 비부과(서손)일 경우 단속민원(TB_CRDN_CVLCPT) 자료 처리 + if (infoLevyExcl.string("LEVY_EXCL_SE_CD").equals("1")) { + // 단속민원(TB_CRDN_CVLCPT)에 자료가 있는지 확인 + if (!infoLevyExcl.string("CVLCPT_LINK_ID").equals("")) { + // 자동등록 자료만 민원답변 부분을 처리 + if (infoLevyExcl.string("CRDN_REG_SE_CD").equals("02")) { + // 비부과(서손) 취소하는데, 단속민원 전송상태가 전송대상(01) 또는 전송미대상(03), 전송요청(04) 자료이면 초기상태(전송대상)로 되돌린다 + if (infoLevyExcl.string("CVLCPT_TRSM_CD").equals("01") + || infoLevyExcl.string("CVLCPT_TRSM_CD").equals("03") + || infoLevyExcl.string("CVLCPT_TRSM_CD").equals("04")) { + CrdnCvlcpt crdnCvlcpt = new CrdnCvlcpt(); - /**단속(TB_CRDN) 대장의 주차가능결과코드를 수정 한다. - * @param excl 부과제외 대장 - * @return 저장 여부 - *
    • 저장됐으면 true
    • - *
    • 그렇지 않으면 false
    • - *
    - */ - public boolean updateParkngPsbltyRsltCd(LevyExcl excl01) { - return levyExclMapper.updateParkngPsbltyRsltCd(excl01); - } + crdnCvlcpt.setCvlcptLinkId(infoLevyExcl.string("CVLCPT_LINK_ID")); + crdnCvlcpt.setCvlcptPrcsCd("00"); // 민원 처리 코드 - 00 접수 + crdnCvlcpt.setCvlcptPrcsSumry(""); // 민원 처리 요약 + crdnCvlcpt.setCvlcptPrcsRsltCn(""); // 민원 처리 결과 내용 + crdnCvlcpt.setCvlcptPrcsCmptnDt(""); // 민원 처리 완료 일시 + crdnCvlcpt.setCvlcptPrcsPic(""); // 민원 처리 담당자 + crdnCvlcpt.setCvlcptTrsmCd("01"); // 민원 전송 코드 - 01 전송대상 - /**지정한 조건에 따라 발송상세 대장을 조회하여 반환한다. - * @param crdnId 단속 ID - * @return 단속, 부과제외 대장 목록 - */ - public DataObject selectSndngDtlInfo(String crdnId, String sndngRcvmtCd) { - return levyExclMapper.selectSndngDtlInfo(crdnId, sndngRcvmtCd); - } + // 민원답변 정보 초기화 + retSuccess = levyExclMapper.updateCrdnCvlcpt(crdnCvlcpt); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 삭제 중 민원답변 정보 초기화에 실패하였습니다."); + } + } + } // 자동등록 자료만 민원답변 부분을 처리 + } // 단속민원(TB_CRDN_CVLCPT)에 자료가 있는지 확인 - /**발송상세(TB_SNDNG_DTL) 대장의 수납코드를 수정 한다. - * @param excl 부과제외 대장 - * @return 저장 여부 - *
    • 저장됐으면 true
    • - *
    • 그렇지 않으면 false
    • - *
    - */ - public boolean updateRcvmtCd(LevyExcl excl01) { - return levyExclMapper.updateRcvmtCd(excl01); + // 표지정보 확인여부가 조회미대상이면 -> 미확인 으로 + // 혹시 차적조회가 안되었으면? 놔두자 차적조회되면 그 때 표지정보 BJ_Send가 처리할테니 + if (infoLevyExcl.string("PARKNG_PSBLTY_RSLT_CD").equals("9")) { // 주차 가능 결과 코드 - 9 조회 미대상 + Crdn crdn = new Crdn(); // 단속(TB_CRDN) 대장 + + crdn.setCrdnId(levyExcl.getCrdnId()); // 단속 ID + crdn.setParkngPsbltyRsltCd("0"); // 주차 가능 결과 코드 - 0 미확인 + + retSuccess = levyExclMapper.updateParkngPsbltyRsltCd(crdn); + } + } // 부과제외 구분이 비부과(서손)일 경우 + + return true; } } diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/Excl01ServiceBean.java b/src/main/java/cokr/xit/fims/excl/service/bean/Excl01ServiceBean.java index bff01712..5cd5b52a 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/Excl01ServiceBean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/Excl01ServiceBean.java @@ -1,19 +1,14 @@ package cokr.xit.fims.excl.service.bean; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; -import cokr.xit.fims.cmmn.CrdnSttsHstry; -import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean; import cokr.xit.fims.excl.LevyExcl; import cokr.xit.fims.excl.ExclQuery; import cokr.xit.fims.excl.service.Excl01Service; -import cokr.xit.foundation.UserInfo; import cokr.xit.foundation.component.AbstractServiceBean; import cokr.xit.foundation.data.DataObject; @@ -34,10 +29,6 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv @Resource(name = "excl01Bean") protected Excl01Bean excl01Bean; - /** 단속 상태 이력 정보 Bean */ - @Resource(name = "crdnSttsHstryBean") - private CrdnSttsHstryBean crdnSttsHstryBean; - @Override public List getLevyExclList(ExclQuery req) { return excl01Bean.getLevyExclList(req); @@ -49,315 +40,18 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv } @Override - public boolean createLevyExcl(LevyExcl excl01) { - // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD) - String newCvlcptPrcsCd = ""; // 신규 민원 처리 코드(CVLCPT_PRCS_CD) - String newCvlcptTrsmCd = ""; // 민원 전송 코드(CVLCPT_TRSM_CD) - - // 단속 ID로 단속, 단속민원, 부과제외 정보 조회 - DataObject infoCrdnLevyExcl = excl01Bean.getCrdnLevyExcl(excl01.getCrdnId()); - - // 부과제외 ID가 있다면 이미 부과제외 자료가 존재하므로 종료.. - if (!infoCrdnLevyExcl.string("LEVY_EXCL_ID").equals("")) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 정보가 이미 존재합니다."); - } - // 단속 상태 코드(CRDN_STTS_CD) 확인.. - if (excl01.getLevyExclSeCd().equals("1") || excl01.getLevyExclSeCd().equals("2")) { // 비부과(서손), 계고 - // 단속 상태 코드가 부과(51) 보다 크다면, 비부과 또는 계고를 등록 할 수 없다. 종료.. - if (Integer.parseInt(infoCrdnLevyExcl.string("CRDN_STTS_CD")) > 50) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 상태 입니다"); - } - } else if (excl01.getLevyExclSeCd().equals("5")) { - // 단속 상태 코드가 부과(51) 보다 작다면, 전액감액 등록 할 수 없다. 종료.. 전액감액 등록은 부과이후... - if (Integer.parseInt(infoCrdnLevyExcl.string("CRDN_STTS_CD")) < 51) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 상태 입니다"); - } - } - - // 단속 상태 코드 설정. - if (excl01.getLevyExclSeCd().equals("1")) { // 비부과 - newCrdnSttsCd = "81"; // 비부과(서손) - } else if (excl01.getLevyExclSeCd().equals("2")) { // 계고 - newCrdnSttsCd = "83"; // 계고 - } else if (excl01.getLevyExclSeCd().equals("5")) { // 전액감액 - newCrdnSttsCd = "80"; // 부과취소 - } - - // 부과제외(TB_LEVY_EXCL) 대장을 등록 한다. - retSuccess = excl01Bean.createLevyExcl(excl01); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 대장 등록에 실패하였습니다."); - } - - // 단속상태이력(TB_CRDN_STTS_HSTRY) - CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); - - crdnSttsHstry.setCrdnId(infoCrdnLevyExcl.string("CRDN_ID")); - crdnSttsHstry.setBfrSttsCd(infoCrdnLevyExcl.string("CRDN_STTS_CD")); - crdnSttsHstry.setBfrSttsChgDt(infoCrdnLevyExcl.string("CRDN_STTS_CHG_DT")); - crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd); - crdnSttsHstry.setTaskDtlId(excl01.getLevyExclId()); - crdnSttsHstry.setEtcCn("부과제외 대장 등록"); - - // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록 한다. - retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 등록 중 단속상태코드 변경에 실패하였습니다."); - } - - // 비부과(서손)일 경우 단속민원(TB_CRDN_CVLCPT) 자료 처리 - if (excl01.getLevyExclSeCd().equals("1")) { - // 단속민원ID가 있다면.. - if (!infoCrdnLevyExcl.string("CVLCPT_LINK_ID").equals("")) { - // 자동등록 자료만 단속민원(TB_CRDN_CVLCPT) 답변 부분을 처리 - if (infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("02")) { - // 단속민원(TB_CRDN_CVLCPT) 대장 - LevyExcl updtCrdnCvlcpt = new LevyExcl(); - - updtCrdnCvlcpt.setCvlcptLinkId(infoCrdnLevyExcl.string("CVLCPT_LINK_ID")); // 민원 연계 ID - - // 답변내용을 초기화, 답변대상이었다가 답변내용보기를 했다가 서손처리하면 답변내용이 이미 세팅되어 있으므로 초기화해야 한다. - // 서손사유 수정시도 답변내용보기를 했을 수 있으므로 초기화해야 한다. - // 서손취소시도 답변내용이 부과 기본 내용으로 바꾸이야 하므로 초기화해야 한다. - // 단속민원 민원처리결과내용 수정 - retSuccess = excl01Bean.updateCvlcptPrcsRsltCn(updtCrdnCvlcpt); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 등록 중 단속민원 대장의 민원처리결과내용 초기화에 실패하였습니다."); - } - - // 답변완료 후 서손처리에 대해서는 답변 상태를 업데이트 하지 않는다 - // 전송대상, 전송 미대상 자료에 대해서 업데이트한다. - if (infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("01") - || infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("02") - || infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("03")) { - // 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장 조회 - DataObject infoCvlcptAnsWords = excl01Bean.selectCvlcptAnsWordsInfo(excl01.getLevyExclRsnCd()); - - // 비부과(서손)사유가 민원 답변대상인가? 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장에 답변 사유 코드가 존재한다면.. - if (!infoCvlcptAnsWords.string("ANS_WORDS_ID").equals("")) { - newCvlcptPrcsCd = "04"; // 민원 처리 코드 - 불수용(과태료 부과제외) - newCvlcptTrsmCd = "01"; // 민원 전송 코드 - 전송 대상 - } else { - newCvlcptPrcsCd = "07"; // 민원 처리 코드 - 비부과(서손)사유가 답변 미대상 - newCvlcptTrsmCd = "03"; // 민원 전송 코드 - 비부과(서손)사유가 전송 미대상 - } - - // 현재 날짜 구하기 - LocalDate now = LocalDate.now(); - // 포맷 정의 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); // yyyy년 MM월 dd일 HH시 mm분 ss초 - // 포맷 적용 - String formatedNow = now.format(formatter); - - // 단속민원(TB_CRDN_CVLCPT) 대장을 수정 한다. - updtCrdnCvlcpt.setCvlcptPrcsCd(newCvlcptPrcsCd); // 민원 처리 코드 - updtCrdnCvlcpt.setCvlcptPrcsSumry(infoCvlcptAnsWords.string("PRCS_SUMRY")); // 민원 처리 요약 - updtCrdnCvlcpt.setCvlcptPrcsRsltCn(infoCvlcptAnsWords.string("PRCS_RSLT_CN")); // 민원 처리 결과 내용 - updtCrdnCvlcpt.setCvlcptPrcsCmptnDt(formatedNow); // 민원 처리 완료 일시 - updtCrdnCvlcpt.setCvlcptPrcsPic(UserInfo.current().getId()); // 민원 처리 담당자 - updtCrdnCvlcpt.setCvlcptTrsmCd(newCvlcptTrsmCd); // 민원 전송 코드 - - // 단속민원 민원처리코드 수정 - retSuccess = excl01Bean.updateCrdnCvlcpt(updtCrdnCvlcpt); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 등록 중 단속민원답변 수정에 실패하였습니다."); - } - } - } // if (infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("02")) - } // 단속민원ID가 있다면.. - - // 표지정보 확인여부가 미확인이면 -> 조회미대상 으로 - if (infoCrdnLevyExcl.string("PARKNG_PSBLTY_RSLT_CD").equals("0")) { - // 단속(TB_CRDN) 대장 - LevyExcl updtCrdn = new LevyExcl(); - - updtCrdn.setCrdnId(excl01.getCrdnId()); // 단속 ID - updtCrdn.setParkngPsbltyRsltCd("9"); // 주차 가능 결과 코드 - - retSuccess = excl01Bean.updateParkngPsbltyRsltCd(updtCrdn); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 등록 중 단속 대장의 표지정보확인여부 수정에 실패하였습니다."); - } - } - - - // 단속 ID로 발송 상세(TB_SNDNG_DTL) 대장 정보 조회 - DataObject infoSndngDtl = excl01Bean.selectSndngDtlInfo(excl01.getCrdnId(), "1"); - - if (infoSndngDtl != null) { - // 발송 상세(TB_SNDNG_DTL) 대장 - LevyExcl updtSndngDtl = new LevyExcl(); - - updtSndngDtl.setCrdnId(excl01.getCrdnId()); // 단속 ID - - // 발송상세 수납코드를 수정 - retSuccess = excl01Bean.updateRcvmtCd(updtSndngDtl); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 등록 중 발송상세 대장의 수납코드 수정에 실패하였습니다."); - } - } - // 계고 - } else if (excl01.getLevyExclSeCd().equals("2")) { - - // 전액감액 - } else if (excl01.getLevyExclSeCd().equals("5")) { - // 부과(TB_LEVY)에 감액금액 입력이 필요.. - } - - return true; + public boolean createLevyExcl(LevyExcl levyExcl) { + return excl01Bean.createLevyExcl(levyExcl); } @Override - public boolean updateLevyExcl(LevyExcl excl01) { - // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String newCvlcptPrcsCd = ""; // 신규 민원 처리 코드(CVLCPT_PRCS_CD) - String newCvlcptTrsmCd = ""; // 민원 전송 코드(CVLCPT_TRSM_CD) - - // 부과제외(TB_LEVY_EXCL) + 단속(TB_CRDN) 자료 조회 - DataObject infoCrdnLevyExcl = excl01Bean.getLevyExclInfo(new ExclQuery().setLevyExclId(excl01.getLevyExclId())); - - // 부과제외(TB_LEVY_EXCL) 대장을 수정 한다. - retSuccess = excl01Bean.updateLevyExcl(excl01); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 대장 수정에 실패하였습니다."); - } - - // 비부과(서손)일 경우 단속민원(TB_CRDN_CVLCPT) 자료 처리 - if (excl01.getLevyExclSeCd().equals("1") ) { - // 단속민원(TB_CRDN_CVLCPT)에 자료가 있는지 확인 - if (!infoCrdnLevyExcl.string("CVLCPT_LINK_ID").equals("")) { - // 단속 민원 대장 - LevyExcl updtCrdnCvlcpt = new LevyExcl(); - - updtCrdnCvlcpt.setCrdnId(infoCrdnLevyExcl.string("CRDN_ID")); // 단속 ID - updtCrdnCvlcpt.setCvlcptLinkId(infoCrdnLevyExcl.string("CVLCPT_LINK_ID")); // 민원 연계 ID - - // 답변대상이었다가 답변내용보기를 했다가 서손처리하면 답변내용이 이미 세팅되어 있으므로 초기화해야 한다. - // 서손사유 수정시도 답변내용보기를 했을 수 있으므로 초기화해야 한다. - // 서손취소시도 답변내용이 부과 기본 내용으로 바꾸이야 하므로 초기화해야 한다. - retSuccess = excl01Bean.updateCvlcptPrcsRsltCn(updtCrdnCvlcpt); // 단속민원 민원처리결과내용 초기화 - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 수정 중 단속민원 대장의 민원처리결과내용 초기화에 실패하였습니다."); - } - - // 자동등록 자료만.. - if (infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("02")) { - // 민원전송코드가 전송대상(01) 또는 전송미대상(03) 자료만 민원답변 부분을 처리 - if (infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("01") || infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("03")) { - // 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장 조회 - DataObject infoCvlcptAnsWords = excl01Bean.selectCvlcptAnsWordsInfo(excl01.getLevyExclRsnCd()); - - // 비부과(서손)사유가 민원 답변대상인가? 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장에 답변 사유 코드가 존재한다면.. - if (infoCvlcptAnsWords != null) { - newCvlcptPrcsCd = "04"; // 민원 처리 코드 - 불수용(과태료 부과제외) - newCvlcptTrsmCd = "01"; // 민원 전송 코드 - 전송 대상 - - // 답변 문구가 필요해 보임.. - } else { - newCvlcptPrcsCd = "07"; // 민원 처리 코드 - 비부과(서손)사유가 답변 미대상 - newCvlcptTrsmCd = "03"; // 민원 전송 코드 - 비부과(서손)사유가 전송 미대상 - } - - // 현재 날짜 구하기 - LocalDate now = LocalDate.now(); - // 포맷 정의 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); // yyyy년 MM월 dd일 HH시 mm분 ss초 - // 포맷 적용 - String formatedNow = now.format(formatter); - - // 단속민원(TB_CRDN_CVLCPT) 대장을 수정 한다. - updtCrdnCvlcpt.setCvlcptPrcsCd(newCvlcptPrcsCd); // 민원 처리 코드 - updtCrdnCvlcpt.setCvlcptPrcsSumry(infoCvlcptAnsWords.string("PRCS_SUMRY")); // 민원 처리 요약 - updtCrdnCvlcpt.setCvlcptPrcsRsltCn(infoCvlcptAnsWords.string("PRCS_RSLT_CN")); // 민원 처리 결과 내용 - updtCrdnCvlcpt.setCvlcptPrcsCmptnDt(formatedNow); // 민원 처리 완료 일시 - updtCrdnCvlcpt.setCvlcptPrcsPic(UserInfo.current().getId()); // 민원 처리 담당자 - updtCrdnCvlcpt.setCvlcptTrsmCd(newCvlcptTrsmCd); // 민원 전송 코드 - - retSuccess = excl01Bean.updateCrdnCvlcpt(updtCrdnCvlcpt); // 단속민원 민원처리코드 수정 - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 등록 중 민원처리코드 수정에 실패하였습니다."); - } - } - } // 자동등록 자료만.. - } // 단속민원(TB_CRDN_CVLCPT)에 자료가 있는지 확인 - } // 비부과(서손)일 경우.. - - return true; + public boolean updateLevyExcl(LevyExcl levyExcl) { + return excl01Bean.updateLevyExcl(levyExcl); } @Override - public boolean removeLevyExcl(LevyExcl excl01) { - // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - - // 부과제외(TB_LEVY_EXCL) + 단속(TB_CRDN) 자료 조회 - DataObject infoCrdnLevyExcl = excl01Bean.getLevyExclInfo(new ExclQuery().setLevyExclId(excl01.getLevyExclId())); - - // 단속 상태 코드(CRDN_STTS_CD) 확인.. - if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("1") && !infoCrdnLevyExcl.string("CRDN_STTS_CD").equals("81")) { // 비부과(서손) - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다."); - } else if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("2") && !infoCrdnLevyExcl.string("CRDN_STTS_CD").equals("83")) { // 계고 - throw new RuntimeException("단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다."); - } else if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("5") && !infoCrdnLevyExcl.string("CRDN_STTS_CD").equals("80")) { // 부과취소 - throw new RuntimeException("단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다."); - } - - // 부과제외(TB_LEVY_EXCL) 대장을 삭제 한다. - retSuccess = excl01Bean.removeLevyExcl(excl01); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 대장 삭제에 실패하였습니다."); - } - - // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다. - retSuccess = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(infoCrdnLevyExcl.string("CRDN_ID")); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 삭제 중 단속상태 변경에 실패하였습니다."); - } - - // 부과제외 구분이 비부과(서손)일 경우 단속민원(TB_CRDN_CVLCPT) 자료 처리 - if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("1")) { - // 단속민원(TB_CRDN_CVLCPT)에 자료가 있는지 확인 - if (!infoCrdnLevyExcl.string("CVLCPT_LINK_ID").equals("")) { - // 자동등록 자료만 민원답변 부분을 처리 - if (infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("02")) { - // 비부과(서손) 취소하는데, 단속민원 전송상태가 전송대상(01) 또는 전송미대상(03), 전송요청(04) 자료이면 초기상태(전송대상)로 되돌린다 - if (infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("01") - || infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("03") || infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("04")) { - LevyExcl updtCrdnCvlcpt = new LevyExcl(); - - updtCrdnCvlcpt.setCvlcptLinkId(infoCrdnLevyExcl.string("CVLCPT_LINK_ID")); - updtCrdnCvlcpt.setCvlcptPrcsCd("00"); // 민원 처리 코드 - 00 접수 - updtCrdnCvlcpt.setCvlcptTrsmCd("01"); // 민원 전송 코드 - 01 전송대상 - - retSuccess = excl01Bean.updateCrdnCvlcptPrcs(updtCrdnCvlcpt); // 민원답변 정보 초기화 - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 삭제 중 민원답변 정보 초기화에 실패하였습니다."); - } - } - } // 자동등록 자료만 민원답변 부분을 처리 - } // 단속민원(TB_CRDN_CVLCPT)에 자료가 있는지 확인 - } // 부과제외 구분이 비부과(서손)일 경우 - - return true; + public boolean removeLevyExcl(LevyExcl levyExcl) { + return excl01Bean.removeLevyExcl(levyExcl); } @Override @@ -372,13 +66,13 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv // 부과제외IDs 만큼 반복.. for (int iLoop = 0; iLoop < req.getLevyExclIDs().length; iLoop++) { - LevyExcl infoLevyExcl = new LevyExcl(); // 부과제외(TB_LEVY_EXCL) + LevyExcl levyExcl = new LevyExcl(); // 부과제외(TB_LEVY_EXCL) - infoLevyExcl.setLevyExclId(req.getLevyExclIDs()[iLoop]); // 부과제외 ID - infoLevyExcl.setDelRsn(req.getDelRsn()); // 삭제 사유 + levyExcl.setLevyExclId(req.getLevyExclIDs()[iLoop]); // 부과제외 ID + levyExcl.setDelRsn(req.getDelRsn()); // 삭제 사유 // 부과제외 삭제 호출 - retSuccess = removeLevyExcl(infoLevyExcl); + retSuccess = excl01Bean.removeLevyExcl(levyExcl); if (!retSuccess) { return retSuccess; } diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/Excl02Bean.java b/src/main/java/cokr/xit/fims/excl/service/bean/Excl02Bean.java index d9dad547..681ec5e9 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/Excl02Bean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/Excl02Bean.java @@ -7,6 +7,12 @@ import javax.annotation.Resource; import org.springframework.stereotype.Component; import cokr.xit.fims.excl.OpnnSbmsn; +import cokr.xit.base.file.FileInfo; +import cokr.xit.base.file.service.FileQuery; +import cokr.xit.base.file.service.bean.FileBean; +import cokr.xit.fims.cmmn.CrdnSttsHstry; +import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean; +import cokr.xit.fims.crdn.Crdn; import cokr.xit.fims.excl.ExclQuery; import cokr.xit.fims.excl.dao.OpnnSbmsnMapper; import cokr.xit.foundation.AbstractComponent; @@ -29,6 +35,14 @@ public class Excl02Bean extends AbstractComponent { @Resource(name = "opnnSbmsnMapper") private OpnnSbmsnMapper opnnSbmsnMapper; + /* 첨부파일 Bean */ + @Resource(name="fileBean") + private FileBean fileBean; + + /** 단속 상태 이력 정보 Bean */ + @Resource(name = "crdnSttsHstryBean") + private CrdnSttsHstryBean crdnSttsHstryBean; + /**지정한 조건에 따라 의견제출 대장 목록을 조회하여 반환한다. * @param req 의견제출 대장 조회 조건 * @return 의견제출 대장 목록 @@ -68,66 +82,238 @@ public class Excl02Bean extends AbstractComponent { } /**의견제출 대장 정보를 등록한다. - * @param excl02 의견제출 대장 + * @param opnnSbmsn 의견제출 대장 * @return 저장 여부 *
    • 저장됐으면 true
    • *
    • 그렇지 않으면 false
    • *
    */ - public boolean createOpnnSbmsn(OpnnSbmsn excl02) { - return opnnSbmsnMapper.insert(excl02); + public boolean createOpnnSbmsn(OpnnSbmsn opnnSbmsn, List fileInfoList) { + // 변수 선언 + boolean retSuccess = false; // DB 처리 결과 + + // 단속 ID로 단속, 의견제출 정보 조회 + DataObject infoCrdnOpnnSbmsn = getCrdnOpnnSbmsn(opnnSbmsn.getCrdnId()); + + // 의견제출ID가 있다면 이미 자료가 존재하므로 종료.. + if (!infoCrdnOpnnSbmsn.string("OPNN_ID").equals("")) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("의견제출 대장에 정보가 이미 존재합니다."); + } + + // 의견제출 대장 필수값 입력 + opnnSbmsn.setOpnnSbmsnSttsCd("00"); // 의견 제출 상태 코드 00:접수 + + // 의견제출 대장을 등록 한다. + retSuccess = opnnSbmsnMapper.insert(opnnSbmsn); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("의견제출 대장 등록에 실패하였습니다."); + } + + // 의견제출 파일 첨부하기 + if (fileInfoList != null && !fileInfoList.isEmpty()) { + fileInfoList.forEach(fileInfo -> fileInfo.setInfoType(OpnnSbmsn.INF_TYPE).setInfoKey(opnnSbmsn.getOpnnId())); + + fileBean.create(fileInfoList); + } + + // 단속 상태 코드가 사전통보중 이전일때만 단속의 상태를 의견진술중으로 수정 한다. + if (Integer.parseInt(infoCrdnOpnnSbmsn.string("CRDN_STTS_CD")) <= 42) { // 사전통보 완료 + // 단속상태이력(TB_CRDN_STTS_HSTRY) + CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); + + crdnSttsHstry.setCrdnId(infoCrdnOpnnSbmsn.string("CRDN_ID")); + crdnSttsHstry.setBfrSttsCd(infoCrdnOpnnSbmsn.string("CRDN_STTS_CD")); + crdnSttsHstry.setBfrSttsChgDt(infoCrdnOpnnSbmsn.string("CRDN_STTS_CHG_DT")); + crdnSttsHstry.setCrdnSttsCd("31"); // 의견진술 접수 + crdnSttsHstry.setTaskDtlId(opnnSbmsn.getOpnnId()); + crdnSttsHstry.setEtcCn("의견제출 대장 등록"); + + // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록 한다. + retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("의견제출 등록 중 단속상태코드 변경에 실패하였습니다."); + } + } + + // 단속 대장(TB_CRDN) 의견제출여부(OPNN_SBMSN_YN) 정보를 수정 한다. + Crdn crdn = new Crdn(); + + crdn.setCrdnId(infoCrdnOpnnSbmsn.string("CRDN_ID")); + crdn.setOpnnSbmsnYn("Y"); + + retSuccess = opnnSbmsnMapper.updateCrdn(crdn); // 단속 대장 수정 + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("의견제출 등록 중 의견제출여부 변경에 실패하였습니다."); + } + + return true; } /**의견제출 대장 정보를 수정한다. - * @param excl02 의견제출 대장 + * @param opnnSbmsn 의견제출 대장 * @return 저장 여부 *
    • 저장됐으면 true
    • *
    • 그렇지 않으면 false
    • *
    */ - public boolean updateOpnnSbmsn(OpnnSbmsn excl02) { - return opnnSbmsnMapper.update(excl02); + public boolean updateOpnnSbmsn(OpnnSbmsn opnnSbmsn, List fileInfoList) { + // 변수 선언 + boolean retSuccess = false; // DB 처리 결과 + + // 의견제출 첨부파일 등록 + if (fileInfoList != null && !fileInfoList.isEmpty()) { + fileInfoList.forEach(fileInfo -> fileInfo.setInfoType(OpnnSbmsn.INF_TYPE) + .setInfoKey(opnnSbmsn.getOpnnId())); + + // 파일 등록 + fileBean.create(fileInfoList); + + // 의견제출 ID로 파일(TB_FILE) 정보 조회 + List infoFileList = fileBean.getFileList(new FileQuery().setInfoType(OpnnSbmsn.INF_TYPE) + .setInfoKeys(opnnSbmsn.getOpnnId()).setOrderBy("FILE_ID")); + + if (infoFileList != null && infoFileList.size() > 0) { + String[] fileIDs = new String[infoFileList.size()]; + + for (int iLoop = 0; iLoop < infoFileList.size(); iLoop++) { + fileIDs[iLoop] = infoFileList.get(iLoop).string("FILE_ID"); + } + + fileBean.reorder(fileIDs); // 첨부파일 재 정렬 + } + } + + // 의견제출 대장을 수정 한다. + retSuccess = opnnSbmsnMapper.update(opnnSbmsn); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("의견제출 대장 수정에 실패하였습니다."); + } + + return true; } - /**의견제출 대장 정보를 삭제한다. - * @param excl02 의견제출 대장 + /**의견제출 대장 심의(답변) 정보를 수정한다. + * @param opnnSbmsn 의견제출 대장 * @return 저장 여부 *
    • 저장됐으면 true
    • *
    • 그렇지 않으면 false
    • *
    */ - public boolean removeOpnnSbmsn(OpnnSbmsn excl02) { - return opnnSbmsnMapper.delete(excl02); - } + public boolean updateOpnnSbmsnAnswer(OpnnSbmsn opnnSbmsn) { + // 변수 선언 + boolean retSuccess = false; // DB 처리 결과 + String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD) - /**지정한 조건에 따라 단속자료 기준의 의견제출 대장 목록을 조회하여 반환한다. - * @param crdnId 단속 ID - * @return 단속, 의견제출 대장 목록 - */ - public DataObject getCrdnOpnnSbmsn(String crdnId) { - return opnnSbmsnMapper.selectCrdnInfo(crdnId); + // 의견제출(TB_OPNN_SBMSN) 자료 조회 + DataObject infoCrdnOpnnSbmsn = opnnSbmsnMapper.selectOpnnSbmsnInfo(opnnSbmsn.getOpnnId()); + + // 수납 또는 취소된 자료를 의견진술 수용할 수 없다 + if (infoCrdnOpnnSbmsn.number("CRDN_STTS_CD").intValue() >= 71) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException(infoCrdnOpnnSbmsn.string("CRDN_STTS_NM") + " 자료는 의견진술 수용으로 처리할 수 없습니다."); + } + + // 의견제출 답변을 수정 한다. + retSuccess = opnnSbmsnMapper.updateOpnnSbmsnAnswer(opnnSbmsn); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("의견제출 대장의 답변 수정에 실패하였습니다."); + } + + // 의견제출 처리 결과가 과태료감경(04) 이라면.. 감경 등록이 필요하다.. 2023.08.16 JoJH + + + // 조회된 의견제출상태 코드와 수정 할 의견제출상태 코드가 다르다면.. + if (!opnnSbmsn.getOpnnSbmsnSttsCd().equals(infoCrdnOpnnSbmsn.string("OPNN_SBMSN_STTS_CD"))) { + if (opnnSbmsn.getOpnnSbmsnSttsCd().equals("02")) { // 수용 + newCrdnSttsCd = "82"; // 의견진술 수용으로 변경 + } else if (opnnSbmsn.getOpnnSbmsnSttsCd().equals("01") || opnnSbmsn.getOpnnSbmsnSttsCd().equals("03")) { // 미수용, 자진취하 + newCrdnSttsCd = infoCrdnOpnnSbmsn.string("CRDN_STTS_CD"); // 이전 단속상태코드 유지 + } + + // 단속상태이력(TB_CRDN_STTS_HSTRY) + CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); + + crdnSttsHstry.setCrdnId(infoCrdnOpnnSbmsn.string("CRDN_ID")); + crdnSttsHstry.setBfrSttsCd(infoCrdnOpnnSbmsn.string("CRDN_STTS_CD")); + crdnSttsHstry.setBfrSttsChgDt(infoCrdnOpnnSbmsn.string("CRDN_STTS_CHG_DT")); + crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd); + crdnSttsHstry.setTaskDtlId(opnnSbmsn.getOpnnId()); + crdnSttsHstry.setEtcCn("의견제출 답변 수정"); + + // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록 한다. + retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("의견제출 답변 수정 중 단속상태코드 변경에 실패하였습니다."); + } + } + + return true; } - /**단속 대장 정보의 의견제출여부(OPNN_SBMSN_YN)를 수정한다. + /**의견제출 대장 정보를 삭제한다. * @param excl02 의견제출 대장 * @return 저장 여부 *
    • 저장됐으면 true
    • *
    • 그렇지 않으면 false
    • *
    */ - public boolean updateCrdn(OpnnSbmsn excl02) { - return opnnSbmsnMapper.updateCrdn(excl02); + public boolean removeOpnnSbmsn(OpnnSbmsn opnnSbmsn) { + // 변수 선언 + boolean retSuccess = false; // DB 처리 결과 + + // 의견제출(TB_OPNN_SBMSN) 자료 조회 + DataObject infoCrdnOpnnSbmsn = opnnSbmsnMapper.selectOpnnSbmsnInfo(opnnSbmsn.getOpnnId()); + + // 단속 상태 코드가 의견진술 접수(31) 또는 의견진술 수용(82) 이라면... 이전 단속 상태 코드로 복원 한다. + if (infoCrdnOpnnSbmsn.string("CRDN_STTS_CD").equals("31") || infoCrdnOpnnSbmsn.string("CRDN_STTS_CD").equals("82")) { + // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다. + retSuccess = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(infoCrdnOpnnSbmsn.string("CRDN_ID")); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("의견제출 삭제 중 단속상태 변경에 실패하였습니다."); + } + } + + // 첨부파일 삭제 + String[] deleteFiles = {opnnSbmsn.getOpnnId()}; + + fileBean.remove(OpnnSbmsn.INF_TYPE, deleteFiles); + + // 의견제출(TB_OPNN_SBMSN) 대장을 삭제 한다. + retSuccess = opnnSbmsnMapper.delete(opnnSbmsn); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("의견제출 대장 삭제에 실패하였습니다."); + } + + // 단속 대장(TB_CRDN) 의견제출여부(OPNN_SBMSN_YN) 정보를 수정 한다. + Crdn crdn = new Crdn(); + + crdn.setCrdnId(infoCrdnOpnnSbmsn.string("CRDN_ID")); + crdn.setOpnnSbmsnYn("N"); + + retSuccess = opnnSbmsnMapper.updateCrdn(crdn); // 단속 대장 수정 + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("의견제출 삭제 중 의견제출여부 변경에 실패하였습니다."); + } + + return true; } - /**의견제출 대장 답변(상태) 정보를 수정한다. - * @param excl02 의견제출 대장 - * @return 저장 여부 - *
    • 저장됐으면 true
    • - *
    • 그렇지 않으면 false
    • - *
    + /**지정한 조건에 따라 단속자료 기준의 의견제출 대장 목록을 조회하여 반환한다. + * @param crdnId 단속 ID + * @return 단속, 의견제출 대장 목록 */ - public boolean updateOpnnSbmsnAnswer(OpnnSbmsn excl02) { - return opnnSbmsnMapper.updateOpnnSbmsnAnswer(excl02); + public DataObject getCrdnOpnnSbmsn(String crdnId) { + return opnnSbmsnMapper.selectCrdnInfo(crdnId); } } diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/Excl02ServiceBean.java b/src/main/java/cokr/xit/fims/excl/service/bean/Excl02ServiceBean.java index 6f1485f2..48dcdd00 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/Excl02ServiceBean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/Excl02ServiceBean.java @@ -7,10 +7,6 @@ import javax.annotation.Resource; import org.springframework.stereotype.Service; import cokr.xit.base.file.FileInfo; -import cokr.xit.base.file.service.FileQuery; -import cokr.xit.base.file.service.bean.FileBean; -import cokr.xit.fims.cmmn.CrdnSttsHstry; -import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean; import cokr.xit.fims.excl.OpnnSbmsn; import cokr.xit.fims.excl.ExclQuery; import cokr.xit.fims.excl.service.Excl02Service; @@ -34,14 +30,6 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv @Resource(name = "excl02Bean") protected Excl02Bean excl02Bean; - /* 첨부파일 Bean */ - @Resource(name="fileBean") - private FileBean fileBean; - - /** 단속 상태 이력 정보 Bean */ - @Resource(name = "crdnSttsHstryBean") - private CrdnSttsHstryBean crdnSttsHstryBean; - @Override public List getOpnnSbmsnList(ExclQuery req) { return excl02Bean.getOpnnSbmsnList(req); @@ -66,148 +54,23 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv } @Override - public boolean createOpnnSbmsn(OpnnSbmsn excl02, List fileInfoList) { - // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - - // 단속 ID로 단속, 의견제출 정보 조회 - DataObject infoCrdnOpnnSbmsn = excl02Bean.getCrdnOpnnSbmsn(excl02.getCrdnId()); - - // 의견제출ID가 있다면 이미 자료가 존재하므로 종료.. - if (!infoCrdnOpnnSbmsn.string("OPNN_ID").equals("")) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("의견제출 대장에 정보가 이미 존재합니다."); - } - - excl02.setOpnnSbmsnSttsCd("00"); // 의견 제출 상태 코드 00:접수 - - // 의견제출 대장을 등록 한다. - retSuccess = excl02Bean.createOpnnSbmsn(excl02); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("의견제출 대장 등록에 실패하였습니다."); - } - - // 의견제출 파일 첨부하기 - if (fileInfoList != null && !fileInfoList.isEmpty()) { - fileInfoList.forEach(fileInfo -> fileInfo.setInfoType(OpnnSbmsn.INF_TYPE).setInfoKey(excl02.getOpnnId())); - - fileBean.create(fileInfoList); - } - - // 단속 상태 코드가 사전통보중 이전일때만 단속의 상태를 의견진술중으로 수정 한다. - if (Integer.parseInt(infoCrdnOpnnSbmsn.string("CRDN_STTS_CD")) <= 42) { // 사전통보 완료 - // 단속상태이력(TB_CRDN_STTS_HSTRY) - CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); - - crdnSttsHstry.setCrdnId(infoCrdnOpnnSbmsn.string("CRDN_ID")); - crdnSttsHstry.setBfrSttsCd(infoCrdnOpnnSbmsn.string("CRDN_STTS_CD")); - crdnSttsHstry.setBfrSttsChgDt(infoCrdnOpnnSbmsn.string("CRDN_STTS_CHG_DT")); - crdnSttsHstry.setCrdnSttsCd("31"); // 의견진술 접수 - crdnSttsHstry.setTaskDtlId(excl02.getOpnnId()); - crdnSttsHstry.setEtcCn("의견제출 대장 등록"); - - // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록 한다. - retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("의견제출 등록 중 단속상태코드 변경에 실패하였습니다."); - } - } - - // 단속 대장(TB_CRDN) 의견제출여부(OPNN_SBMSN_YN) 정보를 수정 한다. - OpnnSbmsn updtCrdn = new OpnnSbmsn(); - - updtCrdn.setCrdnId(infoCrdnOpnnSbmsn.string("CRDN_ID")); - updtCrdn.setOpnnSbmsnYn("Y"); - - retSuccess = excl02Bean.updateCrdn(updtCrdn); // 단속 대장 수정 - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("의견제출 등록 중 의견제출여부 변경에 실패하였습니다."); - } - - return true; + public boolean createOpnnSbmsn(OpnnSbmsn opnnSbmsn, List fileInfoList) { + return excl02Bean.createOpnnSbmsn(opnnSbmsn, fileInfoList); } @Override - public boolean updateOpnnSbmsn(OpnnSbmsn excl02, List fileInfoList) { - // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - - // 의견제출 첨부파일 등록 - if (fileInfoList != null && !fileInfoList.isEmpty()) { - fileInfoList.forEach(fileInfo -> fileInfo.setInfoType(OpnnSbmsn.INF_TYPE).setInfoKey(excl02.getOpnnId())); - - fileBean.create(fileInfoList); // 파일 등록 - - // 의견제출 ID로 파일(TB_FILE) 정보 조회 - List infoFileList = fileBean.getFileList(new FileQuery().setInfoType(OpnnSbmsn.INF_TYPE).setInfoKeys(excl02.getOpnnId()).setOrderBy("FILE_ID")); - - if (infoFileList != null && infoFileList.size() > 0) { - String[] fileIDs = new String[infoFileList.size()]; - - for (int iLoop = 0; iLoop < infoFileList.size(); iLoop++) { - fileIDs[iLoop] = infoFileList.get(iLoop).string("FILE_ID"); - } - - fileBean.reorder(fileIDs); // 첨부파일 재 정렬 - } - } - - // 의견제출 대장을 수정 한다. - retSuccess = excl02Bean.updateOpnnSbmsn(excl02); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("의견제출 대장 수정에 실패하였습니다."); - } - - return true; + public boolean updateOpnnSbmsn(OpnnSbmsn opnnSbmsn, List fileInfoList) { + return excl02Bean.updateOpnnSbmsn(opnnSbmsn, fileInfoList); } @Override - public boolean removeOpnnSbmsn(OpnnSbmsn excl02) { - // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - - // 의견제출(TB_OPNN_SBMSN) + 단속(TB_CRDN) 자료 조회 - DataObject infoCrdnOpnnSbmsn = excl02Bean.getOpnnSbmsnInfo(new ExclQuery().setOpnnId(excl02.getOpnnId())); - - // 단속 상태 코드가 의견진술 접수(31) 또는 의견진술 수용(82) 이라면... 이전 단속 상태 코드로 복원 한다. - if (infoCrdnOpnnSbmsn.string("CRDN_STTS_CD").equals("31") || infoCrdnOpnnSbmsn.string("CRDN_STTS_CD").equals("82")) { - // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다. - retSuccess = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(infoCrdnOpnnSbmsn.string("CRDN_ID")); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("의견제출 삭제 중 단속상태 변경에 실패하였습니다."); - } - } - - // 첨부파일 삭제 - String[] deleteFiles = {excl02.getOpnnId()}; - - fileBean.remove(OpnnSbmsn.INF_TYPE, deleteFiles); - - // 의견제출(TB_OPNN_SBMSN) 대장을 삭제 한다. - retSuccess = excl02Bean.removeOpnnSbmsn(excl02); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("의견제출 대장 삭제에 실패하였습니다."); - } - - // 단속 대장(TB_CRDN) 의견제출여부(OPNN_SBMSN_YN) 정보를 수정 한다. - OpnnSbmsn updtCrdn = new OpnnSbmsn(); - - updtCrdn.setCrdnId(infoCrdnOpnnSbmsn.string("CRDN_ID")); - updtCrdn.setOpnnSbmsnYn("N"); - - retSuccess = excl02Bean.updateCrdn(updtCrdn); // 단속 대장 수정 - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("의견제출 삭제 중 의견제출여부 변경에 실패하였습니다."); - } + public boolean updateOpnnSbmsnAnswer(OpnnSbmsn opnnSbmsn) { + return excl02Bean.updateOpnnSbmsnAnswer(opnnSbmsn); + } - return true; + @Override + public boolean removeOpnnSbmsn(OpnnSbmsn opnnSbmsn) { + return excl02Bean.removeOpnnSbmsn(opnnSbmsn); } @Override @@ -222,13 +85,13 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv // 의견제출IDs 만큼 반복.. for (int iLoop = 0; iLoop < req.getOpnnIDs().length; iLoop++) { - OpnnSbmsn infoOpnnSbmsn = new OpnnSbmsn(); + OpnnSbmsn opnnSbmsn = new OpnnSbmsn(); - infoOpnnSbmsn.setOpnnId(req.getOpnnIDs()[iLoop]); // 의견제출 ID - infoOpnnSbmsn.setDelRsn(req.getDelRsn()); // 삭제 사유 + opnnSbmsn.setOpnnId(req.getOpnnIDs()[iLoop]); // 의견제출 ID + opnnSbmsn.setDelRsn(req.getDelRsn()); // 삭제 사유 // 의견제출 삭제 호출 - retSuccess = removeOpnnSbmsn(infoOpnnSbmsn); + retSuccess = excl02Bean.removeOpnnSbmsn(opnnSbmsn); if (!retSuccess) { return retSuccess; } @@ -237,58 +100,4 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv return true; } - @Override - public boolean updateOpnnSbmsnAnswer(OpnnSbmsn excl02) { - // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD) - - // 의견제출(TB_OPNN_SBMSN) + 단속(TB_CRDN) 자료 조회 - DataObject infoCrdnOpnnSbmsn = excl02Bean.getOpnnSbmsnInfo(new ExclQuery().setOpnnId(excl02.getOpnnId())); - - // 수납 또는 취소된 자료를 의견진술 수용할 수 없다 - if (infoCrdnOpnnSbmsn.number("CRDN_STTS_CD").intValue() >= 71) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException(infoCrdnOpnnSbmsn.string("CRDN_STTS_NM") + " 자료는 의견진술 수용으로 처리할 수 없습니다."); - } - - // 의견제출 답변을 수정 한다. - retSuccess = excl02Bean.updateOpnnSbmsnAnswer(excl02); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("의견제출 대장의 답변 수정에 실패하였습니다."); - } - - // 의견제출 처리 결과가 과태료감경(04) 이라면.. 감경 등록이 필요하다.. 2023.08.16 JoJH - - - // 조회된 의견제출상태 코드와 수정 할 의견제출상태 코드가 다르다면.. - if (!excl02.getOpnnSbmsnSttsCd().equals(infoCrdnOpnnSbmsn.string("OPNN_SBMSN_STTS_CD"))) { - if (excl02.getOpnnSbmsnSttsCd().equals("02")) { // 수용 - newCrdnSttsCd = "82"; // 의견진술 수용으로 변경 - } else if (excl02.getOpnnSbmsnSttsCd().equals("01") || excl02.getOpnnSbmsnSttsCd().equals("03")) { // 미수용, 자진취하 - newCrdnSttsCd = infoCrdnOpnnSbmsn.string("CRDN_STTS_CD"); // 이전 단속상태코드 유지 - } - - // 단속상태이력(TB_CRDN_STTS_HSTRY) - CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); - - crdnSttsHstry.setCrdnId(infoCrdnOpnnSbmsn.string("CRDN_ID")); - crdnSttsHstry.setBfrSttsCd(infoCrdnOpnnSbmsn.string("CRDN_STTS_CD")); - crdnSttsHstry.setBfrSttsChgDt(infoCrdnOpnnSbmsn.string("CRDN_STTS_CHG_DT")); - crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd); - crdnSttsHstry.setTaskDtlId(excl02.getOpnnId()); - crdnSttsHstry.setEtcCn("의견제출 답변 수정"); - - // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록 한다. - retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("의견제출 답변 수정 중 단속상태코드 변경에 실패하였습니다."); - } - } - - return true; - } - } diff --git a/src/main/java/cokr/xit/fims/excl/web/Excl02Controller.java b/src/main/java/cokr/xit/fims/excl/web/Excl02Controller.java index bd993fff..94d6a143 100644 --- a/src/main/java/cokr/xit/fims/excl/web/Excl02Controller.java +++ b/src/main/java/cokr/xit/fims/excl/web/Excl02Controller.java @@ -193,14 +193,14 @@ public class Excl02Controller extends ApplicationController { .addObject("saved", saved); } - /**지정한 ID의 의견제출 결과 정보를 반환한다. + /**지정한 ID의 의견제출 심의 결과 정보를 반환한다. * @param opnnId 의견제출 ID * @return fims/excl/excl02030-info 또는 jsonView *
    {
     	 *     "opnnSbmsnSttsInfo": 의견제출 정보
     	 * }
    */ - @RequestMapping(name = "의견제출 결과 처리 조회", value = "/030/info.do") + @RequestMapping(name = "의견제출 심의 결과 처리 조회", value = "/030/info.do") public ModelAndView getOpnnSbmsnSttsInfo(ExclQuery req) { DataObject opnnSbmsnInfo = excl02Service.getOpnnSbmsnInfo(req); diff --git a/src/main/java/cokr/xit/fims/sndb/Sndb01Query.java b/src/main/java/cokr/xit/fims/sndb/Sndb01Query.java index 7c84ba5a..0af1c19a 100644 --- a/src/main/java/cokr/xit/fims/sndb/Sndb01Query.java +++ b/src/main/java/cokr/xit/fims/sndb/Sndb01Query.java @@ -26,6 +26,9 @@ public class Sndb01Query extends QueryRequest { private String sndngId; // 발송 ID private String[] sndngDtlIDs; // 발송 상세 IDs private String sndngDtlId; // 발송 상세 ID + // ETC + private String callPurpose; // 호출용도 필요시 사용(select, create, update) + private String delRsn; // 삭제 사유 public String getSggCd() { return ifEmpty(sggCd, () -> null); @@ -107,4 +110,25 @@ public class Sndb01Query extends QueryRequest { 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/sprt/SprtQuery.java b/src/main/java/cokr/xit/fims/sprt/SprtQuery.java index 164a6b18..163eaec8 100644 --- a/src/main/java/cokr/xit/fims/sprt/SprtQuery.java +++ b/src/main/java/cokr/xit/fims/sprt/SprtQuery.java @@ -6,13 +6,47 @@ public class SprtQuery extends QueryRequest { private static final long serialVersionUID = 1L; + // 필수조건 + private String sggCd; // 시군구 코드 + private String taskSeCd; // 업무 구분 코드 + private String delYn; // 삭제 여부 // ID private String crdnId; // 단속 ID private String opnnId; // 의견 ID // ETC - private String delYn; // 삭제 여부 + private String callPurpose; // 호출용도 필요시 사용(select, create, update) private String delRsn; // 삭제 사유 + public String getSggCd() { + return ifEmpty(sggCd, () -> null); + } + + public T setSggCd(String sggCd) { + this.sggCd = sggCd; + + return self(); + } + + public String getTaskSeCd() { + return ifEmpty(taskSeCd, () -> null); + } + + public T setTaskSeCd(String taskSeCd) { + this.taskSeCd = taskSeCd; + + return self(); + } + + public String getDelYn() { + return ifEmpty(delYn, () -> null); + } + + public T setDelYn(String delYn) { + this.delYn = delYn; + + return self(); + } + public String getCrdnId() { return ifEmpty(crdnId, () -> null); } @@ -34,12 +68,12 @@ public class SprtQuery extends QueryRequest { } // ETC ///////////////////////////////////////////////////////////////////// - public String getDelYn() { - return ifEmpty(delYn, () -> null); + public String getCallPurpose() { + return ifEmpty(callPurpose, () -> null); } - public T setDelYn(String delYn) { - this.delYn = delYn; + public T setCallPurpose(String callPurpose) { + this.callPurpose = callPurpose; return self(); } diff --git a/src/main/java/cokr/xit/fims/sprt/dao/Sprt02Mapper.java b/src/main/java/cokr/xit/fims/sprt/dao/Sprt02Mapper.java index 4f496b30..83abd3cb 100644 --- a/src/main/java/cokr/xit/fims/sprt/dao/Sprt02Mapper.java +++ b/src/main/java/cokr/xit/fims/sprt/dao/Sprt02Mapper.java @@ -1,7 +1,5 @@ package cokr.xit.fims.sprt.dao; -import java.util.List; - import org.egovframe.rte.psl.dataaccess.mapper.Mapper; import cokr.xit.fims.sprt.SprtQuery; @@ -25,18 +23,12 @@ public interface Sprt02Mapper extends AbstractMapper { * @param crdnId 단속 ID * @return 개별총정보 */ - DataObject selectCrdnInfo(String crdnId); + DataObject selectCrdnInfo(SprtQuery req); /**단속 ID의 단속, 납부자, 부과 정보를 반환한다. * @param crdnId 단속 아이디 * @return 단속, 납부자, 부과 정보 */ - List selectCrdnPayerInfo(SprtQuery req); - - default DataObject selectCrdnPayerInfo(String crdnId) { - List crdnPayer = selectCrdnPayerInfo(new SprtQuery().setCrdnId(crdnId)); - - return !crdnPayer.isEmpty() ? crdnPayer.get(0) : null; - } + DataObject selectCrdnPayerInfo(SprtQuery req); } diff --git a/src/main/java/cokr/xit/fims/sprt/service/Sprt02Service.java b/src/main/java/cokr/xit/fims/sprt/service/Sprt02Service.java index e258dbe5..23662ad3 100644 --- a/src/main/java/cokr/xit/fims/sprt/service/Sprt02Service.java +++ b/src/main/java/cokr/xit/fims/sprt/service/Sprt02Service.java @@ -1,5 +1,6 @@ package cokr.xit.fims.sprt.service; +import cokr.xit.fims.sprt.SprtQuery; import cokr.xit.foundation.data.DataObject; /**업무지원 서비스를 제공한다. @@ -13,24 +14,24 @@ public interface Sprt02Service { * @param crdnId 단속ID * @return 개별총정보 */ - DataObject getCrdnInfo(String crdnId); + DataObject getCrdnInfo(SprtQuery req); /**단속 ID의 단속, 납부자, 부과 정보를 반환한다. * @param crdnId 단속ID * @return 단속, 납부자, 부과 정보 */ - DataObject getCrdnPayerInfo(String crdnId); + DataObject getCrdnPayerInfo(SprtQuery req); /**단속 ID의 의견제출 정보를 반환한다. * @param crdnId 단속ID * @return 의견제출 정보 */ - DataObject getOpnnSbmsnInfo(String crdnId); + DataObject getOpnnSbmsnInfo(SprtQuery req); /**단속 ID의 발송 정보를 반환한다. * @param crdnId 단속ID * @return 발송 정보 */ - DataObject getSndngInfo(String crdnId); + DataObject getSndngInfo(SprtQuery req); } diff --git a/src/main/java/cokr/xit/fims/sprt/service/bean/Sprt02Bean.java b/src/main/java/cokr/xit/fims/sprt/service/bean/Sprt02Bean.java index 6eabb94d..801d334d 100644 --- a/src/main/java/cokr/xit/fims/sprt/service/bean/Sprt02Bean.java +++ b/src/main/java/cokr/xit/fims/sprt/service/bean/Sprt02Bean.java @@ -4,6 +4,7 @@ import javax.annotation.Resource; import org.springframework.stereotype.Component; +import cokr.xit.fims.sprt.SprtQuery; import cokr.xit.fims.sprt.dao.Sprt02Mapper; import cokr.xit.foundation.AbstractComponent; import cokr.xit.foundation.data.DataObject; @@ -21,16 +22,16 @@ public class Sprt02Bean extends AbstractComponent { * @param crdnId 단속 아이디 * @return 개별총정보 */ - public DataObject getCrdnInfo(String crdnId) { - return sprt02Mapper.selectCrdnInfo(crdnId); + public DataObject getCrdnInfo(SprtQuery req) { + return sprt02Mapper.selectCrdnInfo(req); } /**단속 ID의 단속, 납부자, 부과 정보를 반환한다. * @param crdnId 단속 ID * @return 단속, 납부자, 부과 정보 */ - public DataObject getCrdnPayerInfo(String crdnId) { - return sprt02Mapper.selectCrdnPayerInfo(crdnId); + public DataObject getCrdnPayerInfo(SprtQuery req) { + return sprt02Mapper.selectCrdnPayerInfo(req); } } diff --git a/src/main/java/cokr/xit/fims/sprt/service/bean/Sprt02ServiceBean.java b/src/main/java/cokr/xit/fims/sprt/service/bean/Sprt02ServiceBean.java index e4f29d7a..d7496b4f 100644 --- a/src/main/java/cokr/xit/fims/sprt/service/bean/Sprt02ServiceBean.java +++ b/src/main/java/cokr/xit/fims/sprt/service/bean/Sprt02ServiceBean.java @@ -8,6 +8,7 @@ import cokr.xit.fims.excl.ExclQuery; import cokr.xit.fims.excl.service.bean.Excl02Bean; import cokr.xit.fims.sndb.Sndb01Query; import cokr.xit.fims.sndb.service.bean.Sndb01Bean; +import cokr.xit.fims.sprt.SprtQuery; import cokr.xit.fims.sprt.service.Sprt02Service; import cokr.xit.foundation.component.AbstractServiceBean; import cokr.xit.foundation.data.DataObject; @@ -31,27 +32,39 @@ public class Sprt02ServiceBean extends AbstractServiceBean implements Sprt02Serv private Sndb01Bean sndb01Bean; @Override - public DataObject getCrdnInfo(String crdnId) { - return sprt02Bean.getCrdnInfo(crdnId); + public DataObject getCrdnInfo(SprtQuery req) { + return sprt02Bean.getCrdnInfo(req); } @Override - public DataObject getCrdnPayerInfo(String crdnId) { - return sprt02Bean.getCrdnPayerInfo(crdnId); + public DataObject getCrdnPayerInfo(SprtQuery req) { + return sprt02Bean.getCrdnPayerInfo(req); } @Override - public DataObject getOpnnSbmsnInfo(String crdnId) { - return excl02Bean.getOpnnSbmsnInfo(new ExclQuery().setCallPurpose("select") - .setCrdnId(crdnId)); + public DataObject getOpnnSbmsnInfo(SprtQuery req) { + ExclQuery exclQuery = new ExclQuery(); + + exclQuery.setCallPurpose(req.getCallPurpose()); + exclQuery.setCrdnId(req.getCrdnId()); + + return excl02Bean.getOpnnSbmsnInfo(exclQuery); } @Override - public DataObject getSndngInfo(String crdnId) { - return excl02Bean.getOpnnSbmsnInfo(new ExclQuery().setCallPurpose("select") - .setCrdnId(crdnId)); + public DataObject getSndngInfo(SprtQuery req) { +// Sndb01Query sndb01Query = new Sndb01Query(); +// +// sndb01Query.setCallPurpose(req.getCallPurpose()); +// sndb01Query.setCrdnId(req.getCrdnId()); +// +// return sndb01Bean.getSndngInfo(sndb01Query); + ExclQuery exclQuery = new ExclQuery(); + + exclQuery.setCallPurpose(req.getCallPurpose()); + exclQuery.setCrdnId(req.getCrdnId()); -// return sndb01Bean.getSndngInfo(new SndbQuery().setCrdnId(crdnId)); + return excl02Bean.getOpnnSbmsnInfo(exclQuery); } } 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 4c1e12c3..9f309fb3 100644 --- a/src/main/java/cokr/xit/fims/sprt/web/Sprt02Controller.java +++ b/src/main/java/cokr/xit/fims/sprt/web/Sprt02Controller.java @@ -4,6 +4,8 @@ import javax.annotation.Resource; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; + +import cokr.xit.fims.sprt.SprtQuery; import cokr.xit.fims.sprt.service.Sprt02Service; import cokr.xit.foundation.data.DataObject; import cokr.xit.base.web.ApplicationController; @@ -26,8 +28,8 @@ public class Sprt02Controller extends ApplicationController { /**개별총정보 관리 메인화면(sprt/sprt02/010-main)을 연다. * @return /sprt/sprt02/010-main */ - public ModelAndView indivTotalInfoMain(String crdnId) { - DataObject totalInfo = sprt02Service.getCrdnInfo(crdnId); + public ModelAndView indivTotalInfoMain(SprtQuery req) { + DataObject totalInfo = sprt02Service.getCrdnInfo(req); boolean json = jsonResponse(); @@ -47,8 +49,8 @@ public class Sprt02Controller extends ApplicationController { * } */ @RequestMapping(name="단속, 납부자 정보 조회", value="/020/info.do") - public ModelAndView getCrdnPayerInfo(String crdnId) { - DataObject crdnPayerInfo = sprt02Service.getCrdnPayerInfo(crdnId); + public ModelAndView getCrdnPayerInfo(SprtQuery req) { + DataObject crdnPayerInfo = sprt02Service.getCrdnPayerInfo(req); boolean json = jsonResponse(); @@ -68,8 +70,8 @@ public class Sprt02Controller extends ApplicationController { * } */ @RequestMapping(name="의견제출 정보 조회", value="/030/info.do") - public ModelAndView getOpnnSbmsnInfo(String crdnId) { - DataObject opnnSbmsnInfo = sprt02Service.getOpnnSbmsnInfo(crdnId); + public ModelAndView getOpnnSbmsnInfo(SprtQuery req) { + DataObject opnnSbmsnInfo = sprt02Service.getOpnnSbmsnInfo(req); boolean json = jsonResponse(); @@ -89,8 +91,8 @@ public class Sprt02Controller extends ApplicationController { * } */ @RequestMapping(name="발송 정보 조회", value="/040/info.do") - public ModelAndView getSndngInfo(String crdnId) { - DataObject sndngInfo = sprt02Service.getSndngInfo(crdnId); + public ModelAndView getSndngInfo(SprtQuery req) { + DataObject sndngInfo = sprt02Service.getSndngInfo(req); boolean json = jsonResponse(); diff --git a/src/main/java/cokr/xit/fims/task/web/CmnController.java b/src/main/java/cokr/xit/fims/task/web/CmnController.java index 37d8ad41..90067de3 100644 --- a/src/main/java/cokr/xit/fims/task/web/CmnController.java +++ b/src/main/java/cokr/xit/fims/task/web/CmnController.java @@ -5,6 +5,8 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; +import cokr.xit.fims.sprt.SprtQuery; + @Controller public class CmnController { @@ -202,8 +204,8 @@ public class CmnController { */ @Override @RequestMapping(name="개별총정보 메인", value="/010/main.do") - public ModelAndView indivTotalInfoMain(String crdnId) { - return super.indivTotalInfoMain(crdnId); + public ModelAndView indivTotalInfoMain(SprtQuery req) { + return super.indivTotalInfoMain(req); } } 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 2bd3be1e..bc9f38b4 100644 --- a/src/main/resources/sql/mapper/fims/excl/levyExcl-mapper.xml +++ b/src/main/resources/sql/mapper/fims/excl/levyExcl-mapper.xml @@ -30,101 +30,105 @@ - SELECT A.LEVY_EXCL_ID /* 부과제외 ID */ - , A.SGG_CD /* 시군구 코드 */ - , A.TASK_SE_CD /* 업무 구분 코드 */ - , A.CRDN_ID /* 단속 ID */ - , A.LEVY_EXCL_YMD /* 부과제외 일자 */ - , A.LEVY_EXCL_SE_CD /* 부과제외 구분 코드 */ - , (SELECT FN_GET_CODE_NM('FIM021', A.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM /* 부과 제외 구분 명 */ - , A.LEVY_EXCL_RSN_CD /* 부과제외 사유 코드 */ - , (SELECT FN_GET_CODE_NM('FIM022', A.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM /* 부과 제외 사유 명 */ - , A.ETC_CN /* 기타 내용 */ - , A.DEL_YN /* 삭제 여부 */ - , A.REG_DT /* 등록 일시 */ - , A.RGTR /* 등록자 */ - , A.MDFCN_DT /* 수정 일시 */ - , A.MDFR /* 수정자 */ - , A.DEL_DT /* 삭제 일시 */ - , A.DLTR /* 삭제자 */ - , A.DEL_RSN /* 삭제 사유 */ - , H.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */ - , (SELECT FN_GET_CODE_NM('FIM026', H.CRDN_REG_SE_CD) FROM DUAL) AS CRDN_REG_SE_NM /* 단속 등록 구분 명 */ - , H.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */ - , (SELECT FN_GET_CODE_NM('FIM003', H.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */ - , H.CRDN_YMD /* 단속 일자 */ - , H.CRDN_TM /* 단속 시각 */ - , (CONCAT(H.CRDN_YMD, H.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */ - , H.VHRNO /* 차량번호 */ - , H.CRDN_STDG_NM /* 단속 법정동 명 */ - , H.CRDN_ROAD_NM /* 단속 도로 명 */ - , H.CRDN_PLC /* 단속 장소 */ - , H.FFNLG_CRDN_AMT /* 과태료 단속 금액 */ - , H.FFNLG_AMT /* 과태료 금액 */ - , H.CRDN_STTS_CD /* 단속 상태 코드 */ - , (SELECT FN_GET_CODE_NM('FIM010', H.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */ - , J.RTPYR_ID /* 납부자 ID */ - , J.RTPYR_SE_CD /* 납부자 구분 코드 */ - , (SELECT FN_GET_CODE_NM('FIM011', J.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */ - , J.RTPYR_NO /* 납부자 번호 */ - , J.RTPYR_NM /* 납부자 명 */ - , J.RTPYR_BRDT /* 납부자 생년월일 */ - , (SELECT FN_GET_BRDT_FORMAT(J.RTPYR_BRDT, '.') FROM DUAL) AS RTPYR_BRDT_FORMAT /* 납부자 생년월일 */ - , J.ZIP /* 우편번호 */ - , J.ADDR /* 주소 */ - , J.DTL_ADDR /* 상세 주소 */ - , K.CVLCPT_LINK_ID /* 민원 연계 ID */ - , K.CVLCPT_RCPT_YMD /* 민원 접수 일자 */ - , K.CVLCPT_APLY_NO /* 민원 신청 번호 */ - , K.CVLCPT_RCPT_NO /* 민원 접수 번호 */ - FROM TB_LEVY_EXCL A - INNER JOIN TB_CRDN H ON (A.CRDN_ID = H.CRDN_ID) - INNER JOIN TB_CRDN_ADI I ON (H.CRDN_ID = I.CRDN_ID) - LEFT OUTER JOIN TB_PAYER J ON (H.RTPYR_ID = J.RTPYR_ID) - LEFT OUTER JOIN TB_CRDN_CVLCPT K ON (H.LINK_ID = K.CVLCPT_LINK_ID AND H.CVLCPT_LINK_YN = 'Y' AND K.DEL_YN = 'N') + SELECT LE.LEVY_EXCL_ID /* 부과제외 ID */ + , LE.SGG_CD /* 시군구 코드 */ + , LE.TASK_SE_CD /* 업무 구분 코드 */ + , LE.CRDN_ID /* 단속 ID */ + , LE.LEVY_EXCL_YMD /* 부과제외 일자 */ + , LE.LEVY_EXCL_SE_CD /* 부과제외 구분 코드 */ + , (SELECT FN_GET_CODE_NM('FIM021', LE.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM /* 부과 제외 구분 명 */ + , LE.LEVY_EXCL_RSN_CD /* 부과제외 사유 코드 */ + , (SELECT FN_GET_CODE_NM('FIM022', LE.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM /* 부과 제외 사유 명 */ + , LE.ETC_CN /* 기타 내용 */ + , LE.DEL_YN /* 삭제 여부 */ + , LE.REG_DT /* 등록 일시 */ + , LE.RGTR /* 등록자 */ + , LE.MDFCN_DT /* 수정 일시 */ + , LE.MDFR /* 수정자 */ + , LE.DEL_DT /* 삭제 일시 */ + , LE.DLTR /* 삭제자 */ + , LE.DEL_RSN /* 삭제 사유 */ + , C.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */ + , (SELECT FN_GET_CODE_NM('FIM026', C.CRDN_REG_SE_CD) FROM DUAL) AS CRDN_REG_SE_NM /* 단속 등록 구분 명 */ + , C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */ + , (SELECT FN_GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */ + , C.CRDN_YMD /* 단속 일자 */ + , C.CRDN_TM /* 단속 시각 */ + , (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */ + , C.VHRNO /* 차량번호 */ + , C.CRDN_STDG_NM /* 단속 법정동 명 */ + , C.CRDN_ROAD_NM /* 단속 도로 명 */ + , C.CRDN_PLC /* 단속 장소 */ + , C.FFNLG_CRDN_AMT /* 과태료 단속 금액 */ + , C.FFNLG_AMT /* 과태료 금액 */ + , C.CRDN_STTS_CD /* 단속 상태 코드 */ + , (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */ + , CA.CRDN_SE_CD /* 단속 구분 코드 */ + , (SELECT FN_GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */ + , CA.PARKNG_PSBLTY_RSLT_CD /* 주차 가능 결과 코드 */ + , (SELECT FN_GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM/* 단속 구분 명 */ + , P.RTPYR_ID /* 납부자 ID */ + , P.RTPYR_SE_CD /* 납부자 구분 코드 */ + , (SELECT FN_GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */ + , P.RTPYR_NO /* 납부자 번호 */ + , P.RTPYR_NM /* 납부자 명 */ + , P.RTPYR_BRDT /* 납부자 생년월일 */ + , (SELECT FN_GET_BRDT_FORMAT(P.RTPYR_BRDT, '.') FROM DUAL) AS RTPYR_BRDT_FORMAT /* 납부자 생년월일 */ + , P.ZIP /* 우편번호 */ + , P.ADDR /* 주소 */ + , P.DTL_ADDR /* 상세 주소 */ + , CC.CVLCPT_LINK_ID /* 민원 연계 ID */ + , CC.CVLCPT_RCPT_YMD /* 민원 접수 일자 */ + , CC.CVLCPT_APLY_NO /* 민원 신청 번호 */ + , CC.CVLCPT_RCPT_NO /* 민원 접수 번호 */ + FROM TB_LEVY_EXCL LE + INNER JOIN TB_CRDN C ON (LE.CRDN_ID = C.CRDN_ID) + INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) + LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) + LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N') - /* 부과제외 대장 목록 조회(levyExclMapper.selectLevyExclList) */ - WHERE H.SGG_CD = #{sggCd} /* 시군구 코드 */ - AND H.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */ + WHERE C.SGG_CD = #{sggCd} /* 시군구 코드 */ + AND C.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */ - AND A.LEVY_EXCL_YMD = ]]> #{schLevyExclYmdFrom} /* 부과제외 일자 시작 */ + AND LE.LEVY_EXCL_YMD = ]]> #{schLevyExclYmdFrom} /* 부과제외 일자 시작 */ - AND A.LEVY_EXCL_YMD #{schLevyExclYmdTo} /* 부과제외 일자 종료 */ + AND LE.LEVY_EXCL_YMD #{schLevyExclYmdTo} /* 부과제외 일자 종료 */ + + + AND LE.LEVY_EXCL_SE_CD = #{schLevyExclSeCd} /* 부과 제외 구분 코드 */ - AND H.CRDN_YMD = ]]> #{schCrdnYmdFrom} /* 단속 일자 시작 */ + AND C.CRDN_YMD = ]]> #{schCrdnYmdFrom} /* 단속 일자 시작 */ - AND H.CRDN_YMD #{schCrdnYmdTo} /* 단속 일자 종료 */ - - - AND A.LEVY_EXCL_SE_CD = #{schLevyExclSeCd} /* 부과 제외 구분 코드 */ + AND C.CRDN_YMD #{schCrdnYmdTo} /* 단속 일자 종료 */ - AND H.VHRNO = #{schVhrno} /* 차량번호 */ + AND C.VHRNO = #{schVhrno} /* 차량번호 */ - AND J.RTPYR_NM = #{schRtpyrNm} /* 납부자 명 */ + AND P.RTPYR_NM = #{schRtpyrNm} /* 납부자 명 */ - AND SUBSTR(A.REG_DT,1,8) = ]]> #{schRegDateFrom} /* 등록 일자 시작 */ + AND SUBSTR(LE.REG_DT,1,8) = ]]> #{schRegDateFrom} /* 등록 일자 시작 */ - AND SUBSTR(A.REG_DT,1,8) #{schRegDateTo} /* 등록 일자 종료 */ + AND SUBSTR(LE.REG_DT,1,8) #{schRegDateTo} /* 등록 일자 종료 */ - AND SUBSTR(A.MDFCN_DT,1,8) = ]]> #{schRegDateFrom} /* 수정 일자 시작 */ + AND SUBSTR(LE.MDFCN_DT,1,8) = ]]> #{schRegDateFrom} /* 수정 일자 시작 */ - AND SUBSTR(A.MDFCN_DT,1,8) #{schRegDateTo} /* 수정 일자 종료 */ + AND SUBSTR(LE.MDFCN_DT,1,8) #{schRegDateTo} /* 수정 일자 종료 */ @@ -133,12 +137,12 @@ - AND A.RGTR = #{schDetailUserCd} /* 등록자 코드 */ + AND LE.RGTR = #{schDetailUserCd} /* 등록자 코드 */ - AND A.MDFR = #{schDetailUserCd} /* 수정자 코드 */ + AND LE.MDFR = #{schDetailUserCd} /* 수정자 코드 */ @@ -149,20 +153,20 @@ - A.LEVY_EXCL_YMD - A.LEVY_EXCL_SE_CD - A.LEVY_EXCL_RSN_CD - A.ETC_CN - H.CRDN_YMD - H.VHRNO - H.CRDN_STDG_NM - H.CRDN_PLC - H.CRDN_STTS_CD - J.RTPYR_NM - J.RTPYR_NO - J.RTPYR_BRDT - K.CVLCPT_RCPT_NO - K.CVLCPT_RCPT_YMD + LE.LEVY_EXCL_YMD + LE.LEVY_EXCL_SE_CD + LE.LEVY_EXCL_RSN_CD + LE.ETC_CN + C.CRDN_YMD + C.VHRNO + C.CRDN_STDG_NM + C.CRDN_PLC + C.CRDN_STTS_CD + P.RTPYR_NM + P.RTPYR_NO + P.RTPYR_BRDT + CC.CVLCPT_RCPT_NO + CC.CVLCPT_RCPT_YMD #{term} @@ -172,10 +176,10 @@ - AND A.DEL_YN = #{delYn} /* 삭제 여부 */ + AND LE.DEL_YN = #{delYn} /* 삭제 여부 */ - AND A.DEL_YN = 'N' /* 삭제 여부 */ + AND LE.DEL_YN = 'N' /* 삭제 여부 */ @@ -183,70 +187,76 @@ - SELECT A.LEVY_EXCL_ID /* 부과제외 ID */ - , A.SGG_CD /* 시군구 코드 */ - , A.TASK_SE_CD /* 업무 구분 코드 */ - , A.CRDN_ID /* 단속 ID */ - , A.LEVY_EXCL_YMD /* 부과제외 일자 */ - , A.LEVY_EXCL_SE_CD /* 부과제외 구분 코드 */ - , (SELECT FN_GET_CODE_NM('FIM021', A.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM /* 부과 제외 구분 명 */ - , A.LEVY_EXCL_RSN_CD /* 부과제외 사유 코드 */ - , (SELECT FN_GET_CODE_NM('FIM022', A.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM /* 부과 제외 사유 명 */ - , A.ETC_CN /* 기타 내용 */ - , A.DEL_YN /* 삭제 여부 */ - , A.REG_DT /* 등록 일시 */ - , A.RGTR /* 등록자 */ - , A.MDFCN_DT /* 수정 일시 */ - , A.MDFR /* 수정자 */ - , A.DEL_DT /* 삭제 일시 */ - , A.DLTR /* 삭제자 */ - , A.DEL_RSN /* 삭제 사유 */ - , H.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */ - , H.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */ - , H.CRDN_YMD /* 단속 일자 */ - , H.CRDN_TM /* 단속 시각 */ - , H.VHRNO /* 차량번호 */ - , H.CRDN_STTS_CD /* 단속 상태 코드 */ - , (SELECT FN_GET_CODE_NM('FIM010', H.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */ - , I.CRDN_SE_CD /* 단속 구분 코드 */ - , J.RTPYR_NM /* 납부자 명 */ - , K.CVLCPT_LINK_ID /* 민원 연계 ID */ - , K.CVLCPT_PRCS_CD /* 민원 처리 코드 */ - , K.CVLCPT_PRCS_SUMRY /* 민원 처리 요약 */ - , K.CVLCPT_PRCS_RSLT_CN /* 민원 처리 결과 내용 */ - , K.CVLCPT_PRCS_CMPTN_DT /* 민원 처리 완료 일시 */ - , K.CVLCPT_TRSM_CD /* 민원 전송 코드 */ - , K.CVLCPT_TRSM_DT /* 민원 전송 일시 */ - FROM TB_LEVY_EXCL A - INNER JOIN TB_CRDN H ON (A.CRDN_ID = H.CRDN_ID) - INNER JOIN TB_CRDN_ADI I ON (H.CRDN_ID = I.CRDN_ID) - LEFT OUTER JOIN TB_PAYER J ON (H.RTPYR_ID = J.RTPYR_ID) - LEFT OUTER JOIN TB_CRDN_CVLCPT K ON (H.LINK_ID = K.CVLCPT_LINK_ID AND H.CVLCPT_LINK_YN = 'Y' AND K.DEL_YN = 'N') + SELECT LE.LEVY_EXCL_ID /* 부과제외 ID */ + , LE.SGG_CD /* 시군구 코드 */ + , LE.TASK_SE_CD /* 업무 구분 코드 */ + , LE.CRDN_ID /* 단속 ID */ + , LE.LEVY_EXCL_YMD /* 부과제외 일자 */ + , LE.LEVY_EXCL_SE_CD /* 부과제외 구분 코드 */ + , (SELECT FN_GET_CODE_NM('FIM021', LE.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM /* 부과 제외 구분 명 */ + , LE.LEVY_EXCL_RSN_CD /* 부과제외 사유 코드 */ + , (SELECT FN_GET_CODE_NM('FIM022', LE.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM /* 부과 제외 사유 명 */ + , LE.ETC_CN /* 기타 내용 */ + , LE.DEL_YN /* 삭제 여부 */ + , LE.REG_DT /* 등록 일시 */ + , LE.RGTR /* 등록자 */ + , LE.MDFCN_DT /* 수정 일시 */ + , LE.MDFR /* 수정자 */ + , LE.DEL_DT /* 삭제 일시 */ + , LE.DLTR /* 삭제자 */ + , LE.DEL_RSN /* 삭제 사유 */ + , C.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */ + , (SELECT FN_GET_CODE_NM('FIM026', C.CRDN_REG_SE_CD) FROM DUAL) AS CRDN_REG_SE_NM /* 단속 등록 구분 명 */ + , C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */ + , (SELECT FN_GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */ + , C.CRDN_YMD /* 단속 일자 */ + , C.CRDN_TM /* 단속 시각 */ + , C.VHRNO /* 차량번호 */ + , C.CRDN_STTS_CD /* 단속 상태 코드 */ + , (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */ + , CA.CRDN_SE_CD /* 단속 구분 코드 */ + , (SELECT FN_GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */ + , CA.PARKNG_PSBLTY_RSLT_CD /* 주차 가능 결과 코드 */ + , (SELECT FN_GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM/* 단속 구분 명 */ + , P.RTPYR_ID /* 납부자 ID */ + , P.RTPYR_NM /* 납부자 명 */ + , CC.CVLCPT_LINK_ID /* 민원 연계 ID */ + , CC.CVLCPT_PRCS_CD /* 민원 처리 코드 */ + , CC.CVLCPT_PRCS_SUMRY /* 민원 처리 요약 */ + , CC.CVLCPT_PRCS_RSLT_CN /* 민원 처리 결과 내용 */ + , CC.CVLCPT_PRCS_CMPTN_DT /* 민원 처리 완료 일시 */ + , CC.CVLCPT_TRSM_CD /* 민원 전송 코드 */ + , CC.CVLCPT_TRSM_DT /* 민원 전송 일시 */ + FROM TB_LEVY_EXCL LE + INNER JOIN TB_CRDN C ON (LE.CRDN_ID = C.CRDN_ID) + INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) + LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) + LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N') - /* 부과제외 대장 객체 가져오기(levyExclMapper.selectLevyExcl) */ - AND A.LEVY_EXCL_ID = #{levyExclId} /* 부과 제외 ID */ + AND LE.LEVY_EXCL_ID = #{levyExclId} /* 부과 제외 ID */ - AND A.CRDN_ID = #{crdnId} /* 단속 ID */ + AND LE.CRDN_ID = #{crdnId} /* 단속 ID */ - AND A.DEL_YN = #{delYn} /* 삭제 여부 */ + AND LE.DEL_YN = #{delYn} /* 삭제 여부 */ - AND A.DEL_YN = 'N' /* 삭제 여부 */ + AND LE.DEL_YN = 'N' /* 삭제 여부 */ - /* 부과제외 대장 등록(excl01Mapper.insertLevyExcl) */ - + /* 부과제외 대장 등록(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 FROM TB_LEVY_EXCL WHERE LEVY_EXCL_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%') @@ -268,128 +278,128 @@ , MDFR /* 수정자 */ ) VALUES ( - #{excl01.levyExclId} /* 부과 제외 ID */ - , #{excl01.sggCd} /* 시군구 코드 */ - , #{excl01.taskSeCd} /* 업무 구분 코드 */ - , #{excl01.crdnId} /* 단속 ID */ - , #{excl01.levyExclYmd} /* 부과 제외 일자 */ - , #{excl01.levyExclSeCd} /* 부과 제외 구분 코드 */ - , #{excl01.levyExclRsnCd} /* 부과 제외 사유 코드 */ - , #{excl01.etcCn} /* 기타 내용 */ + #{levyExcl.levyExclId} /* 부과 제외 ID */ + , #{levyExcl.sggCd} /* 시군구 코드 */ + , #{levyExcl.taskSeCd} /* 업무 구분 코드 */ + , #{levyExcl.crdnId} /* 단속 ID */ + , #{levyExcl.levyExclYmd} /* 부과 제외 일자 */ + , #{levyExcl.levyExclSeCd} /* 부과 제외 구분 코드 */ + , #{levyExcl.levyExclRsnCd} /* 부과 제외 사유 코드 */ + , #{levyExcl.etcCn} /* 기타 내용 */ , 'N' /* 삭제 여부 */ - , #{excl01.createdAt} /* 등록 일시 */ - , #{excl01.createdBy} /* 등록자 */ - , #{excl01.lastModified} /* 수정 일시 */ - , #{excl01.modifiedBy} /* 수정자 */ + , #{levyExcl.createdAt} /* 등록 일시 */ + , #{levyExcl.createdBy} /* 등록자 */ + , #{levyExcl.lastModified} /* 수정 일시 */ + , #{levyExcl.modifiedBy} /* 수정자 */ ) - /* 부과제외 대장 수정(excl01Mapper.updateLevyExcl) */ + /* 부과제외 대장 수정(levyExclMapper.updateLevyExcl) */ UPDATE TB_LEVY_EXCL - SET LEVY_EXCL_YMD = #{excl01.levyExclYmd} /* 부과 제외 일자 */ - , LEVY_EXCL_RSN_CD = #{excl01.levyExclRsnCd} /* 부과 제외 사유 코드 */ - , ETC_CN = #{excl01.etcCn} /* 기타 내용 */ - , MDFCN_DT = #{excl01.lastModified} /* 수정 일시 */ - , MDFR = #{excl01.modifiedBy} /* 수정자 */ - WHERE LEVY_EXCL_ID = #{excl01.levyExclId} /* 부과 제외 ID */ - AND LEVY_EXCL_SE_CD = #{excl01.levyExclSeCd} /* 부과 제외 구분 코드 */ + SET LEVY_EXCL_YMD = #{levyExcl.levyExclYmd} /* 부과 제외 일자 */ + , LEVY_EXCL_RSN_CD = #{levyExcl.levyExclRsnCd} /* 부과 제외 사유 코드 */ + , ETC_CN = #{levyExcl.etcCn} /* 기타 내용 */ + , MDFCN_DT = #{levyExcl.lastModified} /* 수정 일시 */ + , MDFR = #{levyExcl.modifiedBy} /* 수정자 */ + WHERE LEVY_EXCL_ID = #{levyExcl.levyExclId} /* 부과 제외 ID */ + AND LEVY_EXCL_SE_CD = #{levyExcl.levyExclSeCd} /* 부과 제외 구분 코드 */ AND DEL_YN = 'N' /* 삭제 여부 */ - /* 부과제외 대장 삭제(excl01Mapper.deleteLevyExcl) */ + /* 부과제외 대장 삭제(levyExclMapper.deleteLevyExcl) */ UPDATE TB_LEVY_EXCL SET DEL_YN = 'Y' /* 삭제 여부 */ - , DEL_DT = #{excl01.lastModified} /* 삭제 일시 */ - , DLTR = #{excl01.modifiedBy} /* 삭제자 */ - , DEL_RSN = #{excl01.delRsn} /* 삭제 사유 */ - WHERE LEVY_EXCL_ID = #{excl01.levyExclId} /* 부과 제외 ID */ + , DEL_DT = #{levyExcl.lastModified} /* 삭제 일시 */ + , DLTR = #{levyExcl.modifiedBy} /* 삭제자 */ + , DEL_RSN = #{levyExcl.delRsn} /* 삭제 사유 */ + WHERE LEVY_EXCL_ID = #{levyExcl.levyExclId} /* 부과 제외 ID */ AND DEL_YN = 'N' /* 삭제 여부 */ - /* 단속 대장 객체 가져오기(levyExclMapper.selectCrdn) */ + SELECT C.CRDN_ID /* 단속 ID */ + , C.SGG_CD /* 시군구 코드 */ + , C.TASK_SE_CD /* 업무 구분 코드 */ + , C.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */ + , C.CRDN_YMD /* 단속 일자 */ + , C.CRDN_TM /* 단속 시각 */ + , C.VHRNO /* 차량번호 */ + , C.CRDN_STTS_CD /* 단속 상태 코드 */ + , (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */ + , C.CRDN_STTS_CHG_DT /* 단속 상태 변경 일시 */ + , P.RTPYR_ID /* 납부자 ID */ + , P.RTPYR_NM /* 납부자 명 */ + , LE.LEVY_EXCL_ID /* 부과 제외 ID */ , AS TODAY /* 오늘 일자 */ - FROM TB_CRDN A - LEFT OUTER JOIN TB_PAYER C ON (A.RTPYR_ID = C.RTPYR_ID) - LEFT OUTER JOIN TB_LEVY_EXCL H ON (A.CRDN_ID = H.CRDN_ID AND H.DEL_YN = 'N') - WHERE A.CRDN_ID = #{crdnId} /* 단속 ID */ + FROM TB_CRDN C + LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) + LEFT OUTER JOIN TB_LEVY_EXCL LE ON (C.CRDN_ID = LE.CRDN_ID AND LE.DEL_YN = 'N') + WHERE C.CRDN_ID = #{crdnId} /* 단속 ID */ - /* 민원답변문구 대장 객체 가져오기(levyExclMapper.selectCvlcptAnsWords) */ + SELECT CAW.ANS_WORDS_ID /* 답변 문구 ID */ + , CAW.ANS_SE_CD /* 답변 구분 코드 */ + , (SELECT FN_GET_CODE_NM('FIM060', CAW.ANS_SE_CD) FROM DUAL) AS ANS_SE_NM /* 답변 구분 명 */ + , CAW.ANS_RSN_CD /* 답변 사유 코드 */ + , CAW.ANS_RSN_NM /* 답변 사유 명 */ + , CAW.PRCS_SUMRY /* 처리 요약 */ + , CAW.PRCS_RSLT_CN /* 처리 결과 내용 */ + FROM TB_CVLCPT_ANS_WORDS CAW + WHERE CAW.SGG_CD = #{sggCd} /* 시군구 코드 */ + AND CAW.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */ + AND CAW.ANS_RSN_CD = #{ansRsnCd} /* 답변 사유 코드 */ + AND CAW.USE_YN = 'Y' /* 사용 여부 */ - /* 단속민원 대장 민원처리결과내용 초기화(excl01Mapper.updateCvlcptPrcsRsltCn) */ + /* 단속민원 대장 민원처리결과내용 초기화(levyExclMapper.updateCvlcptPrcsRsltCn) */ UPDATE TB_CRDN_CVLCPT SET CVLCPT_PRCS_SUMRY = NULL /* 민원 처리 요약 */ , CVLCPT_PRCS_RSLT_CN = NULL /* 민원 처리 결과 내용 */ - , MDFCN_DT = #{excl01.lastModified} /* 수정 일시 */ - , MDFR = #{excl01.modifiedBy} /* 수정자 */ - WHERE CVLCPT_LINK_ID = #{excl01.cvlcptLinkId} /* 민원 연계 ID */ + , MDFCN_DT = #{crdnCvlcpt.lastModified} /* 수정 일시 */ + , MDFR = #{crdnCvlcpt.modifiedBy} /* 수정자 */ + WHERE CVLCPT_LINK_ID = #{crdnCvlcpt.cvlcptLinkId} /* 민원 연계 ID */ AND DEL_YN = 'N' /* 삭제 여부 */ - /* 단속민원 대장 민원답변 수정(excl01Mapper.updateCrdnCvlcpt) */ + /* 단속민원 대장 민원답변 수정(levyExclMapper.updateCrdnCvlcpt) */ UPDATE TB_CRDN_CVLCPT - SET CVLCPT_PRCS_CD = #{excl01.cvlcptPrcsCd} /* 민원 처리 코드 */ - , CVLCPT_PRCS_SUMRY = #{excl01.cvlcptPrcsSumry} /* 민원 처리 요약 */ - , CVLCPT_PRCS_RSLT_CN = #{excl01.cvlcptPrcsRsltCn} /* 민원 처리 결과 내용 */ - , CVLCPT_PRCS_CMPTN_DT = #{excl01.cvlcptPrcsCmptnDt} /* 민원 처리 완료 일시 */ - , CVLCPT_PRCS_PIC = #{excl01.cvlcptPrcsPic} /* 민원 처리 담당자 */ - , CVLCPT_TRSM_CD = #{excl01.cvlcptTrsmCd} /* 민원 전송 코드 */ - , MDFCN_DT = #{excl01.lastModified} /* 수정 일시 */ - , MDFR = #{excl01.modifiedBy} /* 수정자 */ - WHERE CVLCPT_LINK_ID = #{excl01.cvlcptLinkId} /* 민원 연계 ID */ + 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 = #{crdnCvlcpt.lastModified} /* 수정 일시 */ + , MDFR = #{crdnCvlcpt.modifiedBy} /* 수정자 */ + WHERE CVLCPT_LINK_ID = #{crdnCvlcpt.cvlcptLinkId} /* 민원 연계 ID */ AND DEL_YN = 'N' /* 삭제 여부 */ - /* 단속 대장 주차가능결과코드를 수정(excl01Mapper.updateParkngPsbltyRsltCd) */ + /* 단속 대장 주차가능결과코드를 수정(levyExclMapper.updateParkngPsbltyRsltCd) */ UPDATE TB_CRDN_ADI - SET PARKNG_PSBLTY_RSLT_CD = #{excl01.parkngPsbltyRsltCd} /* 주차 가능 결과 코드 */ - , MDFCN_DT = #{excl01.lastModified} /* 수정 일시 */ - , MDFR = #{excl01.modifiedBy} /* 수정자 */ - WHERE CRDN_ID = #{excl01.crdnId} /* 단속 ID */ + SET PARKNG_PSBLTY_RSLT_CD = #{crdn.parkngPsbltyRsltCd} /* 주차 가능 결과 코드 */ + , MDFCN_DT = #{crdn.lastModified} /* 수정 일시 */ + , MDFR = #{crdn.modifiedBy} /* 수정자 */ + WHERE CRDN_ID = #{crdn.crdnId} /* 단속 ID */ AND DEL_YN = 'N' /* 삭제 여부 */ - /* 발송상세 대장 객체 가져오기(levyExclMapper.selectSndngDtl) */ + SELECT SD.SNDNG_ID /* 발송 ID */ + , SD.CRDN_ID /* 단속 ID */ + , SD.SNDNG_RCVMT_CD /* 발송 수납 코드 */ + FROM TB_SNDNG_DTL SD + WHERE SD.CRDN_ID = #{crdnId} /* 단속 ID */ + AND SD.SNDNG_RCVMT_CD = #{sndngRcvmtCd} - /* 발송상세 대장 수납코드를 수정(excl01Mapper.updateRcvmtCd) */ + /* 발송상세 대장 수납코드를 수정(levyExclMapper.updateRcvmtCd) */ UPDATE TB_SNDNG_DTL SET SNDNG_RCVMT_CD = NULL /* 발송 수납 코드 */ - , MDFCN_DT = #{excl01.lastModified} /* 수정 일시 */ - , MDFR = #{excl01.modifiedBy} /* 수정자 */ - WHERE CRDN_ID = #{excl01.crdnId} /* 단속 ID */ + , MDFCN_DT = #{sndngDtl.lastModified} /* 수정 일시 */ + , MDFR = #{sndngDtl.modifiedBy} /* 수정자 */ + WHERE CRDN_ID = #{sndngDtl.crdnId} /* 단속 ID */ 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 6264a9a0..14e8484b 100644 --- a/src/main/resources/sql/mapper/fims/excl/opnnSbmsn-mapper.xml +++ b/src/main/resources/sql/mapper/fims/excl/opnnSbmsn-mapper.xml @@ -120,7 +120,7 @@ LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) - /* 의견제출 대장 목록 조회(opnnSbmsnMapper.selectOpnnSbmsnList) */ WHERE C.SGG_CD = #{sggCd} /* 시군구 코드 */ @@ -281,7 +281,7 @@ LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) - /* 의견제출 대장 객체 가져오기(opnnSbmsnMapper.selectOpnnSbmsns) */ @@ -307,7 +307,7 @@ - /* 단속 대장 객체 가져오기(opnnSbmsnMapper.selectCrdn) */ SELECT C.CRDN_ID /* 단속 ID */ , C.SGG_CD /* 시군구 코드 */ , C.TASK_SE_CD /* 업무 구분 코드 */ @@ -368,8 +368,8 @@ WHERE C.CRDN_ID = #{crdnId} /* 단속 ID */ - /* 의견제출 대장 등록(excl02Mapper.insertOpnnSbmsn) */ - + /* 의견제출 대장 등록(opnnSbmsnMapper.insertOpnnSbmsn) */ + SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(OPNN_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID FROM TB_OPNN_SBMSN WHERE OPNN_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%') @@ -408,95 +408,95 @@ , MDFR /* 수정자 */ ) VALUES ( - #{excl02.opnnId} /* 의견 ID */ - , #{excl02.crdnId} /* 단속 ID */ - , #{excl02.rcptNo} /* 접수 번호 */ - , #{excl02.rcptYmd} /* 접수 일자 */ - , #{excl02.rcptSeCd} /* 접수 구분 코드 */ - , #{excl02.ownrRelCd} /* 소유주 관계 코드 */ - , #{excl02.sttrNm} /* 진술자 명 */ - , #{excl02.sttrBrdt} /* 진술자 생년월일 */ - , #{excl02.sttrRrno} /* 진술자 주민등록번호 */ - , #{excl02.sttrAddr} /* 진술자 주소 */ - , #{excl02.sttrDaddr} /* 진술자 상세주소 */ - , #{excl02.sttrZip} /* 진술자 우편번호 */ - , #{excl02.sttrCttpc} /* 진술자 연락처 */ - , #{excl02.sttrEml} /* 진술자 이메일 */ - , #{excl02.opnnSbmsnCn} /* 의견 제출 내용 */ - , #{excl02.opnnSbmsnSeCd} /* 의견 제출 구분 코드 */ - , #{excl02.opnnSbmsnGist} /* 의견 제출 요지 */ - , #{excl02.atchFileCnt} /* 첨부 파일 수 */ - , #{excl02.docNo} /* 문서 번호 */ - , #{excl02.ntfctnSeCd} /* 통보 구분 코드 */ - , #{excl02.picRvwOpnn} /* 담당자 검토 의견 */ - , #{excl02.ansCn} /* 답변 내용 */ - , #{excl02.ansYmd} /* 답변 일시 */ - , #{excl02.ansTm} /* 답변 일시 */ - , #{excl02.opnnSbmsnSttsCd} /* 의견 제출 상태 코드 */ + #{opnnSbmsn.opnnId} /* 의견 ID */ + , #{opnnSbmsn.crdnId} /* 단속 ID */ + , #{opnnSbmsn.rcptNo} /* 접수 번호 */ + , #{opnnSbmsn.rcptYmd} /* 접수 일자 */ + , #{opnnSbmsn.rcptSeCd} /* 접수 구분 코드 */ + , #{opnnSbmsn.ownrRelCd} /* 소유주 관계 코드 */ + , #{opnnSbmsn.sttrNm} /* 진술자 명 */ + , #{opnnSbmsn.sttrBrdt} /* 진술자 생년월일 */ + , #{opnnSbmsn.sttrRrno} /* 진술자 주민등록번호 */ + , #{opnnSbmsn.sttrAddr} /* 진술자 주소 */ + , #{opnnSbmsn.sttrDaddr} /* 진술자 상세주소 */ + , #{opnnSbmsn.sttrZip} /* 진술자 우편번호 */ + , #{opnnSbmsn.sttrCttpc} /* 진술자 연락처 */ + , #{opnnSbmsn.sttrEml} /* 진술자 이메일 */ + , #{opnnSbmsn.opnnSbmsnCn} /* 의견 제출 내용 */ + , #{opnnSbmsn.opnnSbmsnSeCd} /* 의견 제출 구분 코드 */ + , #{opnnSbmsn.opnnSbmsnGist} /* 의견 제출 요지 */ + , #{opnnSbmsn.atchFileCnt} /* 첨부 파일 수 */ + , #{opnnSbmsn.docNo} /* 문서 번호 */ + , #{opnnSbmsn.ntfctnSeCd} /* 통보 구분 코드 */ + , #{opnnSbmsn.picRvwOpnn} /* 담당자 검토 의견 */ + , #{opnnSbmsn.ansCn} /* 답변 내용 */ + , #{opnnSbmsn.ansYmd} /* 답변 일시 */ + , #{opnnSbmsn.ansTm} /* 답변 일시 */ + , #{opnnSbmsn.opnnSbmsnSttsCd} /* 의견 제출 상태 코드 */ , 'N' /* 삭제 여부 */ - , #{excl02.createdAt} /* 등록 일시 */ - , #{excl02.createdBy} /* 등록자 */ - , #{excl02.lastModified} /* 수정 일시 */ - , #{excl02.modifiedBy} /* 수정자 */ + , #{opnnSbmsn.createdAt} /* 등록 일시 */ + , #{opnnSbmsn.createdBy} /* 등록자 */ + , #{opnnSbmsn.lastModified} /* 수정 일시 */ + , #{opnnSbmsn.modifiedBy} /* 수정자 */ ) - /* 의견제출 대장 수정(excl02Mapper.updateOpnnSbmsn) */ + /* 의견제출 대장 수정(opnnSbmsnMapper.updateOpnnSbmsn) */ UPDATE TB_OPNN_SBMSN - SET RCPT_NO = #{excl02.rcptNo} /* 접수 번호 */ - , RCPT_YMD = #{excl02.rcptYmd} /* 접수 일자 */ - , RCPT_SE_CD = #{excl02.rcptSeCd} /* 접수 구분 코드 */ - , OWNR_REL_CD = #{excl02.ownrRelCd} /* 소유주 관계 코드 */ - , STTR_NM = #{excl02.sttrNm} /* 진술자 명 */ - , STTR_BRDT = #{excl02.sttrBrdt} /* 진술자 생년월일 */ - , STTR_RRNO = #{excl02.sttrRrno} /* 진술자 주민등록번호 */ - , STTR_ADDR = #{excl02.sttrAddr} /* 진술자 주소 */ - , STTR_DADDR = #{excl02.sttrDaddr} /* 진술자 상세주소 */ - , STTR_ZIP = #{excl02.sttrZip} /* 진술자 우편번호 */ - , STTR_CTTPC = #{excl02.sttrCttpc} /* 진술자 연락처 */ - , STTR_EML = #{excl02.sttrEml} /* 진술자 이메일 */ - , OPNN_SBMSN_CN = #{excl02.opnnSbmsnCn} /* 의견 제출 내용 */ - , OPNN_SBMSN_SE_CD = #{excl02.opnnSbmsnSeCd} /* 의견 제출 구분 코드 */ - , OPNN_SBMSN_GIST = #{excl02.opnnSbmsnGist} /* 의견 제출 요지 */ - , ATCH_FILE_CNT = #{excl02.atchFileCnt} /* 첨부 파일 수 */ - , DOC_NO = #{excl02.docNo} /* 문서 번호 */ - , NTFCTN_SE_CD = #{excl02.ntfctnSeCd} /* 통보 구분 코드 */ - , PIC_RVW_OPNN = #{excl02.picRvwOpnn} /* 담당자 검토 의견 */ - , MDFCN_DT = #{excl02.lastModified} /* 수정 일시 */ - , MDFR = #{excl02.modifiedBy} /* 수정자 */ - WHERE OPNN_ID = #{excl02.opnnId} /* 의견 ID */ + 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} /* 의견 제출 요지 */ + , ATCH_FILE_CNT = #{opnnSbmsn.atchFileCnt} /* 첨부 파일 수 */ + , DOC_NO = #{opnnSbmsn.docNo} /* 문서 번호 */ + , NTFCTN_SE_CD = #{opnnSbmsn.ntfctnSeCd} /* 통보 구분 코드 */ + , PIC_RVW_OPNN = #{opnnSbmsn.picRvwOpnn} /* 담당자 검토 의견 */ + , MDFCN_DT = #{opnnSbmsn.lastModified} /* 수정 일시 */ + , MDFR = #{opnnSbmsn.modifiedBy} /* 수정자 */ + WHERE OPNN_ID = #{opnnSbmsn.opnnId} /* 의견 ID */ - /* 의견제출 대장 삭제(excl02Mapper.deleteOpnnSbmsn) */ + /* 의견제출 대장 답변 수정(opnnSbmsnMapper.updateAnsSttsCd) */ + UPDATE TB_OPNN_SBMSN + SET OPNN_SBMSN_GIST = #{opnnSbmsn.opnnSbmsnGist} /* 의견 제출 요지 */ + , PIC_RVW_OPNN = #{opnnSbmsn.picRvwOpnn} /* 담당자 검토 의견 */ + , NTFCTN_SE_CD = #{opnnSbmsn.ntfctnSeCd} /* 통보 구분 코드 */ + , OPNN_SBMSN_STTS_CD = #{opnnSbmsn.opnnSbmsnSttsCd} /* 의견 제출 상태 코드 */ + , ANS_YMD = #{opnnSbmsn.ansYmd} /* 답변 일자 */ + , ANS_TM = #{opnnSbmsn.ansTm} /* 답변 시각 */ + , ANS_CN = #{opnnSbmsn.ansCn} /* 답변 내용 */ + , MDFCN_DT = #{opnnSbmsn.lastModified} /* 수정 일시 */ + , MDFR = #{opnnSbmsn.modifiedBy} /* 수정자 */ + WHERE OPNN_ID = #{opnnSbmsn.opnnId} /* 의견 ID */ + + + /* 의견제출 대장 삭제(opnnSbmsnMapper.deleteOpnnSbmsn) */ UPDATE TB_OPNN_SBMSN SET DEL_YN = 'Y' - , DEL_DT = #{excl02.lastModified} /* 삭제 일시 */ - , DLTR = #{excl02.modifiedBy} /* 삭제자 */ - , DEL_RSN = #{excl02.delRsn} /* 삭제 사유 */ - WHERE OPNN_ID = #{excl02.opnnId} /* 의견 ID */ + , DEL_DT = #{opnnSbmsn.lastModified} /* 삭제 일시 */ + , DLTR = #{opnnSbmsn.modifiedBy} /* 삭제자 */ + , DEL_RSN = #{opnnSbmsn.delRsn} /* 삭제 사유 */ + WHERE OPNN_ID = #{opnnSbmsn.opnnId} /* 의견 ID */ AND DEL_YN = 'N' /* 삭제 여부 */ - /* 단속 대장 의견제출여부 수정(excl02Mapper.updateOpnnSbmsnYn) */ + /* 단속 대장 의견제출여부 수정(opnnSbmsnMapper.updateCrdnOpnnSbmsnYn) */ UPDATE TB_CRDN - SET OPNN_SBMSN_YN = #{excl02.opnnSbmsnYn} /* 의견 제출 여부 */ - , MDFCN_DT = #{excl02.lastModified} /* 수정 일시 */ - , MDFR = #{excl02.modifiedBy} /* 수정자 */ - WHERE CRDN_ID = #{excl02.crdnId} /* 단속 ID */ - - - /* 의견제출 대장 답변 수정(excl02Mapper.updateAnsSttsCd) */ - UPDATE TB_OPNN_SBMSN - SET OPNN_SBMSN_GIST = #{excl02.opnnSbmsnGist} /* 의견 제출 요지 */ - , PIC_RVW_OPNN = #{excl02.picRvwOpnn} /* 담당자 검토 의견 */ - , NTFCTN_SE_CD = #{excl02.ntfctnSeCd} /* 통보 구분 코드 */ - , OPNN_SBMSN_STTS_CD = #{excl02.opnnSbmsnSttsCd} /* 의견 제출 상태 코드 */ - , ANS_YMD = #{excl02.ansYmd} /* 답변 일자 */ - , ANS_TM = #{excl02.ansTm} /* 답변 시각 */ - , ANS_CN = #{excl02.ansCn} /* 답변 내용 */ - , MDFCN_DT = #{excl02.lastModified} /* 수정 일시 */ - , MDFR = #{excl02.modifiedBy} /* 수정자 */ - WHERE OPNN_ID = #{excl02.opnnId} /* 의견 ID */ + SET OPNN_SBMSN_YN = #{crdn.opnnSbmsnYn} /* 의견 제출 여부 */ + , MDFCN_DT = #{crdn.lastModified} /* 수정 일시 */ + , MDFR = #{crdn.modifiedBy} /* 수정자 */ + WHERE CRDN_ID = #{crdn.crdnId} /* 단속 ID */ \ No newline at end of file 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 c0b65ac4..5b0135bf 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 @@ -385,7 +385,7 @@ , content : resp , size : ${pageName}Control.infoSize , init : () => ${pageName}Control.setInfo(info) - , onClose : () => { ${pageName}Control.load("1"); } // callback + , onClose : () => { ${pageName}Control.load(1); } // callback }); } }); @@ -417,6 +417,26 @@ ${pageName}Control._load(); } */ + /************************************************************************** + * + **************************************************************************/ + // DataTables에 click, dbclick 이벤트 + renderList${pageName} = () => { + 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_EXCL_ID") + "');") + .replace(/{ondblclick}/gi, "${pageName}Control.getTotalInfo('" + dataItem.getValue("CRDN_ID") + "');") + ); + + $("#tbody--${pageName}").html(trs.join()); + $("th input[type='checkbox']").prop("checked", false); + } /************************************************************************** * 초기 셋팅 @@ -454,29 +474,11 @@ if (el.scrollTop() == 0) return; if ((el[0].scrollHeight - el.scrollTop() + VERTICAL_SCROLL_HEIGHT) <= el.outerHeight()) { - fnBtnSearchList${pageName}(${pageName}Control.query.pageNum + 1); + ${pageName}Control.load(${pageName}Control.query.pageNum + 1); } }); } - // DataTables에 click, dbclick 이벤트 - function renderList${pageName}() { - 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_EXCL_ID") + "');") - .replace(/{ondblclick}/gi, "${pageName}Control.getTotalInfo('" + dataItem.getValue("CRDN_ID") + "');") - ); - - $("#tbody--${pageName}").html(trs.join()); - $("th input[type='checkbox']").prop("checked", false); - } - /************************************************************************** * function **************************************************************************/ @@ -501,14 +503,13 @@ } // 검색 - function fnBtnSearchList${pageName}(pageNumber) { - // pageNumber 값 확인 - if (!pageNumber) pageNumber = 1; - - ${pageName}Control.query = fnGetParams${pageName}(); // 검색조건 - ${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 건수 - 30건 + function fnBtnSearchList${pageName}() { + // 검색조건 + ${pageName}Control.query = fnGetParams${pageName}(); + // 한번에 조회되는 건수 - 30건 + ${pageName}Control.query.fetchSize = FETCH_XS; - ${pageName}Control.load(pageNumber); + ${pageName}Control.load(1); } // 엑셀 @@ -543,7 +544,7 @@ // 삭제 function fnBtnRemove${pageName}() { dialog.alert({ - content : "선택한 ${prefixName} 정보를 삭제하시겠습니까?" + content : "선택한 부과제외 정보를 삭제하시겠습니까?" , onOK : () => { ${pageName}Control.remove(); } 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 db81e5c1..803ba11a 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 @@ -185,7 +185,7 @@ let data = formFields.get(); dialog.alert({ - content : "현재 ${prefixName} 정보를 저장하시겠습니까?" + content : "현재 부과제외 정보를 저장하시겠습니까?" , onOK : () => { ${pageName}Control.save(formFields.get()); } diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp index dcc555fe..09c0a72f 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp @@ -298,7 +298,7 @@ , urls : { load : wctx.url(${pageName}PrefixUrl + "/010/list.do") // 검색 , getInfo : wctx.url(${pageName}PrefixUrl + "/020/info.do") // 등록 및 수정 팝업 - , remove : wctx.url(${pageName}PrefixUrl + "/010/removes.do") // 선택(체크) 자료 삭제 + , remove : wctx.url(${pageName}PrefixUrl + "/010/removes.do") // 선택 자료 삭제 } , formats : { RCPT_YMD : dateFormat @@ -378,10 +378,10 @@ } // 심의 dialog - ${pageName}Control.getOpnnSbmsnDlbrtInfo = (opnnId) => { + ${pageName}Control.getOpnnSbmsnDlbrtInfo = (params) => { ajax.get({ - url : wctx.url(prefixUrl + "/030/info.do") - , data : { opnnId : opnnId } + url : wctx.url(${pageName}PrefixUrl + "/030/info.do") + , data : params || {} , success : resp => { resp = resp.replace(/infoPrefix/g, this.prefix) .replace(/prefixName/g, this.prefixName) @@ -551,7 +551,12 @@ return; } - ${pageName}Control.getOpnnSbmsnDlbrtInfo(opnnId); + let params = { + callPurpose : "update" + , opnnId : opnnId + }; + + ${pageName}Control.getOpnnSbmsnDlbrtInfo(params); } /************************************************************************** diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02030-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02030-info.jsp index 579f493a..e678ed8b 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02030-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02030-info.jsp @@ -106,7 +106,7 @@ **************************************************************************/ // URL var ${pageName}PrefixUrl = "/excl/excl02"; - // + // FormFields var ${pageName}Fields = new FormFields("#frmEdit--${pageName}"); /************************************************************************** diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02010-main.jsp index 1e647df7..ed33de96 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02010-main.jsp @@ -164,13 +164,18 @@ let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID"); // 단속 ID 가 없다면.. return - if (crdnId == undefined || crdnId == "") { + if (crdnId == null || crdnId == "") { return; } + let params = { + callPurpose : "view" + , crdnId : crdnId + }; + ajax.get({ url : wctx.url("/sprt/sprt02/020/info.do") - , data : { crdnId : crdnId } + , data : params || {} , success : resp => { $("#crdnPayerInfo").html(resp); } @@ -182,13 +187,18 @@ let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID"); // 단속 ID 가 없다면.. return - if (crdnId == undefined || crdnId == "") { + if (crdnId == null || crdnId == "") { return; } + let params = { + callPurpose : "view" + , crdnId : crdnId + }; + ajax.get({ url : wctx.url("/sprt/sprt02/030/info.do") - , data : { crdnId : crdnId } + , data : params || {} , success : resp => { $("#opnnSbmsnInfo").html(resp); } @@ -200,13 +210,18 @@ let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID"); // 단속 ID 가 없다면.. return - if (crdnId == undefined || crdnId == "") { + if (crdnId == null || crdnId == "") { return; } + let params = { + callPurpose : "view" + , crdnId : crdnId + }; + ajax.get({ url : wctx.url("/sprt/sprt02/040/info.do") - , data : { crdnId : crdnId } + , data : params || {} , success : resp => { $("#sndngInfo").html(resp); } 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 a57c7a44..34982e3f 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 @@ -319,7 +319,24 @@ /************************************************************************** * **************************************************************************/ + fnBtnOpenCvlcptOrgnl = (params) => { + let taskSeCd = ${pageName}Control.dataset.getValue("TASK_SE_CD"); + let dialogId = "cvlcptOrgnlDialog--${pageName}"; + + ajax.get({ + url : wctx.url("/" + taskSeCd + "/cvlc/cvlc01/050/info.do") + , data : params || {} + , success : resp => { + dialog.open({ + id : dialogId + , title : "민원내역 원본" + , content : resp + , size : "xl" + }); + } + }) + } /************************************************************************** * 초기 셋팅 @@ -340,21 +357,17 @@ // 민원 원본 보기 function fnBtnOpenCvlcptOrgnl${pageName}() { let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID"); - let taskSeCd = ${pageName}Control.dataset.getValue("TASK_SE_CD"); - let dialogId = "cvlcptOrgnlDialog--${pageName}"; - ajax.get({ - url : wctx.url("/" + taskSeCd + "/cvlc/cvlc01/050/info.do") - , data : { crdnId : crdnId } - , success : resp => { - dialog.open({ - id : dialogId - , title : "민원내역 원본" - , content : resp - , size : "xl" - }); - } - }) + // 단속 ID 가 없다면.. return + if (crdnId == null || crdnId == "") { + return; + } + + let params = { + crdnId : crdnId + }; + + fnBtnOpenCvlcptOrgnl(params); } // 민원 답변 보기 diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02030-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02030-info.jsp index 625cccc7..c28abfed 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02030-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02030-info.jsp @@ -207,6 +207,7 @@ // 의견제출 dialog ${pageName}Control.getOpnnSbmsnInfo = (params) => { let dialogTitle = ""; + if (params.callPurpose == "create") { dialogTitle = "의견제출 등록"; } else if (params.callPurpose == "update") { @@ -217,7 +218,7 @@ ajax.get({ url : wctx.url("/excl/excl02/020/info.do") - , data : params + , data : params || {} , success : resp => { resp = resp.replace(/infoPrefix/g, this.prefix) .replace(/prefixName/g, this.prefixName) @@ -226,23 +227,25 @@ , title : dialogTitle , content : resp , size : "xl" - , onClose : () => { fnDataRefreshInfo(); } // callback + , onClose : () => { // callback + fnDataRefreshInfo(); // 자료 조회 + } }); } }); } - // 삭제 후 재조회 + // 삭제 callback ${pageName}Control.onRemoveOpnnSbmsn = (resp) => { if (resp.saved) { - fnDataRefreshInfo(); + fnDataRefreshInfo(); // 자료 조회 } } // 삭제 - ${pageName}Control.removeOpnnSbmsn = (opnnId) => { + ${pageName}Control.removeOpnnSbmsn = (params) => { ajax.post({ url : wctx.url("/excl/excl02/010/remove.do") - , data : {opnnId : opnnId} + , data : params || {} , success : resp => ${pageName}Control.onRemoveOpnnSbmsn(resp) }); } @@ -251,7 +254,7 @@ ${pageName}Control.getOpnnSbmsnDlbrtInfo = (params) => { ajax.get({ url : wctx.url("/excl/excl02/030/info.do") - , data : params + , data : params || {} , success : resp => { resp = resp.replace(/infoPrefix/g, this.prefix) .replace(/prefixName/g, this.prefixName) @@ -266,8 +269,11 @@ } // 재조회 - function fnDataRefreshInfo() { - let crdnId = $("#crdnId--${pageName}").val(); + fnDataRefreshInfo = (crdnId) => { + // 단속 ID 확인 + if (crdnId == undefined || crdnId == null || crdnId == "") { + crdnId = $("#crdnId--${pageName}").val(); + } ajax.get({ url : wctx.url("/sprt/sprt02/030/info.do") @@ -301,7 +307,7 @@ let crdnId = ${pageName}Control.dataset.getValue("CRDN_ID"); // 단속 ID 가 없다면.. return - if (crdnId == undefined || crdnId == "") { + if (crdnId == null || crdnId == "") { return; } @@ -319,7 +325,7 @@ let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID") // 의견 ID 가 없다면.. return - if (opnnId == undefined || opnnId == "") { + if (opnnId == null || opnnId == "") { return; } @@ -336,14 +342,19 @@ let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID"); // 의견 ID 가 없다면.. return - if (opnnId == undefined || opnnId == "") { + if (opnnId == null || opnnId == "") { return; } + let params = { + callPurpose : "remove" + , opnnId : opnnId + }; + dialog.alert({ - content : "선택한 ${prefixName} 정보를 삭제하시겠습니까?" + content : "선택한 의견제출 정보를 삭제하시겠습니까?" , onOK : () => { - ${pageName}Control.removeOpnnSbmsn(opnnId); + ${pageName}Control.removeOpnnSbmsn(params); } }); } @@ -353,7 +364,7 @@ let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID"); // 의견제출 ID 가 없다면.. return - if (opnnId == undefined || opnnId == "") { + if (opnnId == null || opnnId == "") { return; } @@ -377,6 +388,14 @@ return; } + // 기존 table에 자료가 존재하면 table 삭제 + let fileListTable = document.getElementById("fileList--${pageName}"); // table element 찾기 + + // table 행(Row) 삭제 + for (iLoop = 0; iLoop <= fileListTable.rows.length; iLoop++) { + let newRow = fileListTable.deleteRow(fileListTable.rows.length-1); + } + // 첨부파일 리스트 ajax.get({ url : "file/list.do"