Merge branch 'JIWOO' into advc

This commit is contained in:
jiwoo 2023-11-23 18:40:25 +09:00
commit 26dbfb9280
11 changed files with 1420 additions and 10 deletions

View File

@ -1,5 +1,6 @@
package kcc.ve.aplct.comweb;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
@ -31,6 +32,7 @@ import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCntntVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
@ -86,6 +88,10 @@ public class CommonWebController {
@Resource(name = "vEAStngService")
private VEAStngService vEAStngService;
//강사상세 정보
@Resource(name="vEInstrDetailService")
private VEInstrDetailService vEInstrDetailService;
@RequestMapping("/popup/searchBeforeContent.do")
public String searchBeforeContentPopup(@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO, ModelMap model, HttpServletRequest request) throws Exception{
@ -1027,6 +1033,7 @@ public class CommonWebController {
//step3-1.해당 차시에 강사 교육확정
vEInstrAsgnmVO.setAsgnmAprvlCd(veEduAplctVO.getAsgnmAprvlCd());
ArrayList<VEInstrDetailVO> vEInstrDetailVOList = new ArrayList<VEInstrDetailVO>();
for (int i=0;i<p_step01_list.size();i++) {
vEInstrAsgnmVO.setEduAplctOrd(p_step01_list.get(i).getEduAplctOrd());
vEInstrAsgnmVO.setEduChasiOrd(p_step01_list.get(i).getEduChasiOrd());
@ -1045,8 +1052,22 @@ public class CommonWebController {
vEEduChasiInstrAsgnmService.updateAsgnmY(vEInstrAsgnmVO);
vEEduChasiInstrAsgnmService.updateAsgnmN(vEInstrAsgnmVO);
//성인교육의 경우 배정 확정 강사의 ID와 메일 조회 안내 SMS, 메일 전송
if("20".equals(veEduAplctVO.getLctrDivCd())) {
VEInstrDetailVO vEInstrDetailVO = new VEInstrDetailVO();
vEInstrDetailVO.setInstrDiv("20");
vEInstrDetailVO.setUserId(p_step01_list.get(i).getUserId());
vEInstrDetailVO.setUseYn("Y"); //가장 최근 강사 정보
VEInstrDetailVO vEInstrDetailVODetail = vEInstrDetailService.selectDetail(vEInstrDetailVO);
vEInstrDetailVODetail = egovCryptoUtil.decryptVEInstrDetailVO(vEInstrDetailVODetail);
vEInstrDetailVODetail.setEduAplctOrd(p_step01_list.get(i).getEduAplctOrd());
vEInstrDetailVOList.add(vEInstrDetailVODetail);
}
}
modelAndView.addObject("vEInstrDetailVOList", vEInstrDetailVOList);
//modelAndView.addObject("rsCnt", rs);
modelAndView.addObject("result", "success");

View File

@ -769,6 +769,12 @@ public class InstrPrflController {
List<VEInstrDetailActvtHstryVO> vEInstrActvtHstryList = vEInstrDetailActvtHstryService.select(vEInstrDetailActvtHstryVO);
model.addAttribute("vEInstrActvtHstryList", vEInstrActvtHstryList);
// 이력관리 리스트
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setUserId(vEInstrDetailVO.getUserId());
List<VEAStngVO> selectList_VEAIHM = vEAStngService.selectList_VEAIHM(vEAStngVO);
model.addAttribute("selectListVEAIHM",selectList_VEAIHM);
return "/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflDetail";
}

View File

@ -701,11 +701,14 @@
AND AA.asgnmAprvlCd = #asgnmAprvlCd#
AND AA.userId = #userId#
AND AA.instrDiv = #instrDiv#
<isNotEmpty property="searchKeyword">
AND scholInsttNm LIKE '%' || #searchKeyword# || '%'
</isNotEmpty>
<isNotEmpty property="searchEduHopeStartDt">
AND AA.eduHopeDt <![CDATA[ >= ]]> REPLACE(#searchEduHopeStartDt#, '.' , '')
AND REPLACE(AA.eduHopeDt, '.' , '') <![CDATA[ >= ]]> REPLACE(#searchEduHopeStartDt#, '.' , '')
</isNotEmpty>
<isNotEmpty property="searchEduHopeEndDt">
AND AA.eduHopeDt <![CDATA[ <= ]]> REPLACE(#searchEduHopeEndDt#, '.' , '')
AND REPLACE(AA.eduHopeDt, '.' , '') <![CDATA[ <= ]]> REPLACE(#searchEduHopeEndDt#, '.' , '')
</isNotEmpty>
<isNotEmpty property="searchSubmitYn">
<isEqual property="searchSubmitYn" compareValue="Y">

View File

@ -100,7 +100,7 @@
,TRGT_PRSNL = #trgtPrsnl#
,OPRTN_STRT_DT = #oprtnStrtDt#
,OPRTN_END_DT = #oprtnEndDt#
,LAST_UPDT_PNTTM = NOW()
,LAST_UPDT_PNTTM = SYSDATE
,LAST_UPDUSR_ID = #lastUpdusrId#
,ISLANDS_YN = #islandsYn#
,REMOTE_YN = #remoteYn#

View File

@ -39,6 +39,7 @@
white-space : nowrap;
}
</style>
<script src="${pageContext.request.contextPath}/js/ve/sendSmsEmailUtil.js"></script>
<script type="text/javascript">
$(document).ready(function(){
// $("input[name=searchStatusArr]").on("click" , function(){
@ -350,13 +351,37 @@
data: {
"eduAplctOrd" : varEduAplctOrd ,
"asgnmAprvlCd" : "30" ,
//"instrDiv" : "10" ,
"lctrDivCd" : "20"
},
dataType:'json',
success:function(returnData){
if(returnData.result=="success"){
alert("상태가 변경 되었습니다.");
//sms, 메일 발송
if(returnData.vEInstrDetailVOList != null){
for(var i=0; i<returnData.vEInstrDetailVOList.length; i++){
try{
sendSms(
returnData.vEInstrDetailVOList[i].phone,
"교육운영 관리 시스템입니다. 찾아가는 성인 교육에 배정되셨습니다.",
returnData.vEInstrDetailVOList[i].eduAplctOrd,
returnData.vEInstrDetailVOList[i].userId,
"N"
);
sendEmail(
returnData.vEInstrDetailVOList[i].email,
"교육운영 관리 시스템입니다. 찾아가는 성인 교육에 배정되셨습니다.",
returnData.vEInstrDetailVOList[i].eduAplctOrd,
returnData.vEInstrDetailVOList[i].userId,
"S",
"N"
);
}
catch (e) {
}
}
}
fncGoList();
}else{
alert("강사 자동 배정 중에 오류가 발생 되었습니다.");

View File

@ -305,7 +305,33 @@ function getYears(getYear){
}
});
}
}
}
function updateHiddenMemo(){
$("#memo").val($("#detailForm #memoCn").val());
var data1 = new FormData(document.getElementById("hiddenMemoForm"));
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/ve/oprtn/instr/tngrVisitEdu/instrInfo/instrMemoUpdateAjax.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>
<%-- <form id="pop" name="pop" method="post">
<input type="hidden" name="userId" id="userId" value="<c:out value='${info.userId}'/>"/> <!-- 사용자 아이디 -->
@ -313,6 +339,12 @@ function getYears(getYear){
<input type="hidden" name="instrDetailOrd" id="instrDetailOrd" value="<c:out value='${info.instrDetailOrd}'/>"/> <!-- 강사구분 -->`
<input type="hidden" name="aprvlCd" id="aprvlCd" value=""/> <!-- 승인코드 -->
</form> --%>
<form id="hiddenMemoForm" name="hiddenMemoForm" 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="memo" id="memo" value="" />
</form>
<form:form id="detailForm" name="detailForm" commandName="vEInstrDetailVO" method="post" >
<input type="hidden" name="pageIndex" value="<c:out value='${vEInstrDetailVO.pageIndex}'/>"/>
@ -515,7 +547,30 @@ function getYears(getYear){
</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="memoCn" id="memoCn"><c:out value="${info.memo}" /></textarea>
<button type="button" class="btn_type08" onclick="updateHiddenMemo(); return false;">메모 저장</button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="tb_type02">
<table>

View File

@ -207,7 +207,7 @@
<td>
<c:if test='${empty list.chrgNm}'>
<button class="btn_type06"
onclick="fncInstrAsgnm('<c:out value="${list.eduAplctOrd}" />', '<c:out value="${list.eduChasiOrd}" />', '<c:out value="${list.userId}" />'); return false;">선택</button>
onclick="fncInstrAsgnm('<c:out value="${vEInstrAsgnmVO.eduAplctOrd}" />', '<c:out value="${vEInstrAsgnmVO.eduChasiOrd}" />', '<c:out value="${list.userId}" />'); return false;">선택</button>
</c:if>
</td>

View File

@ -149,6 +149,9 @@
</td>
<td>
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');" >
<!-- 프로세스 변경 후 적용. 신청단계에서는 운영계획이 없어서 등록일을 기준으로 운영년도 보여주기 -->
<%-- <fmt:parseDate value="${list.frstRegistPnttm}" var="frstRegistPnttm" pattern="yyyy.MM.dd"/>
<fmt:formatDate value="${frstRegistPnttm}" pattern="yyyy년"/> --%>
<fmt:parseDate value="${list.oprtnStrtDt}" var="oprtnStrtDt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${oprtnStrtDt}" pattern="yyyy년"/>
</a>
@ -171,6 +174,34 @@
</td>
<td>
<c:choose>
<!-- 프로세스 변경 후 적용-->
<%-- <c:when test="${list.aprvlCd eq VeConstants.EXPRN_APRVL_CD_10}">
<span class="app_status1">운영신청</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.EXPRN_APRVL_CD_20}">
<span class="app_status3">운영확정</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.EXPRN_APRVL_CD_30}">
<span class="app_status3">서류제출 요청</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.EXPRN_APRVL_CD_40}">
<span class="app_status1">서류제출</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.EXPRN_APRVL_CD_50}">
<span class="app_status1">운영 진행중</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.EXPRN_APRVL_CD_60}">
<span class="app_status1">결과보고 완료</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.EXPRN_APRVL_CD_70}">
<span class="app_status1">검토중</span>
</c:when>
<c:when test="${list.aprvlCd eq VeConstants.EXPRN_APRVL_CD_80}">
<span class="app_status1">운영 종료</span>
</c:when>
<c:otherwise>
-
</c:otherwise> --%>
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_10}">
<span class="app_status1">운영신청</span>
</c:when>

View File

@ -56,7 +56,7 @@
</div>
</div>
<div class="list_top">
<div class="list_top top_longver">
<div class="list_top_left">
</div>
<div class="btn_wrap">
@ -70,6 +70,8 @@
<duet-date-picker identifier="date" name="searchEduHopeEndDt" class="endDate" value="${vEInstrAsgnmVO.searchEduHopeEndDt}"></duet-date-picker>
</div>
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
<label for="searchKeyword" class="searchKeyword">학교(기관)명 :</label>
<input type="text" name="searchKeyword" id="searchKeyword" value="<c:out value='${vEInstrAsgnmVO.searchKeyword}' />" onkeyDown="press(event);"/>
<button type="button" class="btnType01" onclick="linkPage(1); return false;">검색</button>
<button type="button" class="btnType02" onclick="fncReset(this);">초기화</button>
</div>
@ -219,7 +221,7 @@
<c:set var = "fee" value="정산중" />
</c:when>
<c:otherwise>
<%-- <c:set var = "fee" value="${list.instrFee + list.specialWorkAllow + list.distanceAllow + list.trafficFee + list.acmdtFee}" /> --%>
<c:set var = "fee" value="${list.instrFee + list.specialWorkAllow + list.distanceAllow + list.trafficFee + list.acmdtFee}" />
</c:otherwise>
</c:choose>

View File

@ -951,6 +951,47 @@
</tbody>
</table>
</div>
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>강사 이력</p>
</div>
</div>
<div class="tb_type02">
<table>
<caption>강사 이력</caption>
<colgroup>
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: auto;">
<col style="width: 18%;">
<col style="width: 18%;">
</colgroup>
<thead>
<tr>
<th scope="col">교육명</th>
<th scope="col">교육기간</th>
<th scope="col">비고</th>
<th scope="col">등록자</th>
<th scope="col">등록일</th>
</tr>
</thead>
<tbody>
<c:forEach var="pList" items="${selectListVEAIHM}" varStatus="status">
<tr>
<td><c:out value="${pList.sbjct}" /></td>
<td><c:out value="${pList.strtDt}" />~<c:out value="${pList.ddlnDt}" /></td>
<td><c:out value="${pList.cn}" /></td>
<td><c:out value="${pList.userNm}" /></td>
<td><c:out value="${pList.frstRegistPnttm}" /></td>
</tr>
</c:forEach>
<c:if test="${empty selectListVEAIHM}">
<tr><td colspan="5"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- 하단 버튼 -->
<div class="btn_wrap btn_layout01">
<div class="btn_left"></div>