1. 부과제외 수정.

2. 단속상태변경이력 수정.
3. 민원접수 초기자료 편집 수정.
main
jjh 6 months ago
parent fa8ab2c595
commit bbcdb21fed

@ -58,18 +58,7 @@ public interface CrdnSttsHstryMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int insertCrdnSttsHstry(Map<String, Object> params); int insertCrdnSttsHstry(CrdnSttsHstry crdnSttsHstry);
/** .
* @param crdnSttsHstry
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean insert(CrdnSttsHstry crdnSttsHstry) {
return crdnSttsHstry != null && insertCrdnSttsHstry(params().set("crdnSttsHstry", crdnSttsHstry)) == 1;
}
/** . /** .
* @param params * @param params
@ -78,18 +67,7 @@ public interface CrdnSttsHstryMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int updateCrdnSttsHstry(Map<String, Object> params); int updateCrdnSttsHstry(CrdnSttsHstry crdnSttsHstry);
/** .
* @param crdnSttsHstry
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean update(CrdnSttsHstry crdnSttsHstry) {
return crdnSttsHstry != null && updateCrdnSttsHstry(params().set("crdnSttsHstry", crdnSttsHstry)) == 1;
}
/** . /** .
* @param params * @param params
@ -98,18 +76,7 @@ public interface CrdnSttsHstryMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int deleteCrdnSttsHstry(Map<String, ?> params); int deleteCrdnSttsHstry(CrdnSttsHstry crdnSttsHstry);
/** .
* @param crdnSttsHstry
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean delete(CrdnSttsHstry crdnSttsHstry) {
return crdnSttsHstry != null && deleteCrdnSttsHstry(params().set("crdnSttsHstry", crdnSttsHstry)) == 1;
}
/**(TB_CRDN) . /**(TB_CRDN) .
* @param params * @param params
@ -118,17 +85,6 @@ public interface CrdnSttsHstryMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int updateCrdnSttsCd(Map<String, Object> params); int updateCrdnSttsCd(CrdnSttsHstry crdnSttsHstry);
/**(TB_CRDN) .
* @param excl01
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean updateCrdn(CrdnSttsHstry crdnSttsHstry) {
return crdnSttsHstry != null && updateCrdnSttsCd(params().set("crdnSttsHstry", crdnSttsHstry)) == 1;
}
} }

@ -66,7 +66,7 @@ public class CrdnSttsHstryBean extends AbstractBean {
crdnSttsHstry.setUseYn("Y"); crdnSttsHstry.setUseYn("Y");
} }
return crdnSttsHstryMapper.insert(crdnSttsHstry); return crdnSttsHstryMapper.insertCrdnSttsHstry(crdnSttsHstry) == 1;
} }
/** . /** .
@ -77,10 +77,10 @@ public class CrdnSttsHstryBean extends AbstractBean {
* </ul> * </ul>
*/ */
public boolean update(CrdnSttsHstry crdnSttsHstry) { public boolean update(CrdnSttsHstry crdnSttsHstry) {
return crdnSttsHstryMapper.update(crdnSttsHstry); return crdnSttsHstryMapper.updateCrdnSttsHstry(crdnSttsHstry) == 1;
} }
/** . /** . ID .
* @param crdnSttsHstry * @param crdnSttsHstry
* @return * @return
* <ul><li> true</li> * <ul><li> true</li>
@ -88,7 +88,7 @@ public class CrdnSttsHstryBean extends AbstractBean {
* </ul> * </ul>
*/ */
public boolean remove(CrdnSttsHstry crdnSttsHstry) { public boolean remove(CrdnSttsHstry crdnSttsHstry) {
return crdnSttsHstryMapper.delete(crdnSttsHstry); return crdnSttsHstryMapper.deleteCrdnSttsHstry(crdnSttsHstry) >= 1;
} }
/** . /** .
@ -99,7 +99,7 @@ public class CrdnSttsHstryBean extends AbstractBean {
* </ul> * </ul>
*/ */
public boolean updateCrdn(CrdnSttsHstry crdnSttsHstry) { public boolean updateCrdn(CrdnSttsHstry crdnSttsHstry) {
return crdnSttsHstryMapper.updateCrdn(crdnSttsHstry); return crdnSttsHstryMapper.updateCrdnSttsCd(crdnSttsHstry) == 1;
} }
/** , . /** , .
@ -111,7 +111,7 @@ public class CrdnSttsHstryBean extends AbstractBean {
*/ */
public boolean createHstryUpdateCrdnSttsCd(CrdnSttsHstry crdnSttsHstry) { public boolean createHstryUpdateCrdnSttsCd(CrdnSttsHstry crdnSttsHstry) {
// 변수 선언 // 변수 선언
boolean rtnScs = false; // DB 처리 결과 int rtnNocs = -1;
// 사용 여부 // 사용 여부
if (crdnSttsHstry.getUseYn() == null) { if (crdnSttsHstry.getUseYn() == null) {
@ -125,13 +125,13 @@ public class CrdnSttsHstryBean extends AbstractBean {
} }
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 등록 한다. // 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 등록 한다.
rtnScs = crdnSttsHstryMapper.insert(crdnSttsHstry); rtnNocs = crdnSttsHstryMapper.insertCrdnSttsHstry(crdnSttsHstry);
if (!rtnScs) { if (rtnNocs != 1) {
throw new RuntimeException("단속상태이력 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("단속상태이력 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
// 단속(TB_CRDN) 대장을 수정 한다. // 단속(TB_CRDN) 대장을 수정 한다.
rtnScs = crdnSttsHstryMapper.updateCrdn(crdnSttsHstry); rtnNocs = crdnSttsHstryMapper.updateCrdnSttsCd(crdnSttsHstry);
if (!rtnScs) { if (rtnNocs != 1) {
throw new RuntimeException("단속상태이력 정보 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("단속상태이력 정보 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -147,7 +147,7 @@ public class CrdnSttsHstryBean extends AbstractBean {
*/ */
public boolean removeHstryUpdateCrdnSttsCd(String crdnId, String crdnSttsCd, String deltSttsCd, String deltEtcCn, boolean insertBfrSttsYn) { public boolean removeHstryUpdateCrdnSttsCd(String crdnId, String crdnSttsCd, String deltSttsCd, String deltEtcCn, boolean insertBfrSttsYn) {
// 변수 선언 // 변수 선언
boolean rtnScs = false; // DB 처리 결과 int rtnNocs = -1;
// 단속 ID에 해당하는 단속상태코드의 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 조회 한다. // 단속 ID에 해당하는 단속상태코드의 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 조회 한다.
DataObject crdnSttsHstryInfo = crdnSttsHstryMapper.selectCrdnSttsHstryInfo(crdnId, crdnSttsCd, "Y"); DataObject crdnSttsHstryInfo = crdnSttsHstryMapper.selectCrdnSttsHstryInfo(crdnId, crdnSttsCd, "Y");
@ -161,8 +161,8 @@ public class CrdnSttsHstryBean extends AbstractBean {
crdnSttsHstry.setSttsHstryId(crdnSttsHstryInfo.string("STTS_HSTRY_ID")); crdnSttsHstry.setSttsHstryId(crdnSttsHstryInfo.string("STTS_HSTRY_ID"));
crdnSttsHstry.setUseYn("N"); crdnSttsHstry.setUseYn("N");
rtnScs = crdnSttsHstryMapper.update(crdnSttsHstry); rtnNocs = crdnSttsHstryMapper.updateCrdnSttsHstry(crdnSttsHstry);
if (!rtnScs) { if (rtnNocs != 1) {
throw new RuntimeException("단속상태이력 대장에 이력 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("단속상태이력 대장에 이력 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
} }
@ -182,8 +182,8 @@ public class CrdnSttsHstryBean extends AbstractBean {
opnnSttsHstry.setSttsHstryId(crdnSttsHstryInfo.string("STTS_HSTRY_ID")); opnnSttsHstry.setSttsHstryId(crdnSttsHstryInfo.string("STTS_HSTRY_ID"));
opnnSttsHstry.setUseYn("N"); opnnSttsHstry.setUseYn("N");
rtnScs = crdnSttsHstryMapper.update(opnnSttsHstry); rtnNocs = crdnSttsHstryMapper.updateCrdnSttsHstry(opnnSttsHstry);
if (!rtnScs) { if (rtnNocs != 1) {
throw new RuntimeException("단속상태이력 대장에 의견제출접수 이력 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("단속상태이력 대장에 의견제출접수 이력 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
} }
@ -196,8 +196,8 @@ public class CrdnSttsHstryBean extends AbstractBean {
deleteSttsHstry.setEtcCn(deltEtcCn); deleteSttsHstry.setEtcCn(deltEtcCn);
deleteSttsHstry.setUseYn("N"); deleteSttsHstry.setUseYn("N");
rtnScs = crdnSttsHstryMapper.insert(deleteSttsHstry); rtnNocs = crdnSttsHstryMapper.insertCrdnSttsHstry(deleteSttsHstry);
if (!rtnScs) { if (rtnNocs != 1) {
throw new RuntimeException("삭제 단속상태이력 정보 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("삭제 단속상태이력 정보 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
} }
@ -212,7 +212,7 @@ public class CrdnSttsHstryBean extends AbstractBean {
crdnSttsHstry.setCrdnSttsChgDt(crdnSttsHstryInfo.string("BFR_STTS_CHG_DT")); crdnSttsHstry.setCrdnSttsChgDt(crdnSttsHstryInfo.string("BFR_STTS_CHG_DT"));
crdnSttsHstry.setUseYn("Y"); crdnSttsHstry.setUseYn("Y");
rtnScs = createHstryUpdateCrdnSttsCd(crdnSttsHstry); boolean rtnScs = createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!rtnScs) { if (!rtnScs) {
throw new RuntimeException("단속상태이력 정보 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("단속상태이력 정보 등록 중 오류가 발생하였습니다."); // 예외를 발생시켜서 DB Rollback
} }

@ -215,12 +215,12 @@ public class CrdnCvlcptSubBean extends AbstractBean {
boolean retSuccess = false; boolean retSuccess = false;
LevyExcl excl01 = new LevyExcl(); LevyExcl excl01 = new LevyExcl();
excl01.setCrdnId(crdn.getCrdnId()); excl01.setCrdnId(crdn.getCrdnId());
excl01.setSggCd(crdn.getSggCd());
excl01.setLevyExclYmd(crdn.getLevyExclYmd()); excl01.setLevyExclYmd(crdn.getLevyExclYmd());
excl01.setLevyExclSeCd(crdn.getLevyExclSeCd()); excl01.setLevyExclSeCd(crdn.getLevyExclSeCd());
excl01.setLevyExclRsnCd(crdn.getLevyExclRsnCd()); excl01.setLevyExclRsnCd(crdn.getLevyExclRsnCd());
excl01.setEtcCn(crdn.getEtcCn()); excl01.setEtcCn(crdn.getEtcCn());
retSuccess = levyExclMapper.insertLevyExcl(excl01) == 1 ? true : false;
retSuccess = levyExclMapper.insertLevyExcl(excl01);
if (!retSuccess) { if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("부과제외 대장 등록에 실패하였습니다."); throw new RuntimeException("부과제외 대장 등록에 실패하였습니다.");
@ -265,8 +265,8 @@ public class CrdnCvlcptSubBean extends AbstractBean {
crdnSttsHstry.setEtcCn("민원 요청 수용"); crdnSttsHstry.setEtcCn("민원 요청 수용");
} }
boolean retSuccess = crdnSttsHstryMapper.insert(crdnSttsHstry); int rtnNocs = crdnSttsHstryMapper.insertCrdnSttsHstry(crdnSttsHstry);
if(!retSuccess) { if(rtnNocs != 1) {
throw new RuntimeException("단속민원답변 수정 중 단속상태변경 이력 등록에 실패하였습니다."); throw new RuntimeException("단속민원답변 수정 중 단속상태변경 이력 등록에 실패하였습니다.");
} }
} }
@ -351,7 +351,7 @@ public class CrdnCvlcptSubBean extends AbstractBean {
excl01.setLevyExclSeCd("1"); excl01.setLevyExclSeCd("1");
excl01.setLevyExclRsnCd(levyExclRsnCd); excl01.setLevyExclRsnCd(levyExclRsnCd);
excl01.setEtcCn(etcCn); excl01.setEtcCn(etcCn);
saved = levyExclMapper.insertLevyExcl(excl01); saved = levyExclMapper.insertLevyExcl(excl01) == 1 ? true : false;
if (!saved) { if (!saved) {
throw new RuntimeException("서손처리 중 부과제외 대장 등록에 실패하였습니다."); throw new RuntimeException("서손처리 중 부과제외 대장 등록에 실패하였습니다.");
} }
@ -373,7 +373,7 @@ public class CrdnCvlcptSubBean extends AbstractBean {
crdnSttsHstry.setCrdnSttsCd("81"); crdnSttsHstry.setCrdnSttsCd("81");
crdnSttsHstry.setTaskDtlId(excl01.getLevyExclId()); crdnSttsHstry.setTaskDtlId(excl01.getLevyExclId());
crdnSttsHstry.setEtcCn(etcCn); crdnSttsHstry.setEtcCn(etcCn);
saved = crdnSttsHstryMapper.insert(crdnSttsHstry); saved = crdnSttsHstryMapper.insertCrdnSttsHstry(crdnSttsHstry) == 1 ? true : false;
if (!saved) { if (!saved) {
throw new RuntimeException("서손처리 중 단속상태이력 등록에 실패하였습니다."); throw new RuntimeException("서손처리 중 단속상태이력 등록에 실패하였습니다.");
} }

@ -1,7 +1,6 @@
package cokr.xit.fims.excl.dao; package cokr.xit.fims.excl.dao;
import java.util.List; import java.util.List;
import java.util.Map;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper; import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
@ -63,18 +62,7 @@ public interface LevyExclMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int insertLevyExcl(Map<String, Object> params); int insertLevyExcl(LevyExcl levyExcl);
/** .
* @param levyExcl
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean insertLevyExcl(LevyExcl levyExcl) {
return levyExcl != null && insertLevyExcl(params().set("levyExcl", levyExcl)) == 1;
}
/** . /** .
* @param params * @param params
@ -83,18 +71,7 @@ public interface LevyExclMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int updateLevyExcl(Map<String, Object> params); int updateLevyExcl(LevyExcl levyExcl);
/** .
* @param levyExcl
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean updateLevyExcl(LevyExcl levyExcl) {
return levyExcl != null && updateLevyExcl(params().set("levyExcl", levyExcl)) == 1;
}
/** . /** .
* @param params * @param params
@ -103,50 +80,12 @@ public interface LevyExclMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int deleteLevyExcl(Map<String, Object> params); int deleteLevyExcl(LevyExcl levyExcl);
/** .
* @param levyExcl
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean deleteLevyExcl(LevyExcl levyExcl) {
return levyExcl != null && deleteLevyExcl(params().set("levyExcl", levyExcl)) == 1;
}
/**(TB_CRDN) . /**(TB_CRDN) .
* @param crdn * @param crdn
* @return * @return
*/ */
int updateParkngPsbltyRsltCd(Map<String, Object> params); int updateParkngPsbltyRsltCd(Crdn crdn);
default boolean updateParkngPsbltyRsltCd(Crdn crdn) {
return crdn != null && updateParkngPsbltyRsltCd(params().set("crdn", crdn)) == 1;
}
/** .
* @param crdnId ID
* @return ,
*/
DataObject selectSndngDtl(LevyExclQuery req);
default DataObject selectSndngDtlInfo(String crdnId, String sndngRcvmtCd) {
DataObject sndngDtlInfo = selectSndngDtl(new LevyExclQuery().setCrdnId(crdnId)
.setSndngRcvmtCd(sndngRcvmtCd));
return sndngDtlInfo;
}
/** (TB_SNDNG_DTL) .
* @param sndngDtl
* @return
*/
int updateRcvmtCd(Map<String, Object> params);
default boolean updateRcvmtCd(SndngDtl sndngDtl) {
return sndngDtl != null && updateRcvmtCd(params().set("sndngDtl", sndngDtl)) >= 1;
}
} }

@ -110,47 +110,45 @@ public class LevyExclBean extends AbstractBean {
*/ */
public String createLevyExcl(LevyExcl levyExcl) { public String createLevyExcl(LevyExcl levyExcl) {
// 변수 선언 // 변수 선언
boolean rtnScs = false; // DB 처리 결과 boolean rtnScs = false; // 처리 결과
int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = ""; // 처리 결과 메시지 String rtnMsg = ""; // 처리 결과 메시지
// 단속 ID로 단속, 부과제외 정보 조회 // 단속 ID로 단속, 부과제외 정보 조회
DataObject crdnLevyExclInfo = levyExclMapper.selectLevyExclInfo(new LevyExclQuery().setCrdnId(levyExcl.getCrdnId()) DataObject levyExclInfo = levyExclMapper.selectLevyExclInfo(new LevyExclQuery().setCrdnId(levyExcl.getCrdnId()));
.setDelYn("N"));
// 조회된 자료 정보로 등록 가능한지 검증 // 등록 대상 자료 검증
if (!crdnLevyExclInfo.string("LEVY_EXCL_ID").equals("")) { // 부과제외 ID가 있다면 이미 부과제외 자료가 존재하므로 종료.. if (!levyExclInfo.string("LEVY_EXCL_ID").equals("")) { // 부과제외 ID가 있다면 이미 부과제외 자료가 존재하므로 종료..
rtnMsg = "[F] 작업중 이미 등록된 부과제외 자료가 존재합니다."; rtnMsg = "[F] 작업중 이미 등록된 부과제외 자료가 존재합니다.";
return rtnMsg; return rtnMsg;
} }
if (!levyExclInfo.string("CVLCPT_LINK_ID").equals("")) { // 민원 ID
if (levyExclInfo.string("CVLCPT_PRCS_CD").equals("00")) { // 민원 처리상태 확인
rtnMsg = "[F] 작업중 단속 민원 자료가 처리 되지 않았습니다.<br>단속 민원 업무를 먼저 처리 하시기 바랍니다.";
return rtnMsg;
}
}
if (levyExcl.getLevyExclSeCd().contains("1,2")) { // 비부과(서손), 계고 if (levyExcl.getLevyExclSeCd().contains("1,2")) { // 비부과(서손), 계고
if (crdnLevyExclInfo.number("CRDN_STTS_CD").intValue() >= 51) { // 단속상태코드가 부과(51) 보다 크다면, 비부과 또는 계고 등록을 할 수 없다. if (levyExclInfo.number("CRDN_STTS_CD").intValue() >= 51) { // 단속상태코드가 부과(51) 보다 크다면, 비부과 또는 계고 등록을 할 수 없다.
rtnMsg = "[F] 작업중 오류가 발생하였습니다.<br>현재 자료의 단속상태가 " + crdnLevyExclInfo.string("CRDN_STTS_NM") + " 상태 입니다."; rtnMsg = "[F] 작업중 오류가 발생하였습니다.<br>현재 자료의 단속상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 상태 입니다.";
return rtnMsg; return rtnMsg;
} }
} else if (levyExcl.getLevyExclSeCd().equals("3")) { // 부과취소 } else if (levyExcl.getLevyExclSeCd().equals("3")) { // 부과취소
if (crdnLevyExclInfo.number("CRDN_STTS_CD").intValue() < 51) { // 단속상태코드가 부과(51) 보다 작다면, 전액감액 등록 할 수 없다. if (levyExclInfo.number("CRDN_STTS_CD").intValue() < 51) { // 단속상태코드가 부과(51) 보다 작다면, 전액감액 등록 할 수 없다.
rtnMsg = "[F] 작업중 오류가 발생하였습니다.<br>현재 자료의 단속상태가 " + crdnLevyExclInfo.string("CRDN_STTS_NM") + " 상태 입니다."; rtnMsg = "[F] 작업중 오류가 발생하였습니다.<br>현재 자료의 단속상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 상태 입니다.";
return rtnMsg; return rtnMsg;
} }
} if (levyExclInfo.string("LEVY_ID").equals("")) { // 부과(TB_LEVY) 정보 확인
// 단속 민원(TB_CRDN_CVLCPT) 민원 처리 확인 rtnMsg = "[F] 작업 중 부과 자료가 존재하지 않습니다.<br>비부과로 처리 하시기 바랍니다.";
if (!crdnLevyExclInfo.string("CVLCPT_LINK_ID").equals("")) {
if (crdnLevyExclInfo.string("CVLCPT_PRCS_CD").equals("00")) {
rtnMsg = "[F] 작업중 단속 민원 자료가 처리 되지 않았습니다.<br>단속 민원 업무를 먼저 처리 하시기 바랍니다.<br>";
return rtnMsg; return rtnMsg;
} }
} }
// 부과취소(전액감액)일 경우 부과(TB_LEVY)에 감액금액 입력이 필요.. // 부과취소(전액감액)일 경우 부과(TB_LEVY)에 감액금액 입력이 필요..
if (levyExcl.getLevyExclSeCd().equals("3")) { if (levyExcl.getLevyExclSeCd().equals("3")) {
if (crdnLevyExclInfo.string("LEVY_ID").equals("")) {
rtnMsg = "[F] 작업 중 부과 자료가 존재하지 않습니다.<br>비부과로 처리 하시기 바랍니다.<br>";
return rtnMsg;
}
// 감액(TB_RDCAMT) 등록 // 감액(TB_RDCAMT) 등록
Rdcamt rdcamt = new Rdcamt(); Rdcamt rdcamt = new Rdcamt();
rdcamt.setLevyId(crdnLevyExclInfo.string("LEVY_ID")); // 부과 ID rdcamt.setLevyId(levyExclInfo.string("LEVY_ID")); // 부과 ID
rdcamt.setRdcamtYmd(levyExcl.getLevyExclYmd()); // 감액 일자 rdcamt.setRdcamtYmd(levyExcl.getLevyExclYmd()); // 감액 일자
rdcamt.setRdcamtSeCd("02"); // 감액 구분 코드 FIM085 - 02:부과취소 rdcamt.setRdcamtSeCd("02"); // 감액 구분 코드 FIM085 - 02:부과취소
rdcamt.setRdcamtRsnCd(levyExcl.getLevyExclRsnCd()); // 감액 사유 코드 rdcamt.setRdcamtRsnCd(levyExcl.getLevyExclRsnCd()); // 감액 사유 코드
@ -162,14 +160,25 @@ public class LevyExclBean extends AbstractBean {
} }
// 부과제외(TB_LEVY_EXCL) 대장을 등록 한다. // 부과제외(TB_LEVY_EXCL) 대장을 등록 한다.
rtnScs = levyExclMapper.insertLevyExcl(levyExcl); rtnNocs = levyExclMapper.insertLevyExcl(levyExcl);
if (!rtnScs) { if (rtnNocs != 1) {
throw new RuntimeException("부과제외 정보 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("부과제외 정보 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
// 표지정보 확인여부가 미확인(0)이면 -> 조회미대상(9) 으로
if (levyExclInfo.string("PARKNG_PSBLTY_RSLT_CD").equals("0")) { // 주차 가능 결과 코드(FIM034) - 0: 미확인
Crdn crdn = new Crdn();
crdn.setCrdnId(levyExclInfo.string("CRDN_ID")); // 단속 ID
crdn.setParkngPsbltyRsltCd("9"); // 주차 가능 결과 코드(FIM034) 9: 조회미대상
rtnNocs = levyExclMapper.updateParkngPsbltyRsltCd(crdn);
if (rtnNocs != 1) {
throw new RuntimeException("부과제외 삭제 작업 중 단속 대장의 표지정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다. // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD) String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD)
if (levyExcl.getLevyExclSeCd().equals("1")) { // 비부과 if (levyExcl.getLevyExclSeCd().equals("1")) { // 비부과
newCrdnSttsCd = "81"; // 비부과(서손) newCrdnSttsCd = "81"; // 비부과(서손)
} else if (levyExcl.getLevyExclSeCd().equals("2")) { // 계고 } else if (levyExcl.getLevyExclSeCd().equals("2")) { // 계고
@ -180,9 +189,9 @@ public class LevyExclBean extends AbstractBean {
// 단속상태이력(TB_CRDN_STTS_HSTRY) // 단속상태이력(TB_CRDN_STTS_HSTRY)
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setCrdnId(crdnLevyExclInfo.string("CRDN_ID")); crdnSttsHstry.setCrdnId(levyExclInfo.string("CRDN_ID"));
crdnSttsHstry.setBfrSttsCd(crdnLevyExclInfo.string("CRDN_STTS_CD")); crdnSttsHstry.setBfrSttsCd(levyExclInfo.string("CRDN_STTS_CD"));
crdnSttsHstry.setBfrSttsChgDt(crdnLevyExclInfo.string("CRDN_STTS_CHG_DT")); crdnSttsHstry.setBfrSttsChgDt(levyExclInfo.string("CRDN_STTS_CHG_DT"));
crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd); crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd);
crdnSttsHstry.setTaskDtlId(levyExcl.getLevyExclId()); crdnSttsHstry.setTaskDtlId(levyExcl.getLevyExclId());
@ -205,12 +214,12 @@ public class LevyExclBean extends AbstractBean {
*/ */
public String updateLevyExcl(LevyExcl levyExcl) { public String updateLevyExcl(LevyExcl levyExcl) {
// 변수 선언 // 변수 선언
boolean rtnScs = false; // DB 처리 결과 int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = ""; // 처리 결과 메시지 String rtnMsg = ""; // 처리 결과 메시지
// 부과제외(TB_LEVY_EXCL) 대장을 수정 한다. // 부과제외(TB_LEVY_EXCL) 대장을 수정 한다.
rtnScs = levyExclMapper.updateLevyExcl(levyExcl); rtnNocs = levyExclMapper.updateLevyExcl(levyExcl);
if (!rtnScs) { if (rtnNocs != 1) {
throw new RuntimeException("부과제외 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("부과제외 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -229,17 +238,17 @@ public class LevyExclBean extends AbstractBean {
public String removeLevyExcl(LevyExcl levyExcl) { public String removeLevyExcl(LevyExcl levyExcl) {
// 변수 선언 // 변수 선언
boolean rtnScs = false; // DB 처리 결과 boolean rtnScs = false; // DB 처리 결과
int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = ""; // 처리 결과 메시지 String rtnMsg = ""; // 처리 결과 메시지
// 부과제외(TB_LEVY_EXCL) 정보를 조회한다. // 부과제외(TB_LEVY_EXCL) 정보를 조회한다.
DataObject levyExclInfo = levyExclMapper.selectLevyExclInfo(new LevyExclQuery().setLevyExclId(levyExcl.getLevyExclId())); DataObject levyExclInfo = levyExclMapper.selectLevyExclInfo(new LevyExclQuery().setLevyExclId(levyExcl.getLevyExclId()));
// 부과제외 ID가 조회되지 않았다면 종료.. // 삭제 대상 자료 검증
if (levyExclInfo.string("LEVY_EXCL_ID").equals("")) { if (levyExclInfo.string("LEVY_EXCL_ID").equals("")) {
rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>부과제외 자료가 존재하지 않습니다."; rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>부과제외 자료가 존재하지 않습니다.";
return rtnMsg; return rtnMsg;
} }
// 단속 상태 코드(CRDN_STTS_CD) 확인..
if (levyExclInfo.string("LEVY_EXCL_SE_CD").equals("1") && !levyExclInfo.string("CRDN_STTS_CD").equals("81")) { // 비부과(서손) if (levyExclInfo.string("LEVY_EXCL_SE_CD").equals("1") && !levyExclInfo.string("CRDN_STTS_CD").equals("81")) { // 비부과(서손)
rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 이(가) 아닙니다."; rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 이(가) 아닙니다.";
return rtnMsg; return rtnMsg;
@ -252,8 +261,8 @@ public class LevyExclBean extends AbstractBean {
} }
// 부과제외(TB_LEVY_EXCL) 대장을 삭제 한다. // 부과제외(TB_LEVY_EXCL) 대장을 삭제 한다.
rtnScs = levyExclMapper.deleteLevyExcl(levyExcl); rtnNocs = levyExclMapper.deleteLevyExcl(levyExcl);
if (!rtnScs) { if (rtnNocs != 1) {
throw new RuntimeException("부과제외 정보 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("부과제외 정보 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -281,8 +290,8 @@ public class LevyExclBean extends AbstractBean {
crdn.setCrdnId(levyExclInfo.string("CRDN_ID")); // 단속 ID crdn.setCrdnId(levyExclInfo.string("CRDN_ID")); // 단속 ID
crdn.setParkngPsbltyRsltCd("0"); // 주차 가능 결과 코드 - 0 미확인 crdn.setParkngPsbltyRsltCd("0"); // 주차 가능 결과 코드 - 0 미확인
rtnScs = levyExclMapper.updateParkngPsbltyRsltCd(crdn); rtnNocs = levyExclMapper.updateParkngPsbltyRsltCd(crdn);
if (!rtnScs) { if (rtnNocs != 1) {
throw new RuntimeException("부과제외 삭제 작업 중 단속 대장의 표지정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("부과제외 삭제 작업 중 단속 대장의 표지정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
} }

@ -6,6 +6,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.CellStyle;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -175,7 +176,7 @@ public class Excl01Controller extends ApplicationController {
*/ */
@Task @Task
@RequestMapping(name="부과제외 정보 조회", value=METHOD_URL.getLevyExclusionInfo) @RequestMapping(name="부과제외 정보 조회", value=METHOD_URL.getLevyExclusionInfo)
public ModelAndView getLevyExclusionInfo(String saveCallbackFuncName, String savedCallbackFuncName, LevyExclQuery req) { public ModelAndView getLevyExclusionInfo(HttpServletRequest hReq, LevyExclQuery req) {
DataObject info = levyExclService.getLevyExclInfo(req); DataObject info = levyExclService.getLevyExclInfo(req);
// 등록을 호출하였지만 등록된 부과제외 ID가 있는지 확인. // 등록을 호출하였지만 등록된 부과제외 ID가 있는지 확인.
@ -196,8 +197,6 @@ public class Excl01Controller extends ApplicationController {
addCodes(commonCodes, mav, "FIM021", "FIM022"); addCodes(commonCodes, mav, "FIM021", "FIM022");
return mav return mav
.addObject("saveCallbackFuncName", saveCallbackFuncName) //
.addObject("savedCallbackFuncName", savedCallbackFuncName) //
.addObject("pageName", "excl01020") // .addObject("pageName", "excl01020") //
.addObject("infoPrefix", "levyExcl") // prefix .addObject("infoPrefix", "levyExcl") // prefix
.addObject("infoPrefixUrl", "/excl/excl01") // prefixUrl .addObject("infoPrefixUrl", "/excl/excl01") // prefixUrl
@ -205,6 +204,9 @@ public class Excl01Controller extends ApplicationController {
.addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD) .addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD)
.addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD) .addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD)
.addObject("levyExclInfo", json ? info : toJson(info)) // 부과제외 정보 .addObject("levyExclInfo", json ? info : toJson(info)) // 부과제외 정보
.addObject("saveCallbackFuncName", hReq.getParameter("saveCallbackFuncName")) //
.addObject("savedCallbackFuncName", hReq.getParameter("savedCallbackFuncName")) //
.addObject("openerPageName", hReq.getParameter("openerPageName"))
; ;
} }
} }

@ -289,9 +289,10 @@ public class PayerBean extends AbstractBean {
if (payerInfo.getZip().equals(payer.getZip()) if (payerInfo.getZip().equals(payer.getZip())
&& payerInfo.getAddr().equals(payer.getAddr()) && payerInfo.getAddr().equals(payer.getAddr())
&& payerInfo.getDtlAddr().equals(payer.getDtlAddr())) { && payerInfo.getDtlAddr().equals(payer.getDtlAddr())) {
rtnScs = updatePayerAddr(payer); // 납부자 주소 수정일자만 수정 payer.setAddrSn(payerInfo.getAddrSn()); // 주소 일련번호
rtnScs = updatePayerAddr(payer); // 납부자 주소 수정일자만 수정
} else { } else {
rtnScs = createPayerAddr(payer); // 납부자 주소 등록 rtnScs = createPayerAddr(payer); // 납부자 주소 등록
CrdnPayerHstry crdnPayerAddrHstry = new CrdnPayerHstry(); CrdnPayerHstry crdnPayerAddrHstry = new CrdnPayerHstry();
crdnPayerAddrHstry.setCrdnId(payer.getCrdnId()); crdnPayerAddrHstry.setCrdnId(payer.getCrdnId());

@ -8,38 +8,38 @@
============================ --> ============================ -->
<resultMap id="crdnSttsHstryRow" type="cokr.xit.fims.cmmn.CrdnSttsHstry"><!-- 단속 상태 이력 --> <resultMap id="crdnSttsHstryRow" type="cokr.xit.fims.cmmn.CrdnSttsHstry"><!-- 단속 상태 이력 -->
<result property="sttsHstryId" column="STTS_HSTRY_ID" /> <!-- 상태 이력 ID --> <result property="sttsHstryId" column="STTS_HSTRY_ID" /> <!-- 상태 이력 ID -->
<result property="crdnId" column="CRDN_ID" /> <!-- 단속 ID --> <result property="crdnId" column="CRDN_ID" /> <!-- 단속 ID -->
<result property="bfrSttsCd" column="BFR_STTS_CD" /> <!-- 이전 상태 코드 --> <result property="bfrSttsCd" column="BFR_STTS_CD" /> <!-- 이전 상태 코드 -->
<result property="bfrSttsChgDt" column="BFR_STTS_CHG_DT" /> <!-- 이전 상태 변경 일시 --> <result property="bfrSttsChgDt" column="BFR_STTS_CHG_DT" /> <!-- 이전 상태 변경 일시 -->
<result property="crdnSttsCd" column="CRDN_STTS_CD" /> <!-- 단속 상태 코드 --> <result property="crdnSttsCd" column="CRDN_STTS_CD" /> <!-- 단속 상태 코드 -->
<result property="taskDtlId" column="TASK_DTL_ID" /> <!-- 업무 상세 ID --> <result property="taskDtlId" column="TASK_DTL_ID" /> <!-- 업무 상세 ID -->
<result property="useYn" column="USE_YN" /> <!-- 사용 여부 --> <result property="useYn" column="USE_YN" /> <!-- 사용 여부 -->
<result property="etcCn" column="ETC_CN" /> <!-- 기타 내용 --> <result property="etcCn" column="ETC_CN" /> <!-- 기타 내용 -->
<result property="regDt" column="REG_DT" /> <!-- 등록 일시 --> <result property="regDt" column="REG_DT" /> <!-- 등록 일시 -->
<result property="rgtr" column="RGTR" /> <!-- 등록자 --> <result property="rgtr" column="RGTR" /> <!-- 등록자 -->
<result property="mdfcnDt" column="MDFCN_DT" /> <!-- 수정 일시 --> <result property="mdfcnDt" column="MDFCN_DT" /> <!-- 수정 일시 -->
<result property="mdfr" column="MDFR" /> <!-- 수정자 --> <result property="mdfr" column="MDFR" /> <!-- 수정자 -->
</resultMap> </resultMap>
<sql id="select"> <sql id="select">
SELECT CSH.STTS_HSTRY_ID /* 상태 이력 ID */ SELECT CSH.STTS_HSTRY_ID <!-- 상태 이력 ID -->
, CSH.CRDN_ID /* 단속 ID */ , CSH.CRDN_ID <!-- 단속 ID -->
, CSH.BFR_STTS_CD /* 이전 상태 코드 */ , CSH.BFR_STTS_CD <!-- 이전 상태 코드 -->
, CSH.BFR_STTS_CHG_DT /* 이전 상태 변경 일시 */ , (SELECT GET_CODE_NM('FIM010', CSH.BFR_STTS_CD) FROM DUAL) AS BFR_STTS_NM <!-- 이전 상태 명 -->
, CSH.CRDN_STTS_CD /* 단속 상태 코드 */ , CSH.BFR_STTS_CHG_DT <!-- 이전 상태 변경 일시 -->
, CSH.TASK_DTL_ID /* 업무 상세 ID */ , CSH.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, CSH.USE_YN /* 사용 여부 */ , (SELECT GET_CODE_NM('FIM010', CSH.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
, CSH.ETC_CN /* 기타 내용 */ , CSH.TASK_DTL_ID <!-- 업무 상세 ID -->
, CSH.REG_DT /* 등록 일시 */ , CSH.USE_YN <!-- 사용 여부 -->
, CSH.RGTR /* 등록자 */ , (SELECT GET_CODE_NM('CMN003', CSH.USE_YN) FROM DUAL) AS USE_YN_NM <!-- 사용 여부 명 -->
, CSH.MDFCN_DT /* 수정 일시 */ , CSH.ETC_CN <!-- 기타 내용 -->
, CSH.MDFR /* 수정자 */ , CSH.REG_DT <!-- 등록 일시 -->
, (SELECT GET_CODE_NM('FIM010', CSH.BFR_STTS_CD) FROM DUAL) AS BFR_STTS_NM /* 이전 상태 명 */ , CSH.RGTR <!-- 등록자 -->
, (SELECT GET_CODE_NM('FIM010', CSH.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */ , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CSH.RGTR) AS RGTR_NM <!-- 등록자 명 -->
, (SELECT GET_CODE_NM('CMN003', CSH.USE_YN) FROM DUAL) AS USE_YN_NM /* 사용 여부 명 */ , CSH.MDFCN_DT <!-- 수정 일시 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CSH.RGTR) AS RGTR_NM /* 등록자 명 */ , CSH.MDFR <!-- 수정자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CSH.MDFR) AS MDFR_NM /* 수정자 명 */ , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CSH.MDFR) AS MDFR_NM <!-- 수정자 명 -->
FROM TB_CRDN_STTS_HSTRY CSH FROM TB_CRDN_STTS_HSTRY CSH
LEFT OUTER JOIN TB_CRDN C ON (CSH.CRDN_ID = C.CRDN_ID) LEFT OUTER JOIN TB_CRDN C ON (CSH.CRDN_ID = C.CRDN_ID)
</sql> </sql>
@ -88,79 +88,81 @@
<include refid="utility.sortBy" /> <include refid="utility.sortBy" />
</select> </select>
<insert id="insertCrdnSttsHstry" parameterType="map">/* 단속 상태 이력 등록(crdnSttsHstryMapper.insertCrdnSttsHstry) */ <insert id="insertCrdnSttsHstry" parameterType="cokr.xit.fims.cmmn.CrdnSttsHstry">/* 단속 상태 이력 등록(crdnSttsHstryMapper.insertCrdnSttsHstry) */
<selectKey resultType="string" keyProperty="crdnSttsHstry.sttsHstryId" keyColumn="NEW_ID" order="BEFORE"> <selectKey resultType="string" keyProperty="sttsHstryId" keyColumn="NEW_ID" order="BEFORE">
SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(STTS_HSTRY_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID <include refid="numbering.keyByYear">
FROM TB_CRDN_STTS_HSTRY <property name="TABLE_NAME" value="TB_CRDN_STTS_HSTRY" />
WHERE STTS_HSTRY_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%') <property name="TABLE_KEY" value="STTS_HSTRY_ID" />
<property name="pad" value="20" />
</include>
</selectKey> </selectKey>
INSERT INSERT
INTO TB_CRDN_STTS_HSTRY ( INTO TB_CRDN_STTS_HSTRY (
STTS_HSTRY_ID /* 상태 이력 ID */ STTS_HSTRY_ID <!-- 상태 이력 ID -->
, CRDN_ID /* 단속 ID */ , CRDN_ID <!-- 단속 ID -->
, BFR_STTS_CD /* 이전 상태 코드 */ , BFR_STTS_CD <!-- 이전 상태 코드 -->
, BFR_STTS_CHG_DT /* 이전 상태 변경 일시 */ , BFR_STTS_CHG_DT <!-- 이전 상태 변경 일시 -->
, CRDN_STTS_CD /* 단속 상태 코드 */ , CRDN_STTS_CD <!-- 단속 상태 코드 -->
, TASK_DTL_ID /* 업무 상세 ID */ , TASK_DTL_ID <!-- 업무 상세 ID -->
, ETC_CN /* 기타 내용 */ , ETC_CN <!-- 기타 내용 -->
, USE_YN /* 사용 여부 */ , USE_YN <!-- 사용 여부 -->
, REG_DT /* 등록 일시*/ , REG_DT <!-- 등록 일시 -->
, RGTR /* 등록자 */ , RGTR <!-- 등록자 -->
, MDFCN_DT /* 수정 일시 */ , MDFCN_DT <!-- 수정 일시 -->
, MDFR /* 수정자 */ , MDFR <!-- 수정자 -->
) )
VALUES ( VALUES (
#{crdnSttsHstry.sttsHstryId} /* 상태 이력 ID */ #{sttsHstryId} <!-- 상태 이력 ID -->
, #{crdnSttsHstry.crdnId} /* 단속 ID */ , #{crdnId} <!-- 단속 ID -->
, #{crdnSttsHstry.bfrSttsCd} /* 이전 상태 코드 */ , #{bfrSttsCd} <!-- 이전 상태 코드 -->
, #{crdnSttsHstry.bfrSttsChgDt} /* 이전 상태 변경 일시 */ , #{bfrSttsChgDt} <!-- 이전 상태 변경 일시 -->
, #{crdnSttsHstry.crdnSttsCd} /* 단속 상태 코드 */ , #{crdnSttsCd} <!-- 단속 상태 코드 -->
, #{crdnSttsHstry.taskDtlId} /* 업무 상세 ID */ , #{taskDtlId} <!-- 업무 상세 ID -->
, #{crdnSttsHstry.etcCn} /* 기타 내용 */ , #{etcCn} <!-- 기타 내용 -->
, #{crdnSttsHstry.useYn} /* 사용 여부 */ , #{useYn} <!-- 사용 여부 -->
, <include refid="utility.now" /> /* 등록 일시 */ , <include refid="utility.now" /> <!-- 등록 일시 -->
, #{crdnSttsHstry.createdBy} /* 등록자 */ , #{createdBy} <!-- 등록자 -->
, <include refid="utility.now" /> /* 수정 일시 */ , <include refid="utility.now" /> <!-- 수정 일시 -->
, #{crdnSttsHstry.modifiedBy} /* 수정자 */ , #{modifiedBy} <!-- 수정자 -->
) )
</insert> </insert>
<update id="updateCrdnSttsHstry" parameterType="map">/* 단속 상태 이력 수정(crdnSttsHstryMapper.updateCrdnSttsHstry) */ <update id="updateCrdnSttsHstry" parameterType="cokr.xit.fims.cmmn.CrdnSttsHstry">/* 단속 상태 이력 수정(crdnSttsHstryMapper.updateCrdnSttsHstry) */
UPDATE TB_CRDN_STTS_HSTRY UPDATE TB_CRDN_STTS_HSTRY
SET USE_YN = #{crdnSttsHstry.useYn} /* 사용 여부 */ SET USE_YN = #{useYn} <!-- 사용 여부 -->
, MDFCN_DT = <include refid="utility.now" /> /* 수정 일시 */ , MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{crdnSttsHstry.modifiedBy} /* 수정자 */ , MDFR = #{modifiedBy} <!-- 수정자 -->
WHERE STTS_HSTRY_ID = #{crdnSttsHstry.sttsHstryId} /* 상태 이력 ID */ WHERE STTS_HSTRY_ID = #{sttsHstryId} <!-- 상태 이력 ID -->
</update> </update>
<update id="deleteCrdnSttsHstry" parameterType="map">/* 단속 상태 이력 삭제(crdnSttsHstryMapper.deleteCrdnSttsHstry) */ <update id="deleteCrdnSttsHstry" parameterType="cokr.xit.fims.cmmn.CrdnSttsHstry">/* 단속 상태 이력 삭제(crdnSttsHstryMapper.deleteCrdnSttsHstry) */
UPDATE TB_CRDN_STTS_HSTRY UPDATE TB_CRDN_STTS_HSTRY
SET USE_YN = 'N' /* 사용 여부 */ SET USE_YN = 'N' <!-- 사용 여부 -->
, MDFCN_DT = <include refid="utility.now" /> /* 수정 일시 */ , MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{crdnSttsHstry.modifiedBy} /* 수정자 */ , MDFR = #{modifiedBy} <!-- 수정자 -->
WHERE USE_YN = 'Y' /* 사용 여부 */ WHERE USE_YN = 'Y' <!-- 사용 여부 -->
<if test="sttsHstryId != null"> <if test="sttsHstryId != null">
AND STTS_HSTRY_ID = #{sttsHstryId} AND STTS_HSTRY_ID = #{sttsHstryId}
</if> </if>
<if test="crdnId != null"> <if test="crdnId != null">
AND CRDN_ID = #{crdnId} AND CRDN_ID = #{crdnId}
</if> </if>
</update> </update>
<update id="updateCrdnSttsCd" parameterType="map">/* 단속 대장 수정(crdnSttsHstryMapper.updateCrdnSttsCd) */ <update id="updateCrdnSttsCd" parameterType="cokr.xit.fims.cmmn.CrdnSttsHstry">/* 단속 대장 수정(crdnSttsHstryMapper.updateCrdnSttsCd) */
UPDATE TB_CRDN UPDATE TB_CRDN
SET CRDN_STTS_CD = #{crdnSttsHstry.crdnSttsCd} /* 단속 상태 코드 */ SET CRDN_STTS_CD = #{crdnSttsCd} <!-- 단속 상태 코드 -->
<choose> <choose>
<when test="crdnSttsHstry.crdnSttsChgDt != null"> <when test="crdnSttsChgDt != null">
, CRDN_STTS_CHG_DT = #{crdnSttsHstry.crdnSttsChgDt} /* 단속 상태 변경 일시 */ , CRDN_STTS_CHG_DT = #{crdnSttsChgDt} <!-- 단속 상태 변경 일시 -->
</when> </when>
<otherwise> <otherwise>
, CRDN_STTS_CHG_DT = <include refid="utility.now" /> /* 단속 상태 변경 일시 */ , CRDN_STTS_CHG_DT = <include refid="utility.now" /> <!-- 단속 상태 변경 일시 -->
</otherwise> </otherwise>
</choose> </choose>
, MDFCN_DT = <include refid="utility.now" /> /* 수정 일시 */ , MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{crdnSttsHstry.modifiedBy} /* 수정자 */ , MDFR = #{modifiedBy} <!-- 수정자 -->
WHERE CRDN_ID = #{crdnSttsHstry.crdnId} /* 단속 ID */ WHERE CRDN_ID = #{crdnId} <!-- 단속 ID -->
</update> </update>
</mapper> </mapper>

@ -30,14 +30,17 @@
<sql id="selectList"> <sql id="selectList">
SELECT LE.LEVY_EXCL_ID <!-- 부과제외 ID --> SELECT LE.LEVY_EXCL_ID <!-- 부과제외 ID -->
, LE.LEVY_EXCL_YMD <!-- 부과제외 일자 --> , LE.LEVY_EXCL_YMD <!-- 부과제외 일자 -->
, (SELECT GET_CODE_NM('FIM021', LE.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM <!-- 부과 제외 구분 명 --> , LE.LEVY_EXCL_SE_CD <!-- 부과 제외 구분 코드 -->
, (SELECT GET_CODE_NM('FIM022', LE.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM <!-- 부과 제외 사유 명 --> , (SELECT GET_CODE_NM('FIM021', LE.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM <!-- 부과 제외 구분 명 -->
, LE.LEVY_EXCL_RSN_CD <!-- 부과 제외 사유 코드 -->
, (SELECT GET_CODE_NM('FIM022', LE.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM <!-- 부과 제외 사유 명 -->
, LE.ETC_CN <!-- 기타 내용 --> , LE.ETC_CN <!-- 기타 내용 -->
, LE.DEL_YN <!-- 삭제 여부 --> , LE.DEL_YN <!-- 삭제 여부 -->
, (SELECT GET_CODE_NM('CMN007', LE.DEL_YN) FROM DUAL) AS DEL_YN_NM <!-- 삭제 여부 명 -->
, LE.REG_DT <!-- 등록 일시 --> , LE.REG_DT <!-- 등록 일시 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.RGTR) AS RGTR_NM <!-- 등록자 명 --> , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.RGTR) AS RGTR_NM <!-- 등록자 명 -->
, LE.MDFCN_DT <!-- 수정 일시 --> , LE.MDFCN_DT <!-- 수정 일시 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.MDFR) AS MDFR_NM <!-- 수정자 명 --> , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.MDFR) AS MDFR_NM <!-- 수정자 명 -->
, C.CRDN_ID <!-- 단속 ID --> , C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD <!-- 시군구 코드 --> , C.SGG_CD <!-- 시군구 코드 -->
, C.TASK_SE_CD <!-- 업무 구분 코드 --> , C.TASK_SE_CD <!-- 업무 구분 코드 -->
@ -45,23 +48,19 @@
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM <!-- 단속 일시 --> , (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM <!-- 단속 일시 -->
, C.VHRNO <!-- 차량번호 --> , C.VHRNO <!-- 차량번호 -->
, C.CRDN_STDG_NM <!-- 단속 법정동 명 --> , C.CRDN_STDG_NM <!-- 단속 법정동 명 -->
, C.CRDN_ROAD_NM <!-- 단속 도로 명 -->
, C.CRDN_PLC <!-- 단속 장소 --> , C.CRDN_PLC <!-- 단속 장소 -->
, C.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 --> , C.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 -->
, C.FFNLG_AMT <!-- 과태료 금액 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 --> , C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, (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 <!-- 단속 상태 명 -->
, (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM <!-- 단속 구분 명 --> , (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM <!-- 단속 구분 명 -->
, (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM <!-- 단속 특별구역 명 --> , (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM <!-- 단속 특별구역 명 -->
, (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM <!-- 주차 가능 결과 명 --> , (SELECT GET_CODE_NM('LVS005', CA.USE_FUEL_CD) FROM DUAL) AS USE_FUEL_NM <!-- 사용 연료 명 -->
, V.VLTN_ID <!-- 위반 ID --> , (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM <!-- 주차 가능 결과 명 -->
, V.VLTN_CD <!-- 위반 코드 --> , (SELECT V.VLTN_ARTCL FROM TB_VLTN V WHERE C.VLTN_ID = V.VLTN_ID) AS VLTN_ARTCL <!-- 위반 항목 -->
, V.VLTN_ARTCL <!-- 위반 항목 -->
, P.RTPYR_ID <!-- 납부자 ID --> , P.RTPYR_ID <!-- 납부자 ID -->
, (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM <!-- 납부자 구분 명 --> , (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM <!-- 납부자 구분 명 -->
, P.RTPYR_NO <!-- 납부자 번호 --> , P.RTPYR_NO <!-- 납부자 번호 -->
, P.RTPYR_NM <!-- 납부자 명 --> , P.RTPYR_NM <!-- 납부자 명 -->
, (SELECT GET_BRDT_FORMAT(P.RTPYR_BRDT, '.') FROM DUAL) AS RTPYR_BRDT_MASK <!-- 납부자 생년월일 마스크 -->
, PA.ZIP <!-- 우편번호 --> , PA.ZIP <!-- 우편번호 -->
, PA.ADDR <!-- 주소 --> , PA.ADDR <!-- 주소 -->
, PA.DTL_ADDR <!-- 상세 주소 --> , PA.DTL_ADDR <!-- 상세 주소 -->
@ -74,7 +73,6 @@
FROM TB_LEVY_EXCL LE FROM TB_LEVY_EXCL LE
INNER JOIN TB_CRDN C ON (LE.CRDN_ID = C.CRDN_ID) INNER JOIN TB_CRDN C ON (LE.CRDN_ID = C.CRDN_ID)
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID)
INNER JOIN TB_VLTN V ON (C.VLTN_ID = V.VLTN_ID)
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) 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_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N') LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N')
@ -186,30 +184,29 @@
SELECT C.CRDN_ID <!-- 단속 ID --> SELECT C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD <!-- 시군구 코드 --> , C.SGG_CD <!-- 시군구 코드 -->
, C.TASK_SE_CD <!-- 업무 구분 코드 --> , C.TASK_SE_CD <!-- 업무 구분 코드 -->
, C.CRDN_YMD <!-- 단속 일자 -->
, C.CRDN_TM <!-- 단속 시각 -->
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM <!-- 단속 일시 --> , (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM <!-- 단속 일시 -->
, C.VHRNO <!-- 차량번호 --> , C.VHRNO <!-- 차량번호 -->
, C.CRDN_STDG_NM <!-- 단속 법정동 명 --> , C.CRDN_STDG_NM <!-- 단속 법정동 명 -->
, C.CRDN_PLC <!-- 단속 장소 --> , C.CRDN_PLC <!-- 단속 장소 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 --> , C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, (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 <!-- 단속 상태 명 -->
, C.CRDN_STTS_CHG_DT <!-- 단속 상태 변경 일시 --> , CA.PARKNG_PSBLTY_RSLT_CD <!-- 주차 가능 결과 코드 -->
, CC.CVLCPT_LINK_ID <!-- 민원 연계 ID --> , CC.CVLCPT_LINK_ID <!-- 민원 연계 ID -->
, CC.CVLCPT_PRCS_CD <!-- 민원 처리 코드 --> , CC.CVLCPT_PRCS_CD <!-- 민원 처리 코드 -->
, L.LEVY_ID <!-- 부과 ID --> , L.LEVY_ID <!-- 부과 ID -->
, LE.LEVY_EXCL_ID <!-- 부과제외 ID --> , LE.LEVY_EXCL_ID <!-- 부과제외 ID -->
, LE.LEVY_EXCL_YMD <!-- 부과제외 일자 --> , LE.LEVY_EXCL_YMD <!-- 부과제외 일자 -->
, LE.LEVY_EXCL_SE_CD <!-- 부과제외 구분 코드 --> , LE.LEVY_EXCL_SE_CD <!-- 부과제외 구분 코드 -->
, (SELECT GET_CODE_NM('FIM021', LE.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM <!-- 부과 제외 구분 명 --> , (SELECT GET_CODE_NM('FIM021', LE.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM <!-- 부과 제외 구분 명 -->
, LE.LEVY_EXCL_RSN_CD <!-- 부과제외 사유 코드 --> , LE.LEVY_EXCL_RSN_CD <!-- 부과제외 사유 코드 -->
, (SELECT GET_CODE_NM('FIM022', LE.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM <!-- 부과 제외 사유 명 --> , (SELECT GET_CODE_NM('FIM022', LE.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM <!-- 부과 제외 사유 명 -->
, LE.ETC_CN <!-- 기타 내용 --> , LE.ETC_CN <!-- 기타 내용 -->
, LE.REG_DT <!-- 등록 일시 --> , LE.REG_DT <!-- 등록 일시 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.RGTR) AS RGTR_NM <!-- 등록자 명 --> , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.RGTR) AS RGTR_NM <!-- 등록자 명 -->
, LE.MDFCN_DT <!-- 수정 일시 --> , LE.MDFCN_DT <!-- 수정 일시 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.MDFR) AS MDFR_NM <!-- 수정자 명 --> , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.MDFR) AS MDFR_NM <!-- 수정자 명 -->
FROM TB_CRDN C FROM TB_CRDN C
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID)
LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N') LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N')
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_LEVY_EXCL LE ON (C.CRDN_ID = LE.CRDN_ID AND LE.DEL_YN = 'N') LEFT OUTER JOIN TB_LEVY_EXCL LE ON (C.CRDN_ID = LE.CRDN_ID AND LE.DEL_YN = 'N')
@ -234,11 +231,14 @@
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>
<insert id="insertLevyExcl" parameterType="map">/* 부과제외 대장 등록(levyExclMapper.insertLevyExcl) */ <insert id="insertLevyExcl" parameterType="cokr.xit.fims.excl.LevyExcl">/* 부과제외 대장 등록(levyExclMapper.insertLevyExcl) */
<selectKey resultType="string" keyProperty="levyExcl.levyExclId" keyColumn="NEW_ID" order="BEFORE"> <selectKey resultType="string" keyProperty="levyExclId" keyColumn="NEW_ID" order="BEFORE">
SELECT CONCAT(#{levyExcl.sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(LEVY_EXCL_ID, 10)) + 1, 1) AS INT), 11, '0')) AS NEW_ID <include refid="numbering.keyBySggAndYear">
FROM TB_LEVY_EXCL <property name="TABLE_NAME" value="TB_LEVY_EXCL" />
WHERE LEVY_EXCL_ID LIKE CONCAT(#{levyExcl.sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), '%') <property name="TABLE_KEY" value="LEVY_EXCL_ID" />
<property name="sggCd" value="#{sggCd}" />
<property name="pad" value="20" />
</include>
</selectKey> </selectKey>
INSERT INSERT
INTO TB_LEVY_EXCL ( INTO TB_LEVY_EXCL (
@ -255,67 +255,48 @@
, MDFR <!-- 수정자 --> , MDFR <!-- 수정자 -->
) )
VALUES ( VALUES (
#{levyExcl.levyExclId} <!-- 부과 제외 ID --> #{levyExclId} <!-- 부과 제외 ID -->
, #{levyExcl.crdnId} <!-- 단속 ID --> , #{crdnId} <!-- 단속 ID -->
, #{levyExcl.levyExclYmd} <!-- 부과 제외 일자 --> , #{levyExclYmd} <!-- 부과 제외 일자 -->
, #{levyExcl.levyExclSeCd} <!-- 부과 제외 구분 코드 --> , #{levyExclSeCd} <!-- 부과 제외 구분 코드 -->
, #{levyExcl.levyExclRsnCd} <!-- 부과 제외 사유 코드 --> , #{levyExclRsnCd} <!-- 부과 제외 사유 코드 -->
, #{levyExcl.etcCn} <!-- 기타 내용 --> , #{etcCn} <!-- 기타 내용 -->
, 'N' <!-- 삭제 여부 --> , 'N' <!-- 삭제 여부 -->
, <include refid="utility.now" /> <!-- 등록 일시 --> , <include refid="utility.now" /> <!-- 등록 일시 -->
, #{levyExcl.createdBy} <!-- 등록자 --> , #{createdBy} <!-- 등록자 -->
, <include refid="utility.now" /> <!-- 수정 일시 --> , <include refid="utility.now" /> <!-- 수정 일시 -->
, #{levyExcl.modifiedBy} <!-- 수정자 --> , #{modifiedBy} <!-- 수정자 -->
) )
</insert> </insert>
<update id="updateLevyExcl" parameterType="map">/* 부과제외 대장 수정(levyExclMapper.updateLevyExcl) */ <update id="updateLevyExcl" parameterType="cokr.xit.fims.excl.LevyExcl">/* 부과제외 대장 수정(levyExclMapper.updateLevyExcl) */
UPDATE TB_LEVY_EXCL UPDATE TB_LEVY_EXCL
SET LEVY_EXCL_YMD = #{levyExcl.levyExclYmd} <!-- 부과 제외 일자 --> SET LEVY_EXCL_YMD = #{levyExclYmd} <!-- 부과 제외 일자 -->
, LEVY_EXCL_RSN_CD = #{levyExcl.levyExclRsnCd} <!-- 부과 제외 사유 코드 --> , LEVY_EXCL_RSN_CD = #{levyExclRsnCd} <!-- 부과 제외 사유 코드 -->
, ETC_CN = #{levyExcl.etcCn} <!-- 기타 내용 --> , ETC_CN = #{etcCn} <!-- 기타 내용 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 --> , MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{levyExcl.modifiedBy} <!-- 수정자 --> , MDFR = #{modifiedBy} <!-- 수정자 -->
WHERE LEVY_EXCL_ID = #{levyExcl.levyExclId} <!-- 부과 제외 ID --> WHERE LEVY_EXCL_ID = #{levyExclId} <!-- 부과 제외 ID -->
AND DEL_YN = 'N' AND DEL_YN = 'N'
</update> </update>
<update id="deleteLevyExcl" parameterType="map">/* 부과제외 대장 삭제(levyExclMapper.deleteLevyExcl) */ <update id="deleteLevyExcl" parameterType="cokr.xit.fims.excl.LevyExcl">/* 부과제외 대장 삭제(levyExclMapper.deleteLevyExcl) */
UPDATE TB_LEVY_EXCL UPDATE TB_LEVY_EXCL
SET DEL_YN = 'Y' SET DEL_YN = 'Y'
, DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 --> , DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 -->
, DLTR = #{levyExcl.modifiedBy} <!-- 삭제자 --> , DLTR = #{modifiedBy} <!-- 삭제자 -->
, DEL_RSN = #{levyExcl.delRsn} <!-- 삭제 사유 --> , DEL_RSN = #{delRsn} <!-- 삭제 사유 -->
WHERE LEVY_EXCL_ID = #{levyExcl.levyExclId} <!-- 부과 제외 ID --> WHERE LEVY_EXCL_ID = #{levyExclId} <!-- 부과 제외 ID -->
AND DEL_YN = 'N' AND DEL_YN = 'N'
</update> </update>
<update id="updateParkngPsbltyRsltCd" parameterType="map">/* 단속 대장 주차가능결과코드를 수정(levyExclMapper.updateParkngPsbltyRsltCd) */ <update id="updateParkngPsbltyRsltCd" parameterType="cokr.xit.fims.crdn.Crdn">/* 단속 대장 주차가능결과코드를 수정(levyExclMapper.updateParkngPsbltyRsltCd) */
UPDATE TB_CRDN_ADI UPDATE TB_CRDN_ADI
SET PARKNG_PSBLTY_RSLT_CD= #{crdn.parkngPsbltyRsltCd} <!-- 주차 가능 결과 코드 --> SET PARKNG_PSBLTY_RSLT_CD= #{parkngPsbltyRsltCd} <!-- 주차 가능 결과 코드 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 --> , MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{crdn.modifiedBy} <!-- 수정자 --> , MDFR = #{modifiedBy} <!-- 수정자 -->
WHERE CRDN_ID = #{crdn.crdnId} <!-- 단속 ID --> WHERE CRDN_ID = #{crdnId} <!-- 단속 ID -->
AND DEL_YN = 'N' AND DEL_YN = 'N'
</update> </update>
<select id="selectSndngDtl" parameterType="map" resultType="dataobject">/* 발송상세 대장 객체 가져오기(levyExclMapper.selectSndngDtl) */
SELECT SNDNG_ID <!-- 발송 ID -->
, CRDN_ID <!-- 단속 ID -->
, SNDNG_RCVMT_CD <!-- 발송 수납 코드 -->
FROM TB_SNDNG_DTL
WHERE CRDN_ID = #{crdnId} <!-- 단속 ID -->
AND SNDNG_RCVMT_CD = #{sndngRcvmtCd} <!-- 발송 수납 코드 -->
AND DEL_YN = 'N'
</select>
<update id="updateRcvmtCd" parameterType="map">/* 발송상세 대장 수납코드를 수정(levyExclMapper.updateRcvmtCd) */
UPDATE TB_SNDNG_DTL
SET SNDNG_RCVMT_CD = NULL <!-- 발송 수납 코드 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{sndngDtl.modifiedBy} <!-- 수정자 -->
WHERE CRDN_ID = #{sndngDtl.crdnId} <!-- 단속 ID -->
AND DEL_YN = 'N'
</update>
</mapper> </mapper>

@ -42,7 +42,6 @@
, SV.MDFR <!-- 수정자 --> , SV.MDFR <!-- 수정자 -->
, SV.DEL_DT <!-- 삭제 일시 --> , SV.DEL_DT <!-- 삭제 일시 -->
, SV.DLTR <!-- 삭제자 --> , SV.DLTR <!-- 삭제자 -->
, (SELECT GET_CODE_NM('FIM054', SV.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
, (SELECT GET_CODE_NM('FIM047', SV.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM <!-- 발송 구분 명 --> , (SELECT GET_CODE_NM('FIM047', SV.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM <!-- 발송 구분 명 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SV.RGTR) AS RGTR_NM <!-- 등록자 명 --> , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SV.RGTR) AS RGTR_NM <!-- 등록자 명 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SV.MDFR) AS MDFR_NM <!-- 등록자 명 --> , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SV.MDFR) AS MDFR_NM <!-- 등록자 명 -->
@ -156,7 +155,6 @@
, SV.MDFR <!-- 수정자 --> , SV.MDFR <!-- 수정자 -->
, SV.DEL_DT <!-- 삭제 일시 --> , SV.DEL_DT <!-- 삭제 일시 -->
, SV.DLTR <!-- 삭제자 --> , SV.DLTR <!-- 삭제자 -->
, (SELECT GET_CODE_NM('FIM054', SV.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
, (SELECT GET_CODE_NM('FIM047', SV.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM <!-- 발송 구분 명 --> , (SELECT GET_CODE_NM('FIM047', SV.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM <!-- 발송 구분 명 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SV.RGTR) AS RGTR_NM <!-- 등록자 명 --> , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SV.RGTR) AS RGTR_NM <!-- 등록자 명 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SV.MDFR) AS MDFR_NM <!-- 등록자 명 --> , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SV.MDFR) AS MDFR_NM <!-- 등록자 명 -->

@ -378,7 +378,7 @@
</form> </form>
</div> </div>
<jsp:include page="/WEB-INF/jsp/fims/photo-main.jsp" /> <jsp:include page="/WEB-INF/jsp/fims/photo-main.jsp" />
</div> </div>
<label for="" id="refreshEnd--${pageName}" class="parentGrid" hidden></label> <label for="" id="refreshEnd--${pageName}" class="parentGrid" hidden></label>
@ -408,7 +408,7 @@ $(document).ready(function(){
var $P = pageObject["${pageName}"]; var $P = pageObject["${pageName}"];
$("#photoMainWrapper--${pageName}").addClass("w-px-550 min-w-px-550"); $("#photoMainWrapper--${pageName}").addClass("w-px-550 min-w-px-550");
if(pageObject.parentRes.length > 0){ if(pageObject.parentRes.length > 0){
$P.provided = pageObject.parentRes.pop(); $P.provided = pageObject.parentRes.pop();
} else { } else {
@ -442,7 +442,7 @@ $(document).ready(function(){
$P.formFields.set($P.crdnControl,dataItem); $P.formFields.set($P.crdnControl,dataItem);
} }
/************************************************************************** /**************************************************************************
* pageObject.function * pageObject.function
**************************************************************************/ **************************************************************************/
@ -455,9 +455,9 @@ $(document).ready(function(){
if(rtpyrNm.value == ""){ if(rtpyrNm.value == ""){
dialog.alert({ dialog.alert({
content:"계고 처리를 하기 위해선 소유주정보가 입력되어야 합니다.", content:"계고 처리를 하기 위해선 소유주정보가 입력되어야 합니다.",
init : function() { init : function() {
setDialogZindex(); setDialogZindex();
focusClose(); focusClose();
}, },
onClose:function(){rtpyrNm.focus();} onClose:function(){rtpyrNm.focus();}
}); });
@ -466,12 +466,17 @@ $(document).ready(function(){
} }
var crdnId = $("#crdnId--${pageName}").val(); var crdnId = $("#crdnId--${pageName}").val();
var sggCd = $("#sggCd--${pageName}").val();
var taskSeCd = $("#taskSeCd--${pageName}").val();
var params = { var params = {
"crdnId" : crdnId, "openerPageName" : "${pageName}",
"levyExclSeCd" : levyExclSeCd,
"saveCallbackFuncName" : "pageObject['${pageName}']['exclSaveCallback']", "saveCallbackFuncName" : "pageObject['${pageName}']['exclSaveCallback']",
"callPurpose" : "create" "callPurpose" : "create",
"crdnId" : crdnId,
"sggCd" : sggCd,
"taskSeCd" : taskSeCd,
"levyExclSeCd" : levyExclSeCd
}; };
ajax.get({ ajax.get({
@ -496,29 +501,28 @@ $(document).ready(function(){
$P.save = (info, accept) => { $P.save = (info, accept) => {
if (!info) return; if (!info) return;
var formData = new FormData(document.getElementById("frmEdit--${pageName}"));
if(accept){ if(accept){
formData.append("acceptYn", "Y"); info.acceptYn = "Y";
} else { } else {
formData.append("acceptYn", "N"); info.acceptYn = "N";
} }
ajax.post({ ajax.post({
url : $P.crdnControl.urls.update, url : $P.crdnControl.urls.update,
data : formData, contentType : false, processData : false, data : info,
success : (resp) => { success : (resp) => {
$P.saveCallback(resp); $P.saveCallback(resp);
} }
}); });
}; };
$P.exclSaveCallback = function(exclInfo){ $P.exclSaveCallback = function(exclInfo){
var mergeInfo = $P.formFields.get(); var mergeInfo = $P.formFields.get();
mergeInfo.etcCn = exclInfo.etcCn; mergeInfo.etcCn = exclInfo.etcCn;
mergeInfo.levyExclId = exclInfo.levyExclId; mergeInfo.levyExclId = exclInfo.levyExclId;
mergeInfo.levyExclYmd = exclInfo.levyExclYmd;
mergeInfo.levyExclRsnCd = exclInfo.levyExclRsnCd; mergeInfo.levyExclRsnCd = exclInfo.levyExclRsnCd;
mergeInfo.levyExclSeCd = exclInfo.levyExclSeCd; mergeInfo.levyExclSeCd = exclInfo.levyExclSeCd;
@ -530,9 +534,9 @@ $(document).ready(function(){
dialog.alert({ dialog.alert({
content : "저장됐습니다.", content : "저장됐습니다.",
init : function() { init : function() {
setDialogZindex(); setDialogZindex();
focusClose(); focusClose();
} }
}); });
@ -558,7 +562,7 @@ $(document).ready(function(){
$P.provided.refreshList(); $P.provided.refreshList();
} }
}; };
$P.fnPrev = () => { $P.fnPrev = () => {
var prevKey = $P.provided.getPrevKey($("#crdnId--${pageName}").val()); var prevKey = $P.provided.getPrevKey($("#crdnId--${pageName}").val());
if(prevKey != ""){ if(prevKey != ""){
@ -587,7 +591,7 @@ $(document).ready(function(){
$("#btnViewCrdnList--${pageName}").attr("hidden","hidden"); $("#btnViewCrdnList--${pageName}").attr("hidden","hidden");
$("#btnViewCvlcptDscsnList--${pageName}").attr("hidden","hidden"); $("#btnViewCvlcptDscsnList--${pageName}").attr("hidden","hidden");
//보안모드 //보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked")); fn_securityModeToggle($("#securityMode--top").is(":checked"));
@ -595,7 +599,7 @@ $(document).ready(function(){
$("#countStauts--${pageName}").val(cs); $("#countStauts--${pageName}").val(cs);
$P.provided.selectRow(crdnId); $P.provided.selectRow(crdnId);
var existVideo = false; var existVideo = false;
if(crdnInfo.VIDEO_EXIST_YN == "Y"){ if(crdnInfo.VIDEO_EXIST_YN == "Y"){
existVideo = true; existVideo = true;
@ -618,9 +622,9 @@ $(document).ready(function(){
if (resp.saved) { if (resp.saved) {
dialog.alert({ dialog.alert({
content : "복사 자료가 생성되었습니다.", content : "복사 자료가 생성되었습니다.",
init : function() { init : function() {
setDialogZindex(); setDialogZindex();
focusClose(); focusClose();
} }
}); });
@ -756,7 +760,7 @@ $(document).ready(function(){
}); });
} }
$P.fnReset = () => { $P.fnReset = () => {
var crdnId = $("#crdnId--${pageName}").val(); var crdnId = $("#crdnId--${pageName}").val();
@ -773,9 +777,9 @@ $(document).ready(function(){
if(vhrno.value == ""){ if(vhrno.value == ""){
dialog.alert({ dialog.alert({
content:"수용 처리를 하기 위해선 차량번호가 입력되어야 합니다.", content:"수용 처리를 하기 위해선 차량번호가 입력되어야 합니다.",
init : function() { init : function() {
setDialogZindex(); setDialogZindex();
focusClose(); focusClose();
}, },
onClose:function(){vhrno.focus();} onClose:function(){vhrno.focus();}
}); });
@ -785,9 +789,9 @@ $(document).ready(function(){
if(rtpyrNm.value == ""){ if(rtpyrNm.value == ""){
dialog.alert({ dialog.alert({
content:"수용 처리를 하기 위해선 소유주정보가 입력되어야 합니다.", content:"수용 처리를 하기 위해선 소유주정보가 입력되어야 합니다.",
init : function() { init : function() {
setDialogZindex(); setDialogZindex();
focusClose(); focusClose();
}, },
onClose:function(){rtpyrNm.focus();} onClose:function(){rtpyrNm.focus();}
}); });
@ -818,9 +822,9 @@ $(document).ready(function(){
dialog.alert({ dialog.alert({
content : message, content : message,
init : function() { init : function() {
setDialogZindex(); setDialogZindex();
focusClose(); focusClose();
} }
}); });
@ -846,7 +850,7 @@ $(document).ready(function(){
}); });
} }
/************************************************************************** /**************************************************************************
* 초기화(업무별 입력항목) * 초기화(업무별 입력항목)
**************************************************************************/ **************************************************************************/
@ -879,25 +883,25 @@ $(document).ready(function(){
$("#vhrno--${pageName}").onEnterPress(function(){ $("#vhrno--${pageName}").onEnterPress(function(){
$P.getVehicleTotalInfo(event.target); $P.getVehicleTotalInfo(event.target);
}); });
//차적조회(단속내역,민원상담내역,차적기본조회,장애인표지조회) //차적조회(단속내역,민원상담내역,차적기본조회,장애인표지조회)
$P.getVehicleTotalInfo = async function(vhrnoEl){ $P.getVehicleTotalInfo = async function(vhrnoEl){
var otherWindow = false; var otherWindow = false;
if(!vhrnoEl.id.endsWith("--${pageName}")){ if(!vhrnoEl.id.endsWith("--${pageName}")){
otherWindow = true; otherWindow = true;
} }
var taskSeCd = "${taskSeCd}"; var taskSeCd = "${taskSeCd}";
var crdnYmd = $("#crdnYmd--${pageName}").val().replaceAll("-", ""); var crdnYmd = $("#crdnYmd--${pageName}").val().replaceAll("-", "");
var vhrno = vhrnoEl.value; var vhrno = vhrnoEl.value;
if(crdnYmd == ""){ if(crdnYmd == ""){
if(!otherWindow){ if(!otherWindow){
dialog.alert({ dialog.alert({
content:"단속일자를 입력하세요.", content:"단속일자를 입력하세요.",
init : function() { init : function() {
setDialogZindex(); setDialogZindex();
focusClose(); focusClose();
}, },
onClose:function(){ $("#crdnYmd--${pageName}").focus(); } onClose:function(){ $("#crdnYmd--${pageName}").focus(); }
}); });
@ -908,14 +912,14 @@ $(document).ready(function(){
}; };
} }
} }
if(vhrno == ""){ if(vhrno == ""){
if(!otherWindow){ if(!otherWindow){
dialog.alert({ dialog.alert({
content:"차량번호를 입력하세요.", content:"차량번호를 입력하세요.",
init : function() { init : function() {
setDialogZindex(); setDialogZindex();
focusClose(); focusClose();
}, },
onClose:function(){ $(vhrnoEl).focus(); } onClose:function(){ $(vhrnoEl).focus(); }
}); });
@ -926,7 +930,7 @@ $(document).ready(function(){
}; };
} }
} }
var sggCd = $("#sggCd--${pageName}").val(); var sggCd = $("#sggCd--${pageName}").val();
var resp = null; var resp = null;
@ -938,7 +942,7 @@ $(document).ready(function(){
} else { } else {
$("#btnViewCrdnList--${pageName}").attr("hidden","hidden"); $("#btnViewCrdnList--${pageName}").attr("hidden","hidden");
} }
// //
resp = await countCvlcptDscsnByVhrno(vhrno, taskSeCd, sggCd); resp = await countCvlcptDscsnByVhrno(vhrno, taskSeCd, sggCd);
if(resp.cvlcptDscsnNocs.NOCS > 0){ if(resp.cvlcptDscsnNocs.NOCS > 0){
@ -948,13 +952,13 @@ $(document).ready(function(){
$("#btnViewCvlcptDscsnList--${pageName}").attr("hidden","hidden"); $("#btnViewCvlcptDscsnList--${pageName}").attr("hidden","hidden");
} }
// //
resp = await getVhclInfo(sggCd, vhrno, crdnYmd); resp = await getVhclInfo(sggCd, vhrno, crdnYmd);
if(otherWindow){ if(otherWindow){
$("#vhrno--${pageName}").val(vhrno); $("#vhrno--${pageName}").val(vhrno);
} }
if(!resp.found){ if(!resp.found){
$("#rtpyrId--${pageName}").val(""); $("#rtpyrId--${pageName}").val("");
@ -969,13 +973,13 @@ $(document).ready(function(){
$("#zip--${pageName}").val(""); $("#zip--${pageName}").val("");
$("#addr--${pageName}").val(""); $("#addr--${pageName}").val("");
$("#dtlAddr--${pageName}").val(""); $("#dtlAddr--${pageName}").val("");
if(!otherWindow){ if(!otherWindow){
dialog.alert({ dialog.alert({
content : "차량 정보가 없습니다.", content : "차량 정보가 없습니다.",
init : function() { init : function() {
setDialogZindex(); setDialogZindex();
focusClose(); focusClose();
} }
}); });
return; return;
@ -1033,7 +1037,7 @@ $(document).ready(function(){
if(taskSeCd == "DPV"){ if(taskSeCd == "DPV"){
resp = await getVhclDisabledParkingInfo(vhrno); resp = await getVhclDisabledParkingInfo(vhrno);
if(resp.parkingInfo.BOHUN_PARKING_PSBL_YN == "Y" || resp.parkingInfo.PARKING_PSBL_YN == "Y") { if(resp.parkingInfo.BOHUN_PARKING_PSBL_YN == "Y" || resp.parkingInfo.PARKING_PSBL_YN == "Y") {
$("#parkngPsbltyRsltCd--${pageName}").val("2"); $("#parkngPsbltyRsltCd--${pageName}").val("2");
} else { } else {
@ -1041,7 +1045,7 @@ $(document).ready(function(){
} }
} }
if(otherWindow){ if(otherWindow){
return { return {
vhrno : $("#vhrno--${pageName}").val(), vhrno : $("#vhrno--${pageName}").val(),
@ -1052,7 +1056,7 @@ $(document).ready(function(){
return; return;
} }
}; };
//단속내역 보기 //단속내역 보기
$("#btnViewCrdnList--${pageName}").on("click", function(){ $("#btnViewCrdnList--${pageName}").on("click", function(){
ajax.get({ ajax.get({
@ -1082,7 +1086,7 @@ $(document).ready(function(){
} }
}); });
}); });
//민원내역 보기 //민원내역 보기
$("#btnViewCvlcptDscsnList--${pageName}").on("click", function(){ $("#btnViewCvlcptDscsnList--${pageName}").on("click", function(){
ajax.get({ ajax.get({
@ -1112,8 +1116,8 @@ $(document).ready(function(){
} }
}); });
}); });
if("${taskSeCd}" == "DPV"){ if("${taskSeCd}" == "DPV"){
$("#vltnCd--${pageName}").on("change", function(){ $("#vltnCd--${pageName}").on("change", function(){
if(this.value == "01"){ if(this.value == "01"){
@ -1135,7 +1139,7 @@ $(document).ready(function(){
if(!$P.provided.hasData(this.dataset.cursorKey)){ if(!$P.provided.hasData(this.dataset.cursorKey)){
dialog.close("cvlcptInitialDataEditDialog--${openerPageName}"); dialog.close("cvlcptInitialDataEditDialog--${openerPageName}");
return; return;
} }
$P.fnGo(this.dataset.cursorKey); $P.fnGo(this.dataset.cursorKey);
}); });
@ -1160,7 +1164,7 @@ $(document).ready(function(){
$("#btnViewCrdnList--${pageName}").attr("hidden","hidden"); $("#btnViewCrdnList--${pageName}").attr("hidden","hidden");
$("#btnViewCvlcptDscsnList--${pageName}").attr("hidden","hidden"); $("#btnViewCvlcptDscsnList--${pageName}").attr("hidden","hidden");
var crdnInfo = ${crdnInfo}; var crdnInfo = ${crdnInfo};
crdnInfo.CVLCPT_APLY_CN = escapeHTMLEntity(crdnInfo.CVLCPT_APLY_CN); crdnInfo.CVLCPT_APLY_CN = escapeHTMLEntity(crdnInfo.CVLCPT_APLY_CN);
$P.crdnControl.dataset.setData([crdnInfo]); $P.crdnControl.dataset.setData([crdnInfo]);
@ -1177,7 +1181,7 @@ $(document).ready(function(){
var cs = $P.provided.getCountStatus($("#crdnId--${pageName}").val()); var cs = $P.provided.getCountStatus($("#crdnId--${pageName}").val());
$("#countStauts--${pageName}").val(cs); $("#countStauts--${pageName}").val(cs);
//사진영역 설정 //사진영역 설정
settingPhotoMain("${pageName}", "crdnId--${pageName}", settingPhotoMain("${pageName}", "crdnId--${pageName}",
function(){ function(){
@ -1191,16 +1195,16 @@ $(document).ready(function(){
return await $P.getVehicleTotalInfo(vhrnoEl); return await $P.getVehicleTotalInfo(vhrnoEl);
} }
); );
//사진영역 초기화 //사진영역 초기화
var existVideo = false; var existVideo = false;
if(crdnInfo.VIDEO_EXIST_YN == "Y"){ if(crdnInfo.VIDEO_EXIST_YN == "Y"){
existVideo = true; existVideo = true;
} }
initPhotoMain("${pageName}", crdnInfo.fileList, existVideo); initPhotoMain("${pageName}", crdnInfo.fileList, existVideo);
}); });
</script> </script>

@ -132,7 +132,7 @@
// 저장 callback // 저장 callback
$P.control.onSave = (resp) => { $P.control.onSave = (resp) => {
let dialogTitle = $("#" + $P.control.prefix + "Dialog").find("h5.modal-title").html(); let dialogTitle = $("#" + $P.control.prefix + "Dialog--${openerPageName}").find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
// 메시지 출력 // 메시지 출력
@ -142,7 +142,7 @@
}); });
if (resp.saved) { if (resp.saved) {
dialog.close($P.control.prefix + "Dialog"); dialog.close($P.control.prefix + "Dialog--${openerPageName}");
if ("${savedCallbackFuncName}" != "") { if ("${savedCallbackFuncName}" != "") {
${savedCallbackFuncName}(resp.saved); ${savedCallbackFuncName}(resp.saved);
@ -202,6 +202,9 @@
dialog.alert({ dialog.alert({
content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?" content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
, init: () => {
setDialogZindex();
}
, onOK: () => { , onOK: () => {
$P.control.save($P.formFields.get()); // formFields $P.control.save($P.formFields.get()); // formFields
} }
@ -233,7 +236,7 @@
// 초기 화면 설정 // 초기 화면 설정
$P.initForm = () => { $P.initForm = () => {
// Dialog 마우스로 드래그 할 수 있도록 설정. // Dialog 마우스로 드래그 할 수 있도록 설정.
fnMakeDraggableDialog(document.getElementById($P.control.prefix + "Dialog")); fnMakeDraggableDialog(document.getElementById($P.control.prefix + "Dialog--${openerPageName}"));
// 달력 초기화 // 달력 초기화
initDatepicker("frmEdit--${pageName}"); initDatepicker("frmEdit--${pageName}");

Loading…
Cancel
Save