감경 테이블 수정.

1. TB_RDUCT -> TB_RDCT
  RDUCT_ID -> RDCT_ID
  RDUCT_YMD -> RDCT_YMD
  RDUCT_RSN_CD -> RDCT_RSN_CD
  RDUCT_AMT -> RDCT_AMT
main
jjh 4 months ago
parent b8b2bb024c
commit b60bf5e598

@ -38,8 +38,8 @@ public class CrdnQuery extends CmmnQuery {
private String schCvlcptRcptYmdTo; private String schCvlcptRcptYmdTo;
private String schCvlcptPrcsPrnmntDtFrom; private String schCvlcptPrcsPrnmntDtFrom;
private String schCvlcptPrcsPrnmntDtTo; private String schCvlcptPrcsPrnmntDtTo;
private String schRductYmdFrom; private String schRdctYmdFrom;
private String schRductYmdTo; private String schRdctYmdTo;
private String crdnYmd; private String crdnYmd;
private String schCrdnYmdFrom; private String schCrdnYmdFrom;
private String schCrdnYmdTo; private String schCrdnYmdTo;
@ -218,21 +218,21 @@ public class CrdnQuery extends CmmnQuery {
return self(); return self();
} }
public String getSchRductYmdFrom() { public String getSchRdctYmdFrom() {
return ifEmpty(schRductYmdFrom, () -> null); return ifEmpty(schRdctYmdFrom, () -> null);
} }
public <T extends CrdnQuery> T setSchRductYmdFrom(String schRductYmdFrom) { public <T extends CrdnQuery> T setSchRdctYmdFrom(String schRdctYmdFrom) {
this.schRductYmdFrom = schRductYmdFrom; this.schRdctYmdFrom = schRdctYmdFrom;
return self(); return self();
} }
public String getSchRductYmdTo() { public String getSchRdctYmdTo() {
return ifEmpty(schRductYmdTo, () -> null); return ifEmpty(schRdctYmdTo, () -> null);
} }
public <T extends CrdnQuery> T setSchRductYmdTo(String schRductYmdTo) { public <T extends CrdnQuery> T setSchRdctYmdTo(String schRdctYmdTo) {
this.schRductYmdTo = schRductYmdTo; this.schRdctYmdTo = schRdctYmdTo;
return self(); return self();
} }

@ -181,13 +181,13 @@ public class OpnnSbmsn extends AbstractEntity {
private String opnnSbmsnYn; private String opnnSbmsnYn;
/** /**
* (TB_RDUCT) - * (TB_RDCT) -
*/ */
private String rductRsnCd; private String rdctRsnCd;
/** /**
* (TB_RDUCT) - * (TB_RDCT) -
*/ */
private Integer rductAmt; private Integer rdctAmt;
} }

