refactor:[pms:#2890]조정진행상세 > 피신청대리인 기능 구현중

This commit is contained in:
hylee 2022-11-16 17:27:13 +09:00
parent a918ffc965
commit 44353286e3
7 changed files with 473 additions and 20 deletions

View File

@ -117,5 +117,7 @@ public interface ApmService {
void addRpplPopPastAjax(RpplVO rpplVO);
void updtRpplPopPastAjax(RpplVO rpplVO);
RpplVO findByResPonDentDId(RpplVO rpplVO);
}

View File

@ -222,4 +222,8 @@ public class ApmDAO extends EgovAbstractDAO {
}
public RpplVO findByResPonDentDId(RpplVO rpplVO) {
return (RpplVO) select("Apm.findByResPonDentDId", rpplVO);
}
}

View File

@ -581,28 +581,11 @@ public class ApmServiceImpl implements ApmService {
@Override
public RpplVO findByRpplSeq(RpplVO rpplVO) {
RpplVO resultVO = apmDAO.findByRpplSeq(rpplVO);
resultVO.setRpplAddr(egovCryptoUtil.decrypt(resultVO.getRpplAddr()));
resultVO.setRpplAddrCpYn(egovCryptoUtil.decrypt(resultVO.getRpplAddrCpYn()));
resultVO.setRpplAddrDtl(egovCryptoUtil.decrypt(resultVO.getRpplAddrDtl()));
resultVO.setRpplBizId(egovCryptoUtil.decrypt(resultVO.getRpplBizId()));
resultVO.setRpplBizNm(egovCryptoUtil.decrypt(resultVO.getRpplBizNm()));
resultVO.setRpplBizNo(egovCryptoUtil.decrypt(resultVO.getRpplBizNo()));
resultVO.setRpplEmail(egovCryptoUtil.decrypt(resultVO.getRpplEmail()));
resultVO.setRpplGrade(egovCryptoUtil.decrypt(resultVO.getRpplGrade()));
resultVO.setRpplNm(egovCryptoUtil.decrypt(resultVO.getRpplNm()));
resultVO.setRpplPhone(egovCryptoUtil.decrypt(resultVO.getRpplPhone()));
resultVO.setRpplPost(egovCryptoUtil.decrypt(resultVO.getRpplPost()));
resultVO.setRpplRealAddr(egovCryptoUtil.decrypt(resultVO.getRpplRealAddr()));
resultVO.setRpplRealAddrDtl(egovCryptoUtil.decrypt(resultVO.getRpplRealAddrDtl()));
resultVO.setRpplRealPost(egovCryptoUtil.decrypt(resultVO.getRpplRealPost()));
resultVO.setRpplRelationEtc(egovCryptoUtil.decrypt(resultVO.getRpplRelationEtc()));
System.out.println(resultVO.toString());
return this.rpplDataDecrypt(apmDAO.findByRpplSeq(rpplVO));
return resultVO;
// RpplVO returnVO = this.rpplDataDecrypt(apmDAO.findByRpplSeq(rpplVO));
// return returnVO;
}
@Override
@ -618,7 +601,31 @@ public class ApmServiceImpl implements ApmService {
RpplVO returnVO = this.rpplDataEncrypt(rpplVO);
apmDAO.updtRpplPopPastAjax(returnVO);
}
@Override
public RpplVO findByResPonDentDId(RpplVO rpplVO) {
System.out.println(" ;::::: "+ rpplVO.getRpplRespddSeq());
try {
return this.rpplDataDecrypt(apmDAO.findByResPonDentDId(rpplVO));
} catch (Exception e) {
e.printStackTrace();
}
// RpplVO resultVO = apmDAO.findByResPonDentDId(rpplVO);
return null;
}
/**
* @methodName : rpplDataEncrypt
* @author : 이호영
* @date : 2022.11.16
* @description : rppl 암호화 메소드
* @param rpplVO
* @return
*/
private RpplVO rpplDataEncrypt(RpplVO rpplVO) {
rpplVO.setRpplAddr(egovCryptoUtil.encrypt(rpplVO.getRpplAddr()));
@ -638,6 +645,33 @@ public class ApmServiceImpl implements ApmService {
return rpplVO;
}
/**
* @methodName : rpplDataDecrypt
* @author : 이호영
* @date : 2022.11.16
* @description : rppl 복호화 메소드
* @param resultVO
* @return
*/
private RpplVO rpplDataDecrypt(RpplVO resultVO) {
resultVO.setRpplAddr(egovCryptoUtil.decrypt(resultVO.getRpplAddr()));
resultVO.setRpplAddrCpYn(egovCryptoUtil.decrypt(resultVO.getRpplAddrCpYn()));
resultVO.setRpplAddrDtl(egovCryptoUtil.decrypt(resultVO.getRpplAddrDtl()));
resultVO.setRpplBizId(egovCryptoUtil.decrypt(resultVO.getRpplBizId()));
resultVO.setRpplBizNm(egovCryptoUtil.decrypt(resultVO.getRpplBizNm()));
resultVO.setRpplBizNo(egovCryptoUtil.decrypt(resultVO.getRpplBizNo()));
resultVO.setRpplEmail(egovCryptoUtil.decrypt(resultVO.getRpplEmail()));
resultVO.setRpplGrade(egovCryptoUtil.decrypt(resultVO.getRpplGrade()));
resultVO.setRpplNm(egovCryptoUtil.decrypt(resultVO.getRpplNm()));
resultVO.setRpplPhone(egovCryptoUtil.decrypt(resultVO.getRpplPhone()));
resultVO.setRpplPost(egovCryptoUtil.decrypt(resultVO.getRpplPost()));
resultVO.setRpplRealAddr(egovCryptoUtil.decrypt(resultVO.getRpplRealAddr()));
resultVO.setRpplRealAddrDtl(egovCryptoUtil.decrypt(resultVO.getRpplRealAddrDtl()));
resultVO.setRpplRealPost(egovCryptoUtil.decrypt(resultVO.getRpplRealPost()));
resultVO.setRpplRelationEtc(egovCryptoUtil.decrypt(resultVO.getRpplRelationEtc()));
return resultVO;
}

View File

@ -709,6 +709,24 @@ public class ApmController {
return "/kccadr/adjPgrMgr/apm/popup/addRpplPop";
}
/**
* 대리인등록 팝업 상세
*
* @param dlvinfoVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value = "popup/updtRpplPop.do")
public String updtRpplPop(@ModelAttribute("info") RpplVO rpplVO, ModelMap model) throws Exception {
RpplVO resultVO = apmService.findByResPonDentDId(rpplVO);
model.addAttribute("resultVO", resultVO);
return "/kccadr/adjPgrMgr/apm/popup/updtRpplPop";
}
/**
* 대리인등록 팝업 상세
*

View File

@ -253,6 +253,48 @@
WHERE A.RPPL_SEQ = #rpplSeq#
</select>
<select id="Apm.findByResPonDentDId" parameterClass="RpplVO" resultClass="RpplVO">
SELECT A.ADR_SEQ AS adrSeq /* 조정일련번호" */
, A.RPPL_SEQ AS rpplSeq /* 관리인일련번호" */
, A.RPPL_TY AS rpplTy /* 관리인구분" */
, A.AGNT_YN AS agntYn /* 조정기일대리여부" */
, A.RPPL_USR_TY AS rpplUsrTy /* 관리인분류" */
, A.ADR_OL_YN AS adrOlYn /* 전자조정진행여부" */
, A.RPPL_ID AS rpplId /* 조정사건관리인ID" */
, A.RPPL_NM AS rpplNm /* 이름_대표자" */
, A.RPPL_BIZ_ID AS rpplBizId /* 법인등록번호" */
, A.RPPL_BIZ_NM AS rpplBizNm /* 법인_사업체명" */
, A.RPPL_BIZ_NO AS rpplBizNo /* 개인사업자번호" */
, A.RPPL_POST AS rpplPost /* 우편번호" */
, A.RPPL_ADDR AS rpplAddr /* 주소" */
, A.RPPL_ADDR_DTL AS rpplAddrDtl /* 상세주소" */
, A.RPPL_ADDR_CP_YN AS rpplAddrCpYn /* 수령지동일여부" */
, A.RPPL_REAL_POST AS rpplRealPost /* 수령지우편번호" */
, A.RPPL_REAL_ADDR AS rpplRealAddr /* 수령지주소" */
, A.RPPL_REAL_ADDR_DTL AS rpplRealAddrDtl /* 수령지상세주소" */
, A.RPPL_PHONE AS rpplPhone /* 연락처" */
, A.RPPL_EMAIL AS rpplEmail /* 이메일" */
, A.RPPL_EMAIL_YN AS rpplEmailYn /* 이메일수신여부" */
, A.RPPL_SMS_YN AS rpplSmsYn /* SMS수신여부" */
, A.RPPL_CLASS AS rpplClass /* 소속" */
, A.RPPL_GRADE AS rpplGrade /* 직책" */
, A.SBMT_YN AS sbmtYn /* 제출여부" */
, A.SBMT_DE AS sbmtDe /* 제출일시" */
, A.USR_CI AS usrCi /* 전자서명인증값" */
, A.APPR_YN AS apprYn /* 결재여부" */
, A.APPR_DE AS apprDe /* 결재일시" */
, A.ATCH_FILE_ID AS atchFileId /* 첨부파일ID" */
, A.FRST_REGIST_PNTTM AS frstRegistPnttm /* 등록일시" */
, A.FRST_REGISTER_ID AS frstRegisterId /* 등록자" */
, A.LAST_UPDT_PNTTM AS lastUpdtPnttm /* 수정일시" */
, A.LAST_UPDUSR_ID AS lastUpdusrId /* 수정자" */
, A.RPPL_RELATION AS rpplRelation /* 조정대리인관계" */
, A.RPPL_RELATION_ETC AS rpplRelationEtc /* 조정대리인관계etc" */
, A.RPPL_CONN_NO AS rpplConnNo /* 접속번호" */
FROM ADR_RPPL A
WHERE A.RPPL_RESPDD_SEQ = #rpplRespddSeq#
</select>
<select id="Apm.selectRpplChgList" parameterClass="ApmCorrectVO" resultClass="ApmCorrectVO">
SELECT COUNT(1) OVER() AS cnt,
A.ADR_SEQ AS adrSeq ,

View File

@ -150,6 +150,14 @@ $(document).ready(function(){
commonPopWindowopenForm("/kccadr/adjPgrMgr/apm/popup/addRpplPop.do", "750", "660", "adrDetailPop", $('#pop'));
}
function fncUpdtRppl(rpplTy, rpplRespddSeq) {
$('#rpplTy').val(rpplTy);
$('#rpplRespddSeq').val(rpplRespddSeq);
var pop = document.pop;
commonPopWindowopenForm("/kccadr/adjPgrMgr/apm/popup/updtRpplPop.do", "750", "660", "adrDetailPop", $('#pop'));
}
function fncAppChg(adrSn) {
//$('#rpplTy').val(rpplTy);
@ -581,6 +589,7 @@ $(document).ready(function(){
<input type="hidden" id="agntSeq" name="agntSeq" value="<c:out value="${info.agntSeq}" />" />
<%-- <input type="hidden" id="adrMaxSn" name="adrMaxSn" value="<c:out value="${adrMaxSn}" />" /> --%>
<input type="hidden" id="rpplSeq" name="rpplSeq" value=""/>
<input type="hidden" id="rpplRespddSeq" name="rpplRespddSeq" value=""/>
<!-- 고도화로 추가됨 -->
<input type="hidden" id="sbmtTyCd" name="sbmtTyCd" value=""/>
@ -1321,6 +1330,7 @@ $(document).ready(function(){
<c:out value="${resPDList.resPonDentDNm}"/>
<c:if test="${!empty info.adrNo && !empty resPDList.resPonDentDNm}">
<button type="button" class="btnType01 btn_change" onclick="fncRpplConnNo('40', '<c:out value="${resPDList.resPonDentDId}"/>')">접속번호확인</button>
<button type="button" class="btnType01 btn_change" onclick="fncUpdtRppl('40', '<c:out value="${resPDList.rpplRespddSeq}"/>')">대리인수정</button>
</c:if>
</c:otherwise>
</c:choose>

View File

@ -0,0 +1,343 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator"%>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%
/**
* @Class Name : srcAdmNoPop.jsp
* @Description : 조정접수
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.16 김봉호 최초 생성
* @author 김봉호
* @since 2021.08.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>대리인등록</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="<c:url value='/js/EgovMultiFileItn.js'/>"></script> <!-- 파일첨부, 썸네일이미지 있으면 미리보기 -->
<!-- <script src="//t1.daumcdn.net/mapjsapi/bundle/postcode/prod/postcode.v2.js"></script> -->
<script src="/kccadrPb/adm/script/postcode.js"></script>
<script src="<c:url value='/js/kccadr/kccadrCom.js' />"></script>
<%-- 원자력 --%>
<script type="text/javascript">
$(document).ready(function() {
$(function() {
$('#filebutton').click(function(e) {
e.preventDefault();
$('#file_temp').click();
});
});
});
function setAdrNoTxt() {
$('#adrNoTxt').text($('#adrNo').val());
}
function fncReg() {
if (validation()) {
var f = document.getElementById("p");
var data = new FormData(f);
_fileForm2.forEach(function(obj, idx) {
if (obj) data.append("file"+idx, obj.fileObj);
});
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url : "/kccadr/adjPgrMgr/apm/addRpplPopAjax.do",
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success : function(returnData, status) {
if (returnData.result == 'success') {
alert("대리인 등록이 완료되었습니다.");
window.opener.location.reload();
window.close();
} else {
alert(returnData.message);
}
},
error : function(e) {
alert("대리인등록을 실패하였습니다.");
console.log("ERROR : ", e);
}
});
}
}
function validation() {
$('#rpplEmail').val( $('#rpplEmail01').val()+'@'+$('#rpplEmail02').val() );
$('#rpplPhone').val( $('#rpplPhone01').val()+'-'+$('#rpplPhone02').val()+'-'+$('#rpplPhone03').val() );
return true;
}
function fncRelationCheck() {
}
function phoneSelect (){
}
</script>
</head>
<body>
<form:form id="p" name="p" method="post" onsubmit="return false;" enctype="multipart/form-data">
<input type="hidden" id="adrSeq" name="adrSeq" value="<c:out value="${info.adrSeq}" />" />
<input type="hidden" id="rpplTy" name="rpplTy" value="<c:out value="${info.rpplTy}" />" />
<input type="hidden" id="rpplSeq" name="rpplSeq" value="<c:out value="${info.rpplSeq}" />" />
<input type="hidden" name="limitcount" value="10" />
<div class="area_popup supm_popup" style="width: 750px;">
<div class="cont_popup">
<!-- 대리인 등록 -->
<p class="tb_tit">대리인 등록</p>
<table class="pop_tbType01">
<colgroup>
<col style="width: 20%;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th>대리인 이름</th>
<td>
<input type="text" id="rpplNm" name="rpplNm" value="<c:out value='${resultVO.rpplNm }' />" />
</td>
</tr>
<tr>
<th>본인과의 관계</th>
<td>
<div class="radio_wrap">
<span>
<input type="radio" id="1btn" name="rpplRelation" value="01" ${resultVO.rpplRelation == 01 ? 'checked' : '' } />
<label for="1btn">법률대리인</label>
</span>
<span>
<input type="radio" id="2btn" name="rpplRelation" value="02" ${resultVO.rpplRelation == 02 ? 'checked' : '' } />
<label for="2btn">신청인의 직원</label>
</span>
<span>
<input type="radio" id="3btn" name="rpplRelation" value="03" ${resultVO.rpplRelation == 03 ? 'checked' : '' } />
<label for="3btn">신청인의 가족</label>
</span>
<span>
<input type="radio" id="4btn" name="rpplRelation" value="04" ${resultVO.rpplRelation == 04 ? 'checked' : '' } />
<label for="4btn">기타</label>
<input type="text" size="10" name="rpplRelationEtc" id="rpplRelationEtc" value="<c:out value='${resultVO.rpplRelationEtc }' />">
</span>
</div>
</td>
</tr>
<tr>
<th>직책</th>
<td>
<input type="text" id="rpplGrade" name="rpplGrade" value="<c:out value='${resultVO.rpplGrade }' />">
</td>
</tr>
<tr>
<th>대리인 주소</th>
<td>
<input type="text" class="adr_input" name="rpplPost" id="rpplPost" value="<c:out value='${resultVO.rpplPost }' />">
<button type="button" class="btnType01" onclick="fn_postCode(this);">우편번호검색</button>
<div class="detail_adr">
<input type="text" class="adr_detail_input searchResultAddr" name="rpplAddr" id="rpplAddr" value="<c:out value='${resultVO.rpplAddr }' />" >
<input type="text" class="etc_detail_input dir_input" name="rpplAddrDtl" id="rpplAddrDtl" value="<c:out value='${resultVO.rpplAddrDtl }' />" >
</div>
</td>
</tr>
<tr>
<th>이메일</th>
<td>
<input type="hidden" id="rpplEmail" name="rpplEmail">
<c:set var="emailResult" value="${fn:split(resultVO.rpplEmail,'@')}" />
<input type="text" id="rpplEmail01" class="email_input" value="<c:out value="${emailResult[0] }" />">
@
<input type="text" id="rpplEmail02" class="email_input"value="<c:out value="${emailResult[1] }" />">
<!-- <select id="rpplEmail03" onchange="emailSelect(this);" class="email_select">
<option value="">직접입력</option>
<option value="naver.com">naver.com</option>
<option value="hanmail.net">hanmail.net</option>
<option value="nate.com">nate.com</option>
<option value="gmail.com">gmail.com</option>
<option value="hotmail.com">hotmail.com</option>
<option value="empal.com">empal.com</option>
<option value="chol.com">chol.com</option>
<option value="dreamwiz.com">dreamwiz.com</option>
<option value="freechal.com">freechal.com</option>
<option value="hanafos.com">hanafos.com</option>
<option value="paran.com">paran.com</option>
<option value="yahoo.co.kr">yahoo.co.kr</option>
<option value="korea.com">korea.com</option>
</select> -->
<kc:select codeId="ADR030" defaultText="직접입력" id="rpplEmail03" defaultValue="" onChange="emailSelect(this)" styleClass="email_select" />
</td>
</tr>
<tr>
<th>연락처</th>
<td>
<input type="text" class="phone_input" id="rpplPhone01" maxlength="3" value="${fn:substring(resultVO.rpplPhone,0,3) }">
-
<input type="text" class="phone_input" id="rpplPhone02" maxlength="4" value="${fn:substring(resultVO.rpplPhone,4,8) }">
-
<input type="text" class="phone_input" id="rpplPhone03" maxlength="4" value="${fn:substring(resultVO.rpplPhone,9,13) }">
<input type="hidden" id="rpplPhone" name="rpplPhone">
</td>
</tr>
<tr>
<th>이메일 수신여부</th>
<td>
<div class="radio_wrap">
<span>
<input type="radio" id="rpplEmailYnY" name="rpplEmailYn" value="Y" checked="checked">
<label for="rpplEmailYnY">수신</label>
</span>
<span>
<input type="radio" id="rpplEmailYnN" name="rpplEmailYn" value="N">
<label for="rpplEmailYnN">수신하지 않음</label>
</span>
</div>
</td>
</tr>
<tr>
<th>SMS 수신여부</th>
<td>
<div class="radio_wrap">
<span>
<input type="radio" id="rpplSmsYnY" name="rpplSmsYn" value="Y" ${resultVO.rpplSmsYn == 'Y' ? 'checked' : '' } />
<label for="rpplEmailYnY">수신</label>
</span>
<span>
<input type="radio" id="rpplSmsYnN" name="rpplSmsYn" value="N" ${resultVO.rpplSmsYn == 'N' ? 'checked' : '' } />
<label for="rpplEmailYnN">수신하지 않음</label>
</span>
</div>
</td>
</tr>
<tr>
<th class="req_text">대리신청서</th>
<td class="upload_area">
<!-- <input type="text" id="fileNm" size="30" class="file_input" readonly> -->
<!-- <button type="button" class="btnType01 btn_add_file">파일 첨부하기</button> -->
<input type="file" id="file_temp" name="file_temp" class="uploadFile" style="display: none" />
<button type="button" id="filebutton" class="btnType01 btn_add_file">파일 첨부하기</button>
<div class="file_wrap file_upload_box no_img_box">
<table class="tbType02">
<colgroup>
<col style="width: 60%;">
<col style="width: auto;">
<col style="width: 20%;">
<col style="width: 10%;">
</colgroup>
<thead>
<!-- <th>
<input type="checkbox" id="all_check"><label for="all_check"></label>
</th> -->
<th>파일 명</th>
<th>종류</th>
<th>크기</th>
<th>삭제</th>
</thead>
<tbody class="tb_file_before">
<tr>
<td colspan="4">
<p>
첨부하실 파일을
<span>마우스로 끌어서</span>
넣어주세요.
</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="file_wrap fileAfter file_list_div">
<table class="tbType02">
<colgroup>
<col style="width: 60%">
<col style="width: 10%">
<col style="width: 20%">
<col style="width: 10%">
</colgroup>
<thead>
<!-- <th>
<input type="checkbox" id="all_check"><label for="all_check"></label>
</th> -->
<th>파일 명</th>
<th>종류</th>
<th>크기</th>
<th>삭제</th>
</thead>
<tbody id="tbody_fiielist" class="tb_file_after">
<c:forEach var="fileList" items="${fileList}" varStatus="status">
<tr class="item_<c:out value='${fileList.atchFileId}' />_<c:out value='${fileList.fileSn}' /> uploaded_obj">
<input type="hidden" name="fileSize" class="item_file_size" value="${fileList.fileSize}">
<td class="td_filename">
<!-- <img src="/direct/img/upload_hwp_img.png" alt="" /> -->
<span class="file_name_text"><c:out value='${fileList.orignlFileNm}' /></span>
</td>
<td class="td_filesort">
<span class="file_filesort_text" value="<c:out value="${fileList.fileExtsn}"/>">
<c:out value="${fileList.fileExtsn}" />
</span>
</td>
<td class="td_filesize">
<span class="file_size_text" value="<c:out value="${fileList.fileMg}"/>">
<c:out value="${fileList.fileMg}" />
</span>
</td>
<td>
<button type="button" class="btn_del" onclick="delAtchFile('<c:out value='${fileList.atchFileId}' />', '<c:out value='${fileList.fileSn}' />'); return false;">
<i></i>
</button>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
<!-- //대리인 등록 -->
<div class="btn_wrap btn_layout04">
<button type="button" class="btnType06" onclick="fncReg()">수정</button>
<button type="button" class="btnType03" onclick="self.close()">취소</button>
</div>
</div>
</div>
</form:form>
</body>
</html>