feat : PMS:#3225 강사 특이사항 메모 기능 구현 완료

This commit is contained in:
hylee 2023-06-28 15:54:52 +09:00
parent beac342f23
commit bf04903d9e
12 changed files with 176 additions and 6 deletions

View File

@ -34,6 +34,8 @@ public interface VEInstrDetailService {
VEInstrDetailVO selectSlctnTeacher(VEInstrDetailVO vEInstrDetailVO) throws Exception;
int updateInstrMemo(VEInstrDetailVO vEInstrDetailVO) throws Exception;
int updateInstrSigMemo(VEInstrDetailVO vEInstrDetailVO) throws Exception;
//EgovMap selectAdrRpplInfo(AdjstChangeDateVO adjstChangeDateVO) throws Exception;

View File

@ -157,7 +157,9 @@ public class VEInstrDetailVO extends ComDefaultVO implements Serializable {
private String mngNmbrYr;
private String memo;
private String memo; // 비공개 메모
private String sigMemo; // 특이사항 메모
public String getLrnTmSum() {
return lrnTmSum;
@ -795,4 +797,11 @@ public class VEInstrDetailVO extends ComDefaultVO implements Serializable {
public void setMngNmbrYr(String mngNmbrYr) {
this.mngNmbrYr = mngNmbrYr;
}
public String getSigMemo() {
return sigMemo;
}
public void setSigMemo(String sigMemo) {
this.sigMemo = sigMemo;
}
}

View File

@ -81,10 +81,14 @@ public class VEInstrDetailDAO extends EgovAbstractDAO {
public VEInstrDetailVO selectSlctnTeacher(VEInstrDetailVO vEInstrDetailVO) throws Exception {
return (VEInstrDetailVO) select("VEInstrDetailDAO.selectSlctnTeacher", vEInstrDetailVO);
}
public int updateInstrMemo(VEInstrDetailVO vEInstrDetailVO) throws Exception {
return update("VEInstrDetailDAO.updateInstrMemo", vEInstrDetailVO);
}
public int updateInstrSigMemo(VEInstrDetailVO vEInstrDetailVO) throws Exception {
return update("VEInstrDetailDAO.updateInstrSigMemo", vEInstrDetailVO);
}
/**

View File

@ -85,6 +85,11 @@ public class VEInstrDetailServiceImpl implements VEInstrDetailService {
return vEInstrDetailDAO.updateInstrMemo(vEInstrDetailVO);
}
public int updateInstrSigMemo(VEInstrDetailVO vEInstrDetailVO) throws Exception {
return vEInstrDetailDAO.updateInstrSigMemo(vEInstrDetailVO);
}

View File

@ -146,6 +146,14 @@ public class EduAplctMngAdultController {
vEEduAplctVO = this.setPagingStep2(vEEduAplctVO, paginationInfo);
vEEduAplctVO.setNotiUserId(user.getUniqId());
vEEduAplctVO.setMenuNo(session.getAttribute("menuNo").toString());
System.out.println("orderByQuery getOrderByQuery :: "+ vEEduAplctVO.getOrderByQuery());
// OrderByQuery(교육희망일자) 값이 비여있으면 desc로 초기화 => hylee
if(StringUtils.isEmpty(vEEduAplctVO.getOrderByQuery())) {
vEEduAplctVO.setOrderByQuery("desc");
}
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO);
vEEduAplctVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduAplctVOList);
//3.pageing step3

View File

@ -2514,6 +2514,49 @@ public class OprtnInstrTngrPrflContoller {
return modelAndView;
}
/**
* 특이 사항 메모저장
*/
@RequestMapping("/ve/oprtn/instr/tngrVisitEdu/instrInfo/instrSigMemoUpdateAjax.do")
public ModelAndView instrSigMemoUpdateAjax(
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
, 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(); //권한에 따른 로그인 정보 가져오기
int successCnt = 0;
try {
vEInstrDetailService.updateInstrSigMemo(vEInstrDetailVO);
successCnt = successCnt+1;
} catch (Exception ex) {
ex.printStackTrace();
}
if (successCnt == 0) {
modelAndView.addObject("result", "fail");
} else {
modelAndView.addObject("result", "success");
}
return modelAndView;
}
/////////////////////////////////////////////////////////////////////////////////////
//

View File

@ -778,8 +778,18 @@
, A.EDU_APLCT_ORD DESC
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
<isEqual property="orderByQuery" compareValue="desc">
, CC.EDU_HOPE_DT desc
</isEqual>
<isEqual property="orderByQuery" compareValue="asc">
, CC.EDU_HOPE_DT asc
</isEqual>
</isNotEmpty>
<!-- <isNotEmpty property="orderByQuery"> -->
<!-- , $orderByQuery$ -->
<!-- </isNotEmpty> -->
<isNotEqual property="mode" compareValue="EXCEL">
LIMIT #recordCountPerPage# OFFSET #firstIndex#
</isNotEqual>

View File

@ -127,7 +127,8 @@
a.appt_dt AS apptDt,
a.hchk_dt AS hchkDt,
a.rmrks AS rmrks,
a.memo AS memo
a.memo AS memo,
a.sig_memo AS sigMemo
</sql>
@ -550,4 +551,18 @@
INSTR_DIV = #instrDiv#
</update>
<!-- 강사 메모 수정 U -->
<update id="VEInstrDetailDAO.updateInstrSigMemo" parameterClass="VEInstrDetailVO">
UPDATE
VE_INSTR_DETAIL
SET
SIG_MEMO = #sigMemo#
WHERE
USER_ID = #userId#
AND
INSTR_DETAIL_ORD = #instrDetailOrd#
AND
INSTR_DIV = #instrDiv#
</update>
</sqlMap>

View File

@ -22,6 +22,12 @@
<script type="text/javascript">
$(document).ready(function(){
$('.eduHope').click(function(){
var $tag = $('#orderByQuery');
$tag.val($(this).data('info'));
linkPage(1);
});
});
function linkPage(pageNo){
@ -70,7 +76,8 @@
<input type="hidden" name="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEEduAplctVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEEduAplctVO.searchSortOrd}" />" />
<input type="hidden" name="eduAplctOrd" value="" />
<input type="hidden" name="orderByQuery" id="orderByQuery" value="<c:out value="${vEEduAplctVO.orderByQuery}" />" />
<!-- <input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="" /> -->
<div class="cont_wrap">
<div class="box">
@ -180,7 +187,16 @@
<thead>
<tr>
<th>번호</th>
<th>교육희망일자</th>
<th>교육희망일자
<c:choose>
<c:when test="${vEEduAplctVO.orderByQuery eq 'asc' }">
<img style="cursor:pointer;" class="eduHope" data-info="desc" src="<c:url value='/images/sortUp.png' />" />
</c:when>
<c:otherwise>
<img style="cursor:pointer;" class="eduHope" data-info="asc" src="<c:url value='/images/sortDown.png' />" />
</c:otherwise>
</c:choose>
</th>
<th>신청일자</th>
<th>신청유형</th>
<th>기관(단체)명</th>

View File

@ -289,6 +289,32 @@
});
}
function updateHiddenSigMemo(){
$("#sigMemo").val($("#sigMemoCn").val());
var data1 = new FormData(document.getElementById("hiddenSigMemoForm"));
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/ve/oprtn/instr/tngrVisitEdu/instrInfo/instrSigMemoUpdateAjax.do",
data:data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장 되었습니다.");
location.reload();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
</script>
</head>
@ -300,6 +326,13 @@
<input type="hidden" name="memo" id="memo" value="" />
</form>
<form id="hiddenSigMemoForm" name="hiddenSigMemoForm" method="post">
<input type="hidden" name="userId" id="userId" value="<c:out value='${info.userId}'/>"/> <!-- 사용자 아이디 -->
<input type="hidden" name="instrDetailOrd" id="instrDetailOrd" value="<c:out value='${info.instrDetailOrd}'/>"/>
<input type="hidden" name="instrDiv" id="instrDiv" value="<c:out value='${info.instrDiv}'/>"/> <!-- 강사구분 -->
<input type="hidden" name="sigMemo" id="sigMemo" value="" />
</form>
<form:form id="detailForm" name="detailForm" commandName="vEInstrDetailVO" method="post" >
<input type="hidden" name="pageIndex" value="<c:out value='${vEInstrDetailVO.pageIndex}'/>"/>
<input type="hidden" name="searchStartDt" value="<c:out value="${vEInstrDetailVO.searchStartDt}" />" />
@ -564,6 +597,31 @@
</tbody>
</table>
</div>
<!-- 특이사항 메보 정보 -->
<div class="tb_tit01">
<p>특이사항 메모</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tr>
<th scope="row">
<p>내용</p>
</th>
<td class="tb_alram">
<div>
<textarea name="sigMemoCn" id="sigMemoCn"><c:out value="${info.sigMemo}" /></textarea>
<button type="button" class="btn_type08" onclick="updateHiddenSigMemo(); return false;">메모 저장</button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- 비공개 메보 정보 끝-->
<div id="importDiv">
<c:import url="/ve/oprtn/instr/tngrVisitEdu/instrInfo/instrLctrStngPopup.do" charEncoding="utf-8"></c:import>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1018 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1012 B