개별총정보 - 개별 반송 등록, 수정, 삭제 추가.

main
jjh 1 year ago
parent 93f69d9340
commit 2e45abe2b2

@ -140,8 +140,35 @@ public interface SndngMapper extends AbstractMapper {
return !sndbkInfo.isEmpty() ? sndbkInfo.get(0) : null; return !sndbkInfo.isEmpty() ? sndbkInfo.get(0) : null;
} }
/** .
* @param sndngDtl
* @return
*/
int createSndbk(Map<String, Object> params);
default boolean createSndbk(SndngDtl sndngDtl) {
return sndngDtl != null && createSndbk(params().set("sndngDtl", sndngDtl)) == 1;
}
/** .
* @param sndngDtl
* @return
*/
int updateSndbk(Map<String, Object> params);
default boolean updateSndbk(SndngDtl sndngDtl) {
return sndngDtl != null && updateSndbk(params().set("sndngDtl", sndngDtl)) == 1;
}
/** .
* @param sndngDtl
* @return
*/
int deleteSndbk(Map<String, Object> params);
default boolean deleteSndbk(SndngDtl sndngDtl) {
return sndngDtl != null && deleteSndbk(params().set("sndngDtl", sndngDtl)) == 1;
}

@ -100,12 +100,38 @@ public interface SndngService {
*/ */
String createSndngLink(Sndng sndng); String createSndngLink(Sndng sndng);
/** ID .<br /> /** ID .<br />
* @param sndngDtlId ID * @param sndngDtlId ID
* @return * @return
*/ */
DataObject getSndbkInfo(SndbQuery req); DataObject getSndbkInfo(SndbQuery req);
/** .
* @param sndngDtl
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String createSndbk(SndngDtl sndngDtl);
/** .
* @param sndngDtl
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String updateSndbk(SndngDtl sndngDtl);
/** .
* @param sndngDtl
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String deleteSndbk(SndngDtl sndngDtl);

@ -1,7 +1,5 @@
package cokr.xit.fims.sndb.service.bean; package cokr.xit.fims.sndb.service.bean;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.model;
import java.util.List; import java.util.List;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -24,7 +22,6 @@ import cokr.xit.fims.enis.service.bean.EnisMtchgBean;
import cokr.xit.fims.epst.EpostRcptDtl; import cokr.xit.fims.epst.EpostRcptDtl;
import cokr.xit.fims.epst.EpostRcptReg; import cokr.xit.fims.epst.EpostRcptReg;
import cokr.xit.fims.epst.service.bean.EpostRcptRegBean; import cokr.xit.fims.epst.service.bean.EpostRcptRegBean;
import cokr.xit.fims.excl.LevyExclQuery;
import cokr.xit.fims.levy.Levy; import cokr.xit.fims.levy.Levy;
import cokr.xit.fims.levy.service.bean.LevyBean; import cokr.xit.fims.levy.service.bean.LevyBean;
import cokr.xit.fims.sndb.SndbQuery; import cokr.xit.fims.sndb.SndbQuery;
@ -972,13 +969,81 @@ public class SndngBean extends AbstractComponent {
* @param sndngDtlId ID * @param sndngDtlId ID
* @return * @return
*/ */
public DataObject getSndbkInfo(SndbQuery req) { public DataObject getSndbkInfo(SndbQuery req) {
return sndngMapper.selectSndbkInfo(req); return sndngMapper.selectSndbkInfo(req);
} }
/** .
* @param sndngDtl
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String createSndbk(SndngDtl sndngDtl) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지
// 발송 상세(TB_SNDNG_DTL) 대장에 반송 정보를 등록 한다.
retSuccess = sndngMapper.createSndbk(sndngDtl);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("발송상세의 반송 정보 등록에 실패하였습니다.");
}
retMessage = "[S] 작업이 정상 처리 되었습니다.";
return retMessage;
}
/** .
* @param sndngDtl
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String updateSndbk(SndngDtl sndngDtl) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지
// 발송 상세(TB_SNDNG_DTL) 대장에 반송 정보를 등록 한다.
retSuccess = sndngMapper.updateSndbk(sndngDtl);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("발송상세의 반송 정보 수정에 실패하였습니다.");
}
retMessage = "[S] 작업이 정상 처리 되었습니다.";
return retMessage;
}
/** .
* @param sndngDtl
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String deleteSndbk(SndngDtl sndngDtl) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지
// 발송 상세(TB_SNDNG_DTL) 대장에 반송 정보를 등록 한다.
retSuccess = sndngMapper.deleteSndbk(sndngDtl);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("발송상세의 반송 정보 삭제에 실패하였습니다.");
}
retMessage = "[S] 작업이 정상 처리 되었습니다.";
return retMessage;
}

@ -95,6 +95,20 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic
return sndngBean.getSndbkInfo(req); return sndngBean.getSndbkInfo(req);
} }
@Override
public String createSndbk(SndngDtl sndngDtl) {
return sndngBean.createSndbk(sndngDtl);
}
@Override
public String updateSndbk(SndngDtl sndngDtl) {
return sndngBean.updateSndbk(sndngDtl);
}
@Override
public String deleteSndbk(SndngDtl sndngDtl) {
return sndngBean.deleteSndbk(sndngDtl);
}

@ -13,6 +13,7 @@ import cokr.xit.base.user.service.UserService;
import cokr.xit.base.web.ApplicationController; import cokr.xit.base.web.ApplicationController;
import cokr.xit.fims.sndb.SndbQuery; import cokr.xit.fims.sndb.SndbQuery;
import cokr.xit.fims.sndb.Sndng; import cokr.xit.fims.sndb.Sndng;
import cokr.xit.fims.sndb.SndngDtl;
import cokr.xit.fims.sndb.service.SndngService; import cokr.xit.fims.sndb.service.SndngService;
import cokr.xit.foundation.data.DataObject; import cokr.xit.foundation.data.DataObject;
@ -44,9 +45,14 @@ public class Sndb01Controller extends ApplicationController {
, advanceNoticeSendingMain = "/070/main.do" // 사전통지 발송 현황 메인 화면 , advanceNoticeSendingMain = "/070/main.do" // 사전통지 발송 현황 메인 화면
, getAdvntceSndngList = "/070/list.do" // 사전통지 발송 대상 목록 조회 , getAdvntceSndngList = "/070/list.do" // 사전통지 발송 대상 목록 조회
, getAdvntceSndngDltInfo = "/080/info.do" // 사전통지 발송 상세 대장 조회 , getAdvntceSndngDltInfo = "/080/info.do" // 사전통지 발송 상세 대장 조회
, getSndbkInfo = "/220/info.do" //
, createSndng = "/020/createSndng.do" // 발송 대상 등록 , createSndng = "/020/createSndng.do" // 발송 대상 등록
, createSndngLink = "/080/createSndngLink.do" // 우편 통합 발송 연계 등록 , createSndngLink = "/080/createSndngLink.do" // 우편 통합 발송 연계 등록
, getSndbkInfo = "/220/info.do" // 발송 상세의 반송 정보 조회
, createSndbk = "/220/create.do" // 발송 상세의 반송 정보 등록
, updateSndbk = "/220/update.do" // 발송 상세의 반송 정보 수정
, deleteSndbk = "/220/delete.do" // 발송 상세의 반송 정보 삭제
; ;
} }
@ -380,19 +386,72 @@ public class Sndb01Controller extends ApplicationController {
; ;
} }
} }
//with qrySet do begin
// ParamByName('GP_SEND_DATE').AsString := aDate; /** .
// ParamByName('GP_RETURN_CD').AsString := aCause; * @param sndngDtl
// ParamByName('GP_STATE').AsString := GOJI_PRT_GUBUN_RETURN; //반송 * @return jsonView
// ParamByName('GP_CODE').AsInteger := DataSource1.DataSet.FieldByName('GP_CODE').AsInteger; * <pre><code> {
// ExecSQL; * "saved": true, false
//end; * }</code></pre>
//with DataSource1.DataSet do begin */
// Edit; public ModelAndView createSndbk(SndngDtl sndngDtl) {
// FieldByName('GP_SEND_DATE').AsString := aDate; boolean saved = false;
// FieldByName('GP_RETURN_CD').AsString := aCause; String retMessage = sndngService.createSndbk(sndngDtl);
// FieldByName('GP_STATE').AsString := GOJI_PRT_GUBUN_RETURN; //반송
// Post; if (retMessage.contains("[S]")) {
//end; saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("retMessage", retMessage);
}
/** .
* @param sndngDtl
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView updateSndbk(SndngDtl sndngDtl) {
boolean saved = false;
String retMessage = sndngService.updateSndbk(sndngDtl);
if (retMessage.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("retMessage", retMessage);
}
/** .
* @param sndngDtl
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView deleteSndbk(SndngDtl sndngDtl) {
boolean saved = false;
String retMessage = sndngService.deleteSndbk(sndngDtl);
if (retMessage.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("retMessage", retMessage);
}
} }

@ -20,6 +20,7 @@ import cokr.xit.fims.payer.Payer;
import cokr.xit.fims.payer.PayerQuery; import cokr.xit.fims.payer.PayerQuery;
import cokr.xit.fims.sndb.SndbQuery; import cokr.xit.fims.sndb.SndbQuery;
import cokr.xit.fims.sndb.Sndng; import cokr.xit.fims.sndb.Sndng;
import cokr.xit.fims.sndb.SndngDtl;
import cokr.xit.fims.sprt.CvlcptDscsnCn; import cokr.xit.fims.sprt.CvlcptDscsnCn;
import cokr.xit.fims.sprt.SprtQuery; import cokr.xit.fims.sprt.SprtQuery;
@ -567,12 +568,28 @@ public class DpvController {
} }
@Override @Override
@RequestMapping(name="장애인과태료업무 우편통합 발송 연계 등록", value=METHOD_URL.getSndbkInfo) @RequestMapping(name="장애인과태료업무 발송상세의 반송(미배달) 정보 조회", value=METHOD_URL.getSndbkInfo)
public ModelAndView getSndbkInfo(SndbQuery req) { public ModelAndView getSndbkInfo(SndbQuery req) {
return super.getSndbkInfo(req); return super.getSndbkInfo(req);
} }
@Override
@RequestMapping(name="장애인과태료업무 발송상세의 반송(미배달) 정보 등록", value=METHOD_URL.createSndbk)
public ModelAndView createSndbk(SndngDtl sndngDtl) {
return super.createSndbk(sndngDtl);
}
@Override
@RequestMapping(name="장애인과태료업무 발송상세의 반송(미배달) 정보 수정", value=METHOD_URL.updateSndbk)
public ModelAndView updateSndbk(SndngDtl sndngDtl) {
return super.updateSndbk(sndngDtl);
}
@Override
@RequestMapping(name="장애인과태료업무 발송상세의 반송(미배달) 정보 삭제", value=METHOD_URL.deleteSndbk)
public ModelAndView deleteSndbk(SndngDtl sndngDtl) {
return super.deleteSndbk(sndngDtl);
}
} }

@ -845,6 +845,7 @@
, SD.RG_NO <!-- 등기 번호 --> , SD.RG_NO <!-- 등기 번호 -->
, SD.DLVR_YMD <!-- 배달 일자 --> , SD.DLVR_YMD <!-- 배달 일자 -->
, SD.DLVR_TM <!-- 배달 시각 --> , SD.DLVR_TM <!-- 배달 시각 -->
, GET_CODE('EGP010', SD.UNDLVR_RSN_NM) AS UNDLVR_RSN_CD <!-- 미배달 사유 코드 -->
, SD.UNDLVR_RSN_NM <!-- 미배달 사유 명 --> , SD.UNDLVR_RSN_NM <!-- 미배달 사유 명 -->
, SD.RCPN_NM <!-- 수령인 명 --> , SD.RCPN_NM <!-- 수령인 명 -->
, SD.RCPN_REL_NM <!-- 수령인 관계 명 --> , SD.RCPN_REL_NM <!-- 수령인 관계 명 -->
@ -938,6 +939,46 @@
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </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} <!-- 배달 일자 -->
, DLVR_TM = #{sndngDtl.dlvrTm} <!-- 배달 시각 -->
, UNDLVR_RSN_NM = #{sndngDtl.undlvrRsnNm} <!-- 미배달 사유 명 -->
, SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{sndngDtl.modifiedBy} <!-- 수정자 -->
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} <!-- 발송 상세 ID -->
AND DEL_YN = 'N'
</update>
<update id="updateSndbk" parameterType="map">/* 발송상세의 반송 정보 수정(sndngMapper.updateSndbk) */
UPDATE TB_SNDNG_DTL
SET DLVR_YMD = #{sndngDtl.dlvrYmd} <!-- 배달 일자 -->
, DLVR_TM = #{sndngDtl.dlvrTm} <!-- 배달 시각 -->
, UNDLVR_RSN_NM = #{sndngDtl.undlvrRsnNm} <!-- 미배달 사유 명 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{sndngDtl.modifiedBy} <!-- 수정자 -->
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} <!-- 발송 상세 ID -->
AND DEL_YN = 'N'
</update>
<update id="deleteSndbk" parameterType="map">/* 발송상세의 반송 정보 삭제(sndngMapper.deleteSndbk) */
UPDATE TB_SNDNG_DTL
SET BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD <!-- 전 발송 상세 상태 코드 -->
, UNDLVR_RSN_NM = NULL <!-- 미배달 사유 명 -->
, SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{sndngDtl.modifiedBy} <!-- 수정자 -->
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} <!-- 발송 상세 ID -->
AND DEL_YN = 'N'
</update>
<select id="selectSndngDtlLevyInfo" parameterType="string" resultType="dataobject">/* 발송 상세 및 부과 객체 가져오기(sndngMapper.selectSndngDtlLevyInfo) */ <select id="selectSndngDtlLevyInfo" parameterType="string" resultType="dataobject">/* 발송 상세 및 부과 객체 가져오기(sndngMapper.selectSndngDtlLevyInfo) */
SELECT SD.SNDNG_DTL_ID <!-- 발송 상세 ID --> SELECT SD.SNDNG_DTL_ID <!-- 발송 상세 ID -->
, SD.SNDNG_ID <!-- 발송 ID --> , SD.SNDNG_ID <!-- 발송 ID -->

