2025-10-02 18:14 기소유예 수동 신청

This commit is contained in:
myname 2025-10-02 18:15:15 +09:00
parent 98f546ac23
commit 16d7c35c7b
5 changed files with 183 additions and 32 deletions

View File

@ -166,7 +166,9 @@ public class CndtnPrcsInfoMngController {
@Resource(name = "checkFileUtil")
private CheckFileUtil checkFileUtil;
//교육신청순번
@Resource(name="eduAplctGnrService")
private EgovIdGnrService eduAplctGnrService;
/**
* 기반강화연수 과정 관리 목록 화면
@ -2155,8 +2157,8 @@ public class CndtnPrcsInfoMngController {
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/popup/cndtnApplyAsgnmPopup.do")
public String fndthApplyAsgnmPopup(
// @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
//@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
, ModelMap model
, RedirectAttributes redirectAttributes
@ -2231,11 +2233,117 @@ public class CndtnPrcsInfoMngController {
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", cndtnTrgtInfoMngVOList);
return "/oprtn/cndtnSspnIdtmt/popup/cndtnApplyAsgnmPopup";
}
/**
* 기반강화연수과정 신청기간 등록
*/
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/popup/eduRegAjax.do")
public ModelAndView fndthEduPrcsAplctPrdMngRegAjax(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
// ㄴㅇㄹㄴㅇㄹㄴㅇㄹ
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
/*
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
*
*/
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
//SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
String s_eduAplctOrd = eduAplctGnrService.getNextStringId();
vEEduAplctVO.setEduAplctOrd(s_eduAplctOrd);
vEEduAplctVO.setLctrDivCd(LCTR_DIV_CD); // 기소유예
vEEduAplctVO.setAprvlCd("10"); // 승인코드 VE0003 10 - 요청, 20 - 승인, 30 - 반려
// sbmt_pnttm 제출일시
vEEduAplctVO.setSbmtYn("Y"); // 제출여부
vEEduAplctVO.setFrstRegisterId(loginVO.getUniqId());
// frst_regist_pnttm
vEEduAplctVO.setUserId(loginVO.getUniqId());
vEEduAplctVO.setPrcsOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
vEEduAplctVO.setTrgtNm(vEPrcsDetailVO.getTrgtNm());
vEEduAplctVO.setdBirth(vEPrcsDetailVO.getdBirth());
vEEduAplctVO.setPhone(egovCryptoUtil.encrypt(vEPrcsDetailVO.getPhone()));
vEEduAplctVO.setEmail(vEPrcsDetailVO.getEmail());
String result = "";
try {
//암호화
vEEduAplctVO = egovCryptoUtil.encryptVEEduAplctVOInfo(vEEduAplctVO);
vEEduAplctVO.setRndsOrd(vEPrcsDetailVO.getSspnIdtmtTrgtOrd()); //2024-02-07 추가 신청서 정보에 대상자 정보를 넣어야 추후 구분이 가능해서 추가함
sspnIdtmtService.insertVeEduAplct(vEEduAplctVO);
CndtnTrgtMngVO cndtnTrgtMngVO = new CndtnTrgtMngVO();
cndtnTrgtMngVO.setUserId(loginVO.getUniqId());
cndtnTrgtMngVO.setSspnIdtmtTrgtOrd(vEPrcsDetailVO.getSspnIdtmtTrgtOrd());
cndtnTrgtMngVO.setEduStateCd("25"); // 신청
cndtnTrgtMngVO.setEduAplctOrd(s_eduAplctOrd); //동일한 대상자가 어떤 신청서와 맞는지 매칭에 필요함
//cndtnTrgtMngVO.setPrcsAplctPrdOrdCmplt(vEPrcsDetailVO.getPrcsAplctPrdOrd()); // 교육 번호
// , edu_state_cd = #eduStateCd#
// , prcs_aplct_prd_ord_cmplt = #prcsAplctPrdOrdCmplt#
cndtnTrgtInfoMngService.updateUserId(cndtnTrgtMngVO);
//알림 교육신청
try {
iTNotiUtil.insertNotifyNew_60(
LCTR_DIV_CD, //"60",
loginVO.getUniqId(),
VeConstants.NOTI_STATUS_10,
vEPrcsDetailVO.getPrcsAplctPrdOrd(),
"",
"1",
"1"
);
}catch(Exception ex) {
ex.printStackTrace();
}
result = "success";
} catch (Exception e) {
// TODO: handle exception
}
modelAndView.addObject("result", result);
return modelAndView;
}
/**
* @methodName : cnclPopup
* @author : 이호영

View File

@ -503,9 +503,14 @@
a.PRCS_ORD = vpap.PRCS_APLCT_PRD_ORD
LEFT JOIN VEA_APLCT_DETAIL_INFO vadi ON
a.EDU_APLCT_ORD = vadi.EDU_APLCT_ORD
/* AND vpap.PRCS_APLCT_PRD_ORD = vadi.PRCS_APLCT_PRD_ORD */
JOIN LETTNGNRLMBER le ON
/* AND vpap.PRCS_APLCT_PRD_ORD = vadi.PRCS_APLCT_PRD_ORD */
LEFT JOIN LETTNGNRLMBER le ON
a.USER_ID = le.ESNTL_ID
LEFT JOIN lettnemplyrinfo le2 ON
a.USER_ID = le2.ESNTL_ID
LEFT JOIN VEA_SSPN_IDMT_TRGT vsit ON
(
/* 신청 정보에 대상자 키 값이 들어 있어서 해당 값을만 확인하면 된다.*/

View File

@ -287,7 +287,7 @@
// form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/fndthInstrAsgnmPopup.do'/>";
form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/cndtnApplyAsgnmPopup.do'/>";
window.open("#", "_securityPop", "scrollbars = no, top=100px, left=100px, height=750px, width=950px");
window.open("#", "_securityPop", "scrollbars = no, top=100px, left=0px, height=750px, width=1600px");
form.target = "_securityPop";
form.submit();
}
@ -754,11 +754,13 @@
<td>
<c:out value="${list.sbmtPnttm}"/>
</td>
<!-- 확정여부 -->
<td>
<ve:code codeId="VE0003" code="${list.aprvlCd}"/>
</td>
<!-- 교육신청상태 -->
<td>
<ve:code codeId="VEA003" code="${list.aplctStateCd}"/>
<ve:code codeId="VEA002" code="${list.aplctStateCd}"/>
<!-- 취소요청 내용이 있고 미이수, 이수인 상태 -->
<c:if test="${not empty list.cnclCn and (list.aplctStateCd eq 10 or list.aplctStateCd eq 20)}">
(취소-반려)

View File

@ -122,26 +122,25 @@
<div class="list_top">
<div class="list_top_1">
<div class="util_left">
<p>강사검색</p>
<p>대상자검색</p>
</div>
<%-- <ve:select codeId="VE0008" name="searchEduSlctAreaCd" id="searchEduSlctAreaCd" css="class='sel_type1'" --%>
<%-- selectedText="${vEEduAplctVO.rsdne}" defaultValue='' --%>
<%-- defaultText='전체' --%>
<%-- /> --%>
<div class="util_right">
<input type="text" id="searchKeyword" name="searchKeyword" class="search_input" placeholder="검색어를 입력하세요" value="${vEPrcsDetailVO.searchKeyword }">
<div class="util_right">
<input type="text" id="searchKeywordFrom" name="searchKeywordFrom" placeholder="이름을 입력해주세요." title="검색어 입력" class="search_input" value="<c:out value='${cndtnTrgtInfoMngVO.searchKeywordFrom}'/>" onkeyDown="press(event);">
<button type="button" class="btn_type08" onclick="linkPage(1); return false;">검색</button>
</div>
</div>
</div>
<div class="pop_tb_tit01">
<p>강사 목록</p>(*선호분야 일치여부, 적은 할당시수 순입니다.)
<p>대상자 목록</p>(*선호분야 일치여부, 적은 할당시수 순입니다.)
</div>
<div class="pop_tb_type01">
<table>
<colgroup>
<col style="width: 40px">
<colgroup>
<col style="width: 8%">
<col style="width: 9%">
<col style="width: 10%">
@ -213,24 +212,19 @@
-->
<!-- 의뢰상태 -->
<td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
<td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
<c:if test="${empty list.prcsAplctPrdOrdCmplt}">
<c:if test="${list.eduStateCd eq '20'}">
완료
</c:if>
<c:if test="${list.eduStateCd ne '20'}">
<ve:code codeId="VEA005" code="${list.reqStateCd }"/>
</c:if>
<ve:code codeId="VEA005" code="${list.reqStateCd }"/>(${list.reqStateCd })
</c:if>
<c:if test="${not empty list.prcsAplctPrdOrdCmplt}">
병합처리
</c:if>
</td>
<!-- 교육상태 -->
<td>
<%-- <ve:code codeId="VEA002" code="${list.eduStateCd }"/> --%>
${list.eduStateCdNm }
<ve:code codeId="VEA003" code="${list.eduStateCd }"/>
</td>
<c:set var="fullAddr" value="${list.addr} ${list.addrDetail}" />
<%-- <c:set var="fullAddr" value="${list.addr}" /> --%>
@ -243,9 +237,9 @@
</td>
<td>
<c:if test='${not empty list.trgtNm}'>
<c:if test='${not empty list.trgtNm and list.eduStateCd ne 20 and list.reqStateCd ne 30}'>
<button class="btn_type06"
onclick="fncApplyAsgnm('<c:out value="${list.userId}" />'); return false;">선택</button>
onclick="fncEduReg('<c:out value="${list.sspnIdtmtTrgtOrd}" />', '<c:out value="${list.trgtNm}" />', '<c:out value="${list.dBirth}" />', '<c:out value="${list.clphone}" />'); return false;">선택</button>
</c:if>
</td>
@ -288,5 +282,52 @@
</div>
</div>
<form id="regForm2" name="regForm2" method="post">
<input type="hidden" name="prcsAplctPrdOrd" value="${vEPrcsDetailVO.prcsAplctPrdOrd}">
<!-- 대상자 테이블 PK -->
<input type="hidden" name="sspnIdtmtTrgtOrd" id="sspnIdtmtTrgtOrd" value="">
<input type="hidden" name="trgtNm" id="trgtNm" value="">
<input type="hidden" name="dBirth" id="dBirth" value="">
<input type="hidden" name="phone" id="phone" value=""/>
</form>
<script type="text/javascript">
function fncEduReg(p_sspnIdtmtTrgtOrd, p_trgtNm, p_dBirth, p_phone){
$("#sspnIdtmtTrgtOrd").val(p_sspnIdtmtTrgtOrd);
$("#trgtNm").val(p_trgtNm);
$("#dBirth").val(p_dBirth);
$("#phone").val(p_phone);
var data = new FormData(document.getElementById("regForm2"));
if(confirm("해당 대상자 수동 교육 신청을 진행하시겠습니까?\n수동신청한 경우 해당 대상자의 신청자 온라인 연동은 불가합니다.")){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/popup/eduRegAjax.do";
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
</script>
</body>
</html>

View File

@ -791,12 +791,7 @@
<!-- 의뢰상태 -->
<td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
<c:if test="${empty list.prcsAplctPrdOrdCmplt}">
<c:if test="${list.eduStateCd eq '20'}">
완료
</c:if>
<c:if test="${list.eduStateCd ne '20'}">
<ve:code codeId="VEA005" code="${list.reqStateCd }"/>
</c:if>
<ve:code codeId="VEA005" code="${list.reqStateCd }"/>
</c:if>
<c:if test="${not empty list.prcsAplctPrdOrdCmplt}">