This commit is contained in:
myname 2023-12-06 14:52:22 +09:00
commit a3f260a3bb
7 changed files with 248 additions and 20 deletions

View File

@ -171,6 +171,8 @@ public class VEInstrDetailVO extends ComDefaultVO implements Serializable {
private String day1cnt; private String day1cnt;
private String day0cnt; private String day0cnt;
private String chk;
public String getLrnTmSum() { public String getLrnTmSum() {
return lrnTmSum; return lrnTmSum;
} }
@ -861,5 +863,11 @@ public class VEInstrDetailVO extends ComDefaultVO implements Serializable {
public void setHopeEduFld(String hopeEduFld) { public void setHopeEduFld(String hopeEduFld) {
this.hopeEduFld = hopeEduFld; this.hopeEduFld = hopeEduFld;
} }
public String getChk() {
return chk;
}
public void setChk(String chk) {
this.chk = chk;
}
} }

View File

@ -22,6 +22,7 @@ import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovFileMngService; import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil; import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.com.cmm.service.FileVO; import kcc.com.cmm.service.FileVO;
import kcc.com.cmm.util.StringUtil;
import kcc.com.uss.ion.fms.service.FmsFileVO; import kcc.com.uss.ion.fms.service.FmsFileVO;
import kcc.com.utl.user.service.CheckLoginUtil; import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uss.olp.qri.service.EgovQustnrRespondInfoService; import kcc.let.uss.olp.qri.service.EgovQustnrRespondInfoService;
@ -422,7 +423,7 @@ public class OprtnStateMngController {
* 체험교실 선정교사 팝업 * 체험교실 선정교사 팝업
*/ */
@RequestMapping("popup/slctnTeacherPopup.do") @RequestMapping("popup/slctnTeacherPopup.do")
public String rejectPopup(@ModelAttribute("veEduAplctVO") VEEduAplctVO vEEduAplctVO , public String slctnTeacherPopup(@ModelAttribute("veEduAplctVO") VEEduAplctVO vEEduAplctVO ,
ModelMap model , HttpServletRequest request ) throws Exception { ModelMap model , HttpServletRequest request ) throws Exception {
//선정교사 정보 불러오기 //선정교사 정보 불러오기
VEInstrDetailVO vEInstrDetailVO = new VEInstrDetailVO(); VEInstrDetailVO vEInstrDetailVO = new VEInstrDetailVO();
@ -434,6 +435,15 @@ public class OprtnStateMngController {
model.addAttribute("info", vEEduAplctVO); model.addAttribute("info", vEEduAplctVO);
return "oprtn/cpyrgExprnClsrm/popup/slctnTeacherPopup"; return "oprtn/cpyrgExprnClsrm/popup/slctnTeacherPopup";
} }
/**
* 체험교실 선정교사 일괄 팝업 - 운영목록에서 호출
*/
@RequestMapping("popup/slctnTeacherChkPopup.do")
public String slctnTeacherChkPopup(@ModelAttribute("veEduAplctVO") VEEduAplctVO vEEduAplctVO ,
ModelMap model , HttpServletRequest request ) throws Exception {
return "oprtn/cpyrgExprnClsrm/popup/slctnTeacherChkPopup";
}
/** /**
* 체험교실 선정교사 정보 등록 처리 * 체험교실 선정교사 정보 등록 처리
@ -464,10 +474,22 @@ public class OprtnStateMngController {
try { try {
vEInstrDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id vEInstrDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
vEInstrDetailVO.setDivCd("30"); //체험교실 코드 vEInstrDetailVO.setDivCd("30"); //체험교실 코드
// 기존에 등록된 선정교사 정보를 삭제 //상세화면에서 선정교사 설정 단일
vEInstrDetailService.deleteSlctnTeacher(vEInstrDetailVO); if(StringUtil.isEmpty(vEInstrDetailVO.getChk())) {
// 선정교사 정보를 등록 // 기존에 등록된 선정교사 정보를 삭제
vEInstrDetailService.insertSlctnTeacher(vEInstrDetailVO); vEInstrDetailService.deleteSlctnTeacher(vEInstrDetailVO);
// 선정교사 정보를 등록
vEInstrDetailService.insertSlctnTeacher(vEInstrDetailVO);
}else { //운영 목록에서 선정교사 설정 일괄
String[] eduAplctOrdArray = vEInstrDetailVO.getChk().split(",");
for(String eduAplctOrd : eduAplctOrdArray) {
vEInstrDetailVO.setEduAplctOrd(eduAplctOrd);
vEInstrDetailService.deleteSlctnTeacher(vEInstrDetailVO);
vEInstrDetailService.insertSlctnTeacher(vEInstrDetailVO);
}
}
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); ex.printStackTrace();

View File

@ -6165,6 +6165,12 @@ VALUES
<isNotEmpty property="searchEndSbmtPnttm"> <isNotEmpty property="searchEndSbmtPnttm">
AND TO_CHAR(A.SBMT_PNTTM,'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchEndSbmtPnttm#, '.' , '') AND TO_CHAR(A.SBMT_PNTTM,'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchEndSbmtPnttm#, '.' , '')
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="searchStartRegistPnttm">
AND TO_CHAR(A.FRST_REGIST_PNTTM,'YYYYMMDD') <![CDATA[ >= ]]> REPLACE(#searchStartRegistPnttm#, '.' , '')
</isNotEmpty>
<isNotEmpty property="searchEndRegistPnttm">
AND TO_CHAR(A.FRST_REGIST_PNTTM,'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchEndRegistPnttm#, '.' , '')
</isNotEmpty>
<isNotEmpty property="eduSlctAreaCd"> <isNotEmpty property="eduSlctAreaCd">
AND A.EDU_SLCT_AREA_CD = #eduSlctAreaCd# AND A.EDU_SLCT_AREA_CD = #eduSlctAreaCd#
</isNotEmpty> </isNotEmpty>

View File

@ -47,6 +47,7 @@
<pattern>*/ve/oprtn/instr/adultVisitEdu/popup/instrRsdnePopup.do</pattern> <!-- 거주지 선택 팝업 --> <pattern>*/ve/oprtn/instr/adultVisitEdu/popup/instrRsdnePopup.do</pattern> <!-- 거주지 선택 팝업 -->
<pattern>*/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMdfyRqstPopup.do</pattern> <!-- 성인강사변경승인팝업 --> <pattern>*/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMdfyRqstPopup.do</pattern> <!-- 성인강사변경승인팝업 -->
<pattern>*/kccadr/oprtn/cpyrgExprnClsrm/popup/slctnTeacherPopup.do</pattern> <!-- 관리자 저작권체험교실 교육과정안내 미리보기 팝업 --> <pattern>*/kccadr/oprtn/cpyrgExprnClsrm/popup/slctnTeacherPopup.do</pattern> <!-- 관리자 저작권체험교실 교육과정안내 미리보기 팝업 -->
<pattern>*/kccadr/oprtn/cpyrgExprnClsrm/popup/slctnTeacherChkPopup.do</pattern> <!-- 관리자 저작권체험교실 선정교사 일괄 처리 팝업 -->
</decorator> </decorator>
<!-- 찾교 추가 관리자 --> <!-- 찾교 추가 관리자 -->

View File

@ -92,18 +92,54 @@
}); });
} }
function fnCheckAll(){
var chk = document.listForm.chk;
if(document.listForm.checkAll.checked) {
if(chk) {
if(chk.length > 1) {
for(var i=0; i < chk.length; i++) {
chk[i].checked = true;
}
} else {
chk.checked = true;
}
}
} else {
if(chk) {
if(chk.length > 1) {
for(var j=0; j < chk.length; j++) {
chk[j].checked = false;
}
} else {
chk.checked = false;
}
}
}
}
function fncChkSlctnTeacherPopup() {
var chkLen = $(listForm).find("input[name=chk]:checked").length;
if(chkLen ==0){
alert("선택된 항목이 없습니다.");
return;
}
commonPopWindowopenForm(
"${pageContext.request.contextPath}/kccadr/oprtn/cpyrgExprnClsrm/popup/slctnTeacherChkPopup.do"
, "500"
, "550"
, "SlctnTeacherPopup"
, $("#listForm")
);
}
</script> </script>
<title>교육과정관리</title> <title>교육과정관리</title>
</head> </head>
<body> <body>
<form id="editForm" name="editForm" method="post"> <form:form id="linkForm" name="linkForm" commandName="vEEduAplctVO" method="post">
<input type="hidden" name="mode" value=""/> <input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="" />
<input type="hidden" name="adrSeq" value=""/> <input type="hidden" name="lctrDivCd" id="lctrDivCd" value="30" />
<input type="hidden" name="edtTy" value=""/> </form:form>
<input type="hidden" name="edtSn" value=""/> <form:form id="listForm" name="listForm" method="post" commandName="vEPrcsDetailVO" >
<input type="hidden" name="rejectCn" value=""/>
</form>
<form:form id="listForm" name="listForm" method="post" commandName="vEPrcsDetailVO" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' default='1' />"/> <input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" /> <input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" /> <input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
@ -139,11 +175,11 @@
<p>구분</p> <p>구분</p>
</div> </div>
<div class="util_right"> <div class="util_right">
<ve:select codeId="VE0029" name="searchStateYear" id="searchStateYear" css="class='sel_type1'" <ve:select codeId="VE0029" name="searchYear" id="searchStateYear" css="class='sel_type1'"
selectedValue="${vEEduAplctVO.searchStateYear}" defaultText='전체' selectedValue="${vEEduAplctVO.searchYear}" defaultText='전체'
/> />
<ve:select codeId="VE0008" name="searchEduSlctAreaCd2" id="searchEduSlctAreaCd2" css="class='sel_type1'" <ve:select codeId="VE0008" name="eduSlctAreaCd" id="eduSlctAreaCd" css="class='sel_type1'"
selectedValue="${vEEduAplctVO.searchEduSlctAreaCd2}" defaultText='전체' selectedValue="${vEEduAplctVO.eduSlctAreaCd}" defaultText='전체'
/> />
<select name="searchCondition" id="searchCondition" class="sel_type1"> <select name="searchCondition" id="searchCondition" class="sel_type1">
<option value="1" ${vEEduAplctVO.searchCondition eq '1' ? 'selected' : '' }>학교명</option> <option value="1" ${vEEduAplctVO.searchCondition eq '1' ? 'selected' : '' }>학교명</option>
@ -248,6 +284,7 @@
<div class="tb_type01"> <div class="tb_type01">
<table> <table>
<colgroup> <colgroup>
<col style="width: 5%">
<col style="width: 12%"> <col style="width: 12%">
<col style="width: 18%"> <col style="width: 18%">
<col style="width: 24%"> <col style="width: 24%">
@ -257,6 +294,7 @@
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
<th><input type="checkbox" name="checkAll" id="checkAll" onclick="fnCheckAll();" /><label for="checkAll"></label></th>
<th>번호</th> <th>번호</th>
<th>지역</th> <th>지역</th>
<th>학교명</th> <th>학교명</th>
@ -268,6 +306,9 @@
<tbody> <tbody>
<c:forEach var="list" items="${list}" varStatus="status"> <c:forEach var="list" items="${list}" varStatus="status">
<tr> <tr>
<td>
<input name="chk" id="<c:out value="${list.eduAplctOrd}"/>" type="checkbox" value="<c:out value="${list.eduAplctOrd}"/>"/> <label for="<c:out value="${list.eduAplctOrd}"/>"></label>
</td>
<td> <td>
<c:out value="${status.count}"/> <c:out value="${status.count}"/>
</td> </td>
@ -300,6 +341,7 @@
<div class="btn_wrap btn_layout01"> <div class="btn_wrap btn_layout01">
<div class="btn_left"> <div class="btn_left">
<button class="btn_type04" onclick="fncChkSlctnTeacherPopup(); return false;" >일괄 선정교사 설정</button>
</div> </div>
<div class="btn_center"> <div class="btn_center">
</div> </div>