@ -53,11 +53,11 @@
<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"> <span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schLevyExclYmdFrom--${pageName}" name="schLevyExclYmdFrom" <input type="text" class="form-control form-date" id="schLevyExclYmdFrom--${pageName}" name="schLevyExclYmdFrom"
data-fmt-type="day" title="시작 날짜 선택" /> data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~ ~
<input type="text" class="form-control form-date" id="schLevyExclYmdTo--${pageName}" name="schLevyExclYmdTo" <input type="text" class="form-control form-date" id="schLevyExclYmdTo--${pageName}" name="schLevyExclYmdTo"
data-fmt-type="day" title="종료 날짜 선택" /> data-fmt-type="day" autocomplete="off" title="종료 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span> </span>
</div> </div>
@ -91,23 +91,23 @@
<!-- 차량번호 --> <!-- 차량번호 -->
<div class="col-6"> <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>
<input type="text" class="form-control w-px-150" id="schVhrno--${pageName}" name="schVhrno" /> <input type="text" class="form-control w-px-150" id="schVhrno--${pageName}" name="schVhrno" autocomplete="off" />
</div> </div>
<!-- 납부자명 --> <!-- 납부자명 -->
<div class="col-6"> <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>
<input type="text" class="form-control w-px-150" id="schRtpyrNm--${pageName}" name="schRtpyrNm" /> <input type="text" class="form-control w-px-160" id="schRtpyrNm--${pageName}" name="schRtpyrNm"autocomplete="off" />
</div> </div>
<!-- 단속일자 --> <!-- 단속일자 -->
<div class="col-6"> <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"> <span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schCrdnYmdFrom--${pageName}" name="schCrdnYmdFrom" <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> <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" <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> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span> </span>
</div> </div>
@ -117,7 +117,7 @@
<input type="text" class="form-control" id="byOutput--${pageName}" value="동적 검색" readonly /> <input type="text" class="form-control" id="byOutput--${pageName}" value="동적 검색" readonly />
<input type="hidden" id="mainOption--${pageName}" name="mainOption" /> <input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<input type="hidden" id="subOption--${pageName}" name="subOption" /> <input type="hidden" id="subOption--${pageName}" name="subOption" />
<input type="text" class="form-control w-px-300" id="term--${pageName}" name="term" /> <input type="text" class="form-control w-px-300" id="term--${pageName}" name="term" autocomplete="off" />
<!-- 상세 검색조건 버튼 --> <!-- 상세 검색조건 버튼 -->
<span class="flr"> <span class="flr">
<button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}"> <button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">
@ -139,11 +139,11 @@
</select> </select>
<span class="form-search-linebox"> <span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schDetailRegDtFrom--${pageName}" name="schDetailRegDtFrom" <input type="text" class="form-control form-date" id="schDetailRegDtFrom--${pageName}" name="schDetailRegDtFrom"
data-fmt-type="day" title="시작 날짜 선택" /> data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
~ ~
<input type="text" class="form-control form-date" id="schDetailRegDtTo--${pageName}" name="schDetailRegDtTo" <input type="text" class="form-control form-date" id="schDetailRegDtTo--${pageName}" name="schDetailRegDtTo"
data-fmt-type="day" title="종료 날짜 선택"> data-fmt-type="day" autocomplete="off" title="종료 날짜 선택">
<button type="button" class="bx bx-sm bx-calendar bg-white"></button> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span> </span>
</div> </div>
@ -153,7 +153,10 @@
<option value="rgtr">등록자</option> <option value="rgtr">등록자</option>
<option value="mdfr">수정자</option> <option value="mdfr">수정자</option>
</select> </select>
<input type="text" class="form-control" id="schDetailRgtrNm--${pageName}" name="schDetailRgtrNm" /> <input type="text" class="form-control w-px-160" id="schDetailRgtrNm--${pageName}" name="schDetailRgtrNm" autocomplete="off" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnUser--${pageName}" title="사용자 검색" onclick="fnUser${pageName}();">
검색
</button>
</div> </div>
</div> </div>
</div> </div>
@ -172,10 +175,10 @@
</div> </div>
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<button type="button" class="btn btn-primary" id="btnUpdate--${pageName}" title="수정" onclick="fnUpdate${pageName}();"> <button type="button" class="btn btn-primary w-px-120" id="btnUpdate--${pageName}" title="수정" onclick="fnUpdate${pageName}();">
수정 수정
</button> </button>
<button type="button" class="btn btn-primary" id="btnRemove--${pageName}" title="삭제" onclick="fnRemove${pageName}();"> <button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="삭제" onclick="fnRemove${pageName}();">
삭제 삭제
</button> </button>
</span> </span>
@ -505,7 +508,7 @@
// 달력 초기화 // 달력 초기화
initDatepicker("frmSearch--${pageName}"); initDatepicker("frmSearch--${pageName}");
$("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-30).date); $("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date);
$("#schLevyExclYmdTo--${pageName}").datepicker("setDate", new Date()); $("#schLevyExclYmdTo--${pageName}").datepicker("setDate", new Date());
// DataTables width 변경 조정 // DataTables width 변경 조정
@ -566,6 +569,11 @@
// $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); // style="width" 변경 조정 // $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); // style="width" 변경 조정
} }
// 사용자 조회 버튼 이벤트
fnUser${pageName} = () => {
}
// 수정 버튼 이벤트 // 수정 버튼 이벤트
fnUpdate${pageName} = () => { fnUpdate${pageName} = () => {
let levyExclId = ${pageName}Control.dataset.getValue("LEVY_EXCL_ID"); let levyExclId = ${pageName}Control.dataset.getValue("LEVY_EXCL_ID");

@ -21,19 +21,19 @@
<!-- 차량번호 --> <!-- 차량번호 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="vhrno--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차량번호</label> <label for="vhrno--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차량번호</label>
<input type="text" class="form-control w-px-120" id="vhrno--${pageName}" name="vhrno" data-map="VHRNO" readonly /> <input type="text" class="form-control w-px-120" id="vhrno--${pageName}" name="vhrno" data-map="VHRNO" autocomplete="off" readonly />
</div> </div>
<!-- 부과 제외 구분 --> <!-- 부과 제외 구분 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="levyExclSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">부과제외구분</label> <label for="levyExclSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">부과제외구분</label>
<input type="text" class="form-control w-px-120" id="levyExclSeNm--${pageName}" readonly /> <input type="text" class="form-control w-px-120" id="levyExclSeNm--${pageName}" autocomplete="off" readonly />
<input type="hidden" id="levyExclSeCd--${pageName}" name="levyExclSeCd" data-map="LEVY_EXCL_SE_CD" /> <input type="hidden" id="levyExclSeCd--${pageName}" name="levyExclSeCd" data-map="LEVY_EXCL_SE_CD" />
</div> </div>
<!-- 부과 제외 일자 --> <!-- 부과 제외 일자 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="levyExclYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">부과제외일자</label> <label for="levyExclYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">부과제외일자</label>
<input type="text" class="form-control form-date" id="levyExclYmd--${pageName}" name="levyExclYmd" data-map="LEVY_EXCL_YMD" <input type="text" class="form-control form-date" id="levyExclYmd--${pageName}" name="levyExclYmd" data-map="LEVY_EXCL_YMD"
data-fmt-type="day" title="날짜 선택" maxlength="10" required /> data-fmt-type="day" autocomplete="off" title="날짜 선택" maxlength="10" required />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</div> </div>
<!-- 부과 제외 사유 --> <!-- 부과 제외 사유 -->
@ -49,7 +49,7 @@
<!-- 기타 내용 --> <!-- 기타 내용 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="etcCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">기타 내용</label> <label for="etcCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">기타 내용</label>
<textarea type="text" class="form-control w-80" id="etcCn--${pageName}" name="etcCn" data-map="ETC_CN" rows="3" data-maxlengthb="1000"></textarea> <textarea type="text" class="form-control w-80" id="etcCn--${pageName}" name="etcCn" data-map="ETC_CN" autocomplete="off" rows="3" data-maxlengthb="1000"></textarea>
</div> </div>
</div> </div>
</form> <!-- /입력 영역 --> </form> <!-- /입력 영역 -->

@ -527,7 +527,7 @@
// 달력 초기화 // 달력 초기화
initDatepicker("frmSearch--${pageName}"); initDatepicker("frmSearch--${pageName}");
$("#schRcptYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-30).date); $("#schRcptYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date);
$("#schRcptYmdTo--${pageName}").datepicker("setDate", new Date()); $("#schRcptYmdTo--${pageName}").datepicker("setDate", new Date());
// DataTables width 변경 조정 // DataTables width 변경 조정

@ -15,7 +15,7 @@
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" /> <input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" /> <input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" /> <input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" />
<input type="hidden" id="levyExclId--${pageName}" name="levyExclId" data-map="LEVY_EXCL_ID" /> <input type="hidden" id="sndngDtlId--${pageName}" name="sndngDtlId" data-map="SNDNG_DTL_ID" />
<div class="row g-1"> <div class="row g-1">
<!-- 배달 일자 --> <!-- 배달 일자 -->
@ -28,12 +28,13 @@
<!-- 미배달 사유 --> <!-- 미배달 사유 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="undlvrRsnCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">미배달 사유</label> <label for="undlvrRsnCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">미배달 사유</label>
<select class="form-select" id="undlvrRsnCd--${pageName}" name="undlvrRsnCd" data-map="UNDLVR_RSN_CD" required> <select class="form-select" id="undlvrRsnCd--${pageName}" name="undlvrRsnCd" data-map="UNDLVR_RSN_CD" onchange="changeUndlvrRsnCd(this.value);" required>
<option value="">선택하세요</option> <option value="">선택하세요</option>
<c:forEach items="${EGP010List}" var="item"> <c:forEach items="${EGP010List}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
</c:forEach> </c:forEach>
</select> </select>
<input type="text" class="form-control w-px-150" id="undlvrRsnNm--${pageName}" name="undlvrRsnNm" data-map="UNDLVR_RSN_NM" autocomplete="off" />
</div> </div>
</div> </div>
</form> <!-- /입력 영역 --> </form> <!-- /입력 영역 -->
@ -89,9 +90,12 @@
if (item.data.DLVR_YMD == "") { if (item.data.DLVR_YMD == "") {
$("#dlvrYmd--${pageName}").datepicker("setDate", new Date()); $("#dlvrYmd--${pageName}").datepicker("setDate", new Date());
} }
// 미배달 사유 // 미배달 사유
if (item.data.UNDLVR_RSN_NM != "") { if (item.data.UNDLVR_RSN_CD != null && item.data.UNDLVR_RSN_CD != "") {
$("#undlvrRsnCd--${pageName}").val(item.data.UNDLVR_RSN_NM).prop("selected", true); $("#undlvrRsnCd--${pageName}").val(item.data.UNDLVR_RSN_CD).prop("selected", true);
} else {
$("#undlvrRsnCd--${pageName}").val("7").prop("selected", true);
} }
} }
@ -107,10 +111,6 @@
if (resp.saved) { if (resp.saved) {
dialog.close(${pageName}Control.prefix + "Dialog"); dialog.close(${pageName}Control.prefix + "Dialog");
if ("${savedCallbackFuncName}" != "") {
${savedCallbackFuncName}(resp.saved);
}
} }
} }
@ -118,18 +118,24 @@
${pageName}Control.save = (info) => { ${pageName}Control.save = (info) => {
if (!info) return; if (!info) return;
let create = isEmpty(info.levyExclId); info.sndngDtlSttsCd = "10"; // 발송 상세 상태 코드(SNDNG_DTL_STTS_CD) FIM050 - 10 반송(개별등록)
// 민원 접수 관리에서 호출했다면..
if (create && "${saveCallbackFuncName}" != "") {
${saveCallbackFuncName}(info);
} else {
ajax.post({ ajax.post({
url : !create ? ${pageName}Control.urls.update : ${pageName}Control.urls.create url : ${pageName}CallPurpose == "create" ? ${pageName}Control.urls.create : ${pageName}Control.urls.update
, data : info , data : info
, success : resp => ${pageName}Control.onSave(resp) , success : resp => ${pageName}Control.onSave(resp)
}); });
} }
// 미배달사유 변경 이벤트
changeUndlvrRsnCd = (obj) => {
if (obj == "7") {
$("#undlvrRsnNm--${pageName}").prop("readonly", false);
$("#undlvrRsnNm--${pageName}").val(${pageName}Control.dataset.getValue("UNDLVR_RSN_NM"));
} else {
$("#undlvrRsnNm--${pageName}").prop("readonly", true);
$("#undlvrRsnNm--${pageName}").val($("#undlvrRsnCd--${pageName} option:selected").text());
}
} }
/************************************************************************** /**************************************************************************
@ -167,6 +173,7 @@
initDatepicker("frmEdit--${pageName}"); initDatepicker("frmEdit--${pageName}");
$("#dlvrYmd--${pageName}").datepicker("setDate", new Date()); $("#dlvrYmd--${pageName}").datepicker("setDate", new Date());
} }
/************************************************************************** /**************************************************************************
* function * function
**************************************************************************/ **************************************************************************/

