반송 현황 목록 조회 수정.

main
jjh 1 year ago
parent 22db24e93d
commit 59c2ad5671

@ -233,14 +233,9 @@ public class Levy extends AbstractEntity {
private String rcvmtYmd;
/**
*
*
*/
private String npmntSeCd;
/**
*
*/
private String npmntRsn;
private String npmntRsnCd;
/**
*

@ -34,8 +34,11 @@ public class SndbQuery extends CmmnQuery {
private String schCrdnYmdFrom; // 단속(TB_CRDN)_단속 일자 시작
private String schCrdnYmdTo; // 단속(TB_CRDN)_단속 일자 종료
private String schRtpyrNm; // 납부자(TB_PAYER)_납부자 명
private String schSndngYmdFrom; // 발송 대장(TB_SNDNG)_발송 일자 시작
private String schSndngYmdTo; // 발송 대장(TB_SNDNG)_발송 일자 종료
private String schSndngYmdFrom; // 발송(TB_SNDNG)_발송 일자 시작
private String schSndngYmdTo; // 발송(TB_SNDNG)_발송 일자 종료
private String schDlvrYmdFrom; // 발송상세(TB_SNDNG_DTL)_배달 일자 시작
private String schDlvrYmdTo; // 발송상세(TB_SNDNG_DTL)_배달 일자 종료
private String schSndngSeCd; // 발송, 발송상세(TB_SNDNG_DTL)_발송 구분 코드
// 상세 검색 조건
private String schDetailRegDtOpt; // 상세 검색 등록 일자 구분
private String schDetailRegDtFrom; // 상세 검색 등록 일자 시작
@ -53,6 +56,11 @@ public class SndbQuery extends CmmnQuery {
private String sndngSeCd; // 발송 구분 코드
private String sndngSeCdFrom; // 발송 구분 코드 시작
private String sndngSeCdTo; // 발송 구분 코드 종료
private String sndngDtlSttsCd; // 발송 상세 상태 코드
private String rcpnRelNm1;
private String rcpnRelNm2;
private String rcpnRelNm3;
private String rcpnRelNm4;
// ETC
private String callPurpose; // 자료 조회시 호출용도. (view 조회, create 등록, update 수정, refresh 재조회)
private String delYn; // 삭제 여부
@ -239,6 +247,36 @@ public class SndbQuery extends CmmnQuery {
return self();
}
public String getSchDlvrYmdFrom() {
return ifEmpty(schDlvrYmdFrom, () -> null);
}
public <T extends SndbQuery> T setSchDlvrYmdFrom(String schDlvrYmdFrom) {
this.schDlvrYmdFrom = schDlvrYmdFrom;
return self();
}
public String getSchDlvrYmdTo() {
return ifEmpty(schDlvrYmdTo, () -> null);
}
public <T extends SndbQuery> T setSchDlvrYmdTo(String schDlvrYmdTo) {
this.schDlvrYmdTo = schDlvrYmdTo;
return self();
}
public String getSchSndngSeCd() {
return ifEmpty(schSndngSeCd, () -> null);
}
public <T extends SndbQuery> T setSchSndngSeCd(String schSndngSeCd) {
this.schSndngSeCd = schSndngSeCd;
return self();
}
// 상세 검색 조건 ///////////////////////////////////////////////////////////////
public String getSchDetailRegDtOpt() {
return ifEmpty(schDetailRegDtOpt, () -> null);
@ -385,6 +423,56 @@ public class SndbQuery extends CmmnQuery {
return self();
}
public String getSndngDtlSttsCd() {
return ifEmpty(sndngDtlSttsCd, () -> null);
}
public <T extends SndbQuery> T setSndngDtlSttsCd(String sndngDtlSttsCd) {
this.sndngDtlSttsCd = sndngDtlSttsCd;
return self();
}
public String getRcpnRelNm1() {
return ifEmpty(rcpnRelNm1, () -> null);
}
public <T extends SndbQuery> T setRcpnRelNm1(String rcpnRelNm1) {
this.rcpnRelNm1 = rcpnRelNm1;
return self();
}
public String getRcpnRelNm2() {
return ifEmpty(rcpnRelNm2, () -> null);
}
public <T extends SndbQuery> T setRcpnRelNm2(String rcpnRelNm2) {
this.rcpnRelNm2 = rcpnRelNm2;
return self();
}
public String getRcpnRelNm3() {
return ifEmpty(rcpnRelNm3, () -> null);
}
public <T extends SndbQuery> T setRcpnRelNm3(String rcpnRelNm3) {
this.rcpnRelNm3 = rcpnRelNm3;
return self();
}
public String getRcpnRelNm4() {
return ifEmpty(rcpnRelNm4, () -> null);
}
public <T extends SndbQuery> T setRcpnRelNm4(String rcpnRelNm4) {
this.rcpnRelNm4 = rcpnRelNm4;
return self();
}
// 동적 검색 조건 ///////////////////////////////////////////////////////////////
// ETC /////////////////////////////////////////////////////////////////////

@ -22,11 +22,6 @@ public class SndngDtl extends AbstractEntity {
*/
private String sndngId;
/**
* ID
*/
private String svbtcId;
/**
* ID
*/
@ -37,6 +32,16 @@ public class SndngDtl extends AbstractEntity {
*/
private String levyId;
/**
* ID
*/
private String svbtcId;
/**
*
*/
private String sndngSeCd;
/**
*
*/
@ -47,6 +52,11 @@ public class SndngDtl extends AbstractEntity {
*/
private String crdnDt;
/**
*
*/
private String crdnStdgNm;
/**
*
*/

@ -140,6 +140,12 @@ public interface SndngMapper extends AbstractMapper {
return !sndbkInfo.isEmpty() ? sndbkInfo.get(0) : null;
}
/** .<br />
* @param req
* @return
*/
List<DataObject> selectSndbkList(SndbQuery req);
/** .
* @param sndngDtl
* @return

@ -44,6 +44,14 @@ public interface SndngService {
*/
List<DataObject> getAdvntceSndngTrgts(SndbQuery req);
/** .
* @param req
* @return
*/
List<DataObject> getSndbkList(SndbQuery req);
/** .
@ -64,6 +72,9 @@ public interface SndngService {
*/
List<DataObject> getSndngDtls(SndbQuery req);
/** .
* @param sndng
* @return

@ -137,6 +137,15 @@ public class SndngBean extends AbstractComponent {
return sndngMapper.selectSndngDtls(req);
}
/** .
* @param req
* @return
*/
public List<DataObject> getSndbkList(SndbQuery req) {
return sndngMapper.selectSndbkList(req);
}
/** .
* @param sndng
* @return
@ -184,9 +193,9 @@ public class SndngBean extends AbstractComponent {
sndng.setSndngSttsCd("00"); // 00 발송 준비
// 발송 구분 코드에 따른 처리상태 변경
if (sndng.getSndngSeCd().equals("01")) {
if (sndng.getSndngSeCd().equals("11") || sndng.getSndngSeCd().equals("12")) {
newCrdnSttsCd = "84"; // 단속 상태 코드 - 84 계고장 출력 완료
} else if (sndng.getSndngSeCd().equals("02")) {
} else if (sndng.getSndngSeCd().equals("01") || sndng.getSndngSeCd().equals("02")) {
newCrdnSttsCd = "42"; // 단속 상태 코드 - 42 사전통지 발송
} else {
newCrdnSttsCd = "";
@ -290,8 +299,10 @@ public class SndngBean extends AbstractComponent {
// 기본 데이터 셋팅
sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID
sndngDtl.setCrdnId(infoCrdnPayer.string("CRDN_ID")); // 단속 ID
sndngDtl.setSndngSeCd(sndng.getSndngSeCd()); // 발송 구분 코드
sndngDtl.setVhrno(infoCrdnPayer.string("VHRNO")); // 차량번호
sndngDtl.setCrdnDt(infoCrdnPayer.string("CRDN_YMD_TM_MASK")); // 단속 일시
sndngDtl.setCrdnStdgNm(infoCrdnPayer.string("CRDN_STDG_NM")); // 단속 법정동 명
sndngDtl.setCrdnPlc(infoCrdnPayer.string("CRDN_PLC")); // 단속 장소
sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자
sndngDtl.setDudtYmd(sndng.getDudtYmd()); // 납기 일자
@ -304,6 +315,29 @@ public class SndngBean extends AbstractComponent {
sndngDtl.setRtpyrAddr(infoCrdnPayer.string("ADDR")); // 납부자 주소
sndngDtl.setRtpyrDtlAddr(infoCrdnPayer.string("DTL_ADDR")); // 납부자 상세 주소
sndngDtl.setRtpyrZip(infoCrdnPayer.string("ZIP")); // 납부자 우편번호
// sndngDtl.setEpayno(infoCrdnPayer.string("EPAYNO"));
// sndngDtl.setBankNm(infoCrdnPayer.string("BANK_NM"));
// sndngDtl.setVrActno(infoCrdnPayer.string("VR_ACTNO"));
// sndngDtl.setBankNm2(infoCrdnPayer.string("BANK_NM2"));
// sndngDtl.setVrActno2(infoCrdnPayer.string("VR_ACTNO2"));
// sndngDtl.setBankNm3(infoCrdnPayer.string("BANK_NM3"));
// sndngDtl.setVrActno3(infoCrdnPayer.string("VR_ACTNO3"));
// sndngDtl.setBankNm4(infoCrdnPayer.string("BANK_NM4"));
// sndngDtl.setVrActno4(infoCrdnPayer.string("VR_ACTNO4"));
// sndngDtl.setBankNm5(infoCrdnPayer.string("BANK_NM5"));
// sndngDtl.setVrActno5(infoCrdnPayer.string("VR_ACTNO5"));
// sndngDtl.setBankNm6(infoCrdnPayer.string("BANK_NM6"));
// sndngDtl.setVrActno6(infoCrdnPayer.string("VR_ACTNO6"));
// sndngDtl.setBankNm7(infoCrdnPayer.string("BANK_NM7"));
// sndngDtl.setVrActno7(infoCrdnPayer.string("VR_ACTNO7"));
// sndngDtl.setBankNm8(infoCrdnPayer.string("BANK_NM8"));
// sndngDtl.setVrActno8(infoCrdnPayer.string("VR_ACTNO8"));
// sndngDtl.setBankNm9(infoCrdnPayer.string("BANK_NM9"));
// sndngDtl.setVrActno9(infoCrdnPayer.string("VR_ACTNO9"));
// sndngDtl.setBankNm10(infoCrdnPayer.string("BANK_NM10"));
// sndngDtl.setVrActno10(infoCrdnPayer.string("VR_ACTNO10"));
// sndngDtl.setBankNm11(infoCrdnPayer.string("BANK_NM11"));
// sndngDtl.setVrActno11(infoCrdnPayer.string("VR_ACTNO11"));
sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 처리전
sndngDtl.setDelYn("N"); // 삭제 여부

@ -51,6 +51,11 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic
return sndngBean.getAdvntceSndngTrgts(req);
}
@Override
public List<DataObject> getSndbkList(SndbQuery req) {
return sndngBean.getSndbkList(req);
}
@Override
public List<DataObject> getSndngList(SndbQuery req) {
return sndngBean.getSndngList(req);

@ -63,6 +63,7 @@ public class Sndb01Controller extends ApplicationController {
, deleteSendBack = "/220/delete.do" // 발송 상세의 반송 정보 삭제
, sendBackMain = "/230/main.do" // 반송 현황 메인 화면
, getSendBackList = "/230/list.do" // 반송 현황 목록 조회
, serviceByPublicNoticeMain = "/240/main.do" // 공시송달 현황 메인 화면
;
@ -596,6 +597,23 @@ public class Sndb01Controller extends ApplicationController {
;
}
/** .<br />
* {@link SndngService#getSndngList(SndngQuery)}
* @param req
* @return jsonView
* <pre><code> {
* "sndngList": [ ]
* "sndngStart":
* "sndngFetch":
* "sndngTotal":
* }</code></pre>
*/
public ModelAndView getSendBackList(SndbQuery req) {
List<?> result = sndngService.getSndbkList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "sndbk");
}
/** (sndb/sndb01/240-main) .
*
* @return /sndb/sndb01/240-main

@ -574,6 +574,12 @@ public class DpvController {
return super.getNoticeSheetSendingInfo(req);
}
@Override
@RequestMapping(name="반송 목록 조회", value=METHOD_URL.getSendBackList)
public ModelAndView getSendBackList(SndbQuery req) {
return super.getSendBackList(req);
}
/** .
* @return fims/sndb/sndb01110-main
*/

@ -52,8 +52,7 @@
<result property="mngArtcl5" column="MNG_ARTCL5" /> <!-- 관리 항목 5 -->
<result property="mngArtcl6" column="MNG_ARTCL6" /> <!-- 관리 항목 6 -->
<result property="rcvmtYmd" column="RCVMT_YMD" /> <!-- 수납 일자 -->
<result property="npmntSeCd" column="NPMNT_SE_CD" /> <!-- 체납 구분 코드 -->
<result property="npmntRsn" column="NPMNT_RSN" /> <!-- 체납 사유 -->
<result property="npmntRsnCd" column="NPMNT_RSN_CD" /> <!-- 체납 사유 코드 -->
<result property="szrThing" column="SZR_THING" /> <!-- 압류 물건 -->
<result property="szrYmd" column="SZR_YMD" /> <!-- 압류 일자 -->
<result property="szrRmvYmd" column="SZR_RMV_YMD" /> <!-- 압류 해제 일자 -->
@ -275,9 +274,8 @@
, MNG_ARTCL5 <!-- 관리 항목 5 -->
, MNG_ARTCL6 <!-- 관리 항목 6 -->
, RCVMT_YMD <!-- 수납 일자 -->
, NPMNT_SE_CD <!-- 체납 구분 코드 -->
, (SELECT GET_CODE_NM('FIM043', L.NPMNT_SE_CD) FROM DUAL) AS NPMNT_SE_NM <!-- 체납 구분 명 -->
, NPMNT_RSN <!-- 체납 사유 -->
, NPMNT_RSN_CD <!-- 체납 사유 코드 -->
, (SELECT GET_CODE_NM('FIM043', L.NPMNT_RSN_CD) FROM DUAL) AS NPMNT_RSN_NM <!-- 체납 사유 명 -->
, SZR_THING <!-- 압류 물건 -->
, SZR_YMD <!-- 압류 일자 -->
, SZR_RMV_YMD <!-- 압류 해제 일자 -->
@ -397,8 +395,7 @@
, MNG_ARTCL5 <!-- 관리 항목 5 -->
, MNG_ARTCL6 <!-- 관리 항목 6 -->
, RCVMT_YMD <!-- 수납 일자 -->
, NPMNT_SE_CD <!-- 체납 구분 코드 -->
, NPMNT_RSN <!-- 체납 사유 -->
, NPMNT_RSN_CD <!-- 체납 사유 코드 -->
, SZR_THING <!-- 압류 물건 -->
, SZR_YMD <!-- 압류 일자 -->
, SZR_RMV_YMD <!-- 압류 해제 일자 -->
@ -479,8 +476,7 @@
, #{levy.mngArtcl5} <!-- 관리 항목5 -->
, #{levy.mngArtcl6} <!-- 관리 항목6 -->
, #{levy.rcvmtYmd} <!-- 수납 일자 -->
, #{levy.npmntSeCd} <!-- 체납 구분 코드 -->
, #{levy.npmntRsn} <!-- 체납 사유 -->
, #{levy.npmntRsnCd} <!-- 체납 사유 코드 -->
, #{levy.szrThing} <!-- 압류 물건 -->
, #{levy.szrYmd} <!-- 압류 일자 -->
, #{levy.szrRmvYmd} <!-- 압류 해제 일자 -->
@ -559,8 +555,7 @@
, MNG_ARTCL5 = #{levy.mngArtcl5} <!-- 관리 항목5 -->
, MNG_ARTCL6 = #{levy.mngArtcl6} <!-- 관리 항목6 -->
, RCVMT_YMD = #{levy.rcvmtYmd} <!-- 수납 일자 -->
, NPMNT_SE_CD = #{levy.npmntSeCd} <!-- 체납 구분 코드 -->
, NPMNT_RSN = #{levy.npmntRsn} <!-- 체납 사유 -->
, NPMNT_RSN_CD = #{levy.npmntRsnCd} <!-- 체납 사유 코드 -->
, SZR_THING = #{levy.szrThing} <!-- 압류 물건 -->
, SZR_YMD = #{levy.szrYmd} <!-- 압류 일자 -->
, SZR_RMV_YMD = #{levy.szrRmvYmd} <!-- 압류 해제 일자 -->

@ -43,11 +43,13 @@
<resultMap id="sndngDtlRow" type="cokr.xit.fims.sndb.SndngDtl">
<result property="sndngDtlId" column="SNDNG_DTL_ID" /> <!-- 발송 상세 ID -->
<result property="sndngId" column="SNDNG_ID" /> <!-- 발송 ID -->
<result property="svbtcId" column="SVBTC_ID" /> <!-- 공시송달 ID -->
<result property="crdnId" column="CRDN_ID" /> <!-- 단속 ID -->
<result property="levyId" column="LEVY_ID" /> <!-- 부과 ID -->
<result property="svbtcId" column="SVBTC_ID" /> <!-- 공시송달 ID -->
<result property="sndngSeCd" column="SNDNG_SE_CD" /> <!-- 발송 구분 코드 -->
<result property="vhrno" column="VHRNO" /> <!-- 차량번호 -->
<result property="crdnDt" column="CRDN_DT" /> <!-- 단속 일시 -->
<result property="crdnStdgNm" column="CRDN_STDG_NM" /> <!-- 단속 법정동 명 -->
<result property="crdnPlc" column="CRDN_PLC" /> <!-- 단속 장소 -->
<result property="levKey" column="LEV_KEY" /> <!-- 세외수입 부과키 -->
<result property="fyr" column="FYR" /> <!-- 회계연도 -->
@ -793,12 +795,12 @@
<sql id="selectSndngDtl">
SELECT SD.SNDNG_DTL_ID <!-- 발송 상세 ID -->
, SD.SNDNG_ID <!-- 발송 ID -->
, SD.SVBTC_ID <!-- 공시송달 ID -->
, SD.CRDN_ID <!-- 단속 ID -->
, SD.LEVY_ID <!-- 부과 ID -->
, SD.VHRNO <!-- 차량번호 -->
, SD.CRDN_DT <!-- 단속 일시 -->
, SD.CRDN_STDG_NM <!-- 단속 법정동 명 -->
, SD.CRDN_PLC <!-- 단속 장소 -->
, SD.LEV_KEY <!-- 세외수입 부과키 -->
, SD.FYR <!-- 회계연도 -->
@ -870,6 +872,7 @@
, SD.DLTR <!-- 삭제자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.DLTR) AS DLTR_NM <!-- 삭제자 명 -->
, SD.DEL_RSN <!-- 삭제 사유 -->
, S.SNDNG_ID <!-- 발송 ID -->
, S.SGG_CD <!-- 시군구 코드 -->
, S.DEPT_CD <!-- 부서 코드 -->
, S.TASK_SE_CD <!-- 업무 구분 코드 -->
@ -883,7 +886,6 @@
, S.ETC_CN <!-- 기타 내용 -->
, S.TNOCS <!-- 총건수 -->
, S.GRAMT <!-- 총금액 -->
, S.CON_KEY <!-- 외부연계식별키 -->
, S.DIV_KB <!-- 취급 구분 -->
, S.EPOST_NOTICE_ID <!-- 전자우편 안내문 ID -->
, S.SNDNG_STTS_CD <!-- 발송 상태 코드 -->
@ -914,7 +916,197 @@
</if>
</where>
<include refid="utility.orderBy" />
</select>
</select>
<select id="selectSndbkList" parameterType="map" resultType="dataobject">/* 반송 목록 조회(sndngMapper.selectSndbkList) */
<include refid="utility.paging-prefix" />
SELECT SD.SNDNG_DTL_ID <!-- 발송 상세 ID -->
, SD.LEVY_ID <!-- 부과 ID -->
, SD.SVBTC_ID <!-- 공시송달 ID -->
, SD.SNDNG_SE_CD <!-- 발송 구분 코드 -->
, (SELECT GET_CODE_NM('FIM047', SD.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM <!-- 발송 구분 명 -->
, SD.LEV_KEY <!-- 세외수입 부과키 -->
, CONCAT(SD.FYR, '-', SD.LEVY_NO) AS GOJI_NO <!-- 고지 번호 -->
, SD.SNDNG_YMD <!-- 발송 일자 -->
, SD.DUDT_YMD <!-- 납기 일자 -->
, GET_MASK_DATE(SD.DUDT_YMD, 'K') AS DUDT_YMD_MASK_KOR <!-- 납기 일자(한글표기) -->
, GET_MASK_DATE(SD.DUDT_YMD, '.') AS DUDT_YMD_MASK <!-- 납기 일자 -->
, SD.DUDT_AFTR_YMD <!-- 납기 후 일자 -->
, GET_MASK_DATE(SD.DUDT_AFTR_YMD, '.') AS DUDT_AFTR_YMD_MASK <!-- 납기 후 일자 -->
, SD.FFNLG_AMT <!-- 과태료 금액 -->
, SD.RTPYR_NM <!-- 납부자 명 -->
, SD.RTPYR_NO <!-- 납부자 번호 -->
, SD.RTPYR_ADDR <!-- 납부자 주소 -->
, SD.RTPYR_DTL_ADDR <!-- 납부자 상세 주소 -->
, SD.RTPYR_ZIP <!-- 납부자 우편번호 -->
, SD.CON_KEY <!-- 외부연계식별키 -->
, SD.RG_NO <!-- 등기 번호 -->
, SD.DLVR_YMD <!-- 배달 일자 -->
, SD.DLVR_TM <!-- 배달 시각 -->
, GET_CODE('EGP010', SD.UNDLVR_RSN_NM) AS UNDLVR_RSN_CD <!-- 미배달 사유 코드 -->
, SD.UNDLVR_RSN_NM <!-- 미배달 사유 명 -->
, SD.RCPN_NM <!-- 수령인 명 -->
, SD.RCPN_REL_NM <!-- 수령인 관계 명 -->
, SD.SNDNG_DTL_STTS_CD <!-- 발송 상세 상태 코드 -->
, (SELECT GET_CODE_NM('FIM050', SD.SNDNG_DTL_STTS_CD) FROM DUAL) AS SNDNG_DTL_STTS_NM <!-- 발송 상세 상태 명 -->
, SD.SNDNG_RCVMT_CD <!-- 발송 수납 코드 -->
, (SELECT GET_CODE_NM('FIM051', SD.SNDNG_RCVMT_CD) FROM DUAL) AS SNDNG_RCVMT_NM <!-- 발송 수납 명 -->
, SD.ADDR_CHG_CD <!-- 주소 변경 코드 -->
, SD.REG_DT <!-- 등록 일시 -->
, SD.RGTR <!-- 등록자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.RGTR) AS RGTR_NM <!-- 등록자 명 -->
, SD.MDFCN_DT <!-- 수정 일시 -->
, SD.MDFR <!-- 수정자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.MDFR) AS MDFR_NM <!-- 수정자 명 -->
, SD.DEL_DT <!-- 삭제 일시 -->
, SD.DLTR <!-- 삭제자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.DLTR) AS DLTR_NM <!-- 삭제자 명 -->
, SD.DEL_RSN <!-- 삭제 사유 -->
, C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD <!-- 시군구 코드 -->
, C.TASK_SE_CD <!-- 업무 구분 코드 -->
, (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
, C.CRDN_REG_SE_CD <!-- 단속 등록 구분 코드 -->
, (SELECT GET_CODE_NM('FIM026', C.CRDN_REG_SE_CD) FROM DUAL) AS CRDN_REG_SE_NM <!-- 단속 등록 구분 명 -->
, C.CRDN_INPT_SE_CD <!-- 단속 입력 구분 코드 -->
, (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM <!-- 단속 입력 구분 명 -->
, C.VHRNO <!-- 차량번호 -->
, C.CRDN_YMD <!-- 단속 일자 -->
, C.CRDN_TM <!-- 단속 시각 -->
, CONCAT(C.CRDN_YMD, C.CRDN_TM) AS CRDN_YMD_TM <!-- 단속 일시 -->
, C.CRDN_STDG_NM <!-- 단속 법정동 명 -->
, C.CRDN_ROAD_NM <!-- 단속 도로 명 -->
, C.CRDN_PLC <!-- 단속 장소 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
, P.RTPYR_ID <!-- 납부자 ID -->
, P.RTPYR_SE_CD AS P_RTPYR_SE_CD <!-- 납부자 구분 코드 -->
, (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS P_RTPYR_SE_NM <!-- 납부자 구분 명 -->
, P.RTPYR_NO AS P_RTPYR_NO <!-- 납부자 번호 -->
, P.RTPYR_NM AS P_RTPYR_NM <!-- 납부자 명 -->
, P.RTPYR_BRDT AS P_RTPYR_BRDT <!-- 납부자 생년월일 -->
, P.ZIP AS P_ZIP <!-- 우편번호 -->
, P.ADDR AS P_ADDR <!-- 주소 -->
, P.DTL_ADDR AS P_DTL_ADDR <!-- 상세 주소 -->
, S.SNDNG_ID <!-- 발송 ID -->
, S.DEPT_CD <!-- 부서 코드 -->
, S.SNDNG_REG_SE_CD <!-- 발송 등록 구분 코드 -->
, (SELECT GET_CODE_NM('FIM067', S.SNDNG_REG_SE_CD) FROM DUAL) AS SNDNG_REG_SE_NM <!-- 발송 등록 구분 명 -->
, S.EPOST_NOTICE_ID <!-- 전자우편 안내문 ID -->
, S.SNDNG_STTS_CD <!-- 발송 상태 코드 -->
, S.RESND_YN <!-- 재발송 여부 -->
FROM TB_SNDNG_DTL SD
INNER JOIN TB_CRDN C ON (SD.CRDN_ID = C.CRDN_ID)
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
LEFT OUTER JOIN TB_SNDNG S ON (SD.SNDNG_ID = S.SNDNG_ID)
LEFT OUTER JOIN TB_EPOST_DLVR_RSLT EDR ON (SD.CON_KEY = EDR.CON_KEY AND SD.RG_NO = EDR.REGINO)
WHERE C.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
AND C.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
AND (SD.SVBTC_ID IS NULL OR SD.SVBTC_ID = '')
AND (SD.SNDNG_RCVMT_CD IS NULL OR SD.SNDNG_RCVMT_CD = '')
AND (S.RESND_YN IS NULL OR S.RESND_YN = 'N')
<choose>
<when test="schDetailRegDtOpt == 'regDt'">
AND ( (SD.SNDNG_DTL_STTS_CD = #{sndngDtlSttsCd})
OR (EDR.RELRECPRSNCD BETWEEN '13' AND '16')
OR (RCPN_REL_NM IN (#{rcpnRelNm1}, #{rcpnRelNm2}, #{rcpnRelNm3}, #{rcpnRelNm4})) )
</when>
<otherwise>
AND SD.SNDNG_DTL_STTS_CD = #{sndngDtlSttsCd}
</otherwise>
</choose>
<if test="schDlvrYmdFrom != null">
AND SD.DLVR_YMD <![CDATA[ >= ]]> #{schDlvrYmdFrom} <!-- 발송 일자 시작 -->
</if>
<if test="schDlvrYmdTo != null">
AND SD.DLVR_YMD <![CDATA[ <= ]]> #{schDlvrYmdTo} <!-- 발송 일자 종료 -->
</if>
<if test="schSndngYmdFrom != null">
AND SD.SNDNG_YMD <![CDATA[ >= ]]> #{schSndngYmdFrom} <!-- 발송 일자 시작 -->
</if>
<if test="schSndngYmdTo != null">
AND SD.SNDNG_YMD <![CDATA[ <= ]]> #{schSndngYmdTo} <!-- 발송 일자 종료 -->
</if>
<if test="schSndngSeCd != null">
AND SD.SNDNG_SE_CD = #{schSndngSeCd} <!-- 발송 구분 코드 -->
</if>
<if test="schCrdnYmdFrom != null">
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} <!-- 단속 일자 시작 -->
</if>
<if test="schCrdnYmdTo != null">
AND C.CRDN_YMD <![CDATA[ <= ]]> #{schCrdnYmdTo} <!-- 단속 일자 종료 -->
</if>
<if test="schVhrno != null">
AND C.VHRNO = #{schVhrno} <!-- 차량번호 -->
</if>
<choose>
<when test="schDetailRegDtOpt == 'regDt'">
<if test="schDetailRegDtFrom != null">
AND SUBSTR(SD.REG_DT,1,8) <![CDATA[ >= ]]> #{schDetailRegDtFrom} <!-- 등록 일자 시작 -->
</if>
<if test="schDetailRegDtTo != null">
AND SUBSTR(SD.REG_DT,1,8) <![CDATA[ <= ]]> #{schDetailRegDtTo} <!-- 등록 일자 종료 -->
</if>
</when>
<when test="schDetailRegDtOpt == 'mdfcnDt'">
<if test="schDetailRegDtFrom != null">
AND SUBSTR(SD.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schDetailRegDtFrom} <!-- 수정 일자 시작 -->
</if>
<if test="schDetailRegDtTo != null">
AND SUBSTR(SD.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schDetailRegDtTo} <!-- 수정 일자 종료 -->
</if>
</when>
<otherwise>
</otherwise>
</choose>
<choose>
<when test="schDetailRgtrOpt == 'rgtr'">
<if test="schDetailRgtrCd != null">
AND SD.RGTR = #{schDetailRgtrCd} <!-- 등록자 코드 -->
</if>
</when>
<when test="schDetailRgtrOpt == 'mdfr'">
<if test="schDetailRgtrCd != null">
AND SD.MDFR = #{schDetailRgtrCd} <!-- 수정자 코드 -->
</if>
</when>
<otherwise>
</otherwise>
</choose>
AND SD.DEL_YN = 'N' <!-- 삭제 여부 -->
<if test="by != null and by != '' and term != null">
<choose>
<when test="mainOption == 'codeValue' or mainOption == 'match' or mainOption == 'ymd'">
<include refid="dynamicSearch.start" />
<choose>
<when test="by == 'taskSeCd'"> S.TASK_SE_CD </when>
<when test="by == 'sndngRegSeCd'"> S.SNDNG_REG_SE_CD </when>
<when test="by == 'sndngSeCd'"> S.SNDNG_SE_CD </when>
<when test="by == 'levyBgngYmd'"> S.LEVY_BGNG_YMD </when>
<when test="by == 'levyEndYmd'"> S.LEVY_END_YMD </when>
<when test="by == 'sndngYmd'"> S.SNDNG_YMD </when>
<when test="by == 'dudtYmd'"> S.DUDT_YMD </when>
<when test="by == 'ttlNm'"> S.TTL_NM </when>
<when test="by == 'docNo'"> S.DOC_NO </when>
<when test="by == 'etcCn'"> S.ETC_CN </when>
<when test="by == 'tnocs'"> S.TNOCS </when>
<when test="by == 'gramt'"> S.GRAMT </when>
<when test="by == 'sndngSttsCd'"> S.SNDNG_STTS_CD </when>
</choose>
<include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
</when>
<otherwise>
</otherwise>
</choose>
</if>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<update id="createSndbk" parameterType="map">/* 발송상세의 반송 정보 수정(sndngMapper.createSndbk) */
UPDATE TB_SNDNG_DTL
@ -1192,11 +1384,13 @@
INTO TB_SNDNG_DTL (
SNDNG_DTL_ID <!-- 발송 상세 ID -->
, SNDNG_ID <!-- 발송 ID -->
, SVBTC_ID <!-- 공시송달 ID -->
, CRDN_ID <!-- 단속 ID -->
, LEVY_ID <!-- 부과 ID -->
, SVBTC_ID <!-- 공시송달 ID -->
, SNDNG_SE_CD <!-- 발송 구분 코드 -->
, VHRNO <!-- 차량번호 -->
, CRDN_DT <!-- 단속 일시 -->
, CRDN_STDG_NM <!-- 단속 법정동 명 -->
, CRDN_PLC <!-- 단속 장소 -->
, LEV_KEY <!-- 세외수입 부과키 -->
, FYR <!-- 회계연도 -->
@ -1258,11 +1452,13 @@
VALUES (
#{sndngDtl.sndngDtlId} <!-- 발송 상세 ID -->
, #{sndngDtl.sndngId} <!-- 발송 ID -->
, #{sndngDtl.svbtcId} <!-- 공시송달 ID -->
, #{sndngDtl.crdnId} <!-- 단속 ID -->
, #{sndngDtl.levyId} <!-- 부과 ID -->
, #{sndngDtl.svbtcId} <!-- 공시송달 ID -->
, #{sndngDtl.sndngSeCd} <!-- 발송 구분 코드 -->
, #{sndngDtl.vhrno} <!-- 차량번호 -->
, #{sndngDtl.crdnDt} <!-- 단속 일시 -->
, #{sndngDtl.crdnStdgNm} <!-- 단속 법정동 명 -->
, #{sndngDtl.crdnPlc} <!-- 단속 장소 -->
, #{sndngDtl.levKey} <!-- 세외수입 부과키 -->
, #{sndngDtl.fyr} <!-- 회계연도 -->
@ -1325,10 +1521,10 @@
<update id="updateSndngDtl" parameterType="map">/* 발송 상세 수정(sndngMapper.updateSndngDtl) */
UPDATE TB_SNDNG_DTL
SET SNDNG_ID = #{sndngDtl.sndngId} <!-- 발송 ID -->
, SVBTC_ID = #{sndngDtl.svbtcId} <!-- 공시송달 ID -->
, CRDN_ID = #{sndngDtl.crdnId} <!-- 단속 ID -->
SET CRDN_ID = #{sndngDtl.crdnId} <!-- 단속 ID -->
, LEVY_ID = #{sndngDtl.levyId} <!-- 부과 ID -->
, SVBTC_ID = #{sndngDtl.svbtcId} <!-- 공시송달 ID -->
, SNDNG_SE_CD = #{sndngDtl.sndngSeCd} <!-- 발송 구분 코드 -->
, VHRNO = #{sndngDtl.vhrno} <!-- 차량번호 -->
, CRDN_DT = #{sndngDtl.crdnDt} <!-- 단속 일시 -->
, CRDN_PLC = #{sndngDtl.crdnPlc} <!-- 단속 장소 -->

@ -88,16 +88,6 @@
</c:forEach>
</select>
</div>
<!-- 차량번호 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">차량번호</label>
<input type="text" class="form-control w-px-160" id="schVhrno--${pageName}" name="schVhrno" autocomplete="off" />
</div>
<!-- 납부자명 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">납부자명</label>
<input type="text" class="form-control w-px-160" id="schRtpyrNm--${pageName}" name="schRtpyrNm"autocomplete="off" />
</div>
<!-- 단속일자 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">단속일자</label>
@ -111,6 +101,16 @@
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 차량번호 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">차량번호</label>
<input type="text" class="form-control w-px-160" id="schVhrno--${pageName}" name="schVhrno" autocomplete="off" />
</div>
<!-- 납부자명 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">납부자명</label>
<input type="text" class="form-control w-px-160" id="schRtpyrNm--${pageName}" name="schRtpyrNm"autocomplete="off" />
</div>
<!-- 동적검색 -->
<div class="col-6">
<input type="hidden" id="by--${pageName}" name="by" />
@ -175,10 +175,10 @@
</div>
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnLevyExclInfo--${pageName}" title="부과제외 정보" onclick="${infoPrefix}Info${pageName}();">
<button type="button" class="btn btn-primary w-px-120" id="btnLevyExclInfo--${pageName}" title="부과제외 정보" onclick="fnLevyExclInfo${pageName}();">
부과제외 정보
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnLevyExclRemove--${pageName}" title="부과제외 삭제" onclick="${infoPrefix}Remove${pageName}();">
<button type="button" class="btn btn-primary w-px-120" id="btnLevyExclRemove--${pageName}" title="부과제외 삭제" onclick="fnLevyExclRemove${pageName}();">
부과제외 삭제
</button>
</span>
@ -578,7 +578,7 @@
}
// 부과제외 정보 버튼 이벤트
${infoPrefix}Info${pageName} = () => {
fnLevyExclInfo${pageName} = () => {
let levyExclId = ${pageName}Control.dataset.getValue("LEVY_EXCL_ID");
let levyExclSeCd = ${pageName}Control.dataset.getValue("LEVY_EXCL_SE_CD");
@ -597,7 +597,7 @@
}
// 부과제외 삭제 버튼 이벤트
${infoPrefix}Remove${pageName} = () => {
fnLevyExclRemove${pageName} = () => {
dialog.alert({
content : "선택한 부과제외 정보를 삭제하시겠습니까?"
, onOK : () => {

@ -84,11 +84,6 @@
</c:forEach>
</select>
</div>
<!-- 차량번호 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">차량번호</label>
<input type="text" class="form-control w-px-160" id="schVhrno--${pageName}" name="schVhrno" />
</div>
<!-- 단속일자 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">단속일자</label>
@ -102,6 +97,11 @@
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 차량번호 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">차량번호</label>
<input type="text" class="form-control w-px-160" id="schVhrno--${pageName}" name="schVhrno" />
</div>
<!-- 동적검색 -->
<div class="col-6">
<input type="hidden" id="by--${pageName}" name="by" />
@ -175,15 +175,15 @@
</div>
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnOpnnInfo--${pageName}" title="의견제출 정보" onclick="${infoPrefix}Info${pageName}();">
<button type="button" class="btn btn-primary w-px-120" id="btnOpnnInfo--${pageName}" title="의견제출 정보" onclick="fnOpnnInfo${pageName}();">
의견제출 정보
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnOpnnRemove--${pageName}" title="의견제출 삭제" onclick="${infoPrefix}Remove${pageName}();">
의견제출 삭제
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnOpnnDlbrInfo--${pageName}" title="심의 정보" onclick="${infoPrefix}DlbrInfo${pageName}();">
<button type="button" class="btn btn-primary w-px-120" id="btnOpnnDlbrInfo--${pageName}" title="심의 정보" onclick="fnOpnnDlbrInfo${pageName}();">
심의 정보
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnOpnnRemove--${pageName}" title="의견제출 삭제" onclick="fnOpnnRemove${pageName}();">
의견제출 삭제
</button>
</span>
</span>
</div>
@ -577,7 +577,7 @@
}
// 수정 버튼 이벤트
${infoPrefix}Info${pageName} = () => {
fnOpnnInfo${pageName} = () => {
let = ${pageName}Control.dataset.getValue("OPNN_ID");
// 의견제출 ID 가 없다면.. return
@ -594,7 +594,7 @@
}
// 심의 버튼 이벤트
${infoPrefix}DlbrInfo${pageName} = () => {
fnOpnnDlbrInfo${pageName} = () => {
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID");
// 의견제출 ID 가 없다면.. return
@ -611,7 +611,7 @@
}
// 삭제 버튼 이벤트
${infoPrefix}Remove${pageName} = () => {
fnOpnnRemove${pageName} = () => {
dialog.alert({
content : "선택한 의견제출 정보를 삭제하시겠습니까?"
, onOK : () => {

@ -61,11 +61,6 @@
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 차량번호 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">차량번호</label>
<input type="text" class="form-control w-px-160" id="schVhrno--${pageName}" name="schVhrno" />
</div>
<!-- 단속일자 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">단속일자</label>
@ -79,6 +74,11 @@
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 차량번호 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">차량번호</label>
<input type="text" class="form-control w-px-160" id="schVhrno--${pageName}" name="schVhrno" />
</div>
<!-- 동적검색 -->
<div class="col-6">
<input type="hidden" id="by--${pageName}" name="by" />
@ -142,7 +142,7 @@
</div>
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnBfrCrdnTotalInfo--${pageName}" title="이전 단속정보" onclick="bfrCrdnTotalInfo${pageName}();">
<button type="button" class="btn btn-primary w-px-120" id="btnBfrCrdnTotalInfo--${pageName}" title="이전 단속정보" onclick="fnBfrCrdnTotalInfo${pageName}();">
이전 단속정보
</button>
</span>
@ -451,7 +451,7 @@
}
// 이전 단속정보 보기 버튼 이벤트
bfrCrdnTotalInfo${pageName} = () => {
nBfrCrdnTotalInfo${pageName} = () => {
let bfrCrdnId = ${pageName}Control.dataset.getValue("BFR_CRDN_ID");
// 이전 단속 ID 가 없다면.. return

@ -132,7 +132,7 @@
</div>
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnRductLevyTrgtInfo--${pageName}" title="감경부과 등록" onclick="${infoPrefix}Info${pageName}();">
<button type="button" class="btn btn-primary w-px-120" id="btnRductLevyInfo--${pageName}" title="감경부과 등록" onclick="fnRductLevyInfo${pageName}();">
감경부과 등록
</button>
</span>
@ -493,7 +493,7 @@
}
// 감경부과등록 버튼 이벤트
${infoPrefix}Info${pageName} = () => {
fnRductLevyInfo${pageName} = () => {
// validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;

@ -48,30 +48,33 @@
</c:forEach>
</span>
</div>
<!-- 의견제출 접수일자 -->
<!-- 배달일자 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">접수일자</label>
<label class="form-label fw-bold form-search-title text-end">배달일자</label>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schRcptYmdFrom--${pageName}" name="schRcptYmdFrom"
<input type="text" class="form-control form-date" id="schDlvrYmdFrom--${pageName}" name="schDlvrYmdFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schRcptYmdTo--${pageName}" name="schRcptYmdTo"
<input type="text" class="form-control form-date" id="schDlvrYmdTo--${pageName}" name="schDlvrYmdTo"
data-fmt-type="day" title="종료 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 위반항목 -->
<!-- 발송일자 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">위반항목</label>
<select class="form-select" id="schVltnCd--${pageName}" name="schVltnCd">
<option value="">전체</option>
<c:forEach items="${FIM004List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
<label class="form-label fw-bold form-search-title text-end">발송일자</label>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schSndngYmdFrom--${pageName}" name="schSndngYmdFrom"
data-fmt-type="day" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schSndngYmdTo--${pageName}" name="schSndngYmdTo"
data-fmt-type="day" title="종료 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 의견제출상태 -->
<!-- 발송구분 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">발송구분</label>
<select class="form-select w-px-150" id="schSndngSeCd--${pageName}" name="schSndngSeCd">
@ -81,21 +84,26 @@
</c:forEach>
</select>
</div>
<!-- 차량번호 -->
<!-- 위반항목 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">차량번호</label>
<input type="text" class="form-control w-px-160" id="schVhrno--${pageName}" name="schVhrno" />
<label class="form-label fw-bold form-search-title text-end">위반항목</label>
<select class="form-select" id="schVltnCd--${pageName}" name="schVltnCd">
<option value="">전체</option>
<c:forEach items="${FIM004List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- 단속일자 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">단속일자</label>
<span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schCrdnYmdFrom--${pageName}" name="schCrdnYmdFrom"
data-fmt-type="day" title="시작 날짜 선택" />
data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~
<input type="text" class="form-control form-date" id="schCrdnYmdTo--${pageName}" name="schCrdnYmdTo"
data-fmt-type="day" title="종료 날짜 선택" />
data-fmt-type="day" autocomplete="off" title="종료 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
@ -114,6 +122,22 @@
</button>
</span>
</div>
<!-- 선택등기 표시 -->
<div class="col-6">
<div class="form-check">
<input type="checkbox" class="form-check-input" id="schChcRgIndct--${pageName}" name="schChcRgIndct" value="" checked>
<label class="form-check-label" for="schChcRgIndct--${pageName}">선택등기표시</label>
</div>
</div>
<!-- 상세 검색조건 버튼 -->
<div class="col-6">
<span class="flr">
<button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">
<i class="bx bx-chevron-down"></i>
상세검색
</button>
</span>
</div>
</div>
</div>
<!-- / 메인 조건 -->
@ -121,16 +145,6 @@
<!-- 상세 조건 -->
<div id="searchDetail--${pageName}" class="container-search container-search-detail collapse">
<div class="row g-1">
<!-- 진술자명 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">진술자명</label>
<input type="text" class="form-control w-px-150" id="schSttrNm--${pageName}" name="schSttrNm" />
</div>
<!-- 납부자명 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end">납부자명</label>
<input type="text" class="form-control w-px-150" id="schRtpyrNm--${pageName}" name="schRtpyrNm" />
</div>
<!-- 등록일자, 수정일자 -->
<div class="col-6">
<select class="form-select text-center" id="schDetailRegDtOpt--${pageName}" name="schDetailRegDtOpt">
@ -172,10 +186,10 @@
</div>
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnSndngLinkCreate--${pageName}" title="우편통합 발송" onclick="createSndngLink${pageName}();">
우편통합 발송
<button type="button" class="btn btn-primary w-px-120" id="btnSndngLink--${pageName}" title="통합우편 발송" onclick="fnSndngLink${pageName}();">
통합우편 발송
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnSvbtcInfo--${pageName}" title="공시송달 등록" onclick="svbtcInfo${pageName}();">
<button type="button" class="btn btn-primary w-px-120" id="btnSvbtcInfo--${pageName}" title="공시송달 등록" onclick="fnSvbtcInfo${pageName}();">
공시송달 등록
</button>
</span>
@ -196,24 +210,23 @@
<input type="checkbox" class="form-check-input" onchange="${pageName}Control.select(this.checked);">
</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('TASK_SE_CD', this.innerText, 'codeValue', 'FIM054');">업무구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCPT_YMD', this.innerText, 'ymd', '');">접수일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCPT_NO', this.innerText, 'match', 'part');">접수번호</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCPT_SE_CD', this.innerText, 'codeValue', 'FIM029');">접수구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('NTFCTN_SE_CD', this.innerText, 'codeValue', 'FIM030');">통보구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('STTR_NM', this.innerText, 'match', 'part');">진술자명</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('OPNN_SBMSN_STTS_CD', this.innerText, 'codeValue', 'FIM031');">의견제출상태</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('OPNN_SBMSN_SE_CD', this.innerText, 'codeValue', 'FIM033');">의견제출분류</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('OPNN_SBMSN_GIST', this.innerText, 'match', 'part');">의견제출요지</th>
<th class="cmn" style="width: 140px;">고지번호</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('RG_NO', this.innerText, 'match', 'part');">등기번호</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('DLVR_YMD', this.innerText, 'ymd', '');">배달일자</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('DLVR_TM', this.innerText, 'time', '');">배달시간</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('UNDLVR_RSN_NM', this.innerText, 'match', 'part');">미배달사유</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('RCPN_NM', this.innerText, 'match', 'part');">수령인</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('SNDNG_SE_CD', this.innerText, 'codeValue', 'FIM047');">발송구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_YMD', this.innerText, 'ymd', '');">발송일자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_AMT', this.innerText, 'match', 'part');">과태료금액</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('RTPYR_NM', this.innerText, 'match', 'part');">성명</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('RTPYR_ZIP', this.innerText, 'match', 'part');">우편번호</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('RTPYR_ADDR', this.innerText, 'match', 'part');">주소</th>
<th class="cmn" style="width: 320px;" onclick="searchFromGridTitle('RTPYR_DTL_ADDR', this.innerText, 'match', 'part');">상세주소</th>
<th class="cmn" style="width: 180px;" onclick="searchFromGridTitle('CRDN_YMD', this.innerText, 'ymd', '');">단속일시</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('VHRNO', this.innerText, 'match', 'part');">차량번호</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_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: 140px;" onclick="searchFromGridTitle('DOC_NO', this.innerText, 'ymd', '');">문서번호</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('ANS_YMD', this.innerText, 'ymd', '');">답변일자</th>
<th class="cmn" style="width: 240px;" onclick="searchFromGridTitle('ANS_CN', this.innerText, 'match', 'part');">답변내용</th>
<th class="cmn" style="width: 200px;" onclick="searchFromGridTitle('RTPYR_NM', this.innerText, 'match', 'part');">납부자명</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RTPYR_BRDT', this.innerText, 'match', 'part');">납부자생일</th>
<th class="cmn" style="width: 180px;">등록일시</th>
<th class="cmn" style="width: 140px;">등록사용자</th>
<th class="cmn" style="width: 180px;">수정일시</th>
@ -224,30 +237,29 @@
<tbody id="tbody--${pageName}">
</tbody>
<template id="${infoPrefix}Row--${pageName}">
<tr data-key="{OPNN_ID}">
<tr data-key="{SNDNG_DTL_ID}">
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center">
<input type="checkbox" class="form-check-input" value="{OPNN_ID}" onchange="${pageName}Control.select('{OPNN_ID}', this.checked);">
<input type="checkbox" class="form-check-input" value="{SNDNG_DTL_ID}" onchange="${pageName}Control.select('{SNDNG_DTL_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}">{RCPT_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCPT_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RCPT_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{NTFCTN_SE_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{STTR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{OPNN_SBMSN_STTS_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{OPNN_SBMSN_SE_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{OPNN_SBMSN_GIST}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{GOJI_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RG_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{DLVR_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{DLVR_TM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{UNDLVR_RSN_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RCPN_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_YMD}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_AMT}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_ZIP}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_ADDR}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_DTL_ADDR}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_YMD_TM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{VHRNO}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_PLC}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_AMT}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{CRDN_STTS_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{DOC_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ANS_YMD}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{ANS_CN}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RTPYR_BRDT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{REG_DT}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{RGTR_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{MDFCN_DT}</td>
@ -257,7 +269,7 @@
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="odd">
<td valign="top" colspan="26" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
<td valign="top" colspan="25" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
@ -282,7 +294,7 @@
* Global Variable
**************************************************************************/
// URL
var ${pageName}PrefixUrl = "/excl/excl02";
var ${pageName}PrefixUrl = "/sndb/sndb01";
// FormFields
var ${pageName}Fields = new FormFields("#frmSearch--${pageName}");
// 공통 코드
@ -296,19 +308,18 @@
* DatasetControl
**************************************************************************/
var ${pageName}Control = new DatasetControl({
prefix : "opnn"
, prefixName : "의견제출"
prefix : "sndbk"
, prefixName : "반송"
, infoSize : "xl"
, keymapper : info => info ? info.OPNN_ID : ""
, dataGetter : obj => obj.opnnSbmsnList
, keymapper : info => info ? info.SNDNG_DTL_ID : ""
, dataGetter : obj => obj.sndbkList
, appendData : true
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, formats : {
RCPT_YMD : dateFormat
, ANS_YMD : dateFormat
, ANS_YMD_TM : datetimeFormat
DLVR_YMD : dateFormat
, DLVR_TM : timeFormat
, SNDNG_YMD : dateFormat
, CRDN_YMD_TM : datetimeFormat
, FFNLG_CRDN_AMT : numberFormat
, FFNLG_AMT : numberFormat
, REG_DT : datetimeFormat
, MDFCN_DT : datetimeFormat
@ -338,7 +349,7 @@
${pageName}Control.onCurrentChange = item => {
if (!item) return;
let key = item.data.OPNN_ID;
let key = item.data.SNDNG_DTL_ID;
$("#tbody--${pageName}").setCurrentRow(key);
};
@ -353,8 +364,6 @@
checkbox.prop("checked", keys.includes(checkbox.val()));
});
$("#btn${infoPrefix}Remove--${pageName}").prop("disabled", keys.length < 1);
};
// 개별총정보 dialog
@ -380,18 +389,6 @@
});
}
// 삭제 callback
${pageName}Control.onRemove = (selected, resp) => {
let btnTitle = $("#btn${infoPrefix}Remove--${pageName}").attr("title");
let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage);
if (resp.saved) {
${pageName}Control._load();
}
}
/**************************************************************************
*
**************************************************************************/
@ -405,7 +402,7 @@
${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("OPNN_ID") + "');")
.replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("SNDNG_DTL_ID") + "');")
.replace(/{ondblclick}/gi, "${pageName}Control.getInfo('" + dataItem.getValue("CRDN_ID") + "');")
);
@ -416,44 +413,6 @@
fn_securityModeToggle($("#securityMode--top").is(":checked"));
}
// 수정 dialog -> callback 추가
getInfo${pageName} = (params) => {
if (!params) return;
ajax.get({
url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/020/info.do")
, data : params || {}
, success : resp => {
dialog.open({
id : ${pageName}Control.prefixed("Dialog")
, title : ${pageName}Control.prefixName + " 정보"
, content : resp
, size : ${pageName}Control.infoSize
, onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback
});
}
});
}
// 심의 dialog
getDlbrInfo${pageName} = (params) => {
if (!params) return;
ajax.get({
url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/030/info.do")
, data : params || {}
, success : resp => {
dialog.open({
id : ${pageName}Control.prefixed("SbmsnDialog")
, title : ${pageName}Control.prefixName + " 심의 처리"
, content : resp
, size : "lg"
, onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback
});
}
});
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/
@ -547,33 +506,13 @@
// 달력 초기화
initDatepicker("frmSearch--${pageName}");
$("#schRcptYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date);
$("#schRcptYmdTo--${pageName}").datepicker("setDate", new Date());
// 업무별 조회조건
let clsForTask = taskSeCd.toLowerCase();
renderForTask("frmSearch--${pageName}", clsForTask);
// 업무별 그리드 th
$("#DataTables_Table_0--${pageName}").find("th").resizable( "destroy" );
let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content;
let cols = $(colContent).find("." + clsForTask + ",.cmn");
let colsOuterHTML = "";
cols.each(function() {
colsOuterHTML += this.outerHTML;
});
$("#theadTr--${pageName}").html(colsOuterHTML);
$("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} );
$("#schDlvrYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date);
$("#schDlvrYmdTo--${pageName}").datepicker("setDate", new Date());
}
// URL 설정
setURL${pageName} = (taskSeCd) => {
${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회
${pageName}Control.urls.remove = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/010/removes.do"); // 삭제
${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/230/list.do"); // 조회
${pageName}Control.urls.getInfo = wctx.url("/" + taskSeCd + "/sprt/sprt02/010/main.do"); // 개별총정보
}
@ -607,9 +546,13 @@
// 검색조건
${pageName}Control.query = ${pageName}Fields.get();
${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30
${pageName}Control.query.delYn = "N"; // 삭제 여부
${pageName}Control.query.crdnDelYn = "N"; // 단속 대장 삭제 여부
${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30
${pageName}Control.query.sndngDtlSttsCd = "05"; // FIM050 - 05 반송
${pageName}Control.query.rcpnRelNm1 = "무인배달"; // 13
${pageName}Control.query.rcpnRelNm2 = "우편수취함"; // 14
${pageName}Control.query.rcpnRelNm3 = "전자수취함배달"; // 15
${pageName}Control.query.rcpnRelNm4 = "수령희망장소배달"; // 16
${pageName}Control.query.delYn = "N"; // 삭제 여부
${pageName}Control.load();
}
@ -619,48 +562,14 @@
}
// 수정 버튼 이벤트
${infoPrefix}Info${pageName} = () => {
let = ${pageName}Control.dataset.getValue("OPNN_ID");
// 통합우편 발송 버튼 이벤트
fnSndngLink${pageName} = () => {
// 의견제출 ID 가 없다면.. return
if (!opnnId) return;
let params = {
callPurpose : "update"
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, opnnId : opnnId
};
getInfo${pageName}(params);
}
// 심의 버튼 이벤트
${infoPrefix}DlbrInfo${pageName} = () => {
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID");
// 의견제출 ID 가 없다면.. return
if (!opnnId) return;
let params = {
callPurpose : "update"
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, opnnId : opnnId
};
getDlbrInfo${pageName}(params);
}
// 공시송달 등록 버튼 이벤트
fnSvbtcInfo${pageName} = () => {
// 삭제 버튼 이벤트
${infoPrefix}Remove${pageName} = () => {
dialog.alert({
content : "선택한 의견제출 정보를 삭제하시겠습니까?"
, onOK : () => {
${pageName}Control.remove();
}
});
}
/**************************************************************************

Loading…
Cancel
Save