View File

@ -0,0 +1,149 @@
<!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="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<script src="${pageContext.request.contextPath}/visitEdu/adm/publish/script/jquery-3.5.0.js"></script>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>선정교사 정보</title>
<script type="text/javaScript" language="javascript">
function fncInsert(){
var data1 = new FormData(document.getElementById("createForm"));
if(validationForm(data1)) {
if (confirm("선정교사 정보를 등록 하시겠습니까?")) {
$.ajax({
type: "POST",
url: "${pageContext.request.contextPath}/kccadr/oprtn/cpyrgExprnClsrm/popup/instrSlctnTeacherAjax.do",
//data: JSON.stringify(data),
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success: function (returnData, status) {
if(returnData.result == 'success'){
alert("정상적으로 등록 되었습니다.");
opener.location.reload();
self.close();
}else{
alert(returnData.message);
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
}
}
function validationForm(data){
if ($("[name='awardsHist']").val() == '') {
alert("수상이력을 입력해주세요.");
return false;
}
if (!$('input:radio[name=unfthYn]').is(':checked')) {
alert("불성실여부를 선택해주세요.");
return false;
}
if (!$('input:radio[name=extraPayYn]').is(':checked')) {
alert("수당지급여부를 선택해주세요.");
return false;
}
if (!$('input:radio[name=rprtScore]').is(':checked')) {
alert("보고서 평가를 선택해주세요.");
return false;
}
if ($("[name='rmrks']").val() == '') {
alert("비고를 입력해주세요.");
return false;
}
return true;
}
</script>
</head>
<body>
<form:form id="createForm" name="createForm" method="post" commandName="veEduAplctVO" onsubmit="return false;">
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="">
<input type="hidden" name="chk" id="chk" value="<c:out value="${veEduAplctVO.chk}" />">
<div class="area_popup">
<div class="cont_popup">
<div class="pop_tb_tit01">
<p>수상이력</p>
</div>
<textarea name="awardsHist" class="pop_textarea" style="margin-bottom: 30px;"></textarea>
<div class="pop_tb_tit01">
<p>불성실 여부</p>
</div>
<div class="pop_cbx_wrap">
<div class="check_wrap">
<input type="radio" name="unfthYn" id="unfthN" value="N" >
<label for="unfthN">성실</label>
</div>
<div class="check_wrap">
<input type="radio" name="unfthYn" id="unfthY" value="Y" >
<label for="unfthY">불성실</label>
</div>
</div>
<div class="pop_tb_tit01">
<p>수당지급 여부</p>
</div>
<div class="pop_cbx_wrap">
<div class="check_wrap">
<input type="radio" name="extraPayYn" id="extraPayY" value="Y" >
<label for="extraPayY">지급</label>
</div>
<div class="check_wrap">
<input type="radio" name="extraPayYn" id="extraPayN" value="N" >
<label for="extraPayN">비지급</label>
</div>
</div>
<div class="pop_tb_tit01">
<p>보고서 평가</p>
</div>
<div class="pop_cbx_wrap">
<div class="check_wrap">
<input type="radio" name="rprtScore" id="rprtScore3" value="3" >
<label for="rprtScore3">상</label>
</div>
<div class="check_wrap">
<input type="radio" name="rprtScore" id="rprtScore2" value="2" >
<label for="rprtScore2">중</label>
</div>
<div class="check_wrap">
<input type="radio" name="rprtScore" id="rprtScore1" value="1" >
<label for="rprtScore1">하</label>
</div>
</div>
<div class="pop_tb_tit01">
<p>비고</p>
</div>
<textarea name="rmrks"></textarea>
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center" style="width: 100%;">
<button type="button" class="btn_type04" onclick="fncInsert(); return false;">등록</button>
<button type="button" class="btn_type02" onclick="window.close()">취소</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</form:form>
</body>
</html>

View File

@ -85,7 +85,7 @@
</div> </div>
<textarea name="awardsHist" class="pop_textarea" style="margin-bottom: 30px;"><c:out value="${vEInstrDetailVO.awardsHist}" /></textarea> <textarea name="awardsHist" class="pop_textarea" style="margin-bottom: 30px;"><c:out value="${vEInstrDetailVO.awardsHist}" /></textarea>
<div class="pop_tb_tit01"> <div class="pop_tb_tit01">
<p>불성실 여부${vEInstrDetailVO.unfthYn}</p> <p>불성실 여부</p>
</div> </div>
<div class="pop_cbx_wrap"> <div class="pop_cbx_wrap">
<div class="check_wrap"> <div class="check_wrap">
@ -98,7 +98,7 @@
</div> </div>
</div> </div>
<div class="pop_tb_tit01"> <div class="pop_tb_tit01">
<p>수당지급 여부${vEInstrDetailVO.extraPayYn}</p> <p>수당지급 여부</p>
</div> </div>
<div class="pop_cbx_wrap"> <div class="pop_cbx_wrap">
<div class="check_wrap"> <div class="check_wrap">
@ -111,7 +111,7 @@
</div> </div>
</div> </div>
<div class="pop_tb_tit01"> <div class="pop_tb_tit01">
<p>보고서 평가${vEInstrDetailVO.extraPayYn}</p> <p>보고서 평가</p>
</div> </div>
<div class="pop_cbx_wrap"> <div class="pop_cbx_wrap">
<div class="check_wrap"> <div class="check_wrap">