@ -331,7 +331,7 @@
, data : params || {} , data : params || {}
, success : resp => { , success : resp => {
dialog.open({ dialog.open({
id : "payerDialog" id : "sndbkInfoDialog"
, title : "개별반송 수정" , title : "개별반송 수정"
, content : resp , content : resp
, size : "md" , size : "md"
@ -341,10 +341,29 @@
}); });
} }
// 삭제 callback
${pageName}CallbackRemoveSndbk = (resp) => {
let btnTitle = $("#btnRemoveSndbk--${pageName}").attr("title");
let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage);
if (resp.saved) {
${pageName}RefreshDataInfo();
}
}
// 개별 반송 삭제 // 개별 반송 삭제
${pageName}RemoveSndbk = (params) => { ${pageName}RemoveSndbk = (params) => {
if (!params) return; if (!params) return;
params.sndngDtlSttsCd = "03"; // 발송 상세 상태 코드(SNDNG_DTL_STTS_CD) FIM050 - 03 발송
ajax.post({
url : wctx.url(params.taskSeCd + "/sndb/sndb01/220/delete.do")
, data : params
, success : resp => ${pageName}CallbackRemoveSndbk(resp)
});
} }
// 자료 재조회 // 자료 재조회
@ -409,6 +428,8 @@
fnCreateSndbk${pageName} = () => { fnCreateSndbk${pageName} = () => {
let sndngDtlId = ${pageName}Dataset.getValue("SNDNG_DTL_ID"); // 발송 상세 ID let sndngDtlId = ${pageName}Dataset.getValue("SNDNG_DTL_ID"); // 발송 상세 ID
let undlvrRsnNm = ${pageName}Dataset.getValue("UNDLVR_RSN_NM"); // 미배달 사유 명 let undlvrRsnNm = ${pageName}Dataset.getValue("UNDLVR_RSN_NM"); // 미배달 사유 명
let sndngDtlSttsCd = ${pageName}Dataset.getValue("SNDNG_DTL_STTS_CD"); // 발송 상세 상태 코드
// 발송상세ID 가 없다면.. return // 발송상세ID 가 없다면.. return
if (sndngDtlId == null || sndngDtlId == "") { if (sndngDtlId == null || sndngDtlId == "") {
@ -417,7 +438,16 @@
// 미배달 사유 확인 // 미배달 사유 확인
if (undlvrRsnNm != "" ) { if (undlvrRsnNm != "" ) {
dialog.alert({ dialog.alert({
content : "미배달 사유가 " + ${pageName}Dataset.getValue("UNDLVR_RSN_NM") + " 로 이미 등록 되어 있습니다." content : "미배달 사유가 " + ${pageName}Dataset.getValue("UNDLVR_RSN_NM") + " 로 이미 반송 등록이 되어 있습니다."
, onOK : () => {}
});
return;
}
// 발송상세 상태코드 확인
if (sndngDtlSttsCd == "06") {
dialog.alert({
content : "발송상세 상태가 " + ${pageName}Dataset.getValue("SNDNG_DTL_STTS_NM") + " 로 개별 반송을 등록할 수 없습니다."
, onOK : () => {} , onOK : () => {}
}); });
@ -485,16 +515,19 @@
} }
let params = { let params = {
callPurpose : "update" callPurpose : "delete"
, sggCd : ${pageName}Dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : ${pageName}Dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : ${pageName}Dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : ${pageName}Dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, sndngDtlId : sndngDtlId // 발송 상세 ID , sndngDtlId : sndngDtlId // 발송 상세 ID
, sndngDtlSttsCd : ${pageName}Dataset.getValue("SNDNG_DTL_STTS_CD") // 발송 상세 상태 코드
, undlvrRsnNm : ${pageName}Dataset.getValue("UNDLVR_RSN_NM") // 미배달 사유 명
}; };
dialog.alert({
content : "선택한 반송 정보(을)를 삭제하시겠습니까?"
, onOK : () => {
${pageName}RemoveSndbk(params); ${pageName}RemoveSndbk(params);
} }
});
}
// 우편 종적 보기 참고 https://www.data.go.kr/dataset/15000390/openapi.do // 우편 종적 보기 참고 https://www.data.go.kr/dataset/15000390/openapi.do
fnViewPostTrace${pageName} = () => { fnViewPostTrace${pageName} = () => {

Loading…
Cancel
Save