개별 반송 등록, 삭제 수정.

main
jjh 11 months ago
parent 5354a34aa6
commit 7101b6c0fd

@ -114,11 +114,6 @@ public class OpnnSbmsn extends AbstractEntity {
*/
private String opnnSbmsnGist;
/**
*
*/
private Integer atchFileCnt;
/**
*
*/

@ -101,23 +101,6 @@ public interface SndngMapper extends AbstractMapper {
return !InfoSndngTrgt.isEmpty() ? InfoSndngTrgt.get(0) : null;
}
/** ID .
* @param req
* @return
@ -136,15 +119,31 @@ public interface SndngMapper extends AbstractMapper {
return !InfoCrdnPayerTrgt.isEmpty() ? InfoCrdnPayerTrgt.get(0) : null;
}
/**
* @param req
* @return
*/
DataObject selectSndngDtlLevyInfo(String sndngDtlId);
/** .
* @param req
* @return
*/
List<DataObject> selectSndbkList(SndbQuery req);
/** .
* @param req
* @return
*/
List<DataObject> selectSndbks(SndbQuery req);
/** 1 .
* @param req
* @return
* @return
*/
default DataObject selectSndbkInfo(SndbQuery req) {
// 기본 정렬
@ -152,17 +151,11 @@ public interface SndngMapper extends AbstractMapper {
req.setOrderBy("SD.SNDNG_DTL_ID DESC");
}
List<DataObject> sndbkInfo = selectSndngDtls(req);
List<DataObject> sndbkInfo = selectSndbks(req);
return !sndbkInfo.isEmpty() ? sndbkInfo.get(0) : null;
}
/** .<br />
* @param req
* @return
*/
List<DataObject> selectSndbkList(SndbQuery req);
/** .
* @param sndngDtl
* @return

@ -1223,6 +1223,16 @@ public class SndngBean extends AbstractComponent {
boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지
// 반송 내역 조회
DataObject sndbkInfo = sndngMapper.selectSndbkInfo(new SndbQuery().setSndngDtlId(sndngDtl.getSndngDtlId())
.setDelYn("N"));
// 반송 등록이 가능한지 확인.
//
sndngDtl.setBfrSndngDtlSttsCd(sndbkInfo.string("SNDNG_DTL_STTS_CD")); // 전 발송 상세 상태 코드
sndngDtl.setSndngDtlSttsCd("05"); // 발송 상세 상태 코드 FIM050 - 05:반송
// 발송 상세(TB_SNDNG_DTL) 대장에 반송 정보를 등록 한다.
retSuccess = sndngMapper.createSndbk(sndngDtl);
if (!retSuccess) {
@ -1271,6 +1281,16 @@ public class SndngBean extends AbstractComponent {
boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지
// 반송 내역 조회
DataObject sndbkInfo = sndngMapper.selectSndbkInfo(new SndbQuery().setSndngDtlId(sndngDtl.getSndngDtlId())
.setDelYn("N"));
// 반송 삭제가 가능한지 확인.
//
sndngDtl.setBfrSndngDtlSttsCd(sndbkInfo.string("SNDNG_DTL_STTS_CD")); // 전 발송 상세 상태 코드 <- 발송 상세 상태 코드
sndngDtl.setSndngDtlSttsCd(sndbkInfo.string("BFR_SNDNG_DTL_STTS_CD")); // 발송 상세 상태 코드 <- 전 발송 상세 상태 코드
// 발송 상세(TB_SNDNG_DTL) 대장에 반송 정보를 등록 한다.
retSuccess = sndngMapper.deleteSndbk(sndngDtl);
if (!retSuccess) {
@ -1286,11 +1306,6 @@ public class SndngBean extends AbstractComponent {
/** .
* @param req
* @return

@ -157,6 +157,8 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic
@Override
public List<DataObject> getSndngs(SndbQuery req) {
return sndngBean.getSndngs(req);

@ -30,7 +30,6 @@
<result property="opnnSbmsnSeCd" column="OPNN_SBMSN_SE_CD" /> <!-- 의견 제출 구분 코드 -->
<result property="opnnSbmsnSeNm" column="OPNN_SBMSN_SE_NM" /> <!-- 의견 제출 구분 명 -->
<result property="opnnSbmsnGist" column="OPNN_SBMSN_GIST" /> <!-- 의견 제출 요지 -->
<result property="atchFileCnt" column="ATCH_FILE_CNT" /> <!-- 첨부 파일 수 -->
<result property="docNo" column="DOC_NO" /> <!-- 문서 번호 -->
<result property="ntfctnSeCd" column="NTFCTN_SE_CD" /> <!-- 통보 구분 코드 -->
<result property="ntfctnSeNm" column="NTFCTN_SE_NM" /> <!-- 통보 구분 명 -->
@ -71,7 +70,6 @@
, OS.OPNN_SBMSN_SE_CD <!-- 의견 제출 구분 코드 -->
, (SELECT GET_CODE_NM('FIM033', OS.OPNN_SBMSN_SE_CD) FROM DUAL) AS OPNN_SBMSN_SE_NM <!-- 의견 제출 구분 명 -->
, OS.OPNN_SBMSN_GIST <!-- 의견 제출 요지 -->
, OS.ATCH_FILE_CNT <!-- 첨부 파일 수 -->
, OS.DOC_NO <!-- 문서 번호 -->
, OS.NTFCTN_SE_CD <!-- 통보 구분 코드 -->
, (SELECT GET_CODE_NM('FIM030', OS.NTFCTN_SE_CD) FROM DUAL) AS NTFCTN_SE_NM <!-- 통보 구분 명 -->
@ -284,7 +282,6 @@
, OS.OPNN_SBMSN_SE_CD <!-- 의견 제출 구분 코드 -->
, (SELECT GET_CODE_NM('FIM033', OS.OPNN_SBMSN_SE_CD) FROM DUAL) AS OPNN_SBMSN_SE_NM <!-- 의견 제출 구분 명 -->
, OS.OPNN_SBMSN_GIST <!-- 의견 제출 요지 -->
, OS.ATCH_FILE_CNT <!-- 첨부 파일 수 -->
, OS.DOC_NO <!-- 문서 번호 -->
, OS.NTFCTN_SE_CD <!-- 통보 구분 코드 -->
, (SELECT GET_CODE_NM('FIM030', OS.NTFCTN_SE_CD) FROM DUAL) AS NTFCTN_SE_NM <!-- 통보 구분 코드 -->
@ -395,7 +392,6 @@
, OPNN_SBMSN_CN <!-- 의견 제출 내용 -->
, OPNN_SBMSN_SE_CD <!-- 의견 제출 구분 코드 -->
, OPNN_SBMSN_GIST <!-- 의견 제출 요지 -->
, ATCH_FILE_CNT <!-- 첨부 파일 수 -->
, DOC_NO <!-- 문서 번호 -->
, NTFCTN_SE_CD <!-- 통보 구분 코드 -->
, PIC_RVW_OPNN <!-- 담당자 검토 의견 -->
@ -427,7 +423,6 @@
, #{opnnSbmsn.opnnSbmsnCn} <!-- 의견 제출 내용 -->
, #{opnnSbmsn.opnnSbmsnSeCd} <!-- 의견 제출 구분 코드 -->
, #{opnnSbmsn.opnnSbmsnGist} <!-- 의견 제출 요지 -->
, #{opnnSbmsn.atchFileCnt} <!-- 첨부 파일 수 -->
, #{opnnSbmsn.docNo} <!-- 문서 번호 -->
, #{opnnSbmsn.ntfctnSeCd} <!-- 통보 구분 코드 -->
, #{opnnSbmsn.picRvwOpnn} <!-- 담당자 검토 의견 -->
@ -460,7 +455,6 @@
, OPNN_SBMSN_CN = #{opnnSbmsn.opnnSbmsnCn} <!-- 의견 제출 내용 -->
, OPNN_SBMSN_SE_CD = #{opnnSbmsn.opnnSbmsnSeCd} <!-- 의견 제출 구분 코드 -->
, OPNN_SBMSN_GIST = #{opnnSbmsn.opnnSbmsnGist} <!-- 의견 제출 요지 -->
, ATCH_FILE_CNT = #{opnnSbmsn.atchFileCnt} <!-- 첨부 파일 수 -->
, PIC_RVW_OPNN = #{opnnSbmsn.picRvwOpnn} <!-- 담당자 검토 의견 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{opnnSbmsn.modifiedBy} <!-- 수정자 -->

@ -1058,200 +1058,6 @@
WHERE SD.SNDNG_DTL_ID = #{sndngDtlId}
</select>
<select id="selectSndbkList" parameterType="map" resultType="dataobject">/* 반송 목록 조회(sndngMapper.selectSndbkList) */
<include refid="utility.paging-prefix" />
SELECT SD.SNDNG_DTL_ID /* 발송 상세 ID */
, SD.SVBTC_ID /* 공시송달 ID */
, SD.SNDNG_SE_CD /* 발송 구분 코드 */
, SD.SNDNG_YMD /* 발송 일자 */
, SD.SNDNG_END_YMD /* 발송 종료 일자 */
, SD.RTPYR_NM /* 납부자 명 */
, SD.RTPYR_BRDT /* 납부자 생년월일 */
, SD.RTPYR_ADDR /* 납부자 주소 */
, SD.RTPYR_DTL_ADDR /* 납부자 상세 주소 */
, SD.RTPYR_ZIP /* 납부자 우편번호 */
, SD.CON_KEY /* 외부연계식별키 */
, SD.RG_NO /* 등기 번호 */
, SD.DLVR_YMD /* 배달 일자 */
, SD.DLVR_TM /* 배달 시각 */
, SD.UNDLVR_RSN_CD /* 미배달 사유 코드 */
, SD.UNDLVR_RSN_NM /* 미배달 사유 명 */
, SD.RCPN_NM /* 수령인 명 */
, SD.RCPN_REL_NM /* 수령인 관계 명 */
, SD.SNDNG_DTL_STTS_CD /* 발송 상세 상태 코드 */
, SD.SNDNG_RCVMT_CD /* 발송 수납 코드 */
, SD.ADDR_CHG_CD /* 주소 변경 코드 */
, SD.LEVY_YMD /* 부과 일자 */
, SD.DUDT_YMD /* 납기 일자 */
, SD.FFNLG_AMT /* 과태료 금액 */
, SD.SUM_AMT /* 합계 금액 */
, SD.REG_DT /* 등록 일시 */
, SD.RGTR /* 등록자 */
, SD.MDFCN_DT /* 수정 일시 */
, SD.MDFR /* 수정자 */
, SD.DEL_DT /* 삭제 일시 */
, SD.DLTR /* 삭제자 */
, SD.DEL_RSN /* 삭제 사유 */
, C.CRDN_ID /* 단속 ID */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
, C.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */
, C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */
, C.VHRNO /* 차량번호 */
, C.CRDN_YMD /* 단속 일자 */
, C.CRDN_TM /* 단속 시각 */
, C.CRDN_STDG_NM /* 단속 법정동 명 */
, C.CRDN_ROAD_NM /* 단속 도로 명 */
, C.CRDN_PLC /* 단속 장소 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, S.SNDNG_ID /* 발송 ID */
, S.DEPT_CD /* 부서 코드 */
, S.SNDNG_REG_SE_CD /* 발송 등록 구분 코드 */
, S.EPOST_NOTICE_ID /* 전자우편 안내문 ID */
, S.SNDNG_STTS_CD /* 발송 상태 코드 */
, S.RESND_YN /* 재발송 여부 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_SE_CD AS P_RTPYR_SE_CD /* 납부자 구분 코드 */
, 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 /* 상세 주소 */
, CONCAT(C.CRDN_YMD, C.CRDN_TM) AS CRDN_YMD_TM /* 단속 일시 */
, CONCAT(SD.FYR, '-', SD.LEVY_NO) AS GOJI_NO /* 고지 번호 */
, (SELECT GET_MASK_DATE(SD.DUDT_YMD, 'K') FROM DUAL) AS DUDT_YMD_MASK_KOR /* 납기 일자(한글표기) */
, (SELECT GET_MASK_DATE(SD.DUDT_YMD, '.') FROM DUAL) AS DUDT_YMD_MASK /* 납기 일자 */
, (SELECT GET_CODE_NM('FIM047', SD.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM /* 발송 구분 명 */
, (SELECT GET_CODE_NM('FIM050', SD.SNDNG_DTL_STTS_CD) FROM DUAL) AS SNDNG_DTL_STTS_NM /* 발송 상세 상태 명 */
, (SELECT GET_CODE_NM('FIM051', SD.SNDNG_RCVMT_CD) FROM DUAL) AS SNDNG_RCVMT_NM /* 발송 수납 명 */
, (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */
, (SELECT GET_CODE_NM('FIM026', C.CRDN_REG_SE_CD) FROM DUAL) AS CRDN_REG_SE_NM /* 단속 등록 구분 명 */
, (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS P_RTPYR_SE_NM /* 납부자 구분 명 */
, (SELECT GET_CODE_NM('FIM067', S.SNDNG_REG_SE_CD) FROM DUAL) AS SNDNG_REG_SE_NM /* 발송 등록 구분 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.RGTR) AS RGTR_NM /* 등록자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.MDFR) AS MDFR_NM /* 수정자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.DLTR) AS DLTR_NM /* 삭제자 명 */
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='schChcRgIndct == "Y"'>
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>
<if test="delYn != null">
AND SD.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
AND C.DEL_YN = 'N' /* 단속 삭제 여부 */
<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>
<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>
<select id="selectTnocsSndngDtlSvbtc" parameterType="map" resultType="int">/* 발송상세 대장에 공시송달ID에 해당하는 총건수 가져오기(sndngMapper.selectTnocsSndngDtlSvbtc) */
SELECT COUNT(*) TNOCS
FROM TB_SNDNG_DTL
WHERE SVBTC_ID = #{sndngDtl.svbtcId} /* 공시송달 ID */
AND DEL_YN = 'N'
</select>
<insert id="insertSndng" parameterType="map">/* 발송 대장 등록(sndngMapper.insertSndng) */
<selectKey resultType="string" keyProperty="sndng.sndngId" keyColumn="NEW_ID" order="BEFORE">
SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(SNDNG_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID
@ -1689,14 +1495,263 @@
AND DEL_YN = 'N'
</update>
<select id="selectSndbkList" parameterType="map" resultType="dataobject">/* 반송 목록 조회(sndngMapper.selectSndbkList) */
<include refid="utility.paging-prefix" />
SELECT SD.SNDNG_DTL_ID /* 발송 상세 ID */
, SD.SVBTC_ID /* 공시송달 ID */
, SD.SNDNG_SE_CD /* 발송 구분 코드 */
, SD.SNDNG_YMD /* 발송 일자 */
, SD.SNDNG_END_YMD /* 발송 종료 일자 */
, SD.RTPYR_NM /* 납부자 명 */
, SD.RTPYR_BRDT /* 납부자 생년월일 */
, SD.RTPYR_ADDR /* 납부자 주소 */
, SD.RTPYR_DTL_ADDR /* 납부자 상세 주소 */
, SD.RTPYR_ZIP /* 납부자 우편번호 */
, SD.CON_KEY /* 외부연계식별키 */
, SD.RG_NO /* 등기 번호 */
, SD.DLVR_YMD /* 배달 일자 */
, SD.DLVR_TM /* 배달 시각 */
, SD.UNDLVR_RSN_CD /* 미배달 사유 코드 */
, SD.UNDLVR_RSN_NM /* 미배달 사유 명 */
, SD.RCPN_NM /* 수령인 명 */
, SD.RCPN_REL_NM /* 수령인 관계 명 */
, SD.SNDNG_DTL_STTS_CD /* 발송 상세 상태 코드 */
, SD.SNDNG_RCVMT_CD /* 발송 수납 코드 */
, SD.ADDR_CHG_CD /* 주소 변경 코드 */
, SD.LEVY_YMD /* 부과 일자 */
, SD.DUDT_YMD /* 납기 일자 */
, SD.FFNLG_AMT /* 과태료 금액 */
, SD.SUM_AMT /* 합계 금액 */
, SD.REG_DT /* 등록 일시 */
, SD.RGTR /* 등록자 */
, SD.MDFCN_DT /* 수정 일시 */
, SD.MDFR /* 수정자 */
, SD.DEL_DT /* 삭제 일시 */
, SD.DLTR /* 삭제자 */
, SD.DEL_RSN /* 삭제 사유 */
, C.CRDN_ID /* 단속 ID */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
, C.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */
, C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */
, C.VHRNO /* 차량번호 */
, C.CRDN_YMD /* 단속 일자 */
, C.CRDN_TM /* 단속 시각 */
, C.CRDN_STDG_NM /* 단속 법정동 명 */
, C.CRDN_ROAD_NM /* 단속 도로 명 */
, C.CRDN_PLC /* 단속 장소 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, S.SNDNG_ID /* 발송 ID */
, S.DEPT_CD /* 부서 코드 */
, S.SNDNG_REG_SE_CD /* 발송 등록 구분 코드 */
, S.EPOST_NOTICE_ID /* 전자우편 안내문 ID */
, S.SNDNG_STTS_CD /* 발송 상태 코드 */
, S.RESND_YN /* 재발송 여부 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_SE_CD AS P_RTPYR_SE_CD /* 납부자 구분 코드 */
, 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 /* 상세 주소 */
, CONCAT(C.CRDN_YMD, C.CRDN_TM) AS CRDN_YMD_TM /* 단속 일시 */
, CONCAT(SD.FYR, '-', SD.LEVY_NO) AS GOJI_NO /* 고지 번호 */
, (SELECT GET_MASK_DATE(SD.DUDT_YMD, 'K') FROM DUAL) AS DUDT_YMD_MASK_KOR /* 납기 일자(한글표기) */
, (SELECT GET_MASK_DATE(SD.DUDT_YMD, '.') FROM DUAL) AS DUDT_YMD_MASK /* 납기 일자 */
, (SELECT GET_CODE_NM('FIM047', SD.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM /* 발송 구분 명 */
, (SELECT GET_CODE_NM('FIM050', SD.SNDNG_DTL_STTS_CD) FROM DUAL) AS SNDNG_DTL_STTS_NM /* 발송 상세 상태 명 */
, (SELECT GET_CODE_NM('FIM051', SD.SNDNG_RCVMT_CD) FROM DUAL) AS SNDNG_RCVMT_NM /* 발송 수납 명 */
, (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */
, (SELECT GET_CODE_NM('FIM026', C.CRDN_REG_SE_CD) FROM DUAL) AS CRDN_REG_SE_NM /* 단속 등록 구분 명 */
, (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS P_RTPYR_SE_NM /* 납부자 구분 명 */
, (SELECT GET_CODE_NM('FIM067', S.SNDNG_REG_SE_CD) FROM DUAL) AS SNDNG_REG_SE_NM /* 발송 등록 구분 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.RGTR) AS RGTR_NM /* 등록자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.MDFR) AS MDFR_NM /* 수정자 명 */
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.DLTR) AS DLTR_NM /* 삭제자 명 */
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='schChcRgIndct == "Y"'>
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>
<if test="delYn != null">
AND SD.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
AND C.DEL_YN = 'N' /* 단속 삭제 여부 */
<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>
<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>
<sql id="selectSndbk">
SELECT SD.SNDNG_DTL_ID /* 발송 상세 ID */
, SD.CRDN_ID /* 단속 ID */
, SD.SVBTC_ID /* 공시송달 ID */
, SD.RG_NO /* 등기 번호 */
, SD.DLVR_YMD /* 배달 일자 */
, SD.DLVR_TM /* 배달 시각 */
, SD.UNDLVR_RSN_CD /* 미배달 사유 코드 */
, SD.UNDLVR_RSN_NM /* 미배달 사유 명 */
, SD.RCPN_NM /* 수령인 명 */
, SD.RCPN_REL_NM /* 수령인 관계 명 */
, SD.SNDNG_DTL_STTS_CD /* 발송 상세 상태 코드 */
, SD.BFR_SNDNG_DTL_STTS_CD /* 전 발송 상세 상태 코드 */
, SD.BFR_DLVR_YMD /* 전 배달 일자 */
, SD.BFR_DLVR_HR /* 전 배달 시간 */
, S.SNDNG_ID /* 발송 ID */
, S.SGG_CD /* 시군구 코드 */
, S.TASK_SE_CD /* 업무 구분 코드 */
FROM TB_SNDNG_DTL SD
INNER JOIN TB_SNDNG S ON (SD.SNDNG_ID = S.SNDNG_ID)
</sql>
<select id="selectSndbks" parameterType="map" resultType="dataobject">/* 반송 정보 조회(sndngMapper.selectSndbks) */
<include refid="selectSndbk" />
<where>
<if test="sndngDtlIDs != null">
AND SD.SNDNG_DTL_ID IN ( /* 발송 상세 IDs */
<foreach collection="sndngDtlIDs" item="sndngDtlId" separator=","> #{sndngDtlId} </foreach>
)
</if>
<if test="sndngDtlId != null">
AND SD.SNDNG_DTL_ID = #{sndngDtlId} /* 발송 상세 ID */
</if>
<if test="sndngIDs != null">
AND SD.SNDNG_ID IN ( /* 발송 IDs */
<foreach collection="sndngIDs" item="sndngId" separator=","> #{sndngId} </foreach>
)
</if>
<if test="sndngId != null">
AND SD.SNDNG_ID = #{sndngId} /* 발송 ID */
</if>
<if test="crdnIDs != null">
AND SD.CRDN_ID IN ( /* 단속 IDs */
<foreach collection="crdnIDs" item="crdnId" separator=","> #{crdnId} </foreach>
)
</if>
<if test="crdnId != null">
AND SD.CRDN_ID = #{crdnId} /* 단속 ID */
</if>
<if test="svbtcIDs != null">
AND SD.SVBTC_ID IN ( /* 공시송달 IDs */
<foreach collection="svbtcIDs" item="svbtcId" separator=","> #{svbtcId} </foreach>
)
</if>
<if test="svbtcId != null">
AND SD.SVBTC_ID = #{svbtcId} /* 공시송달 ID */
</if>
</where>
AND SD.DEL_YN = 'N'
<include refid="utility.orderBy" />
</select>
<update id="createSndbk" parameterType="map">/* 발송상세의 반송 정보 수정(sndngMapper.createSndbk) */
UPDATE TB_SNDNG_DTL
SET BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD /* 전 발송 상세 상태 코드 */
, DLVR_YMD = #{sndngDtl.dlvrYmd} /* 배달 일자 */
SET DLVR_YMD = #{sndngDtl.dlvrYmd} /* 배달 일자 */
, DLVR_TM = #{sndngDtl.dlvrTm} /* 배달 시각 */
, UNDLVR_RSN_CD = #{sndngDtl.undlvrRsnCd} /* 미배달 사유 코드 */
, UNDLVR_RSN_NM = #{sndngDtl.undlvrRsnNm} /* 미배달 사유 명 */
, SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */
, BFR_SNDNG_DTL_STTS_CD = #{sndngDtl.bfrSndngDtlSttsCd} /* 전 발송 상세 상태 코드 */
, MDFCN_DT = <include refid="utility.now" /> /* 수정 일시 */
, MDFR = #{sndngDtl.modifiedBy} /* 수정자 */
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId}
@ -1717,14 +1772,21 @@
<update id="deleteSndbk" parameterType="map">/* 발송상세의 반송 정보 삭제(sndngMapper.deleteSndbk) */
UPDATE TB_SNDNG_DTL
SET BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD /* 전 발송 상세 상태 코드 */
, UNDLVR_RSN_CD = NULL /* 미배달 사유 코드 */
SET UNDLVR_RSN_CD = NULL /* 미배달 사유 코드 */
, UNDLVR_RSN_NM = NULL /* 미배달 사유 명 */
, SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} /* 발송 상세 상태 코드 */
, BFR_SNDNG_DTL_STTS_CD = #{sndngDtl.bfrSndngDtlSttsCd} /* 전 발송 상세 상태 코드 */
, MDFCN_DT = <include refid="utility.now" /> /* 수정 일시 */
, MDFR = #{sndngDtl.modifiedBy} /* 수정자 */
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} /* 발송 상세 ID */
AND DEL_YN = 'N'
</update>
<select id="selectTnocsSndngDtlSvbtc" parameterType="map" resultType="int">/* 발송상세 대장에 공시송달ID에 해당하는 총건수 가져오기(sndngMapper.selectTnocsSndngDtlSvbtc) */
SELECT COUNT(*) TNOCS
FROM TB_SNDNG_DTL
WHERE SVBTC_ID = #{sndngDtl.svbtcId} /* 공시송달 ID */
AND DEL_YN = 'N'
</select>
</mapper>

@ -31,9 +31,7 @@
SELECT SV.SVBTC_ID <!-- 공시송달 ID -->
, SV.SGG_CD <!-- 시군구 코드 -->
, SV.TASK_SE_CD <!-- 업무 구분 코드 -->
, (SELECT GET_CODE_NM('FIM054', SV.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
, SV.SNDNG_SE_CD <!-- 발송 구분 코드 -->
, (SELECT GET_CODE_NM('FIM047', SV.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM <!-- 발송 구분 명 -->
, SV.SVBTC_YMD <!-- 공시송달 일자 -->
, SV.TTL_NM <!-- 제목 명 -->
, SV.DOC_NO <!-- 문서 번호 -->
@ -42,14 +40,16 @@
, SV.DEL_YN <!-- 삭제 여부 -->
, SV.REG_DT <!-- 등록 일시 -->
, SV.RGTR <!-- 등록자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SV.RGTR) AS RGTR_NM <!-- 등록자 명 -->
, SV.MDFCN_DT <!-- 수정 일시 -->
, SV.MDFR <!-- 수정자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SV.MDFR) AS MDFR_NM <!-- 등록자 명 -->
, SV.DEL_DT <!-- 삭제 일시 -->
, SV.DLTR <!-- 삭제자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SV.DLTR) AS DLTR_NM <!-- 등록자 명 -->
, SV.DEL_RSN <!-- 삭제 사유 -->
, (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 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.DLTR) AS DLTR_NM <!-- 등록자 명 -->
FROM TB_SVBTC SV
</sql>
@ -59,10 +59,10 @@
WHERE SV.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
AND SV.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
<if test="schSvbtcYmdFrom != null">
AND SV.SVBTC_YMD <![CDATA[ >= ]]> #{schSvbtcYmdFrom} <!-- 발송 일자 시작 -->
AND SV.SVBTC_YMD <![CDATA[>=]]> #{schSvbtcYmdFrom} <!-- 발송 일자 시작 -->
</if>
<if test="schSvbtcYmdTo != null">
AND SV.SVBTC_YMD <![CDATA[ <= ]]> #{schSvbtcYmdTo} <!-- 발송 일자 종료 -->
AND SV.SVBTC_YMD <![CDATA[<=]]> #{schSvbtcYmdTo} <!-- 발송 일자 종료 -->
</if>
<if test="schSndngSeCd != null">
AND SV.SNDNG_SE_CD = #{schSndngSeCd} <!-- 발송 구분 코드 -->
@ -120,7 +120,6 @@
, SD.SNDNG_DTL_ID <!-- 발송 상세 ID -->
, SD.SNDNG_ID <!-- 발송 ID -->
, SD.CRDN_ID <!-- 단속 ID -->
, SD.LEVY_ID <!-- 부과 ID -->
, SD.SNDNG_SE_CD <!-- 발송 구분 코드 -->
, (SELECT GET_CODE_NM('FIM047', SD.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM <!-- 발송 구분 명 -->
, VHRNO <!-- 차량번호 -->

@ -451,7 +451,7 @@
$("#btnAddFile--${pageName}").on('click', () => { $("#uploadFiles--${pageName}").trigger("click"); });
}
// 화면 초기 설정
// 초기 기본 설정
initForm${pageName} = () => {
// 화면 초기화
$("#frmEdit--${pageName}")[0].reset();

@ -64,6 +64,8 @@
**************************************************************************/
// URL
var ${pageName}PrefixUrl = "/sndb/sndb01";
// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정)
var ${pageName}CallPurpose = "${callPurpose}";
// FormFields
var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}");
@ -112,7 +114,7 @@
${pageName}Control.save = (info) => {
if (!info) return;
let create = isEmpty(info.sndngDtlId);
let create = (${pageName}CallPurpose == "create");
ajax.post({
url : !create ? ${pageName}Control.urls.update : ${pageName}Control.urls.create
@ -121,6 +123,22 @@
});
}
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
// 저장 버튼 클릭 이벤트
fnSave${pageName} = () => {
// validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
dialog.alert({
content : "현재 " + ${pageName}Control.prefixName + " 정보를 저장하시겠습니까?"
, onOK : () => {
${pageName}Control.save(${pageName}Fields.get());
}
});
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/
@ -151,27 +169,31 @@
}
// 화면 초기값 셋팅
setForm${pageName} = () => {
// 초기 기본 설정
initForm${pageName} = () => {
// 화면 초기화
$("#frmEdit--${pageName}")[0].reset();
// 달력 초기화
initDatepicker("frmEdit--${pageName}");
$("#dlvrYmd--${pageName}").datepicker("setDate", new Date());
}
/**************************************************************************
* 버튼 click Event
**************************************************************************/
// 저장 버튼 클릭 이벤트
fnSave${pageName} = () => {
// validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
// 기본 데이터 설정
setFormData${pageName} = () => {
// 미배달 사유 변경 이벤트
$("#undlvrRsnCd--${pageName}").trigger("change");
dialog.alert({
content : "현재 " + ${pageName}Control.prefixName + " 정보를 저장하시겠습니까?"
, onOK : () => {
${pageName}Control.save(${pageName}Fields.get());
if (${pageName}CallPurpose == "view") {
// input 요소들을 disabled
$("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true);
// button 요소들을 disabled
$("#btnSave--${pageName}").prop("disabled", true); // 저장 버튼
} else if (${pageName}CallPurpose == "create") {
//
} else if (${pageName}CallPurpose == "update") {
//
}
});
}
/**************************************************************************
@ -181,13 +203,14 @@
// 이벤트 설정
setEvent${pageName}();
// 화면 초기 설정
setForm${pageName}();
// 초기 기본 설정
initForm${pageName}();
// Dataset 설정
${pageName}Control.setData([${sndbkInfo}]);
// 미배달 사유 변경 이벤트
$("#undlvrRsnCd--${pageName}").trigger("change");
// 기본 데이터 설정
setFormData${pageName}();
});
</script>

@ -403,7 +403,7 @@
${pageName}${pageDataName2}Dataset.clear();
// Dataset 셋팅
${pageName}Control.setData(resp.cvlcptDscsn); // 발송 이력 정보
${pageName}Control.setData(resp.sndngDtl); // 발송 이력 정보
${pageName}${pageDataName2}Dataset.setData(resp.svbtcList); // 공시송달 이력 정보
// 최상단 단속 Data 셋팅
@ -492,6 +492,8 @@
let btnTitle = $("#btnRemoveSndbk--${pageName}").attr("title");
let sndngDtlId = ${pageName}Control.dataset.getValue("SNDNG_DTL_ID"); // 발송 상세 ID
let undlvrRsnNm = ${pageName}Control.dataset.getValue("UNDLVR_RSN_NM"); // 미배달 사유 명
let sndngDtlSttsNm = ${pageName}Control.dataset.getValue("SNDNG_DTL_STTS_NM"); // 발송 상세 상태 코드
// 발송상세ID 가 없다면.. return
if (typeof sndngDtlId == "undefined" || sndngDtlId == null || sndngDtlId == "") return;

Loading…
Cancel
Save