@ -17,8 +17,8 @@ import cokr.xit.fims.excl.OpnnSbmsn;
import cokr.xit.fims.excl.LevyExclQuery; import cokr.xit.fims.excl.LevyExclQuery;
import cokr.xit.fims.excl.dao.OpnnSbmsnMapper; import cokr.xit.fims.excl.dao.OpnnSbmsnMapper;
import cokr.xit.fims.levy.LevyQuery; import cokr.xit.fims.levy.LevyQuery;
import cokr.xit.fims.levy.Rduct; import cokr.xit.fims.levy.Rdct;
import cokr.xit.fims.levy.service.bean.RductBean; import cokr.xit.fims.levy.service.bean.RdctBean;
import cokr.xit.foundation.component.AbstractBean; import cokr.xit.foundation.component.AbstractBean;
import cokr.xit.foundation.data.DataObject; import cokr.xit.foundation.data.DataObject;
@ -48,8 +48,8 @@ public class OpnnSbmsnBean extends AbstractBean {
private CrdnSttsHstryBean crdnSttsHstryBean; private CrdnSttsHstryBean crdnSttsHstryBean;
/** 과태료 감경 대장 정보 Bean */ /** 과태료 감경 대장 정보 Bean */
@Resource(name="rductBean") @Resource(name="rdctBean")
private RductBean rductBean; private RdctBean rdctBean;
/** . /** .
* @param req * @param req
@ -237,8 +237,8 @@ public class OpnnSbmsnBean extends AbstractBean {
// 의견제출(TB_OPNN_SBMSN) 자료 조회 // 의견제출(TB_OPNN_SBMSN) 자료 조회
DataObject opnnSbmsnInfo = opnnSbmsnMapper.selectOpnnSbmsnInfo(new LevyExclQuery().setOpnnId(opnnSbmsn.getOpnnId())); DataObject opnnSbmsnInfo = opnnSbmsnMapper.selectOpnnSbmsnInfo(new LevyExclQuery().setOpnnId(opnnSbmsn.getOpnnId()));
// 과태료 감경 대장(TB_RDUCT) 자료 조회 // 과태료 감경 대장(TB_RDCT) 자료 조회
DataObject crdnRductInfo = rductBean.getRductInfo(new LevyQuery().setCrdnId(opnnSbmsn.getCrdnId())); DataObject crdnRductInfo = rdctBean.getRdctInfo(new LevyQuery().setCrdnId(opnnSbmsn.getCrdnId()));
// 의견제출 ID가 조회되지 않았다면 종료.. // 의견제출 ID가 조회되지 않았다면 종료..
if (opnnSbmsnInfo.string("OPNN_ID").equals("")) { if (opnnSbmsnInfo.string("OPNN_ID").equals("")) {
@ -251,7 +251,7 @@ public class OpnnSbmsnBean extends AbstractBean {
return rtnMsg; return rtnMsg;
} }
// 과태료 감경 대장에 이미 감경이 등록 되었다면 의견제출 과태료감경(04)을 처리할 수 없다. // 과태료 감경 대장에 이미 감경이 등록 되었다면 의견제출 과태료감경(04)을 처리할 수 없다.
if (opnnSbmsn.getOpnnSbmsnSttsCd().equals("04") && !crdnRductInfo.string("RDUCT_ID").equals("")) { if (opnnSbmsn.getOpnnSbmsnSttsCd().equals("04") && !crdnRductInfo.string("RDCT_ID").equals("")) {
rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료는 과태료 감경이 이미 등록 되었습니다."; rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료는 과태료 감경이 이미 등록 되었습니다.";
return rtnMsg; return rtnMsg;
} }
@ -266,26 +266,26 @@ public class OpnnSbmsnBean extends AbstractBean {
if (!opnnSbmsn.getOpnnSbmsnSttsCd().equals(opnnSbmsnInfo.string("OPNN_SBMSN_STTS_CD"))) { if (!opnnSbmsn.getOpnnSbmsnSttsCd().equals(opnnSbmsnInfo.string("OPNN_SBMSN_STTS_CD"))) {
// 의견제출답변결과(OPNN_SBMSN_STTS_CD)가 과태료감경(04) 이라면.. // 의견제출답변결과(OPNN_SBMSN_STTS_CD)가 과태료감경(04) 이라면..
if (opnnSbmsn.getOpnnSbmsnSttsCd().equals("04")) { if (opnnSbmsn.getOpnnSbmsnSttsCd().equals("04")) {
Rduct rduct = new Rduct(); Rdct rduct = new Rdct();
rduct.setCrdnId(opnnSbmsnInfo.string("CRDN_ID")); rduct.setCrdnId(opnnSbmsnInfo.string("CRDN_ID"));
rduct.setRtpyrId(opnnSbmsnInfo.string("RTPYR_ID")); rduct.setRtpyrId(opnnSbmsnInfo.string("RTPYR_ID"));
rduct.setRductYmd(opnnSbmsn.getAnsYmd()); rduct.setRdctYmd(opnnSbmsn.getAnsYmd());
rduct.setRductRsnCd(opnnSbmsn.getRductRsnCd()); rduct.setRdctRsnCd(opnnSbmsn.getRdctRsnCd());
rduct.setRductAmt(opnnSbmsn.getRductAmt()); rduct.setRdctAmt(opnnSbmsn.getRdctAmt());
rduct.setEtcCn("의견제출 심의 처리에 의한 감경 등록"); rduct.setEtcCn("의견제출 심의 처리에 의한 감경 등록");
rtnMsg = rductBean.createRduct(rduct); rtnMsg = rdctBean.createRdct(rduct);
if (!rtnMsg.contains("[S]")) { if (!rtnMsg.contains("[S]")) {
throw new RuntimeException("의견제출 심의 처리 중 과태료 감경 등록(수정)에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("의견제출 심의 처리 중 과태료 감경 등록(수정)에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
} else { } else {
// 의견제출 심의로 인한 과태료 감경 대장인지 확인 // 의견제출 심의로 인한 과태료 감경 대장인지 확인
if (crdnRductInfo != null && crdnRductInfo.string("RDUCT_ETC_CN").contains("의견제출 심의 처리")) { if (crdnRductInfo != null && crdnRductInfo.string("RDUCT_ETC_CN").contains("의견제출 심의 처리")) {
Rduct rduct = new Rduct(); Rdct rduct = new Rdct();
rduct.setRductId(opnnSbmsnInfo.string("RDUCT_ID")); rduct.setRdctId(opnnSbmsnInfo.string("RDCT_ID"));
rduct.setDelRsn("의견제출 심의 처리에 의한 감경 삭제"); rduct.setDelRsn("의견제출 심의 처리에 의한 감경 삭제");
rtnMsg = rductBean.removeRduct(rduct); rtnMsg = rdctBean.removeRdct(rduct);
if (!rtnMsg.contains("[S]")) { if (!rtnMsg.contains("[S]")) {
throw new RuntimeException("의견제출 심의 처리 중 과태료 감경 등록(수정)에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("의견제출 심의 처리 중 과태료 감경 등록(수정)에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -395,16 +395,16 @@ public class OpnnSbmsnBean extends AbstractBean {
// 의견제출 심의로 인한 과태료 감경 대장인지 확인 // 의견제출 심의로 인한 과태료 감경 대장인지 확인
if (opnnSbmsnInfo.string("OPNN_SBMSN_STTS_CD").equals("04")) { if (opnnSbmsnInfo.string("OPNN_SBMSN_STTS_CD").equals("04")) {
// 과태료 감경 대장(TB_RDUCT) 자료 조회 // 과태료 감경 대장(TB_RDCT) 자료 조회
DataObject crdnRductInfo = rductBean.getRductInfo(new LevyQuery().setCrdnId(opnnSbmsn.getCrdnId())); DataObject crdnRductInfo = rdctBean.getRdctInfo(new LevyQuery().setCrdnId(opnnSbmsn.getCrdnId()));
if (crdnRductInfo != null && crdnRductInfo.string("RDUCT_ETC_CN").contains("의견제출 심의 처리")) { if (crdnRductInfo != null && crdnRductInfo.string("RDUCT_ETC_CN").contains("의견제출 심의 처리")) {
Rduct rduct = new Rduct(); Rdct rduct = new Rdct();
rduct.setRductId(opnnSbmsnInfo.string("RDUCT_ID")); rduct.setRdctId(opnnSbmsnInfo.string("RDCT_ID"));
rduct.setDelRsn("의견제출 심의 처리에 의한 감경 삭제"); rduct.setDelRsn("의견제출 심의 처리에 의한 감경 삭제");
// 과태료 감경(TB_RDUCT) 대장을 삭제한다. // 과태료 감경(TB_RDCT) 대장을 삭제한다.
rtnMsg = rductBean.removeRduct(rduct); rtnMsg = rdctBean.removeRdct(rduct);
if (!rtnMsg.contains("[S]")) { if (!rtnMsg.contains("[S]")) {
throw new RuntimeException("의견제출 심의 처리 중 과태료 감경 등록(수정)에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("의견제출 심의 처리 중 과태료 감경 등록(수정)에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }

@ -233,7 +233,7 @@ public class Excl02Controller extends ApplicationController {
.addObject("pageName", "excl02020") // jsp pageName .addObject("pageName", "excl02020") // jsp pageName
.addObject("infoPrefix", "opnnSbmsn") // prefix .addObject("infoPrefix", "opnnSbmsn") // prefix
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDUCT_RSN_CD) .addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDCT_RSN_CD)
.addObject("FIM029List", commonCodes.get("FIM029")) // 접수 구분 코드(RCPT_SE_CD) .addObject("FIM029List", commonCodes.get("FIM029")) // 접수 구분 코드(RCPT_SE_CD)
.addObject("FIM030List", commonCodes.get("FIM030")) // 통보 구분 코드(NTFCTN_SE_CD) .addObject("FIM030List", commonCodes.get("FIM030")) // 통보 구분 코드(NTFCTN_SE_CD)
.addObject("FIM032List", commonCodes.get("FIM032")) // 소유주 관계 구분 코드(OWNR_REL_CD) .addObject("FIM032List", commonCodes.get("FIM032")) // 소유주 관계 구분 코드(OWNR_REL_CD)
@ -332,7 +332,7 @@ public class Excl02Controller extends ApplicationController {
.addObject("pageName", "excl02030") // jsp pageName .addObject("pageName", "excl02030") // jsp pageName
.addObject("infoPrefix", "opnnSbmsn") // prefix .addObject("infoPrefix", "opnnSbmsn") // prefix
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDUCT_RSN_CD) .addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDCT_RSN_CD)
.addObject("FIM030List", commonCodes.get("FIM030")) // 통보 구분 코드(NTFCTN_SE_CD) .addObject("FIM030List", commonCodes.get("FIM030")) // 통보 구분 코드(NTFCTN_SE_CD)
.addObject("FIM031List", commonCodes.get("FIM031")) // 의견 제출 상태 코드(OPNN_SBMSN_STTS_CD) .addObject("FIM031List", commonCodes.get("FIM031")) // 의견 제출 상태 코드(OPNN_SBMSN_STTS_CD)
.addObject("FIM033List", commonCodes.get("FIM033")) // 의견 제출 구분 코드(OPNN_SBMSN_SE_CD) .addObject("FIM033List", commonCodes.get("FIM033")) // 의견 제출 구분 코드(OPNN_SBMSN_SE_CD)

@ -21,8 +21,8 @@ public class LevyQuery extends CmmnQuery {
private String crdnId; // 단속 ID private String crdnId; // 단속 ID
private String[] levyIds; // 부과 Ids private String[] levyIds; // 부과 Ids
private String levyId; // 부과 ID private String levyId; // 부과 ID
private String[] rductIds; // 감경 Ids private String[] rdctIds; // 감경 Ids
private String rductId; // 감경 ID private String rdctId; // 감경 ID
// 검색 조건 // 검색 조건
private String schFyr; // 회계연도 private String schFyr; // 회계연도
private String schLevyNoFrom; // 부과 번호 시작 private String schLevyNoFrom; // 부과 번호 시작
@ -30,9 +30,9 @@ public class LevyQuery extends CmmnQuery {
private String schRdctSeCd; // 감경 구분 코드 private String schRdctSeCd; // 감경 구분 코드
private String schLevyYmdFrom; // 부과 일자 시작 private String schLevyYmdFrom; // 부과 일자 시작
private String schLevyYmdTo; // 부과 일자 종료 private String schLevyYmdTo; // 부과 일자 종료
private String schRductYmdFrom; // 감경 일자 시작 private String schRdctYmdFrom; // 감경 일자 시작
private String schRductYmdTo; // 감경 일자 종료 private String schRdctYmdTo; // 감경 일자 종료
private String schRductRsnCd; // 감경 사유 코드 private String schRdctRsnCd; // 감경 사유 코드
private String schCrdnYmdFrom; // 단속 일자 시작 private String schCrdnYmdFrom; // 단속 일자 시작
private String schCrdnYmdTo; // 단속 일자 종료 private String schCrdnYmdTo; // 단속 일자 종료
private String schVhrno; // 차량번호 private String schVhrno; // 차량번호
@ -99,49 +99,49 @@ public class LevyQuery extends CmmnQuery {
return self(); return self();
} }
public String[] getRductIds() { public String[] getRdctIds() {
return ifEmpty(rductIds, () -> null); return ifEmpty(rdctIds, () -> null);
} }
public <T extends LevyQuery> T setRductIds(String... rductIds) { public <T extends LevyQuery> T setRdctIds(String... rdctIds) {
this.rductIds = rductIds; this.rdctIds = rdctIds;
return self(); return self();
} }
public String getRductId() { public String getRdctId() {
return ifEmpty(rductId, () -> null); return ifEmpty(rdctId, () -> null);
} }
public <T extends LevyQuery> T setRductId(String rductId) { public <T extends LevyQuery> T setRdctId(String rdctId) {
this.rductId = rductId; this.rdctId = rdctId;
return self(); return self();
} }
// 검색 조건 ////////////////////////////////////////////////////////////////// // 검색 조건 //////////////////////////////////////////////////////////////////
public String getSchRductYmdFrom() { public String getSchRdctYmdFrom() {
return ifEmpty(schRductYmdFrom, () -> null); return ifEmpty(schRdctYmdFrom, () -> null);
} }
public <T extends LevyQuery> T setSchRductYmdFrom(String schRductYmdFrom) { public <T extends LevyQuery> T setSchRdctYmdFrom(String schRdctYmdFrom) {
this.schRductYmdFrom = schRductYmdFrom; this.schRdctYmdFrom = schRdctYmdFrom;
return self(); return self();
} }
public String getSchRductYmdTo() { public String getSchRdctYmdTo() {
return ifEmpty(schRductYmdTo, () -> null); return ifEmpty(schRdctYmdTo, () -> null);
} }
public <T extends LevyQuery> T setSchRductYmdTo(String schRductYmdTo) { public <T extends LevyQuery> T setSchRdctYmdTo(String schRdctYmdTo) {
this.schRductYmdTo = schRductYmdTo; this.schRdctYmdTo = schRdctYmdTo;
return self(); return self();
} }
public String getSchRductRsnCd() { public String getSchRdctRsnCd() {
return ifEmpty(schRductRsnCd, () -> null); return ifEmpty(schRdctRsnCd, () -> null);
} }
public <T extends LevyQuery> T setSchRductRsnCd(String schRductRsnCd) { public <T extends LevyQuery> T setSchRdctRsnCd(String schRdctRsnCd) {
this.schRductRsnCd = schRductRsnCd; this.schRdctRsnCd = schRdctRsnCd;
return self(); return self();
} }

@ -10,12 +10,12 @@ import lombok.Setter;
*/ */
@Getter @Getter
@Setter @Setter
public class Rduct extends AbstractEntity { public class Rdct extends AbstractEntity {
/** /**
* ID * ID
*/ */
private String rductId; private String rdctId;
/** /**
* ID * ID
@ -30,17 +30,17 @@ public class Rduct extends AbstractEntity {
/** /**
* *
*/ */
private String rductYmd; private String rdctYmd;
/** /**
* *
*/ */
private String rductRsnCd; private String rdctRsnCd;
/** /**
* *
*/ */
private Integer rductAmt; private Integer rdctAmt;
/** /**
* *
@ -60,7 +60,7 @@ public class Rduct extends AbstractEntity {
/** /**
* Ids * Ids
*/ */
private String[] rductIds; private String[] rdctIds;
/** /**
* *

@ -6,7 +6,7 @@ import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
import cokr.xit.foundation.component.AbstractMapper; import cokr.xit.foundation.component.AbstractMapper;
import cokr.xit.foundation.data.DataObject; import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.levy.Rduct; import cokr.xit.fims.levy.Rdct;
import cokr.xit.fims.crdn.Crdn; import cokr.xit.fims.crdn.Crdn;
import cokr.xit.fims.levy.Levy; import cokr.xit.fims.levy.Levy;
import cokr.xit.fims.levy.LevyQuery; import cokr.xit.fims.levy.LevyQuery;
@ -21,38 +21,38 @@ import cokr.xit.fims.levy.LevyQuery;
* ================================ * ================================
* </pre> * </pre>
*/ */
@Mapper("rductMapper") @Mapper("rdctMapper")
public interface RductMapper extends AbstractMapper { public interface RdctMapper extends AbstractMapper {
/** .<br /> /** .<br />
* @param req * @param req
* @return * @return
*/ */
List<DataObject> selectRductList(LevyQuery req); List<DataObject> selectRdctList(LevyQuery req);
/** . /** .
* @param req * @param req
* @return * @return
*/ */
List<DataObject> selectRducts(LevyQuery req); List<DataObject> selectRdcts(LevyQuery req);
/** 1 . /** 1 .
* @param req * @param req
* @return * @return
*/ */
default DataObject selectRductInfo(LevyQuery req) { default DataObject selectRdctInfo(LevyQuery req) {
// 삭제 여부 확인 // 삭제 여부 확인
if (req.getDelYn() == null) { if (req.getDelYn() == null) {
req.setDelYn("N"); req.setDelYn("N");
} }
// 기본 정렬 // 기본 정렬
if (req.getOrderBy() == null) { if (req.getOrderBy() == null) {
req.setOrderBy("R.RDUCT_ID DESC"); req.setOrderBy("R.RDCT_ID DESC");
} }
List<DataObject> rducts = selectRducts(req); List<DataObject> rdcts = selectRdcts(req);
return !rducts.isEmpty() ? rducts.get(0) : null; return !rdcts.isEmpty() ? rdcts.get(0) : null;
} }
/** . /** .
@ -62,7 +62,7 @@ public interface RductMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int insertRduct(Rduct rduct); int insertRdct(Rdct rdct);
/** . /** .
* @param params * @param params
@ -71,7 +71,7 @@ public interface RductMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int updateRduct(Rduct rduct); int updateRdct(Rdct rdct);
/** . /** .
* @param params * @param params
@ -80,7 +80,7 @@ public interface RductMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int deleteRduct(Rduct rduct); int deleteRdct(Rdct rdct);
/** ID , . /** ID , .
* @param crdnId ID * @param crdnId ID
@ -89,20 +89,20 @@ public interface RductMapper extends AbstractMapper {
DataObject selectCrdn(LevyQuery req); DataObject selectCrdn(LevyQuery req);
default DataObject selectCrdnInfo(String crdnId) { default DataObject selectCrdnInfo(String crdnId) {
DataObject rductInfo = selectCrdn(new LevyQuery().setCrdnId(crdnId)); DataObject rdctInfo = selectCrdn(new LevyQuery().setCrdnId(crdnId));
return rductInfo; return rdctInfo;
} }
/**(TB_CRDN) . /**(TB_CRDN) .
* @param crdn * @param crdn
* @return * @return
*/ */
int updateCrdnRduct(Crdn crdn); int updateCrdnRdct(Crdn crdn);
/**(TB_LEVY) . /**(TB_LEVY) .
* @param levy * @param levy
* @return * @return
*/ */
int updateLevyRduct(Levy levy); int updateLevyRdct(Levy levy);
} }

@ -4,7 +4,7 @@ import java.util.List;
import cokr.xit.foundation.data.DataObject; import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.levy.Rduct; import cokr.xit.fims.levy.Rdct;
import cokr.xit.fims.levy.LevyQuery; import cokr.xit.fims.levy.LevyQuery;
/** . /** .
@ -17,24 +17,25 @@ import cokr.xit.fims.levy.LevyQuery;
* ================================ * ================================
* </pre> * </pre>
*/ */
public interface RductService { public interface RdctService {
/** . /** .
* @param req * @param req
* @return * @return
*/ */
List<DataObject> getRductList(LevyQuery req); List<DataObject> getRdctList(LevyQuery req);
/** . /** .
* @param req * @param req
* @return * @return
*/ */
List<DataObject> getRducts(LevyQuery req); List<DataObject> getRdcts(LevyQuery req);
/** ID .<br /> /** ID .<br />
* @param req * @param req
* @return * @return
*/ */
DataObject getRductInfo(LevyQuery req); DataObject getRdctInfo(LevyQuery req);
/** . /** .
* @param rduct * @param rduct
@ -43,7 +44,7 @@ public interface RductService {
* <li> false</li> * <li> false</li>
* </ul> * </ul>
*/ */
String createRduct(Rduct rduct); String createRdct(Rdct rdct);
/** . /** .
* @param rduct * @param rduct
@ -52,7 +53,7 @@ public interface RductService {
* <li> false</li> * <li> false</li>
* </ul> * </ul>
*/ */
String updateRduct(Rduct rduct); String updateRdct(Rdct rdct);
/** . /** .
* @param rduct * @param rduct
@ -61,7 +62,7 @@ public interface RductService {
* <li> false</li> * <li> false</li>
* </ul> * </ul>
*/ */
String removeRduct(Rduct rduct); String removeRdct(Rdct rdct);
} }

@ -10,8 +10,8 @@ import cokr.xit.fims.crdn.Crdn;
import cokr.xit.fims.crdn.service.bean.CrdnStngBean; import cokr.xit.fims.crdn.service.bean.CrdnStngBean;
import cokr.xit.fims.levy.Levy; import cokr.xit.fims.levy.Levy;
import cokr.xit.fims.levy.LevyQuery; import cokr.xit.fims.levy.LevyQuery;
import cokr.xit.fims.levy.Rduct; import cokr.xit.fims.levy.Rdct;
import cokr.xit.fims.levy.dao.RductMapper; import cokr.xit.fims.levy.dao.RdctMapper;
import cokr.xit.foundation.component.AbstractBean; import cokr.xit.foundation.component.AbstractBean;
import cokr.xit.foundation.data.DataObject; import cokr.xit.foundation.data.DataObject;
@ -25,12 +25,12 @@ import cokr.xit.foundation.data.DataObject;
* ================================ * ================================
* </pre> * </pre>
*/ */
@Component("rductBean") @Component("rdctBean")
public class RductBean extends AbstractBean { public class RdctBean extends AbstractBean {
/** 과태료 감경 대장 정보 DAO */ /** 과태료 감경 대장 정보 DAO */
@Resource(name = "rductMapper") @Resource(name = "rdctMapper")
private RductMapper rductMapper; private RdctMapper rdctMapper;
@Resource(name = "crdnStngBean") @Resource(name = "crdnStngBean")
private CrdnStngBean crdnStngBean; private CrdnStngBean crdnStngBean;
@ -39,7 +39,7 @@ public class RductBean extends AbstractBean {
* @param req * @param req
* @return * @return
*/ */
public List<DataObject> getRductList(LevyQuery req) { public List<DataObject> getRdctList(LevyQuery req) {
if (req.getDelYn() == null) { if (req.getDelYn() == null) {
req.setDelYn("N"); req.setDelYn("N");
} }
@ -47,27 +47,27 @@ public class RductBean extends AbstractBean {
req.setOrderBy("REG_DT"); req.setOrderBy("REG_DT");
} }
return rductMapper.selectRductList(req); return rdctMapper.selectRdctList(req);
} }
/** . /** .
* @param req * @param req
* @return * @return
*/ */
public List<DataObject> getRducts(LevyQuery req) { public List<DataObject> getRdcts(LevyQuery req) {
if (req.getOrderBy() == null) { if (req.getOrderBy() == null) {
req.setOrderBy("R.RDUCT_ID DESC"); req.setOrderBy("R.RDCT_ID DESC");
} }
return rductMapper.selectRducts(req); return rdctMapper.selectRdcts(req);
} }
/** ID .<br /> /** ID .<br />
* @param req * @param req
* @return * @return
*/ */
public DataObject getRductInfo(LevyQuery req) { public DataObject getRdctInfo(LevyQuery req) {
return rductMapper.selectRductInfo(req); return rdctMapper.selectRdctInfo(req);
} }
/** ID .<br /> /** ID .<br />
@ -76,11 +76,11 @@ public class RductBean extends AbstractBean {
*/ */
public DataObject getCrdnInfo(LevyQuery req) { public DataObject getCrdnInfo(LevyQuery req) {
DataObject dataCrdn = rductMapper.selectCrdn(req); DataObject dataCrdn = rdctMapper.selectCrdn(req);
if (req.getCallPurpose().equals("create")) { if (req.getCallPurpose().equals("create")) {
dataCrdn.set("RDUCT_YMD", dataCrdn.get("TODAY")); // 감경 일자 dataCrdn.set("RDCT_YMD", dataCrdn.get("TODAY")); // 감경 일자
dataCrdn.set("RDUCT_AMT", dataCrdn.get("CALC_RDUCT_AMT")); // 감경 금액 dataCrdn.set("RDCT_AMT", dataCrdn.get("CALC_RDCT_AMT")); // 감경 금액
} }
return dataCrdn; return dataCrdn;
@ -93,32 +93,32 @@ public class RductBean extends AbstractBean {
* <li> false</li> * <li> false</li>
* </ul> * </ul>
*/ */
public String createRduct(Rduct rduct) { public String createRdct(Rdct rdct) {
// 변수 선언 // 변수 선언
int rtnNocs = -1; // 처리 결과 건수 int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = "[F] "; // 처리 결과 메시지 String rtnMsg = "[F] "; // 처리 결과 메시지
// 단속 ID로 단속, 감경 정보 조회 // 단속 ID로 단속, 감경 정보 조회
DataObject infoCrdnRduct = rductMapper.selectCrdnInfo(rduct.getCrdnId()); DataObject crdnRductInfo = rdctMapper.selectCrdnInfo(rdct.getCrdnId());
// 감경 ID가 있다면 이미 부과제외 자료가 존재하므로 종료.. // 감경 ID가 있다면 이미 부과제외 자료가 존재하므로 종료..
if (!infoCrdnRduct.string("RDUCT_ID").equals("")) { if (!crdnRductInfo.string("RDCT_ID").equals("")) {
rtnMsg = "[F] 작업 중 이미 등록된 자료가 존재합니다."; rtnMsg = "[F] 작업 중 이미 등록된 자료가 존재합니다.";
return rtnMsg; return rtnMsg;
} }
// 단속 상태 코드(CRDN_STTS_CD) 확인하여 부과(51) 이후라면.. // 단속 상태 코드(CRDN_STTS_CD) 확인하여 부과(51) 이후라면..
if (infoCrdnRduct.number("CRDN_STTS_CD").intValue() > 51) { if (crdnRductInfo.number("CRDN_STTS_CD").intValue() > 51) {
rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + infoCrdnRduct.string("CRDN_STTS_NM") + " 상태 입니다."; rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + crdnRductInfo.string("CRDN_STTS_NM") + " 상태 입니다.";
return rtnMsg; return rtnMsg;
} }
// 부과 가산금(LEVY_ADAMT)이 있다면.. // 부과 가산금(LEVY_ADAMT)이 있다면..
if (infoCrdnRduct.number("LEVY_ADAMT").intValue() > 0) { if (crdnRductInfo.number("LEVY_ADAMT").intValue() > 0) {
rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>부과 가산금이 존재합니다."; rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>부과 가산금이 존재합니다.";
return rtnMsg; return rtnMsg;
} }
// 과태료 감경(TB_RDUCT) 대장을 등록한다. // 과태료 감경(TB_RDCT) 대장을 등록한다.
rtnNocs = rductMapper.insertRduct(rduct); rtnNocs = rdctMapper.insertRdct(rdct);
if (rtnNocs != 1) { if (rtnNocs != 1) {
throw new RuntimeException("과태료 감경 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("과태료 감경 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -126,40 +126,40 @@ public class RductBean extends AbstractBean {
int ffnlgAmt = 0; // 과태료 금액 int ffnlgAmt = 0; // 과태료 금액
int advntceAmt = 0; // 사전통지 금액 int advntceAmt = 0; // 사전통지 금액
ffnlgAmt = infoCrdnRduct.number("FFNLG_CRDN_AMT").intValue() - rduct.getRductAmt(); // 과태료 단속 금액 - 감경 금액 ffnlgAmt = crdnRductInfo.number("FFNLG_CRDN_AMT").intValue() - rdct.getRdctAmt(); // 과태료 단속 금액 - 감경 금액
advntceAmt = ffnlgAmt - (ffnlgAmt * infoCrdnRduct.number("ADVNTCE_RDUCT_RT").intValue() / 100); // 과태료 금액 - (과태료 금액 * 사전통지 감경 율 / 100) advntceAmt = ffnlgAmt - (ffnlgAmt * crdnRductInfo.number("ADVNTCE_RDUCT_RT").intValue() / 100); // 과태료 금액 - (과태료 금액 * 사전통지 감경 율 / 100)
// 단속(TB_CRDN) 대장을 수정한다. // 단속(TB_CRDN) 대장을 수정한다.
Crdn crdn = new Crdn(); Crdn crdn = new Crdn();
crdn.setCrdnId(rduct.getCrdnId()); // 단속 ID crdn.setCrdnId(rdct.getCrdnId()); // 단속 ID
crdn.setFfnlgRdcrt(infoCrdnRduct.string("WKSN_RDCRT")); // 과태료 감경 율 crdn.setFfnlgRdcrt(crdnRductInfo.string("WKSN_RDCRT")); // 과태료 감경 율
crdn.setFfnlgAmt(ffnlgAmt); // 과태료 금액 crdn.setFfnlgAmt(ffnlgAmt); // 과태료 금액
crdn.setAdvntceAmt(advntceAmt); // 사전통지 금액 crdn.setAdvntceAmt(advntceAmt); // 사전통지 금액
rtnNocs = rductMapper.updateCrdnRduct(crdn); rtnNocs = rdctMapper.updateCrdnRdct(crdn);
if (rtnNocs != 1) { if (rtnNocs != 1) {
throw new RuntimeException("감경 등록 중 단속대장 금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("감경 등록 중 단속대장 금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
// 부과 ID가 존재한다면 부과(TB_LEVY) 대장을 수정한다. // 부과 ID가 존재한다면 부과(TB_LEVY) 대장을 수정한다.
if (!infoCrdnRduct.string("LEVY_ID").equals("")) { if (!crdnRductInfo.string("LEVY_ID").equals("")) {
// 가산금이 존재하는 확인 // 가산금이 존재하는 확인
if (infoCrdnRduct.number("LEVY_ADAMT").intValue() != 0 ) { if (crdnRductInfo.number("LEVY_ADAMT").intValue() != 0 ) {
throw new RuntimeException("감경 등록 중 부과 대장에 가산금이 발생하여 부과 대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("감경 등록 중 부과 대장에 가산금이 발생하여 부과 대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
Levy levy = new Levy(); Levy levy = new Levy();
levy.setLevyId(infoCrdnRduct.string("LEVY_ID")); // 부과 ID levy.setLevyId(crdnRductInfo.string("LEVY_ID")); // 부과 ID
levy.setFfnlgAmt(ffnlgAmt); // 과태료 금액 levy.setFfnlgAmt(ffnlgAmt); // 과태료 금액
// 단속상태코드가 부과(51)면 과태료 금액, 부과 이전이라면 사전통지 금액으로.. // 단속상태코드가 부과(51)면 과태료 금액, 부과 이전이라면 사전통지 금액으로..
if (infoCrdnRduct.number("CRDN_STTS_CD").intValue() == 51) { if (crdnRductInfo.number("CRDN_STTS_CD").intValue() == 51) {
levy.setLevyPcptax(ffnlgAmt); // 부과 본세 = 과태료 금액 levy.setLevyPcptax(ffnlgAmt); // 부과 본세 = 과태료 금액
} else { } else {
// 주정차위반, 전용차로위반 과태료 // 주정차위반, 전용차로위반 과태료
if (infoCrdnRduct.string("TASK_SE_CD").equals("BPV") || infoCrdnRduct.string("TASK_SE_CD").equals("PVS")) { if (crdnRductInfo.string("TASK_SE_CD").equals("BPV") || crdnRductInfo.string("TASK_SE_CD").equals("PVS")) {
// 납기 일자 확인 // 납기 일자 확인
if (infoCrdnRduct.number("DUDT_YMD").intValue() >= infoCrdnRduct.number("TODAY").intValue()) { if (crdnRductInfo.number("DUDT_YMD").intValue() >= crdnRductInfo.number("TODAY").intValue()) {
levy.setLevyPcptax(advntceAmt); // 부과 본세 = 사전통지 금액 levy.setLevyPcptax(advntceAmt); // 부과 본세 = 사전통지 금액
} else { } else {
levy.setLevyPcptax(ffnlgAmt); // 부과 본세 = 과태료 금액 levy.setLevyPcptax(ffnlgAmt); // 부과 본세 = 과태료 금액
@ -169,10 +169,10 @@ public class RductBean extends AbstractBean {
} }
} }
int sumAmt = levy.getLevyPcptax() - infoCrdnRduct.number("RCVMT_PCPTAX").intValue() - infoCrdnRduct.number("RDAMT_PCPTAX").intValue(); int sumAmt = levy.getLevyPcptax() - crdnRductInfo.number("RCVMT_PCPTAX").intValue() - crdnRductInfo.number("RDAMT_PCPTAX").intValue();
levy.setSumAmt(sumAmt); // 합계 금액 = 부과 본세 - 수납 본세 - 감액 본세 levy.setSumAmt(sumAmt); // 합계 금액 = 부과 본세 - 수납 본세 - 감액 본세
rtnNocs = rductMapper.updateLevyRduct(levy); rtnNocs = rdctMapper.updateLevyRdct(levy);
if (rtnNocs != 1) { if (rtnNocs != 1) {
throw new RuntimeException("감경 등록 중 부과대장 금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("감경 등록 중 부과대장 금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -188,9 +188,9 @@ public class RductBean extends AbstractBean {
* <li> false</li> * <li> false</li>
* </ul> * </ul>
*/ */
public String updateRduct(Rduct rduct) { public String updateRdct(Rdct rdct) {
// 과태료 감경(TB_RDUCT) 대장을 수정한다. // 과태료 감경(TB_RDCT) 대장을 수정한다.
int rtnNocs = rductMapper.updateRduct(rduct); int rtnNocs = rdctMapper.updateRdct(rdct);
if (rtnNocs != 1) { if (rtnNocs != 1) {
throw new RuntimeException("과태료 감경 대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("과태료 감경 대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -205,76 +205,76 @@ public class RductBean extends AbstractBean {
* <li> false</li> * <li> false</li>
* </ul> * </ul>
*/ */
public String removeRduct(Rduct rduct) { public String removeRdct(Rdct rdct) {
// 변수 선언 // 변수 선언
int rtnNocs = -1; // 처리 결과 건수 int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = "[F] "; // 처리 결과 메시지 String rtnMsg = "[F] "; // 처리 결과 메시지
// 단속 ID로 단속, 감경 정보 조회 // 단속 ID로 단속, 감경 정보 조회
LevyQuery req = new LevyQuery(); LevyQuery req = new LevyQuery();
req.setRductId(rduct.getRductId()); req.setRdctId(rdct.getRdctId());
req.setDelYn("N"); req.setDelYn("N");
DataObject crdnRductInfo = rductMapper.selectCrdn(req); DataObject crdnRdctInfo = rdctMapper.selectCrdn(req);
// 감경 ID가 조회되지 않았다면 종료.. // 감경 ID가 조회되지 않았다면 종료..
if (crdnRductInfo.string("RDUCT_ID").equals("")) { if (crdnRdctInfo.string("RDCT_ID").equals("")) {
rtnMsg = "[F] 작업 중 자료가 존재하지 않습니다."; rtnMsg = "[F] 작업 중 자료가 존재하지 않습니다.";
return rtnMsg; return rtnMsg;
} }
// 단속 상태 코드(CRDN_STTS_CD) 확인하여 부과(51) 이후라면.. // 단속 상태 코드(CRDN_STTS_CD) 확인하여 부과(51) 이후라면..
if (crdnRductInfo.number("CRDN_STTS_CD").intValue() > 51) { if (crdnRdctInfo.number("CRDN_STTS_CD").intValue() > 51) {
rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + crdnRductInfo.string("CRDN_STTS_NM") + " 상태 입니다."; rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + crdnRdctInfo.string("CRDN_STTS_NM") + " 상태 입니다.";
return rtnMsg; return rtnMsg;
} }
// 부과 가산금(LEVY_ADAMT)이 있다면.. // 부과 가산금(LEVY_ADAMT)이 있다면..
if (crdnRductInfo.number("LEVY_ADAMT").intValue() > 0) { if (crdnRdctInfo.number("LEVY_ADAMT").intValue() > 0) {
rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>부과 가산금이 존재합니다."; rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>부과 가산금이 존재합니다.";
return rtnMsg; return rtnMsg;
} }
// 감경(TB_RDUCT) 대장을 삭제한다. // 감경(TB_RDCT) 대장을 삭제한다.
rtnNocs = rductMapper.deleteRduct(rduct); rtnNocs = rdctMapper.deleteRdct(rdct);
if (rtnNocs != 1) { if (rtnNocs != 1) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("감경 대장 삭제에 실패하였습니다."); throw new RuntimeException("감경 대장 삭제에 실패하였습니다.");
} }
// 과태료 금액 // 과태료 금액
int ffnlgAmt = crdnRductInfo.number("FFNLG_CRDN_AMT").intValue(); // 과태료 단속 금액 - 감경 금액 int ffnlgAmt = crdnRdctInfo.number("FFNLG_CRDN_AMT").intValue(); // 과태료 단속 금액 - 감경 금액
int advntceAmt = ffnlgAmt - (ffnlgAmt * crdnRductInfo.number("ADVNTCE_RDUCT_RT").intValue() / 100); // 과태료 금액 - (과태료 금액 * 사전통지 감경 율 / 100) int advntceAmt = ffnlgAmt - (ffnlgAmt * crdnRdctInfo.number("ADVNTCE_RDUCT_RT").intValue() / 100); // 과태료 금액 - (과태료 금액 * 사전통지 감경 율 / 100)
// 단속(TB_CRDN) 대장을 수정한다. // 단속(TB_CRDN) 대장을 수정한다.
Crdn crdn = new Crdn(); Crdn crdn = new Crdn();
crdn.setCrdnId(crdnRductInfo.string("CRDN_ID")); // 단속 ID crdn.setCrdnId(crdnRdctInfo.string("CRDN_ID")); // 단속 ID
crdn.setFfnlgRdcrt("0"); // 과태료 감경 율 crdn.setFfnlgRdcrt("0"); // 과태료 감경 율
crdn.setFfnlgAmt(ffnlgAmt); // 과태료 금액 crdn.setFfnlgAmt(ffnlgAmt); // 과태료 금액
crdn.setAdvntceAmt(advntceAmt); // 사전통지 금액 crdn.setAdvntceAmt(advntceAmt); // 사전통지 금액
rtnNocs = rductMapper.updateCrdnRduct(crdn); rtnNocs = rdctMapper.updateCrdnRdct(crdn);
if (rtnNocs != 1) { if (rtnNocs != 1) {
throw new RuntimeException("감경 취소 중 단속대장 금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("감경 취소 중 단속대장 금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
// 부과 ID가 존재한다면 부과(TB_LEVY) 대장을 수정한다. // 부과 ID가 존재한다면 부과(TB_LEVY) 대장을 수정한다.
if (!crdnRductInfo.string("LEVY_ID").equals("")) { if (!crdnRdctInfo.string("LEVY_ID").equals("")) {
// 가산금이 존재하는 확인 // 가산금이 존재하는 확인
if (crdnRductInfo.number("LEVY_ADAMT").intValue() != 0 ) { if (crdnRdctInfo.number("LEVY_ADAMT").intValue() != 0 ) {
throw new RuntimeException("감경 취소 중 부과 대장에 가산금이 발생하여 부과 대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("감경 취소 중 부과 대장에 가산금이 발생하여 부과 대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
Levy levy = new Levy(); Levy levy = new Levy();
levy.setLevyId(crdnRductInfo.string("LEVY_ID")); // 부과 ID levy.setLevyId(crdnRdctInfo.string("LEVY_ID")); // 부과 ID
levy.setFfnlgAmt(ffnlgAmt); // 과태료 금액 levy.setFfnlgAmt(ffnlgAmt); // 과태료 금액
// 단속상태코드가 부과(51)면 과태료 금액, 부과 이전이라면 사전통지 금액으로.. // 단속상태코드가 부과(51)면 과태료 금액, 부과 이전이라면 사전통지 금액으로..
if (crdnRductInfo.number("CRDN_STTS_CD").intValue() == 51) { if (crdnRdctInfo.number("CRDN_STTS_CD").intValue() == 51) {
levy.setLevyPcptax(ffnlgAmt); // 부과 본세 = 과태료 금액 levy.setLevyPcptax(ffnlgAmt); // 부과 본세 = 과태료 금액
} else { } else {
// 주정차위반, 전용차로위반 과태료 // 주정차위반, 전용차로위반 과태료
if (crdnRductInfo.string("TASK_SE_CD").equals("BPV") || crdnRductInfo.string("TASK_SE_CD").equals("PVS")) { if (crdnRdctInfo.string("TASK_SE_CD").equals("BPV") || crdnRdctInfo.string("TASK_SE_CD").equals("PVS")) {
// 납기 일자 확인 // 납기 일자 확인
if (crdnRductInfo.number("DUDT_YMD").intValue() >= crdnRductInfo.number("TODAY").intValue()) { if (crdnRdctInfo.number("DUDT_YMD").intValue() >= crdnRdctInfo.number("TODAY").intValue()) {
levy.setLevyPcptax(advntceAmt); // 부과 본세 = 사전통지 금액 levy.setLevyPcptax(advntceAmt); // 부과 본세 = 사전통지 금액
} else { } else {
levy.setLevyPcptax(ffnlgAmt); // 부과 본세 = 과태료 금액 levy.setLevyPcptax(ffnlgAmt); // 부과 본세 = 과태료 금액
@ -284,12 +284,12 @@ public class RductBean extends AbstractBean {
} }
} }
int sumAmt = levy.getLevyPcptax() + crdnRductInfo.number("LEVY_ADAMT").intValue() int sumAmt = levy.getLevyPcptax() + crdnRdctInfo.number("LEVY_ADAMT").intValue()
- crdnRductInfo.number("RCVMT_PCPTAX").intValue() - crdnRductInfo.number("RCVMT_ADAMT").intValue() - crdnRdctInfo.number("RCVMT_PCPTAX").intValue() - crdnRdctInfo.number("RCVMT_ADAMT").intValue()
- crdnRductInfo.number("RDAMT_PCPTAX").intValue() - crdnRductInfo.number("RDAMT_ADAMT").intValue(); - crdnRdctInfo.number("RDAMT_PCPTAX").intValue() - crdnRdctInfo.number("RDAMT_ADAMT").intValue();
levy.setSumAmt(sumAmt); // 합계 금액 = 부과 본세 + 부과 가산금 + 분납 이자 - 수납 본세 - 수납 가산금 - 감액 본세 - 감액 가산금 levy.setSumAmt(sumAmt); // 합계 금액 = 부과 본세 + 부과 가산금 + 분납 이자 - 수납 본세 - 수납 가산금 - 감액 본세 - 감액 가산금
rtnNocs = rductMapper.updateLevyRduct(levy); rtnNocs = rdctMapper.updateLevyRdct(levy);
if (rtnNocs != 1) { if (rtnNocs != 1) {
throw new RuntimeException("감경 등록 중 부과대장 금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("감경 등록 중 부과대장 금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }

@ -0,0 +1,71 @@
package cokr.xit.fims.levy.service.bean;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import cokr.xit.foundation.component.AbstractServiceBean;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.levy.Rdct;
import cokr.xit.fims.levy.LevyQuery;
import cokr.xit.fims.levy.service.RdctService;
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2023-08-30 JoJH
* ================================
* </pre>
*/
@Service("rdctService")
public class RdctServiceBean extends AbstractServiceBean implements RdctService {
/** 과태료 감경 대장 정보 Bean */
@Resource(name = "rdctBean")
private RdctBean rdctBean;
@Override
public List<DataObject> getRdctList(LevyQuery req) {
return rdctBean.getRdctList(req);
}
@Override
public List<DataObject> getRdcts(LevyQuery req) {
return rdctBean.getRdcts(req);
}
@Override
public DataObject getRdctInfo(LevyQuery req) {
if (req.getCallPurpose() == null) {
req.setCallPurpose("view");
}
if (req.getCallPurpose().equals("create")) {
return rdctBean.getCrdnInfo(req);
} else {
return rdctBean.getRdctInfo(req);
}
}
@Override
public String createRdct(Rdct rdct) {
return rdctBean.createRdct(rdct);
}
@Override
public String updateRdct(Rdct rdct) {
return rdctBean.updateRdct(rdct);
}
@Override
public String removeRdct(Rdct rdct) {
return rdctBean.removeRdct(rdct);
}
}

@ -1,71 +0,0 @@
package cokr.xit.fims.levy.service.bean;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import cokr.xit.foundation.component.AbstractServiceBean;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.levy.Rduct;
import cokr.xit.fims.levy.LevyQuery;
import cokr.xit.fims.levy.service.RductService;
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2023-08-30 JoJH
* ================================
* </pre>
*/
@Service("rductService")
public class RductServiceBean extends AbstractServiceBean implements RductService {
/** 과태료 감경 대장 정보 Bean */
@Resource(name = "rductBean")
private RductBean rductBean;
@Override
public List<DataObject> getRductList(LevyQuery req) {
return rductBean.getRductList(req);
}
@Override
public List<DataObject> getRducts(LevyQuery req) {
return rductBean.getRducts(req);
}
@Override
public DataObject getRductInfo(LevyQuery req) {
if (req.getCallPurpose() == null) {
req.setCallPurpose("view");
}
if (req.getCallPurpose().equals("create")) {
return rductBean.getCrdnInfo(req);
} else {
return rductBean.getRductInfo(req);
}
}
@Override
public String createRduct(Rduct rduct) {
return rductBean.createRduct(rduct);
}
@Override
public String updateRduct(Rduct rduct) {
return rductBean.updateRduct(rduct);
}
@Override
public String removeRduct(Rduct rduct) {
return rductBean.removeRduct(rduct);
}
}

@ -319,7 +319,7 @@ public class Levy01Controller extends ApplicationController {
valueMap.put("법정동", format.of("CRDN_STDG_NM")); valueMap.put("법정동", format.of("CRDN_STDG_NM"));
valueMap.put("단속장소", format.of("CRDN_PLC")); valueMap.put("단속장소", format.of("CRDN_PLC"));
valueMap.put("위반항목", format.of("VLTN_ARTCL")); valueMap.put("위반항목", format.of("VLTN_ARTCL"));
valueMap.put("단속", format.of("FFNLG_CRDN_AMT").style(numeric)); valueMap.put("단속금", format.of("FFNLG_CRDN_AMT").style(numeric));
valueMap.put("처리상태", format.of("CRDN_STTS_NM")); valueMap.put("처리상태", format.of("CRDN_STTS_NM"));
valueMap.put("납부자구분", format.of("RTPYR_SE_NM").style(center)); valueMap.put("납부자구분", format.of("RTPYR_SE_NM").style(center));
valueMap.put("납부자번호", format.of("RTPYR_NO").style(center)); valueMap.put("납부자번호", format.of("RTPYR_NO").style(center));

@ -25,8 +25,8 @@ import cokr.xit.fims.cmmn.service.bean.StngBean;
import cokr.xit.fims.cmmn.xls.FormatMaker; import cokr.xit.fims.cmmn.xls.FormatMaker;
import cokr.xit.fims.cmmn.xls.StyleMaker; import cokr.xit.fims.cmmn.xls.StyleMaker;
import cokr.xit.fims.levy.LevyQuery; import cokr.xit.fims.levy.LevyQuery;
import cokr.xit.fims.levy.Rduct; import cokr.xit.fims.levy.Rdct;
import cokr.xit.fims.levy.service.RductService; import cokr.xit.fims.levy.service.RdctService;
import cokr.xit.fims.task.Task; import cokr.xit.fims.task.Task;
import cokr.xit.foundation.data.DataObject; import cokr.xit.foundation.data.DataObject;
@ -49,18 +49,17 @@ public class Levy02Controller extends ApplicationController {
public class METHOD_URL { public class METHOD_URL {
public static final String public static final String
reductionMain = "/010/main.do" // 과태료 감경 관리 메인 화면 reductionMain = "/010/main.do" // 과태료 감경 관리 메인 화면
, getRductList = "/010/list.do" // 과태료 감경 대장 목록 조회 , getReductionList = "/010/list.do" // 과태료 감경 대장 목록 조회
, removeRduct = "/010/remove.do" // 과태료 감경 대장 삭제 , removeReduction = "/010/remove.do" // 과태료 감경 대장 삭제
, removeRductList = "/010/removes.do" // 과태료 감경 대장 목록 삭제 , getReductionInfo = "/020/info.do" // 과태료 감경 정보 조회
, getRductInfo = "/020/info.do" // 과태료 감경 정보 조회 , createReduction = "/020/create.do" // 과태료 감경 대장 등럭
, createRduct = "/020/create.do" // 과태료 감경 대장 등럭 , updateReduction = "/020/update.do" // 과태료 감경 대장 수정
, updateRduct = "/020/update.do" // 과태료 감경 대장 수정
; ;
} }
/**과태료 감경 대장 서비스*/ /**과태료 감경 대장 서비스*/
@Resource(name="rductService") @Resource(name="rdctService")
private RductService rductService; private RdctService rdctService;
@Resource(name="stngBean") @Resource(name="stngBean")
private StngBean stngBean; private StngBean stngBean;
@ -84,16 +83,16 @@ public class Levy02Controller extends ApplicationController {
return mav return mav
.addObject("pageName", "levy02010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix .addObject("pageName", "levy02010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "rduct") // prefix .addObject("infoPrefix", "rdct") // prefix
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("sggCd", fimsUser.getOrgID()) // 시군구 코드(SGG_CD) .addObject("sggCd", fimsUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 업무 구분 코드(TASK_SE_CD) .addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 업무 구분 코드(TASK_SE_CD)
.addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDUCT_RSN_CD) .addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDCT_RSN_CD)
; ;
} }
/** .<br /> /** .<br />
* {@link RductService#getRductList(RductQuery)} * {@link RdctService#getRductList(RductQuery)}
* @param req * @param req
* @return jsonView * @return jsonView
* <pre><code> { * <pre><code> {
@ -104,10 +103,10 @@ public class Levy02Controller extends ApplicationController {
* }</code></pre> * }</code></pre>
*/ */
@Task @Task
@RequestMapping(name="과태료 감경 대장 목록 조회", value=METHOD_URL.getRductList) @RequestMapping(name="과태료 감경 대장 목록 조회", value=METHOD_URL.getReductionList)
public ModelAndView getRductList(LevyQuery req) { public ModelAndView getRductList(LevyQuery req) {
if (!"xls".equals(req.getDownload())) { if (!"xls".equals(req.getDownload())) {
List<?> result = rductService.getRductList(setFetchSize(req)); List<?> result = rdctService.getRdctList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "rduct"); return setCollectionInfo(new ModelAndView("jsonView"), result, "rduct");
} else { } else {
// 현재 날짜 구하기 // 현재 날짜 구하기
@ -123,12 +122,12 @@ public class Levy02Controller extends ApplicationController {
CellStyle dateYMD = format.yyyy_mm_dd(); CellStyle dateYMD = format.yyyy_mm_dd();
CellStyle dateDT = format.yyyy_mm_dd_hh_mm_ss(); CellStyle dateDT = format.yyyy_mm_dd_hh_mm_ss();
List<DataObject> list = rductService.getRductList(req.setFetchSize(0)); List<DataObject> list = rdctService.getRdctList(req.setFetchSize(0));
Map<String,Object> valueMap = new HashMap<String,Object>(); Map<String,Object> valueMap = new HashMap<String,Object>();
valueMap.put("업무구분", format.of("TASK_SE_NM").style(center)); valueMap.put("업무구분", format.of("TASK_SE_NM").style(center));
valueMap.put("감경일자", FormatMaker.yyyy_mm_dd(format, "RDUCT_YMD").style(dateYMD)); valueMap.put("감경일자", FormatMaker.yyyy_mm_dd(format, "RDCT_YMD").style(dateYMD));
valueMap.put("감경사유", format.of("RDUCT_RSN_CD")); valueMap.put("감경사유", format.of("RDCT_RSN_NM"));
valueMap.put("기타내용", format.of("ETC_CN")); valueMap.put("기타내용", format.of("ETC_CN"));
valueMap.put("단속일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "CRDN_YMD_TM").style(dateDT)); valueMap.put("단속일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "CRDN_YMD_TM").style(dateDT));
valueMap.put("차량번호", format.of("VHRNO")); valueMap.put("차량번호", format.of("VHRNO"));
@ -139,7 +138,7 @@ public class Levy02Controller extends ApplicationController {
valueMap.put("단속장소", format.of("CRDN_PLC")); valueMap.put("단속장소", format.of("CRDN_PLC"));
valueMap.put("상세단속장소", format.of("DTL_CRDN_PLC")); valueMap.put("상세단속장소", format.of("DTL_CRDN_PLC"));
valueMap.put("단속원금", format.of("FFNLG_CRDN_AMT").style(numeric)); valueMap.put("단속원금", format.of("FFNLG_CRDN_AMT").style(numeric));
valueMap.put("감경금액", format.of("RDUCT_AMT").style(numeric)); valueMap.put("감경금액", format.of("RDCT_AMT").style(numeric));
valueMap.put("과태료금액", format.of("FFNLG_AMT").style(numeric)); valueMap.put("과태료금액", format.of("FFNLG_AMT").style(numeric));
valueMap.put("미납금액", format.of("SUM_AMT").style(numeric)); valueMap.put("미납금액", format.of("SUM_AMT").style(numeric));
valueMap.put("처리상태", format.of("CRDN_STTS_NM")); valueMap.put("처리상태", format.of("CRDN_STTS_NM"));
@ -166,16 +165,16 @@ public class Levy02Controller extends ApplicationController {
* @param req * @param req
* @return fims/levy/levy02020-info jsonView * @return fims/levy/levy02020-info jsonView
* <pre>{ * <pre>{
* "rductInfo": * "rdctInfo":
* }</pre> * }</pre>
*/ */
@Task @Task
@RequestMapping(name="과태료 감경 정보 조회", value=METHOD_URL.getRductInfo) @RequestMapping(name="과태료 감경 정보 조회", value=METHOD_URL.getReductionInfo)
public ModelAndView getRductInfo(HttpServletRequest hReq, LevyQuery req) { public ModelAndView getRdctInfo(HttpServletRequest hReq, LevyQuery req) {
DataObject info = rductService.getRductInfo(req); DataObject info = rdctService.getRdctInfo(req);
// 등록을 호출하였지만 등록된 감경 ID가 있는지 확인. // 등록을 호출하였지만 등록된 감경 ID가 있는지 확인.
if (req.getCallPurpose().equals("create") && !info.string("RDUCT_ID").equals("")) { if (req.getCallPurpose().equals("create") && !info.string("RDCT_ID").equals("")) {
ModelAndView mav = new ModelAndView("jsonView"); ModelAndView mav = new ModelAndView("jsonView");
return mav.addObject("rtnMsg", "이미 등록된 과태료 감경 정보가 있습니다."); return mav.addObject("rtnMsg", "이미 등록된 과태료 감경 정보가 있습니다.");
@ -194,10 +193,10 @@ public class Levy02Controller extends ApplicationController {
.addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName .addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도 .addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("pageName", "levy02020") // jsp pageName .addObject("pageName", "levy02020") // jsp pageName
.addObject("infoPrefix", "rduct") // prefix .addObject("infoPrefix", "rdct") // prefix
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDUCT_RSN_CD) .addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDCT_RSN_CD)
.addObject("rductInfo", json ? info : toJson(info)) .addObject("rdctInfo", json ? info : toJson(info))
; ;
} }
} }
@ -210,10 +209,10 @@ public class Levy02Controller extends ApplicationController {
* }</code></pre> * }</code></pre>
*/ */
@Task @Task
@RequestMapping(name="과태료 감경 대장 등록", value=METHOD_URL.createRduct) @RequestMapping(name="과태료 감경 대장 등록", value=METHOD_URL.createReduction)
public ModelAndView createRduct(Rduct rduct) { public ModelAndView createRdct(Rdct rdct) {
boolean saved = false; boolean saved = false;
String rtnMsg = rductService.createRduct(rduct); String rtnMsg = rdctService.createRdct(rdct);
if (rtnMsg.contains("[S]")) { if (rtnMsg.contains("[S]")) {
saved = true; saved = true;
@ -234,10 +233,10 @@ public class Levy02Controller extends ApplicationController {
* }</code></pre> * }</code></pre>
*/ */
@Task @Task
@RequestMapping(name="과태료 감경 대장 수정", value=METHOD_URL.updateRduct) @RequestMapping(name="과태료 감경 대장 수정", value=METHOD_URL.updateReduction)
public ModelAndView updateRduct(Rduct rduct) { public ModelAndView updateRdct(Rdct rdct) {
boolean saved = false; boolean saved = false;
String rtnMsg = rductService.updateRduct(rduct); String rtnMsg = rdctService.updateRdct(rdct);
if (rtnMsg.contains("[S]")) { if (rtnMsg.contains("[S]")) {
saved = true; saved = true;
@ -251,7 +250,7 @@ public class Levy02Controller extends ApplicationController {
} }
/** . /** .
* @param rductId ID * @param rdctId ID
* @return jsonView * @return jsonView
* <pre><code> { * <pre><code> {
* "affected": * "affected":
@ -259,20 +258,20 @@ public class Levy02Controller extends ApplicationController {
* }</code></pre> * }</code></pre>
*/ */
@Task @Task
@RequestMapping(name="과태료 감경 대장 삭제", value=METHOD_URL.removeRduct) @RequestMapping(name="과태료 감경 대장 삭제", value=METHOD_URL.removeReduction)
public ModelAndView removeRduct(Rduct rduct) { public ModelAndView removeRdct(Rdct rdct) {
boolean saved = false; boolean saved = false;
String rtnMsg = ""; String rtnMsg = "";
if (rduct.getRductIds() == null || rduct.getRductIds().length < 1) { if (rdct.getRdctIds() == null || rdct.getRdctIds().length < 1) {
rtnMsg = rductService.removeRduct(rduct); rtnMsg = rdctService.removeRdct(rdct);
} else { } else {
// 부과제외 Ids 만큼 반복.. // 부과제외 Ids 만큼 반복..
for (int iLoop = 0; iLoop < rduct.getRductIds().length; iLoop++) { for (int iLoop = 0; iLoop < rdct.getRdctIds().length; iLoop++) {
rduct.setRductId(rduct.getRductIds()[iLoop]); // 감경 ID 설정 rdct.setRdctId(rdct.getRdctIds()[iLoop]); // 감경 ID 설정
// 부과제외 삭제 호출 // 부과제외 삭제 호출
rtnMsg = rductService.removeRduct(rduct); rtnMsg = rdctService.removeRdct(rdct);
if (!rtnMsg.contains("[S]")) // 오류가 발생하였으면 종료.. if (!rtnMsg.contains("[S]")) // 오류가 발생하였으면 종료..
break; break;
} }

@ -230,21 +230,21 @@ public class NisIndivBean extends AbstractBean {
a01.setFcltSeCd(""); // 시설구분코드 / 금연구역흡연위반 과태료인 경우 활용 a01.setFcltSeCd(""); // 시설구분코드 / 금연구역흡연위반 과태료인 경우 활용
a01.setRegSeCd(""); // 등록구분코드 / 폐기물관리법위반 과태료인 경우 01투기, 02소각, 99기타 a01.setRegSeCd(""); // 등록구분코드 / 폐기물관리법위반 과태료인 경우 01투기, 02소각, 99기타
// 감경 사유 코드(FIM019) -> 감경사유구분코드 // 감경 사유 코드(FIM019) -> 감경사유구분코드
if (selectCrdnInfo.string("RDUCT_RSN_CD").equals("01")) { // 국민기초생활수급자 if (selectCrdnInfo.string("RDCT_RSN_CD").equals("01")) { // 국민기초생활수급자
a01.setRdtRsnSeCd("0101"); a01.setRdtRsnSeCd("0101");
} else if (selectCrdnInfo.string("RDUCT_RSN_CD").equals("02")) { // 한부모가족보호대상자 } else if (selectCrdnInfo.string("RDCT_RSN_CD").equals("02")) { // 한부모가족보호대상자
a01.setRdtRsnSeCd("0102"); a01.setRdtRsnSeCd("0102");
} else if (selectCrdnInfo.string("RDUCT_RSN_CD").equals("03")) { // 장애인(장애의 정도가 심한 장애인) } else if (selectCrdnInfo.string("RDCT_RSN_CD").equals("03")) { // 장애인(장애의 정도가 심한 장애인)
a01.setRdtRsnSeCd("0103"); a01.setRdtRsnSeCd("0103");
} else if (selectCrdnInfo.string("RDUCT_RSN_CD").equals("04")) { // 국가유공자(상이등급3급이상) } else if (selectCrdnInfo.string("RDCT_RSN_CD").equals("04")) { // 국가유공자(상이등급3급이상)
a01.setRdtRsnSeCd("0104"); a01.setRdtRsnSeCd("0104");
} else if (selectCrdnInfo.string("RDUCT_RSN_CD").equals("05")) { // 미성년자 } else if (selectCrdnInfo.string("RDCT_RSN_CD").equals("05")) { // 미성년자
a01.setRdtRsnSeCd("0105"); a01.setRdtRsnSeCd("0105");
} else if (selectCrdnInfo.string("RDUCT_RSN_CD").equals("08")) { // 의견진술감액 } else if (selectCrdnInfo.string("RDCT_RSN_CD").equals("08")) { // 의견진술감액
a01.setRdtRsnSeCd(""); a01.setRdtRsnSeCd("");
} else if (selectCrdnInfo.string("RDUCT_RSN_CD").equals("09")) { // 기타 } else if (selectCrdnInfo.string("RDCT_RSN_CD").equals("09")) { // 기타
a01.setRdtRsnSeCd(""); a01.setRdtRsnSeCd("");
} else if (selectCrdnInfo.string("RDUCT_RSN_CD").equals("99")) { // 타법령에의한감경 } else if (selectCrdnInfo.string("RDCT_RSN_CD").equals("99")) { // 타법령에의한감경
a01.setRdtRsnSeCd("0199"); a01.setRdtRsnSeCd("0199");
} else { // 해당없음 } else { // 해당없음
a01.setRdtRsnSeCd("0100"); a01.setRdtRsnSeCd("0100");

@ -133,7 +133,7 @@ public class Rdca01Controller extends ApplicationController {
valueMap.put("단속장소", format.of("CRDN_PLC")); valueMap.put("단속장소", format.of("CRDN_PLC"));
valueMap.put("상세단속장소", format.of("DTL_CRDN_PLC")); valueMap.put("상세단속장소", format.of("DTL_CRDN_PLC"));
valueMap.put("위반항목", format.of("VLTN_ARTCL")); valueMap.put("위반항목", format.of("VLTN_ARTCL"));
valueMap.put("단속", format.of("FFNLG_CRDN_AMT").style(numeric)); valueMap.put("단속금", format.of("FFNLG_CRDN_AMT").style(numeric));
valueMap.put("처리상태", format.of("CRDN_STTS_NM")); valueMap.put("처리상태", format.of("CRDN_STTS_NM"));
valueMap.put("단속특별구역", format.of("CRDN_SPAREA_NM").style(center)); valueMap.put("단속특별구역", format.of("CRDN_SPAREA_NM").style(center));
valueMap.put("사용연료", format.of("USE_FUEL_NM").style(center)); valueMap.put("사용연료", format.of("USE_FUEL_NM").style(center));

@ -258,7 +258,7 @@ public class Sndb01Controller extends ApplicationController {
valueMap.put("단속법정동", format.of("CRDN_STDG_NM")); valueMap.put("단속법정동", format.of("CRDN_STDG_NM"));
valueMap.put("단속장소", format.of("CRDN_PLC")); valueMap.put("단속장소", format.of("CRDN_PLC"));
valueMap.put("상세단속장소", format.of("DTL_CRDN_PLC")); valueMap.put("상세단속장소", format.of("DTL_CRDN_PLC"));
valueMap.put("단속", format.of("FFNLG_CRDN_AMT").style(numeric)); valueMap.put("단속금", format.of("FFNLG_CRDN_AMT").style(numeric));
valueMap.put("처리상태", format.of("CRDN_STTS_NM")); valueMap.put("처리상태", format.of("CRDN_STTS_NM"));
valueMap.put("납부자명", format.of("RTPYR_NM")); valueMap.put("납부자명", format.of("RTPYR_NM"));
valueMap.put("납부자생일", format.of("RTPYR_BRDT_MASK").style(center)); valueMap.put("납부자생일", format.of("RTPYR_BRDT_MASK").style(center));

@ -16,7 +16,7 @@ import cokr.xit.fims.excl.service.LevyExclService;
import cokr.xit.fims.excl.service.OpnnSbmsnService; import cokr.xit.fims.excl.service.OpnnSbmsnService;
import cokr.xit.fims.levy.LevyQuery; import cokr.xit.fims.levy.LevyQuery;
import cokr.xit.fims.levy.service.LevyService; import cokr.xit.fims.levy.service.LevyService;
import cokr.xit.fims.levy.service.RductService; import cokr.xit.fims.levy.service.RdctService;
import cokr.xit.fims.payer.PayerQuery; import cokr.xit.fims.payer.PayerQuery;
import cokr.xit.fims.payer.service.PayerService; import cokr.xit.fims.payer.service.PayerService;
import cokr.xit.fims.rcvm.RcvmtQuery; import cokr.xit.fims.rcvm.RcvmtQuery;
@ -93,8 +93,8 @@ public class Sprt02Controller extends ApplicationController {
protected LevyService levyService; protected LevyService levyService;
/** 감경 대장 서비스 */ /** 감경 대장 서비스 */
@Resource(name = "rductService") @Resource(name = "rdctService")
protected RductService rductService; protected RdctService rdctService;
/** 수납 대장 서비스*/ /** 수납 대장 서비스*/
@Resource(name = "rcvmtService") @Resource(name = "rcvmtService")
@ -255,7 +255,7 @@ public class Sprt02Controller extends ApplicationController {
@Task @Task
@RequestMapping(name="개별총정보 처리 상세 정보 조회", value=METHOD_URL.getPrcsDtlInfo) @RequestMapping(name="개별총정보 처리 상세 정보 조회", value=METHOD_URL.getPrcsDtlInfo)
public ModelAndView getPrcsDtlInfo(SprtQuery req) { public ModelAndView getPrcsDtlInfo(SprtQuery req) {
// 과태료 감경(TB_RDUCT) 대장 조회 // 과태료 감경(TB_RDCT) 대장 조회
LevyQuery levyQuery = new LevyQuery(); LevyQuery levyQuery = new LevyQuery();
if (req.getCallPurpose() == null) { if (req.getCallPurpose() == null) {
@ -265,9 +265,9 @@ public class Sprt02Controller extends ApplicationController {
} }
levyQuery.setCrdnId(req.getCrdnId()); levyQuery.setCrdnId(req.getCrdnId());
levyQuery.setDelYn(req.getDelYn()); levyQuery.setDelYn(req.getDelYn());
levyQuery.setOrderBy("RDUCT_ID DESC"); // 정렬 levyQuery.setOrderBy("RDCT_ID DESC"); // 정렬
DataObject rductInfo = rductService.getRductInfo(levyQuery); DataObject rdctInfo = rdctService.getRdctInfo(levyQuery);
// 부과 제외(TB_LEVY_EXCL) 대장 조회 // 부과 제외(TB_LEVY_EXCL) 대장 조회
LevyExclQuery exclQuery = new LevyExclQuery(); LevyExclQuery exclQuery = new LevyExclQuery();
@ -303,7 +303,7 @@ public class Sprt02Controller extends ApplicationController {
mav.addObject("pageNameMain", "sprt02010") mav.addObject("pageNameMain", "sprt02010")
.addObject("pageName", "sprt02050") .addObject("pageName", "sprt02050")
.addObject("rductInfo", json ? rductInfo : toJson(rductInfo)) // 과태료 감경 정보 .addObject("rdctInfo", json ? rdctInfo : toJson(rdctInfo)) // 과태료 감경 정보
.addObject("levyExclInfo", json ? levyExclInfo : toJson(levyExclInfo)) // 부과 제외 정보 .addObject("levyExclInfo", json ? levyExclInfo : toJson(levyExclInfo)) // 부과 제외 정보
.addObject("crdnSttsHstrys", json ? crdnSttsHstrys : toJson(crdnSttsHstrys)) // 단속 상태 이력 .addObject("crdnSttsHstrys", json ? crdnSttsHstrys : toJson(crdnSttsHstrys)) // 단속 상태 이력
.addObject("payerAddrHstrys", json ? payerAddrHstrys : toJson(payerAddrHstrys)) // 납부자 주소 변경 이력 .addObject("payerAddrHstrys", json ? payerAddrHstrys : toJson(payerAddrHstrys)) // 납부자 주소 변경 이력

@ -109,18 +109,18 @@
, PA.ZIP <!-- 우편번호 --> , PA.ZIP <!-- 우편번호 -->
, PA.ADDR <!-- 주소 --> , PA.ADDR <!-- 주소 -->
, PA.DTL_ADDR <!-- 상세 주소 --> , PA.DTL_ADDR <!-- 상세 주소 -->
, R.RDUCT_ID <!-- 감경 ID --> , R.RDCT_ID <!-- 감경 ID -->
, R.RDUCT_RSN_CD <!-- 감경 사유 코드 --> , R.RDCT_RSN_CD <!-- 감경 사유 코드 -->
, (CASE WHEN R.RDUCT_AMT IS NOT NULL THEN R.RDUCT_AMT , (CASE WHEN R.RDCT_AMT IS NOT NULL THEN R.RDCT_AMT
ELSE (SELECT C.FFNLG_CRDN_AMT*T.WKSN_RDCRT/100 FROM TB_TASK T WHERE C.SGG_CD=T.SGG_CD AND C.TASK_SE_CD=T.TASK_SE_CD AND T.USE_YN='Y') ELSE (SELECT C.FFNLG_CRDN_AMT*T.WKSN_RDCRT/100 FROM TB_TASK T WHERE C.SGG_CD=T.SGG_CD AND C.TASK_SE_CD=T.TASK_SE_CD AND T.USE_YN='Y')
END ) AS RDUCT_AMT <!-- 감경 금액 --> END ) AS RDCT_AMT <!-- 감경 금액 -->
FROM TB_OPNN_SBMSN OS FROM TB_OPNN_SBMSN OS
INNER JOIN TB_CRDN C ON (OS.CRDN_ID = C.CRDN_ID) INNER JOIN TB_CRDN C ON (OS.CRDN_ID = C.CRDN_ID)
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID)
LEFT OUTER JOIN TB_VLTN V ON (C.VLTN_ID = V.VLTN_ID) LEFT OUTER JOIN TB_VLTN V ON (C.VLTN_ID = V.VLTN_ID)
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
LEFT OUTER JOIN TB_PAYER_ADDR PA ON (C.RTPYR_ID = PA.RTPYR_ID AND C.ADDR_SN = PA.ADDR_SN) LEFT OUTER JOIN TB_PAYER_ADDR PA ON (C.RTPYR_ID = PA.RTPYR_ID AND C.ADDR_SN = PA.ADDR_SN)
LEFT OUTER JOIN TB_RDUCT R ON (C.CRDN_ID = R.CRDN_ID AND R.DEL_YN = 'N') LEFT OUTER JOIN TB_RDCT R ON (C.CRDN_ID = R.CRDN_ID AND R.DEL_YN = 'N')
</sql> </sql>
<select id="selectOpnnSbmsnList" parameterType="map" resultType="dataobject">/* 의견제출 대장 목록 조회(opnnSbmsnMapper.selectOpnnSbmsnList) */ <select id="selectOpnnSbmsnList" parameterType="map" resultType="dataobject">/* 의견제출 대장 목록 조회(opnnSbmsnMapper.selectOpnnSbmsnList) */
@ -292,7 +292,7 @@
, OS.MDFCN_DT <!-- 수정 일시 --> , OS.MDFCN_DT <!-- 수정 일시 -->
, OS.MDFR <!-- 수정자 --> , OS.MDFR <!-- 수정자 -->
, (SELECT C.FFNLG_CRDN_AMT*T.WKSN_RDCRT/100 FROM TB_TASK T , (SELECT C.FFNLG_CRDN_AMT*T.WKSN_RDCRT/100 FROM TB_TASK T
WHERE C.SGG_CD=T.SGG_CD AND C.TASK_SE_CD=T.TASK_SE_CD AND T.USE_YN='Y') AS RDUCT_AMT <!-- 감경 금액 --> WHERE C.SGG_CD=T.SGG_CD AND C.TASK_SE_CD=T.TASK_SE_CD AND T.USE_YN='Y') AS RDCT_AMT <!-- 감경 금액 -->
, P.RTPYR_ID <!-- 납부자 ID --> , P.RTPYR_ID <!-- 납부자 ID -->
, P.RTPYR_NO <!-- 납부자 번호 --> , P.RTPYR_NO <!-- 납부자 번호 -->
, P.RTPYR_NM <!-- 납부자 명 --> , P.RTPYR_NM <!-- 납부자 명 -->

@ -1,19 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cokr.xit.fims.levy.dao.RductMapper"> <mapper namespace="cokr.xit.fims.levy.dao.RdctMapper">
<!-- 과태료 감경 대장 정보 매퍼 <!-- 과태료 감경 대장 정보 매퍼
========== 변경 이력 ========== ========== 변경 이력 ==========
2023-08-30 JoJH 최초 작성 2023-08-30 JoJH 최초 작성
============================ --> ============================ -->
<resultMap id="rductRow" type="cokr.xit.fims.levy.Rduct"> <resultMap id="rdctRow" type="cokr.xit.fims.levy.Rdct">
<result property="rductId" column="RDUCT_ID" /> <!-- 감경 ID --> <result property="rdctId" column="RDCT_ID" /> <!-- 감경 ID -->
<result property="crdnId" column="CRDN_ID" /> <!-- 단속 ID --> <result property="crdnId" column="CRDN_ID" /> <!-- 단속 ID -->
<result property="rtpyrId" column="RTPYR_ID" /> <!-- 납부자 ID --> <result property="rtpyrId" column="RTPYR_ID" /> <!-- 납부자 ID -->
<result property="rductYmd" column="RDUCT_YMD" /> <!-- 감경 일자 --> <result property="rdctYmd" column="RDCT_YMD" /> <!-- 감경 일자 -->
<result property="rductRsnCd" column="RDUCT_RSN_CD" /> <!-- 감경 사유 코드 --> <result property="rdctRsnCd" column="RDCT_RSN_CD" /> <!-- 감경 사유 코드 -->
<result property="rductAmt" column="RDUCT_AMT" /> <!-- 감경 금액 --> <result property="rdctAmt" column="RDCT_AMT" /> <!-- 감경 금액 -->
<result property="etcCn" column="ETC_CN" /> <!-- 기타 내용 --> <result property="etcCn" column="ETC_CN" /> <!-- 기타 내용 -->
<result property="delYn" column="DEL_YN" /> <!-- 삭제 여부 --> <result property="delYn" column="DEL_YN" /> <!-- 삭제 여부 -->
<result property="createdAt" column="REG_DT" /> <!-- 등록 일시 --> <result property="createdAt" column="REG_DT" /> <!-- 등록 일시 -->
@ -26,11 +26,11 @@
</resultMap> </resultMap>
<sql id="selectList"> <sql id="selectList">
SELECT R.RDUCT_ID <!-- 감경 ID --> SELECT R.RDCT_ID <!-- 감경 ID -->
, R.RDUCT_YMD <!-- 감경 일자 --> , R.RDCT_YMD <!-- 감경 일자 -->
, R.RDUCT_RSN_CD <!-- 감경 사유 코드 --> , R.RDCT_RSN_CD <!-- 감경 사유 코드 -->
, (SELECT GET_CODE_NM('FIM019', R.RDUCT_RSN_CD) FROM DUAL) AS RDUCT_RSN_NM <!-- 감경 사유 명 --> , (SELECT GET_CODE_NM('FIM019', R.RDCT_RSN_CD) FROM DUAL) AS RDCT_RSN_NM <!-- 감경 사유 명 -->
, R.RDUCT_AMT <!-- 감경 금액 --> , R.RDCT_AMT <!-- 감경 금액 -->
, R.ETC_CN <!-- 감액 기타 내용 --> , R.ETC_CN <!-- 감액 기타 내용 -->
, R.DEL_YN <!-- 삭제 여부 --> , R.DEL_YN <!-- 삭제 여부 -->
, R.REG_DT <!-- 등록 일시 --> , R.REG_DT <!-- 등록 일시 -->
@ -82,7 +82,7 @@
, L.LEVY_PCPTAX + L.LEVY_ADAMT AS LEVY_AMT <!-- 부과 금액 --> , L.LEVY_PCPTAX + L.LEVY_ADAMT AS LEVY_AMT <!-- 부과 금액 -->
, L.RCVMT_PCPTAX + L.RCVMT_ADAMT AS RCVMT_AMT <!-- 수납 금액 --> , L.RCVMT_PCPTAX + L.RCVMT_ADAMT AS RCVMT_AMT <!-- 수납 금액 -->
, L.RDAMT_PCPTAX + L.RDAMT_ADAMT AS RDAMT_AMT <!-- 감액 금액 --> , L.RDAMT_PCPTAX + L.RDAMT_ADAMT AS RDAMT_AMT <!-- 감액 금액 -->
FROM TB_RDUCT R FROM TB_RDCT R
INNER JOIN TB_CRDN C ON (R.CRDN_ID = C.CRDN_ID) INNER JOIN TB_CRDN C ON (R.CRDN_ID = C.CRDN_ID)
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.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_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
@ -90,18 +90,18 @@
LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N') LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N')
</sql> </sql>
<select id="selectRductList" parameterType="map" resultType="dataobject">/* 과태료 감경 대장 목록 조회(rductMapper.selectRductList) */ <select id="selectRdctList" parameterType="map" resultType="dataobject">/* 과태료 감경 대장 목록 조회(rdctMapper.selectRdctList) */
<include refid="utility.paging-prefix" /> <include refid="utility.paging-prefix" />
<include refid="selectList" /> <include refid="selectList" />
<where> <where>
<if test="schRductYmdFrom != null"> <if test="schRdctYmdFrom != null">
AND R.RDUCT_YMD <![CDATA[>=]]> #{schRductYmdFrom} <!-- 감경 일자 시작 --> AND R.RDCT_YMD <![CDATA[>=]]> #{schRdctYmdFrom} <!-- 감경 일자 시작 -->
</if> </if>
<if test="schRductYmdTo != null"> <if test="schRdctYmdTo != null">
AND R.RDUCT_YMD <![CDATA[<=]]> #{schRductYmdTo} <!-- 감경 일자 시작 --> AND R.RDCT_YMD <![CDATA[<=]]> #{schRdctYmdTo} <!-- 감경 일자 시작 -->
</if> </if>
<if test="schRductRsnCd != null"> <if test="schRdctRsnCd != null">
AND R.RDUCT_RSN_CD = #{schRductRsnCd} <!-- 감경 사유 코드 --> AND R.RDCT_RSN_CD = #{schRdctRsnCd} <!-- 감경 사유 코드 -->
</if> </if>
<if test="delYn != null"> <if test="delYn != null">
AND R.DEL_YN = #{delYn} <!-- 삭제 여부 --> AND R.DEL_YN = #{delYn} <!-- 삭제 여부 -->
@ -164,10 +164,10 @@
<when test="mainOption == 'codeValue' or mainOption == 'match' or mainOption == 'ymd'"> <when test="mainOption == 'codeValue' or mainOption == 'match' or mainOption == 'ymd'">
<include refid="dynamicSearch.start" /> <include refid="dynamicSearch.start" />
<choose> <choose>
<when test="by == 'rductYmd'"> R.RDUCT_YMD </when> <when test="by == 'rdctYmd'"> R.RDCT_YMD </when>
<when test="by == 'rductRsnCd'"> R.RDUCT_RSN_CD </when> <when test="by == 'rdctRsnCd'"> R.RDCT_RSN_CD </when>
<when test="by == 'rductAmt'"> R.RDUCT_AMT </when> <when test="by == 'rdctAmt'"> R.RDCT_AMT </when>
<when test="by == 'rductEtcCn'"> R.ETC_CN </when> <when test="by == 'rdctEtcCn'"> R.ETC_CN </when>
<when test="by == 'crdnYmd'"> C.CRDN_YMD </when> <when test="by == 'crdnYmd'"> C.CRDN_YMD </when>
<when test="by == 'vhrno'"> C.VHRNO </when> <when test="by == 'vhrno'"> C.VHRNO </when>
<when test="by == 'crdnStdgNm'"> C.CRDN_STDG_NM </when> <when test="by == 'crdnStdgNm'"> C.CRDN_STDG_NM </when>
@ -215,10 +215,10 @@
, P.RTPYR_ID <!-- 납부자 ID --> , P.RTPYR_ID <!-- 납부자 ID -->
, P.RTPYR_NO <!-- 납부자 번호 --> , P.RTPYR_NO <!-- 납부자 번호 -->
, P.RTPYR_NM <!-- 납부자 명 --> , P.RTPYR_NM <!-- 납부자 명 -->
, R.RDUCT_ID <!-- 감경 ID --> , R.RDCT_ID <!-- 감경 ID -->
, R.RDUCT_YMD <!-- 감경 일자 --> , R.RDCT_YMD <!-- 감경 일자 -->
, R.RDUCT_RSN_CD <!-- 감경 사유 코드 --> , R.RDCT_RSN_CD <!-- 감경 사유 코드 -->
, R.RDUCT_AMT <!-- 감경 금액 --> , R.RDCT_AMT <!-- 감경 금액 -->
, R.ETC_CN <!-- 감액 기타 내용 --> , R.ETC_CN <!-- 감액 기타 내용 -->
, R.DEL_YN <!-- 삭제 여부 --> , R.DEL_YN <!-- 삭제 여부 -->
, R.REG_DT <!-- 등록 일시 --> , R.REG_DT <!-- 등록 일시 -->
@ -227,26 +227,26 @@
, R.MDFR <!-- 수정자 --> , R.MDFR <!-- 수정자 -->
, R.DEL_DT <!-- 삭제 일시 --> , R.DEL_DT <!-- 삭제 일시 -->
, R.DLTR <!-- 삭제자 --> , R.DLTR <!-- 삭제자 -->
, (SELECT GET_CODE_NM('FIM019', R.RDUCT_RSN_CD) FROM DUAL) AS RDUCT_RSN_NM <!-- 감경 사유 명 --> , (SELECT GET_CODE_NM('FIM019', R.RDCT_RSN_CD) FROM DUAL) AS RDCT_RSN_NM <!-- 감경 사유 명 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.RGTR) AS RGTR_NM <!-- 등록자 명 --> , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.RGTR) AS RGTR_NM <!-- 등록자 명 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.MDFR) AS MDFR_NM <!-- 수정자 명 --> , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.MDFR) AS MDFR_NM <!-- 수정자 명 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.DLTR) AS DLTR_NM <!-- 삭제자 명 --> , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = R.DLTR) AS DLTR_NM <!-- 삭제자 명 -->
FROM TB_CRDN C FROM TB_CRDN C
INNER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) INNER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N') LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N')
LEFT OUTER JOIN TB_RDUCT R ON (C.CRDN_ID = R.CRDN_ID AND R.DEL_YN = 'N') LEFT OUTER JOIN TB_RDCT R ON (C.CRDN_ID = R.CRDN_ID AND R.DEL_YN = 'N')
</sql> </sql>
<select id="selectRducts" parameterType="map" resultType="dataobject">/* 과태료 감경 대장 객체 가져오기(rductMapper.selectRducts) */ <select id="selectRdcts" parameterType="map" resultType="dataobject">/* 과태료 감경 대장 객체 가져오기(rdctMapper.selectRdcts) */
<include refid="select" /> <include refid="select" />
<where> <where>
<if test="rductIds != null"> <if test="rdctIds != null">
AND R.RDUCT_ID IN ( <!-- 감경 Ids --> AND R.RDCT_ID IN ( <!-- 감경 Ids -->
<foreach collection="rductIds" item="rductId" separator=","> #{rductId} </foreach> <foreach collection="rdctIds" item="rdctId" separator=","> #{rdctId} </foreach>
) )
</if> </if>
<if test="rductId != null"> <if test="rdctId != null">
AND R.RDUCT_ID = #{rductId} <!-- 감경 ID --> AND R.RDCT_ID = #{rdctId} <!-- 감경 ID -->
</if> </if>
<if test="crdnId != null"> <if test="crdnId != null">
AND C.CRDN_ID = #{crdnId} <!-- 단속 ID --> AND C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
@ -256,23 +256,23 @@
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>
<insert id="insertRduct" parameterType="cokr.xit.fims.levy.Rduct">/* 과태료 감경 대장 등록(rductMapper.insertRduct) */ <insert id="insertRdct" parameterType="cokr.xit.fims.levy.Rdct">/* 과태료 감경 대장 등록(rdctMapper.insertRdct) */
<selectKey resultType="string" keyProperty="rductId" keyColumn="NEW_ID" order="BEFORE"> <selectKey resultType="string" keyProperty="rdctId" keyColumn="NEW_ID" order="BEFORE">
<include refid="numbering.keyBySggAndYear"> <include refid="numbering.keyBySggAndYear">
<property name="TABLE_NAME" value="TB_RDUCT" /> <property name="TABLE_NAME" value="TB_RDCT" />
<property name="TABLE_KEY" value="RDUCT_ID" /> <property name="TABLE_KEY" value="RDCT_ID" />
<property name="sggCd" value="#{sggCd}" /> <property name="sggCd" value="#{sggCd}" />
<property name="pad" value="20" /> <property name="pad" value="20" />
</include> </include>
</selectKey> </selectKey>
INSERT INSERT
INTO TB_RDUCT ( INTO TB_RDCT (
RDUCT_ID <!-- 감경 ID --> RDCT_ID <!-- 감경 ID -->
, CRDN_ID <!-- 단속 ID --> , CRDN_ID <!-- 단속 ID -->
, RTPYR_ID <!-- 납부자 ID --> , RTPYR_ID <!-- 납부자 ID -->
, RDUCT_YMD <!-- 감경 일자 --> , RDCT_YMD <!-- 감경 일자 -->
, RDUCT_RSN_CD <!-- 감경 사유 코드 --> , RDCT_RSN_CD <!-- 감경 사유 코드 -->
, RDUCT_AMT <!-- 감경 금액 --> , RDCT_AMT <!-- 감경 금액 -->
, ETC_CN <!-- 기타 내용 --> , ETC_CN <!-- 기타 내용 -->
, DEL_YN <!-- 삭제 여부 --> , DEL_YN <!-- 삭제 여부 -->
, REG_DT <!-- 등록 일시 --> , REG_DT <!-- 등록 일시 -->
@ -281,12 +281,12 @@
, MDFR <!-- 수정자 --> , MDFR <!-- 수정자 -->
) )
VALUES ( VALUES (
#{rductId} <!-- 감경 ID --> #{rdctId} <!-- 감경 ID -->
, #{crdnId} <!-- 단속 ID --> , #{crdnId} <!-- 단속 ID -->
, #{rtpyrId} <!-- 납부자 ID --> , #{rtpyrId} <!-- 납부자 ID -->
, #{rductYmd} <!-- 감경 일자 --> , #{rdctYmd} <!-- 감경 일자 -->
, #{rductRsnCd} <!-- 감경 사유 코드 --> , #{rdctRsnCd} <!-- 감경 사유 코드 -->
, #{rductAmt} <!-- 감경 금액 --> , #{rdctAmt} <!-- 감경 금액 -->
, #{etcCn} <!-- 기타 내용 --> , #{etcCn} <!-- 기타 내용 -->
, 'N' <!-- 삭제 여부 --> , 'N' <!-- 삭제 여부 -->
, <include refid="utility.now" /> <!-- 등록 일시 --> , <include refid="utility.now" /> <!-- 등록 일시 -->
@ -296,29 +296,29 @@
) )
</insert> </insert>
<update id="updateRduct" parameterType="cokr.xit.fims.levy.Rduct">/* 과태료 감경 대장 수정(rductMapper.updateRduct) */ <update id="updateRdct" parameterType="cokr.xit.fims.levy.Rdct">/* 과태료 감경 대장 수정(rdctMapper.updateRdct) */
UPDATE TB_RDUCT UPDATE TB_RDCT
SET RDUCT_YMD = #{rductYmd} <!-- 감경 일자 --> SET RDCT_YMD = #{rdctYmd} <!-- 감경 일자 -->
, RDUCT_RSN_CD = #{rductRsnCd} <!-- 감경 사유 코드 --> , RDCT_RSN_CD = #{rdctRsnCd} <!-- 감경 사유 코드 -->
, RDUCT_AMT = #{rductAmt} <!-- 감경 금액 --> , RDCT_AMT = #{rdctAmt} <!-- 감경 금액 -->
, ETC_CN = #{etcCn} <!-- 기타 내용 --> , ETC_CN = #{etcCn} <!-- 기타 내용 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 --> , MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{modifiedBy} <!-- 수정자 --> , MDFR = #{modifiedBy} <!-- 수정자 -->
WHERE RDUCT_ID = #{rductId} <!-- 감경 ID --> WHERE RDCT_ID = #{rdctId} <!-- 감경 ID -->
AND DEL_YN = 'N' AND DEL_YN = 'N'
</update> </update>
<update id="deleteRduct" parameterType="cokr.xit.fims.levy.Rduct">/* 과태료 감경 대장 삭제(rductMapper.deleteRduct) */ <update id="deleteRdct" parameterType="cokr.xit.fims.levy.Rdct">/* 과태료 감경 대장 삭제(rdctMapper.deleteRdct) */
UPDATE TB_RDUCT UPDATE TB_RDCT
SET DEL_YN = 'Y' <!-- 삭제 여부 --> SET DEL_YN = 'Y' <!-- 삭제 여부 -->
, DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 --> , DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 -->
, DLTR = #{modifiedBy} <!-- 삭제자 --> , DLTR = #{modifiedBy} <!-- 삭제자 -->
, DEL_RSN = #{delRsn} <!-- 삭제 사유 --> , DEL_RSN = #{delRsn} <!-- 삭제 사유 -->
WHERE RDUCT_ID = #{rductId} <!-- 감경 ID --> WHERE RDCT_ID = #{rdctId} <!-- 감경 ID -->
AND DEL_YN = 'N' AND DEL_YN = 'N'
</update> </update>
<select id="selectCrdn" parameterType="map" resultType="dataobject">/* 단속 대장 객체 가져오기(rductMapper.selectCrdn) */ <select id="selectCrdn" parameterType="map" resultType="dataobject">/* 단속 대장 객체 가져오기(rdctMapper.selectCrdn) */
SELECT C.CRDN_ID <!-- 단속 ID --> SELECT C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD <!-- 시군구 코드 --> , C.SGG_CD <!-- 시군구 코드 -->
, C.TASK_SE_CD <!-- 업무 구분 코드 --> , C.TASK_SE_CD <!-- 업무 구분 코드 -->
@ -341,18 +341,18 @@
, L.RCVMT_ADAMT <!-- 수납 가산금 --> , L.RCVMT_ADAMT <!-- 수납 가산금 -->
, L.RDAMT_PCPTAX <!-- 감액 본세 --> , L.RDAMT_PCPTAX <!-- 감액 본세 -->
, L.RDAMT_ADAMT <!-- 감액 가산금 --> , L.RDAMT_ADAMT <!-- 감액 가산금 -->
, R.RDUCT_ID <!-- 감경 ID --> , R.RDCT_ID <!-- 감경 ID -->
, <include refid="utility.today" /> AS TODAY <!-- 오늘 일자 --> , <include refid="utility.today" /> AS TODAY <!-- 오늘 일자 -->
, C.FFNLG_CRDN_AMT * T.WKSN_RDCRT / 100 AS CALC_RDUCT_AMT <!-- 감경 금액 --> , C.FFNLG_CRDN_AMT * T.WKSN_RDCRT / 100 AS CALC_RDCT_AMT <!-- 감경 금액 -->
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 --> , (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
FROM TB_CRDN C FROM TB_CRDN C
INNER JOIN TB_TASK T ON (C.SGG_CD = T.SGG_CD AND C.TASK_SE_CD = T.TASK_SE_CD AND T.USE_YN = 'Y') INNER JOIN TB_TASK T ON (C.SGG_CD = T.SGG_CD AND C.TASK_SE_CD = T.TASK_SE_CD AND T.USE_YN = 'Y')
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N') LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N')
LEFT OUTER JOIN TB_RDUCT R ON (C.CRDN_ID = R.CRDN_ID AND R.DEL_YN = 'N') LEFT OUTER JOIN TB_RDCT R ON (C.CRDN_ID = R.CRDN_ID AND R.DEL_YN = 'N')
<where> <where>
<if test="rductId != null"> <if test="rdctId != null">
AND R.RDUCT_ID = #{rductId} <!-- 감경 ID --> AND R.RDCT_ID = #{rdctId} <!-- 감경 ID -->
</if> </if>
<if test="crdnId != null"> <if test="crdnId != null">
AND C.CRDN_ID = #{crdnId} <!-- 단속 ID --> AND C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
@ -361,7 +361,7 @@
</where> </where>
</select> </select>
<update id="updateCrdnRduct" parameterType="cokr.xit.fims.crdn.Crdn">/* 단속 대장 과태료 감경 금액 수정(rductMapper.updateCrdnRduct) */ <update id="updateCrdnRdct" parameterType="cokr.xit.fims.crdn.Crdn">/* 단속 대장 과태료 감경 금액 수정(rdctMapper.updateCrdnRdct) */
UPDATE TB_CRDN UPDATE TB_CRDN
SET FFNLG_RDCRT = #{ffnlgRdcrt} <!-- 과태료 감경율 --> SET FFNLG_RDCRT = #{ffnlgRdcrt} <!-- 과태료 감경율 -->
, FFNLG_AMT = #{ffnlgAmt} <!-- 과태료 금액 --> , FFNLG_AMT = #{ffnlgAmt} <!-- 과태료 금액 -->
@ -372,7 +372,7 @@
AND DEL_YN = 'N' <!-- 삭제 여부 --> AND DEL_YN = 'N' <!-- 삭제 여부 -->
</update> </update>
<update id="updateLevyRduct" parameterType="cokr.xit.fims.levy.Levy">/* 부과 대장 과태료 감경 금액 수정(rductMapper.updateLevyRduct) */ <update id="updateLevyRdct" parameterType="cokr.xit.fims.levy.Levy">/* 부과 대장 과태료 감경 금액 수정(rdctMapper.updateLevyRdct) */
UPDATE TB_LEVY UPDATE TB_LEVY
SET FFNLG_AMT = #{ffnlgAmt} <!-- 과태료 금액 --> SET FFNLG_AMT = #{ffnlgAmt} <!-- 과태료 금액 -->
, LEVY_PCPTAX = #{levyPcptax} <!-- 부과 본세 --> , LEVY_PCPTAX = #{levyPcptax} <!-- 부과 본세 -->

@ -607,7 +607,7 @@
, PA.DTL_ADDR <!-- 상세 주소 --> , PA.DTL_ADDR <!-- 상세 주소 -->
, PA.WHOL_ADDR <!-- 전체 주소 --> , PA.WHOL_ADDR <!-- 전체 주소 -->
, (GET_MASK_DATETIME(C.CRDN_YMD, '-', C.CRDN_TM, ':')) AS CRDN_YMD_TM_MASK <!-- 단속 일시 마스크 --> , (GET_MASK_DATETIME(C.CRDN_YMD, '-', C.CRDN_TM, ':')) AS CRDN_YMD_TM_MASK <!-- 단속 일시 마스크 -->
, (SELECT RDUCT_RSN_CD FROM TB_RDUCT X WHERE X.CRDN_ID = C.CRDN_ID AND X.DEL_YN = 'N') AS RDUCT_RSN_CD <!-- 감경 사유 코드 --> , (SELECT RDCT_RSN_CD FROM TB_RDCT X WHERE X.CRDN_ID = C.CRDN_ID AND X.DEL_YN = 'N') AS RDCT_RSN_CD <!-- 감경 사유 코드 -->
, <include refid="utility.today" /> AS TODAY , <include refid="utility.today" /> AS TODAY
FROM TB_CRDN C FROM TB_CRDN C
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID)

@ -82,18 +82,18 @@
data-fmt-type="time" maxlength="8" placeholder="시:분:초" required /> data-fmt-type="time" maxlength="8" placeholder="시:분:초" required />
</div> </div>
<!-- 감경 사유 코드 --> <!-- 감경 사유 코드 -->
<div class="col-md-6" id="divRductRsnCd--${pageName}"> <div class="col-md-6" id="divRdctRsnCd--${pageName}">
<label for="rductRsnCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경사유</label> <label for="rdctRsnCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경사유</label>
<select class="form-select" id="rductRsnCd--${pageName}" name="rductRsnCd" data-map="RDUCT_RSN_CD"> <select class="form-select" id="rdctRsnCd--${pageName}" name="rdctRsnCd" data-map="RDCT_RSN_CD">
<c:forEach items="${FIM019List}" var="item"> <c:forEach items="${FIM019List}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
</c:forEach> </c:forEach>
</select> </select>
</div> </div>
<!-- 감경 금액 --> <!-- 감경 금액 -->
<div class="col-md-6" id="divRductAmt--${pageName}"> <div class="col-md-6" id="divRdctAmt--${pageName}">
<label for="rductAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경금액</label> <label for="rdctAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경금액</label>
<input type="text" class="form-control w-30 text-end" id="rductAmt--${pageName}" name="rductAmt" data-map="RDUCT_AMT" readonly /> <input type="text" class="form-control w-30 text-end" id="rdctAmt--${pageName}" name="rdctAmt" data-map="RDCT_AMT" readonly />
</div> </div>
<!-- 답변 내용 --> <!-- 답변 내용 -->
<div class="col-md-12"> <div class="col-md-12">
@ -209,19 +209,19 @@
// 의견제출 상태 코드 변경 // 의견제출 상태 코드 변경
$P.fnChangeOpnnSbmsnSttsCd = (obj) => { $P.fnChangeOpnnSbmsnSttsCd = (obj) => {
// javascript를 이용한 visibility 변경 (이 방법을 사용하는 경우, 안에 있는 요소들이 보이지않지만 그 요소들이 할당 하고 있는 공간은 그대로 유지(공백처리)) // javascript를 이용한 visibility 변경 (이 방법을 사용하는 경우, 안에 있는 요소들이 보이지않지만 그 요소들이 할당 하고 있는 공간은 그대로 유지(공백처리))
// document.getElementById("divRductRsnCd--${pageName}").style.visibility = "hidden"; // document.getElementById("divRdctRsnCd--${pageName}").style.visibility = "hidden";
// document.getElementById("divRductRsnCd--${pageName}").style.visibility = "visible"; // document.getElementById("divRdctRsnCd--${pageName}").style.visibility = "visible";
$("#divRductRsnCd--${pageName}").hide(); $("#divRdctRsnCd--${pageName}").hide();
$("#divRductAmt--${pageName}").hide(); $("#divRdctAmt--${pageName}").hide();
$("#rductRsnCd--${pageName}").attr("required", false); $("#rdctRsnCd--${pageName}").attr("required", false);
$("#rductAmt--${pageName}").attr("required", false); $("#rdctAmt--${pageName}").attr("required", false);
if (obj == "04") { // 의견제출 상태 코드(FIM031) 04: 과태료감경 if (obj == "04") { // 의견제출 상태 코드(FIM031) 04: 과태료감경
// 필수 선택 추가 필요 // 필수 선택 추가 필요
$("#divRductRsnCd--${pageName}").show(); $("#divRdctRsnCd--${pageName}").show();
$("#divRductAmt--${pageName}").show(); $("#divRdctAmt--${pageName}").show();
$("#rductRsnCd--${pageName}").attr("required", true); $("#rdctRsnCd--${pageName}").attr("required", true);
$("#rductAmt--${pageName}").attr("required", true); $("#rdctAmt--${pageName}").attr("required", true);
} }
} }
@ -235,12 +235,12 @@
// 감경 사유 확인 // 감경 사유 확인
let opnnSbmsnSttsCd = $("#opnnSbmsnSttsCd--${pageName}").val(); let opnnSbmsnSttsCd = $("#opnnSbmsnSttsCd--${pageName}").val();
let rductRsnCd = $("#rductRsnCd--${pageName} option:selected").val(); let rdctRsnCd = $("#rdctRsnCd--${pageName} option:selected").val();
let rductRsnNm = $("#rductRsnCd--${pageName} option:selected").text(); let rdctRsnNm = $("#rdctRsnCd--${pageName} option:selected").text();
if (opnnSbmsnSttsCd == "04" && rductRsnCd == "00") { if (opnnSbmsnSttsCd == "04" && rdctRsnCd == "00") {
dialog.alert({ dialog.alert({
content: "감경사유가 '" + rductRsnNm + "' 입니다." content: "감경사유가 '" + rdctRsnNm + "' 입니다."
+ "<br>" + "[" + $P.control.prefixName + " 저장" + "]" + " 실행이 취소되었습니다." + "<br>" + "[" + $P.control.prefixName + " 저장" + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }

@ -47,21 +47,21 @@
</div> </div>
<!-- 감경 일자 --> <!-- 감경 일자 -->
<div class="col-6"> <div class="col-6">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schRductYmdFrom--${pageName}">감경일자</label> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schRdctYmdFrom--${pageName}">감경일자</label>
<span class="form-search-linebox"> <span class="form-search-linebox">
<input type="text" id="schRductYmdFrom--${pageName}" name="schRductYmdFrom" class="form-control form-date" <input type="text" id="schRdctYmdFrom--${pageName}" name="schRdctYmdFrom" class="form-control form-date"
data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" /> data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
<button type="button" class="bx bx-lg bx-calendar bg-white"></button> <button type="button" class="bx bx-lg bx-calendar bg-white"></button>
~ ~
<input type="text" id="schRductYmdTo--${pageName}" name="schRductYmdTo" class="form-control form-date" <input type="text" id="schRdctYmdTo--${pageName}" name="schRdctYmdTo" class="form-control form-date"
data-fmt-type="day" autocomplete="off" title="종료 날짜 선택"> data-fmt-type="day" autocomplete="off" title="종료 날짜 선택">
<button type="button" class="bx bx-lg bx-calendar bg-white"></button> <button type="button" class="bx bx-lg bx-calendar bg-white"></button>
</span> </span>
</div> </div>
<!-- 감경 사유 구분 코드 --> <!-- 감경 사유 구분 코드 -->
<div class="col-6"> <div class="col-6">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schRductRsnCd--${pageName}">감경사유</label> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schRdctRsnCd--${pageName}">감경사유</label>
<select class="form-select w-px-160" id="schRductRsnCd--${pageName}" name="schRductRsnCd"> <select class="form-select w-px-160" id="schRdctRsnCd--${pageName}" name="schRdctRsnCd">
<option value="">전체</option> <option value="">전체</option>
<c:forEach items="${FIM019List}" var="item"> <c:forEach items="${FIM019List}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
@ -188,8 +188,8 @@
<th class="cmn" style="width: 72px;">No.</th> <th class="cmn" style="width: 72px;">No.</th>
<th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" id="gridAllCheckbox--${pageName}" onchange="pageObject['${pageName}'].control.select(this.checked);" /></th> <th class="cmn" style="width: 56px;"><input type="checkbox" class="form-check-input" id="gridAllCheckbox--${pageName}" onchange="pageObject['${pageName}'].control.select(this.checked);" /></th>
<th class="cmn" style="width: 160px;">업무구분</th> <th class="cmn" style="width: 160px;">업무구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RDUCT_YMD', this.innerText, 'ymd', '');">감경일자</th> <th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RDCT_YMD', this.innerText, 'ymd', '');">감경일자</th>
<th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('RDUCT_RSN_CD', this.innerText, 'codeValue', 'FIM019');">감경사유</th> <th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('RDCT_RSN_CD', this.innerText, 'codeValue', 'FIM019');">감경사유</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('ETC_CN', this.innerText, 'match', 'part');">감경특기사항</th> <th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('ETC_CN', this.innerText, 'match', 'part');">감경특기사항</th>
<th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('CRDN_YMD', this.innerText, 'ymd', '');">단속일시</th> <th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('CRDN_YMD', this.innerText, 'ymd', '');">단속일시</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VHRNO', this.innerText, 'match', 'part');">차량번호</th> <th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VHRNO', this.innerText, 'match', 'part');">차량번호</th>
@ -200,7 +200,7 @@
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th> <th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="bpv" style="width: 280px;" onclick="searchFromGridTitle('DTL_CRDN_PLC', this.innerText, 'match', 'part');">상세단속장소</th> <th class="bpv" style="width: 280px;" onclick="searchFromGridTitle('DTL_CRDN_PLC', this.innerText, 'match', 'part');">상세단속장소</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'perfect');">단속원금</th> <th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'perfect');">단속원금</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RDUCT_AMT', this.innerText, 'match', 'perfect');">감경금액</th> <th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RDCT_AMT', this.innerText, 'match', 'perfect');">감경금액</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_AMT', this.innerText, 'match', 'perfect');">과태료금액</th> <th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_AMT', this.innerText, 'match', 'perfect');">과태료금액</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SUM_AMT', this.innerText, 'match', 'part');">미납금액</th> <th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SUM_AMT', this.innerText, 'match', 'part');">미납금액</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD' ,this.innerText, 'codeValue', 'FIM010');">처리상태</th> <th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD' ,this.innerText, 'codeValue', 'FIM010');">처리상태</th>
@ -214,12 +214,12 @@
<th class="cmn dummy-th"></th> <th class="cmn dummy-th"></th>
</template> </template>
<template id="${infoPrefix}Row--${pageName}"> <template id="${infoPrefix}Row--${pageName}">
<tr data-key="{RDUCT_ID}"> <tr data-key="{RDCT_ID}">
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td> <td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{RDUCT_ID}" onchange="pageObject['${pageName}'].control.select('{RDUCT_ID}', this.checked);" /></td> <td class="cmn text-center"><input type="checkbox" class="form-check-input" name="gridCheckbox" value="{RDCT_ID}" onchange="pageObject['${pageName}'].control.select('{RDCT_ID}', this.checked);" /></td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RDUCT_YMD}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RDCT_YMD}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RDUCT_RSN_NM}</td> <td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RDCT_RSN_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{ETC_CN}</td> <td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{ETC_CN}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_YMD_TM}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_YMD_TM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{VHRNO}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{VHRNO}</td>
@ -233,7 +233,7 @@
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_PLC}</td> <td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_PLC}</td>
<td class="bpv text-start" onclick="{onclick}" ondblclick="{ondblclick}">{DTL_CRDN_PLC}</td> <td class="bpv text-start" onclick="{onclick}" ondblclick="{ondblclick}">{DTL_CRDN_PLC}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_CRDN_AMT}</td> <td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_CRDN_AMT}</td>
<td class="cmn text-end fw-bold text-orange" onclick="{onclick}" ondblclick="{ondblclick}">{RDUCT_AMT}</td> <td class="cmn text-end fw-bold text-orange" onclick="{onclick}" ondblclick="{ondblclick}">{RDCT_AMT}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_AMT}</td> <td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_AMT}</td>
<td class="cmn text-end fw-bold text-red" onclick="{onclick}" ondblclick="{ondblclick}">{SUM_AMT}</td> <td class="cmn text-end fw-bold text-red" onclick="{onclick}" ondblclick="{ondblclick}">{SUM_AMT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STTS_NM}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STTS_NM}</td>
@ -297,17 +297,17 @@
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
$P.control = new DatasetControl({ $P.control = new DatasetControl({
prefix: "rduct" prefix: "rdct"
, prefixName: "감경" , prefixName: "감경"
, keymapper: info => info ? info.RDUCT_ID : "" , keymapper: info => info ? info.RDCT_ID : ""
, dataGetter: obj => obj.${infoPrefix}List , dataGetter: obj => obj.${infoPrefix}List
, appendData: true , appendData: true
, infoSize: "lg" , infoSize: "lg"
, formats: { , formats: {
RDUCT_YMD: dateFormat RDCT_YMD: dateFormat
, CRDN_YMD_TM: datetimeFormat , CRDN_YMD_TM: datetimeFormat
, FFNLG_CRDN_AMT: numberFormat , FFNLG_CRDN_AMT: numberFormat
, RDUCT_AMT: numberFormat , RDCT_AMT: numberFormat
, FFNLG_AMT: numberFormat , FFNLG_AMT: numberFormat
, SUM_AMT: numberFormat , SUM_AMT: numberFormat
, REG_DT: datetimeFormat , REG_DT: datetimeFormat
@ -341,7 +341,7 @@
$P.control.onCurrentChange = (item) => { $P.control.onCurrentChange = (item) => {
if (!item) return; if (!item) return;
let key = item.data.RDUCT_ID; let key = item.data.RDCT_ID;
$("#tbody--${pageName}").setCurrentRow(key); $("#tbody--${pageName}").setCurrentRow(key);
} }
@ -433,7 +433,7 @@
// //
let replacer = (str, dataItem) => str let replacer = (str, dataItem) => str
.replace(/{onclick}/gi, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("RDUCT_ID") + "');") .replace(/{onclick}/gi, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("RDCT_ID") + "');")
.replace(/{ondblclick}/gi, "pageObject['${pageName}'].getTotalInfo('" + dataItem.getValue("CRDN_ID") + "');"); .replace(/{ondblclick}/gi, "pageObject['${pageName}'].getTotalInfo('" + dataItem.getValue("CRDN_ID") + "');");
let trs = empty ? [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML] let trs = empty ? [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML]
@ -587,16 +587,16 @@
// 감경 수정 버튼 이벤트 // 감경 수정 버튼 이벤트
$P.fnUpdate = (title) => { $P.fnUpdate = (title) => {
// 감경 ID // 감경 ID
let rductId = $P.control.dataset.getValue("RDUCT_ID"); let rdctId = $P.control.dataset.getValue("RDCT_ID");
// 감경 ID 가 없다면.. return // 감경 ID 가 없다면.. return
if (typeof rductId == "undefined" || rductId == null || rductId == "") return; if (typeof rdctId == "undefined" || rdctId == null || rdctId == "") return;
let params = { let params = {
title: title title: title
, callPurpose: "update" // 호출용도: 수정 , callPurpose: "update" // 호출용도: 수정
, sggCd: $P.control.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd: $P.control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd: $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, rductId: rductId // 감경 ID , rdctId: rdctId // 감경 ID
}; };
$P.control.getInfo(params); $P.control.getInfo(params);
@ -703,8 +703,8 @@
$("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 코드 $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 코드
initDatepicker("frmSearch--${pageName}"); // 달력 초기화 initDatepicker("frmSearch--${pageName}"); // 달력 초기화
$("#schRductYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); // 감경 일자 시작 $("#schRdctYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); // 감경 일자 시작
$("#schRductYmdTo--${pageName}").datepicker("setDate", new Date()); // 감경 일자 종료 $("#schRdctYmdTo--${pageName}").datepicker("setDate", new Date()); // 감경 일자 종료
$("#byOutput--${pageName}").val("동적 검색"); // 동적 검색 $("#byOutput--${pageName}").val("동적 검색"); // 동적 검색
$("#schRgtrNm--${pageName}").prop("readonly", true); // 사용자 이름 $("#schRgtrNm--${pageName}").prop("readonly", true); // 사용자 이름
} }

@ -14,7 +14,7 @@
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" /> <input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" /> <input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" />
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" /> <input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" id="rductId--${pageName}" name="rductId" data-map="RDUCT_ID" /> <input type="hidden" id="rdctId--${pageName}" name="rdctId" data-map="RDCT_ID" />
<div class="row g-1"> <div class="row g-1">
<!-- 납부자 명 --> <!-- 납부자 명 -->
@ -35,20 +35,20 @@
</div> </div>
<!-- 감경 금액 --> <!-- 감경 금액 -->
<div class="col-md-6"> <div class="col-md-6">
<label for="rductAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경금액</label> <label for="rdctAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경금액</label>
<input type="text" class="form-control w-30 text-end" id="rductAmt--${pageName}" name="rductAmt" data-map="RDUCT_AMT" data-fmt-type="number" /> <input type="text" class="form-control w-30 text-end" id="rdctAmt--${pageName}" name="rdctAmt" data-map="RDCT_AMT" data-fmt-type="number" />
</div> </div>
<!-- 감경 일자 --> <!-- 감경 일자 -->
<div class="col-md-6"> <div class="col-md-6">
<label for="rductYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">감경일자</label> <label for="rdctYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">감경일자</label>
<input type="text" class="form-control form-date" id="rductYmd--${pageName}" name="rductYmd" data-map="RDUCT_YMD" <input type="text" class="form-control form-date" id="rdctYmd--${pageName}" name="rdctYmd" data-map="RDCT_YMD"
data-fmt-type="day" title="날짜 선택" maxlength="10" required /> data-fmt-type="day" title="날짜 선택" maxlength="10" required />
<button type="button" class="bx bx-lg bx-calendar bg-white"></button> <button type="button" class="bx bx-lg bx-calendar bg-white"></button>
</div> </div>
<!-- 감경 사유 코드 --> <!-- 감경 사유 코드 -->
<div class="col-md-6"> <div class="col-md-6">
<label for="rductRsnCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">감경사유</label> <label for="rdctRsnCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">감경사유</label>
<select class="form-select" id="rductRsnCd--${pageName}" name="rductRsnCd" data-map="RDUCT_RSN_CD" required> <select class="form-select" id="rdctRsnCd--${pageName}" name="rdctRsnCd" data-map="RDCT_RSN_CD" required>
<c:forEach items="${FIM019List}" var="item"> <c:forEach items="${FIM019List}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
</c:forEach> </c:forEach>
@ -103,14 +103,14 @@
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
$P.control = new DatasetControl({ $P.control = new DatasetControl({
prefix: "rduct" prefix: "rdct"
, prefixName: "감경" , prefixName: "감경"
, keymapper: info => info ? info.RDUCT_ID : "" , keymapper: info => info ? info.RDCT_ID : ""
, dataGetter: obj => obj.${infoPrefix}Info , dataGetter: obj => obj.${infoPrefix}Info
, formats: { , formats: {
FFNLG_CRDN_AMT: numberFormat // 과태료 단속 금액 FFNLG_CRDN_AMT: numberFormat // 과태료 단속 금액
, WKSN_RDCRT: numberFormat // 사회적약자 감경율 , WKSN_RDCRT: numberFormat // 사회적약자 감경율
, RDUCT_AMT: numberFormat // 감경 금액 , RDCT_AMT: numberFormat // 감경 금액
} }
}); });
@ -176,13 +176,13 @@
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
// 감경 사유 // 감경 사유
let rductRsnCd = $("#rductRsnCd--${pageName} option:selected").val(); let rdctRsnCd = $("#rdctRsnCd--${pageName} option:selected").val();
let rductRsnNm = $("#rductRsnCd--${pageName} option:selected").text(); let rdctRsnNm = $("#rdctRsnCd--${pageName} option:selected").text();
// 감경 사유 확인 // 감경 사유 확인
if (rductRsnCd == "00") { if (rdctRsnCd == "00") {
dialog.alert({ dialog.alert({
content : "감경사유가 '" + rductRsnNm + "' 입니다." content : "감경사유가 '" + rdctRsnNm + "' 입니다."
+ "</br>" + $P.control.prefixName + " 저장 실행이 취소되었습니다." + "</br>" + $P.control.prefixName + " 저장 실행이 취소되었습니다."
, onOK : () => { } , onOK : () => { }
}); });
@ -192,7 +192,7 @@
dialog.alert({ dialog.alert({
content : "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?" content : "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK : () => { , onOK: () => {
$P.control.save($P.formFields.get()); // formFields $P.control.save($P.formFields.get()); // formFields
} }
}); });
@ -224,21 +224,21 @@
$P.initForm = () => { $P.initForm = () => {
// 달력 초기화 // 달력 초기화
initDatepicker("frmEdit--${pageName}"); initDatepicker("frmEdit--${pageName}");
$("#rductYmd--${pageName}").datepicker("setDate", new Date()); $("#rdctYmd--${pageName}").datepicker("setDate", new Date());
// 화면 활성화 설정 // 화면 활성화 설정
$("#rtpyrNm--${pageName}").prop("readonly", true); // 납부자 이름 $("#rtpyrNm--${pageName}").prop("readonly", true); // 납부자 이름
$("#rtpyrNo--${pageName}").prop("readonly", true); // 납부자 번호 $("#rtpyrNo--${pageName}").prop("readonly", true); // 납부자 번호
$("#ffnlgCrdnAmt--${pageName}").prop("readonly", true); // 단속 원금 $("#ffnlgCrdnAmt--${pageName}").prop("readonly", true); // 단속 원금
$("#wksnRdcrt--${pageName}").prop("readonly", true); // 감경율 $("#wksnRdcrt--${pageName}").prop("readonly", true); // 감경율
$("#rductAmt--${pageName}").prop("readonly", true); // 감경 금액 $("#rdctAmt--${pageName}").prop("readonly", true); // 감경 금액
// View로 호출 // View로 호출
if ($P.callPurpose == "view") { if ($P.callPurpose == "view") {
// input 요소들을 disabled // input 요소들을 disabled
$("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true); $("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true);
// button 요소들을 disabled // button 요소들을 disabled
$("#rductYmd--${pageName}").prop("disabled", true); // 감경 일자 달력 버튼 $("#rdctYmd--${pageName}").prop("disabled", true); // 감경 일자 달력 버튼
$("#btnSave--${pageName}").prop("disabled", true); // 저장 버튼 $("#btnSave--${pageName}").prop("disabled", true); // 저장 버튼
} }
} }
@ -253,7 +253,7 @@
$P.initForm(); $P.initForm();
// 3. Dataset 설정 // 3. Dataset 설정
$P.control.setData([${rductInfo}]); $P.control.setData([${rdctInfo}]);
}); });
</script> </script>

@ -90,7 +90,7 @@
<th class="cmn" style="width: 160px;">위반항목</th> <th class="cmn" style="width: 160px;">위반항목</th>
<th class="cmn" style="width: 160px;">단속법정동</th> <th class="cmn" style="width: 160px;">단속법정동</th>
<th class="cmn" style="width: 280px;">단속장소</th> <th class="cmn" style="width: 280px;">단속장소</th>
<th class="cmn" style="width: 120px;">단속금</th> <th class="cmn" style="width: 120px;">단속금</th>
<th class="cmn" style="width: 120px;">처리상태</th> <th class="cmn" style="width: 120px;">처리상태</th>
<th class="cmn" style="width: 200px;">납부자명</th> <th class="cmn" style="width: 200px;">납부자명</th>
<th class="cmn" style="width: 120px;">납부자생일</th> <th class="cmn" style="width: 120px;">납부자생일</th>

@ -70,7 +70,7 @@
<!-- 단속 일시 --> <!-- 단속 일시 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="crdnYmdTm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">단속일시</label> <label for="crdnYmdTm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">단속일시</label>
<input type="text" class="form-control w-40" id="crdnYmdTm--${pageName}" name="crdnYmdTm" data-map="CRDN_YMD_TM" readonly /> <input type="text" class="form-control w-45" id="crdnYmdTm--${pageName}" name="crdnYmdTm" data-map="CRDN_YMD_TM" readonly />
</div> </div>
<!-- 차량번호 --> <!-- 차량번호 -->
<div class="col-md-4"> <div class="col-md-4">
@ -126,7 +126,7 @@
<!-- 민원 접수 일자 --> <!-- 민원 접수 일자 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="cvlcptRcptYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">민원접수일</label> <label for="cvlcptRcptYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">민원접수일</label>
<input type="text" class="form-control w-40" id="cvlcptRcptYmd--${pageName}" name="cvlcptRcptYmd" data-map="CVLCPT_RCPT_YMD" readonly /> <input type="text" class="form-control w-50" id="cvlcptRcptYmd--${pageName}" name="cvlcptRcptYmd" data-map="CVLCPT_RCPT_YMD" readonly />
</div> </div>
<!-- 담당자 --> <!-- 담당자 -->
<div class="col-md-4"> <div class="col-md-4">
@ -159,7 +159,7 @@
<label for="etcCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end align-top">기타내용</label> <label for="etcCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end align-top">기타내용</label>
<textarea type="text" class="form-control w-80" id="etcCn--${pageName}" name="etcCn" data-map="ETC_CN" cols="100%" rows="3" readonly></textarea> <textarea type="text" class="form-control w-80" id="etcCn--${pageName}" name="etcCn" data-map="ETC_CN" cols="100%" rows="3" readonly></textarea>
</div> </div>
<!-- 과태료 단속금 --> <!-- 과태료 단속금 -->
<div class="col-md-3"> <div class="col-md-3">
<label for="ffnlgCrdnAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">과태료 단속원금</label> <label for="ffnlgCrdnAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">과태료 단속원금</label>
<input type="text" class="form-control w-40 text-sm-end" id="ffnlgCrdnAmt--${pageName}" name="ffnlgCrdnAmt" data-map="FFNLG_CRDN_AMT" data-fmt-type="number" readonly /> <input type="text" class="form-control w-40 text-sm-end" id="ffnlgCrdnAmt--${pageName}" name="ffnlgCrdnAmt" data-map="FFNLG_CRDN_AMT" data-fmt-type="number" readonly />

@ -26,28 +26,28 @@
</div> <!-- <div class="container-page-btn"> --> </div> <!-- <div class="container-page-btn"> -->
<!-- 입력 영역 --> <!-- 입력 영역 -->
<form id="frmRductEdit--${pageName}" name="frmRductEdit"> <form id="frmRdctEdit--${pageName}" name="frmRdctEdit">
<!-- hidden --> <!-- hidden -->
<input type="hidden" id="rductId--${pageName}${pageDataName1}" name="rductId" data-map="RDUCT_ID" /> <input type="hidden" id="rdctId--${pageName}${pageDataName1}" name="rdctId" data-map="RDCT_ID" />
<div class="row g-1"> <div class="row g-1">
<!-- 감경 일자 --> <!-- 감경 일자 -->
<div class="col-md-6"> <div class="col-md-6">
<label for="rductYmd--${pageName}${pageDataName1}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경일자</label> <label for="rdctYmd--${pageName}${pageDataName1}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경일자</label>
<input type="text" class="form-control w-30" id="rductYmd--${pageName}${pageDataName1}" name="rductYmd" data-map="RDUCT_YMD" readonly /> <input type="text" class="form-control w-30" id="rdctYmd--${pageName}${pageDataName1}" name="rdctYmd" data-map="RDCT_YMD" readonly />
</div> </div>
<!-- --> <!-- -->
<div class="col-md-6"> <div class="col-md-6">
</div> </div>
<!-- 감경 사유 명 --> <!-- 감경 사유 명 -->
<div class="col-md-6"> <div class="col-md-6">
<label for="rductRsnNm--${pageName}${pageDataName1}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경사유</label> <label for="rdctRsnNm--${pageName}${pageDataName1}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경사유</label>
<input type="text" class="form-control w-50" id="rductRsnNm--${pageName}${pageDataName1}" name="rductRsnNm" data-map="RDUCT_RSN_NM" readonly /> <input type="text" class="form-control w-50" id="rdctRsnNm--${pageName}${pageDataName1}" name="rdctRsnNm" data-map="RDCT_RSN_NM" readonly />
</div> </div>
<!-- 감경 금액 --> <!-- 감경 금액 -->
<div class="col-md-6"> <div class="col-md-6">
<label for="rductAmt--${pageName}${pageDataName1}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경금액</label> <label for="rdctAmt--${pageName}${pageDataName1}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감경금액</label>
<input type="text" class="form-control w-30 text-end" id="rductAmt--${pageName}${pageDataName1}" name="rductAmt" data-map="RDUCT_AMT" readonly /> <input type="text" class="form-control w-30 text-end" id="rdctAmt--${pageName}${pageDataName1}" name="rdctAmt" data-map="RDCT_AMT" readonly />
</div> </div>
<!-- 기타 내용 --> <!-- 기타 내용 -->
<div class="col-md-12"> <div class="col-md-12">
@ -256,7 +256,7 @@
let $P = pageObject["${pageName}"]; let $P = pageObject["${pageName}"];
// FormFields // FormFields
$P.rductFormFields = new FimsFormFields("#frmRductEdit--${pageName}"); $P.rductFormFields = new FimsFormFields("#frmRdctEdit--${pageName}");
$P.exclFormFields = new FimsFormFields("#frmExclEdit--${pageName}"); $P.exclFormFields = new FimsFormFields("#frmExclEdit--${pageName}");
/************************************************************************** /**************************************************************************
@ -264,13 +264,13 @@
**************************************************************************/ **************************************************************************/
// 감경 정보 DatasetControl // 감경 정보 DatasetControl
$P.rductControl = new DatasetControl({ $P.rductControl = new DatasetControl({
prefix: "rduct" prefix: "rdct"
, prefixName: "감경" , prefixName: "감경"
, keymapper: info => info ? info.RDUCT_ID : "" , keymapper: info => info ? info.RDCT_ID : ""
, dataGetter: obj => obj.rductInfo , dataGetter: obj => obj.rdctInfo
, formats: { , formats: {
RDUCT_YMD: dateFormat RDCT_YMD: dateFormat
, RDUCT_AMT: numberFormat , RDCT_AMT: numberFormat
, REG_DT: datetimeFormat , REG_DT: datetimeFormat
} }
}); });
@ -526,7 +526,7 @@
, data: params || {} , data: params || {}
, success: resp => { , success: resp => {
// 초기화 // 초기화
$("#frmRductEdit--${pageName}")[0].reset(); // 감경 화면 초기화 $("#frmRdctEdit--${pageName}")[0].reset(); // 감경 화면 초기화
$("#frmExclEdit--${pageName}")[0].reset(); // 부과제외 화면 초기화 $("#frmExclEdit--${pageName}")[0].reset(); // 부과제외 화면 초기화
$P.rductControl.dataset.clear(); // 감경 Dataset 초기화 $P.rductControl.dataset.clear(); // 감경 Dataset 초기화
$P.levyExclControl.dataset.clear(); // 부과제외 Dataset 초기화 $P.levyExclControl.dataset.clear(); // 부과제외 Dataset 초기화
@ -552,7 +552,7 @@
let params = { let params = {
sggCd: $P.rductControl.dataset.getValue("SGG_CD") // 시군구 코드 sggCd: $P.rductControl.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.rductControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd: $P.rductControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, rductId: $P.rductControl.dataset.getValue("RDUCT_ID") // 감경 ID , rdctId: $P.rductControl.dataset.getValue("RDCT_ID") // 감경 ID
, delRsn: obj.reason // 삭제 사유 , delRsn: obj.reason // 삭제 사유
}; };
@ -623,9 +623,9 @@
// 감경 수정 // 감경 수정
$P.fnUpdateRduct = (title) => { $P.fnUpdateRduct = (title) => {
// 감경 ID // 감경 ID
let rductId = $P.rductControl.dataset.getValue("RDUCT_ID"); let rdctId = $P.rductControl.dataset.getValue("RDCT_ID");
// 감경 ID 가 없다면.. return // 감경 ID 가 없다면.. return
if (typeof rductId == "undefined" || rductId == null || rductId == "") { if (typeof rdctId == "undefined" || rdctId == null || rdctId == "") {
dialog.alert({ dialog.alert({
content: "조회된 감경 대장 정보가 없습니다." content: "조회된 감경 대장 정보가 없습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다."
@ -654,7 +654,7 @@
, sggCd: $P.rductControl.dataset.getValue("SGG_CD") , sggCd: $P.rductControl.dataset.getValue("SGG_CD")
, taskSeCd: $P.rductControl.dataset.getValue("TASK_SE_CD") , taskSeCd: $P.rductControl.dataset.getValue("TASK_SE_CD")
, crdnId: $P.rductControl.dataset.getValue("CRDN_ID") , crdnId: $P.rductControl.dataset.getValue("CRDN_ID")
, rductId: rductId , rdctId: rdctId
, delYn: "N" , delYn: "N"
}; };
@ -664,9 +664,9 @@
// 감경 삭제 // 감경 삭제
$P.fnRemoveRduct = (title) => { $P.fnRemoveRduct = (title) => {
// 감경 ID // 감경 ID
let rductId = $P.rductControl.dataset.getValue("RDUCT_ID"); let rdctId = $P.rductControl.dataset.getValue("RDCT_ID");
// 감경 ID 가 없다면.. return // 감경 ID 가 없다면.. return
if (typeof rductId == "undefined" || rductId == null || rductId == "") { if (typeof rdctId == "undefined" || rdctId == null || rdctId == "") {
dialog.alert({ dialog.alert({
content: "조회된 감경 대장 정보가 없습니다." content: "조회된 감경 대장 정보가 없습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다." + "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다."

@ -30,7 +30,7 @@
<!-- 회계 구분 코드 --> <!-- 회계 구분 코드 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="acntgSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">회계구분</label> <label for="acntgSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">회계구분</label>
<input type="text" class="form-control w-10" id="acntgSeCd--${pageName}" name="acntgSeCd" data-map="ACNTG_SE_CD" readonly /> <input type="text" class="form-control w-15" id="acntgSeCd--${pageName}" name="acntgSeCd" data-map="ACNTG_SE_CD" readonly />
<input type="text" class="form-control w-50" id="acntgSeNm--${pageName}" name="acntgSeNm" data-map="ACNTG_SE_NM" readonly /> <input type="text" class="form-control w-50" id="acntgSeNm--${pageName}" name="acntgSeNm" data-map="ACNTG_SE_NM" readonly />
</div> </div>
<!-- 세목 코드 --> <!-- 세목 코드 -->
@ -48,7 +48,7 @@
<!-- 회계 연도 --> <!-- 회계 연도 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="fyr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">회계연도</label> <label for="fyr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">회계연도</label>
<input type="text" class="form-control w-15" id="fyr--${pageName}" name="fyr" data-map="FYR" readonly /> <input type="text" class="form-control w-20" id="fyr--${pageName}" name="fyr" data-map="FYR" readonly />
</div> </div>
<!-- 부과 번호 --> <!-- 부과 번호 -->
<div class="col-md-4"> <div class="col-md-4">
@ -80,7 +80,7 @@
<!-- 분납 일련번호 --> <!-- 분납 일련번호 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="ispySn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">분납일련번호</label> <label for="ispySn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">분납일련번호</label>
<input type="text" class="form-control w-10" id="ispySn--${pageName}" name="ispySn" data-map="ISPY_SN" readonly /> <input type="text" class="form-control w-15" id="ispySn--${pageName}" name="ispySn" data-map="ISPY_SN" readonly />
</div> </div>
<!-- 분납 구분 명 --> <!-- 분납 구분 명 -->
<div class="col-md-4"> <div class="col-md-4">
@ -151,32 +151,32 @@
<!-- 관리 항목 1 --> <!-- 관리 항목 1 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="mngItem1--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목1</label> <label for="mngItem1--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목1</label>
<input type="text" class="form-control w-60" id="mngItem1--${pageName}" name="mngItem1" data-map="MNG_ITEM1" readonly /> <input type="text" class="form-control w-65" id="mngItem1--${pageName}" name="mngItem1" data-map="MNG_ITEM1" readonly />
</div> </div>
<!-- 관리 항목 2 --> <!-- 관리 항목 2 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="mngItem2--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목2</label> <label for="mngItem2--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목2</label>
<input type="text" class="form-control w-60" id="mngItem2--${pageName}" name="mngItem2" data-map="MNG_ITEM2" readonly /> <input type="text" class="form-control w-65" id="mngItem2--${pageName}" name="mngItem2" data-map="MNG_ITEM2" readonly />
</div> </div>
<!-- 관리 항목 3 --> <!-- 관리 항목 3 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="mngItem3--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목3</label> <label for="mngItem3--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목3</label>
<input type="text" class="form-control w-60" id="mngItem3--${pageName}" name="mngItem3" data-map="MNG_ITEM3" readonly /> <input type="text" class="form-control w-65" id="mngItem3--${pageName}" name="mngItem3" data-map="MNG_ITEM3" readonly />
</div> </div>
<!-- 관리 항목 4 --> <!-- 관리 항목 4 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="mngItem4--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목4</label> <label for="mngItem4--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목4</label>
<input type="text" class="form-control w-60" id="mngItem4--${pageName}" name="mngItem4" data-map="MNG_ITEM4" readonly /> <input type="text" class="form-control w-65" id="mngItem4--${pageName}" name="mngItem4" data-map="MNG_ITEM4" readonly />
</div> </div>
<!-- 관리 항목 5 --> <!-- 관리 항목 5 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="mngItem5--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목5</label> <label for="mngItem5--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목5</label>
<input type="text" class="form-control w-60" id="mngItem5--${pageName}" name="mngItem5" data-map="MNG_ITEM5" readonly /> <input type="text" class="form-control w-65" id="mngItem5--${pageName}" name="mngItem5" data-map="MNG_ITEM5" readonly />
</div> </div>
<!-- 관리 항목 6 --> <!-- 관리 항목 6 -->
<div class="col-md-4"> <div class="col-md-4">
<label for="mngItem6--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목6</label> <label for="mngItem6--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">관리항목6</label>
<input type="text" class="form-control w-60" id="mngItem6--${pageName}" name="mngItem6" data-map="MNG_ITEM6" readonly /> <input type="text" class="form-control w-65" id="mngItem6--${pageName}" name="mngItem6" data-map="MNG_ITEM6" readonly />
</div> </div>
<!-- 체납 구분 코드 --> <!-- 체납 구분 코드 -->
<div class="col-md-4"> <div class="col-md-4">

Loading…
Cancel
Save