2023-11-21 17:08 교육배치확정관리 작업

This commit is contained in:
myname 2023-11-21 17:08:43 +09:00
parent de9df705e0
commit 0823d85544
7 changed files with 313 additions and 58 deletions

View File

@ -145,6 +145,11 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
private String cnclAtchFileId; //
private String cnclCn; //
private String acmdtAplctOrd; //숙박신청 순번
private String acmdtSbmtYn; //숙박신청 제출여부
public int getChasi() {
return chasi;
}
@ -1731,6 +1736,18 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
public void setTable(String table) {
this.table = table;
}
public String getAcmdtAplctOrd() {
return acmdtAplctOrd;
}
public void setAcmdtAplctOrd(String acmdtAplctOrd) {
this.acmdtAplctOrd = acmdtAplctOrd;
}
public String getAcmdtSbmtYn() {
return acmdtSbmtYn;
}
public void setAcmdtSbmtYn(String acmdtSbmtYn) {
this.acmdtSbmtYn = acmdtSbmtYn;
}
}

View File

@ -204,6 +204,9 @@ public class EduAsgnmCnfrmMngTngrController {
vEEduAplctVO = this.setPagingStep2(vEEduAplctVO, paginationInfo);
vEEduAplctVO.setNotiUserId(user.getUniqId());
vEEduAplctVO.setMenuNo(session.getAttribute("menuNo").toString());
vEEduAplctVO.setSearchAsgnmAprvlCd("30");
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO);
//이름 복호화
VEEduAplctVO vo = new VEEduAplctVO();
@ -719,6 +722,7 @@ public class EduAsgnmCnfrmMngTngrController {
// 청소년
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10);
vEEduAplctVO.setMode(VeConstants.MODE_EXCEL);
vEEduAplctVO.setSearchAsgnmAprvlCd("30");
List<VEEduExcelVO> list = vEEduMIXService.selectExcelList(vEEduAplctVO);
//list = egovCryptoUtil.decryptVEEduExcelVOList(list);

View File

@ -495,6 +495,14 @@
) AS eduDt
*/
, i.instr_nm AS instrNm
, i.asgnm_aprvl_cd AS asgnmAprvlCd
, i.user_id AS userId
, j.acmdt_aplct_ord AS acmdtAplctOrd
, j.sbmt_yn AS acmdtSbmtYn
, j.aprvl_cd AS acmdtAprvlCd
FROM VE_EDU_APLCT A LEFT OUTER JOIN (
SELECT
AA.EDU_APLCT_ORD
@ -566,6 +574,52 @@
LEFT OUTER JOIN ve_edu_rslt_rprt H
ON A.EDU_APLCT_ORD = H.EDU_APLCT_ORD
/* 청소년 교육배치확정 목록에서 사용 */
LEFT OUTER JOIN (
SELECT a.edu_aplct_ord
, a.edu_chasi_ord
, b.instr_nm
, a.asgnm_aprvl_cd
, a.user_id
FROM ve_edu_chasi_instr_asgnm a
, ve_instr_detail b
WHERE a.user_id=b.user_id
AND b.use_yn='Y'
) I
ON (
CC.EDU_APLCT_ORD = I.EDU_APLCT_ORD
AND CC.EDU_CHASI_ORD = I.EDU_CHASI_ORD
)
LEFT OUTER JOIN (
SELECT bb.edu_aplct_ord
, bb.edu_chasi_ord
, bb.acmdt_aplct_ord
, bb.sbmt_yn
, bb.aprvl_cd
FROM (
SELECT a.edu_aplct_ord
, a.edu_chasi_ord
, max(acmdt_aplct_ord) AS acmdt_aplct_ord
FROM ve_acmdt_aplct a
WHERE a.use_yn='Y'
GROUP BY a.edu_aplct_ord
, a.edu_chasi_ord
)aa
, ve_acmdt_aplct bb
WHERE aa.edu_aplct_ord=bb.edu_aplct_ord
AND aa.edu_chasi_ord=bb.edu_chasi_ord
AND aa.acmdt_aplct_ord=bb.acmdt_aplct_ord
)J
ON (
CC.EDU_APLCT_ORD = J.EDU_APLCT_ORD
AND CC.EDU_CHASI_ORD = J.EDU_CHASI_ORD
)
WHERE 1=1
/*
AND IFNULL(A.USE_YN, 'Y') <![CDATA[ <> ]]> 'N'
@ -581,6 +635,24 @@
</isNotEmpty>
<isNotEmpty property="searchAcmdtCnt">
<isEqual property="searchAcmdtCnt" compareValue="20">
AND J.sbmt_yn='Y'
AND J.aprvl_cd is null
</isEqual>
<isEqual property="searchAcmdtCnt" compareValue="30">
AND NVL(J.sbmt_yn,'N')='N'
</isEqual>
<isEqual property="searchAcmdtCnt" compareValue="40">
AND J.sbmt_yn='Y'
AND J.aprvl_cd ='40'
</isEqual>
<isEqual property="searchAcmdtCnt" compareValue="50">
AND J.sbmt_yn='Y'
AND J.aprvl_cd ='50'
</isEqual>
/*
AND
(
SELECT
@ -592,6 +664,7 @@
AND
ZZ.sbmt_yn = 'Y'
) > 0
*/
</isNotEmpty>
<isNotEmpty property="lctrDivCd">
@ -602,6 +675,15 @@
AND A.APRVL_CD=#aprvlCd#
</isNotEmpty>
<isNotEmpty property="searchAsgnmAprvlCd">
<isEqual property="searchAsgnmAprvlCd" compareValue="90">
AND I.asgnm_aprvl_cd is null
</isEqual>
<isNotEqual property="searchAsgnmAprvlCd" compareValue="90">
AND I.asgnm_aprvl_cd = #searchAsgnmAprvlCd#
</isNotEqual>
</isNotEmpty>
<isNotEmpty property="searchStartDt">
AND CC.EDU_HOPE_DT <![CDATA[ >= ]]> REPLACE(#searchStartDt#, '.' , '')
</isNotEmpty>
@ -702,6 +784,9 @@
</isEmpty>
<isNotEmpty property="searchCondition">
<isEqual property="searchCondition" compareValue="0">
AND (A.SCHOL_INSTT_NM LIKE '%' || #searchKeyword# || '%' OR A.CHRG_NM LIKE '%' || #searchKeyword# || '%')
</isEqual>
<isEqual property="searchCondition" compareValue="1">
AND A.SCHOL_INSTT_NM LIKE '%' || #searchKeyword# || '%'
</isEqual>
@ -3978,7 +4063,11 @@
a.aprvl_cd AS aprvlCd
*/
(SELECT a0.code_nm FROM LETTCCMMNDETAILCODE a0 WHERE a0.code_id='VE0003' AND a0.code=a.aprvl_cd) AS aprvlCd
/*
, DATE_FORMAT(a.aprvl_pnttm,'%Y-%m-%d') AS aprvlPnttm
*/
, TO_CHAR(a.aprvl_pnttm,'YYYY-MM-DD') AS aprvlPnttm
/*
, a.edu_slct_area_cd AS eduSlctAreaCd
@ -3993,8 +4082,10 @@
/*
, DATE_FORMAT(TO_DATE(b.edu_hope_dt, 'YYYYMMDD'),'%Y-%m-%d') AS eduHopeDt
*/
/*
, DATE_FORMAT(STR_TO_DATE(b.edu_hope_dt, '%Y%m%d'),'%Y-%m-%d') AS eduHopeDt
*/
, b.edu_hope_dt AS eduHopeDt
, a.schol_instt_nm AS scholInsttNm
, a.edu_cn AS eduCn
@ -4010,7 +4101,10 @@
, a.chrg_nm AS chrgNm
, NVL(b.instr_cnfrm_cd, 'N') AS instrCnfrmCd
, d.asgnm_aprvl_cd AS asgnmAprvlCd
/*
, DATE_FORMAT(d.asgnm_aprvl_pnttm,'%Y-%m-%d') AS asgnmAprvlPnttm
*/
, TO_CHAR(d.asgnm_aprvl_pnttm,'YYYY-MM-DD') AS asgnmAprvlPnttm
, b.div_cd AS lctrDivCd
, NVL(b.chasi, 0) AS chasi
@ -4020,10 +4114,16 @@
, a.addr AS addr
, a.addr_detail AS addrDetail
, e.instr_nm AS instrNm
/*
, IF(e.user_id IS NOT NULL
, '('||SUBSTRING(e.user_id,INSTR(e.user_id,'_')+1)*1||')'
,''
) AS userIdNum
*/
, CASE
WHEN e.user_id IS NOT NULL THEN '('||SUBSTRING(e.user_id,INSTR(e.user_id,'_')+1)*1||')'
ELSE ''
END AS userIdNum
, e.instr_div AS instrDiv
, e.email AS instrEmail
, e.phone AS instrPhone
@ -4125,8 +4225,51 @@
)
</isNotEmpty>
</isEmpty>
<isNotEmpty property="searchAsgnmAprvlCd">
<isEqual property="searchAsgnmAprvlCd" compareValue="90">
AND d.asgnm_aprvl_cd is null
</isEqual>
<isNotEqual property="searchAsgnmAprvlCd" compareValue="90">
AND d.asgnm_aprvl_cd = #searchAsgnmAprvlCd#
</isNotEqual>
</isNotEmpty>
<isNotEmpty property="searchAcmdtCnt">
<isEqual property="searchAcmdtCnt" compareValue="20">
AND d.sbmt_yn='Y'
AND d.aprvl_cd is null
</isEqual>
<isEqual property="searchAcmdtCnt" compareValue="30">
AND NVL(d.sbmt_yn,'N')='N'
</isEqual>
<isEqual property="searchAcmdtCnt" compareValue="40">
AND d.sbmt_yn='Y'
AND d.aprvl_cd ='40'
</isEqual>
<isEqual property="searchAcmdtCnt" compareValue="50">
AND d.sbmt_yn='Y'
AND d.aprvl_cd ='50'
</isEqual>
/*
AND
(
SELECT
COUNT(1)
FROM
ve_acmdt_aplct ZZ
WHERE
A.edu_aplct_ord = ZZ.edu_aplct_ord
AND
ZZ.sbmt_yn = 'Y'
) > 0
*/
</isNotEmpty>
ORDER BY
1=1
1
, b.edu_chasi_ord
</select>

View File

@ -98,6 +98,18 @@
form.submit();
form.target = "_self";
}
// 숙박신청내용보기
function fncEduAcmdtAplctDetailInfo(userId,p_eduAplctOrd,p_eduChasiOrd) { //메뉴생성 화면 호출
document.createForm.frstRegisterId.value = userId;
document.createForm.eduAplctOrd.value = p_eduAplctOrd;
document.createForm.eduChasiOrd.value = p_eduChasiOrd;
document.createForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/eduAcmdtAplctDetailPopup.do'/>";
window.open("#", "_eduAcmdtAplctDetailPop", "scrollbars = no, top=100px, left=100px, height=550px, width=750px");
document.createForm.target = "_eduAcmdtAplctDetailPop";
document.createForm.submit();
}
</script>
<title>교육확정관리</title>
</head>
@ -138,7 +150,13 @@
selectedValue="${vEEduAplctVO.searchEduSlctAreaCd}" defaultValue=''
defaultText='전체'
/>
&nbsp;&nbsp;학교(기관)명 :&nbsp;
<select class="sel_type1" name="searchCondition" id="searchCondition">
<option value="0" ${vEEduAplctVO.searchCondition eq '0' ? 'selected' : '' }>전체</option>
<option value="1" ${vEEduAplctVO.searchCondition eq '1' ? 'selected' : '' }>학교명</option>
<option value="2" ${vEEduAplctVO.searchCondition eq '2' ? 'selected' : '' }>강사이름</option>
</select>
<input type="text" id="searchKeyword" name="searchKeyword" class="search_input" value="<c:out value='${vEEduAplctVO.searchKeyword}'/>" style="width:200px;" onkeyDown="press(event);">
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
<button class="btn_type03" onclick="fncReset(this); return false;">초기화</button>
@ -158,6 +176,25 @@
</div>
</div>
</div>
<div class="list_top_3">
<div class="util_left">
<p>숙박필터</p>
</div>
<div class="util_right">
<select class="sel_type1" name="searchAcmdtCnt" id="searchAcmdtCnt">
<option value="10" ${vEEduAplctVO.searchAcmdtCnt eq '10' ? 'selected' : '' }>전체</option>
<option value="20" ${vEEduAplctVO.searchAcmdtCnt eq '20' ? 'selected' : '' }>신청</option>
<option value="30" ${vEEduAplctVO.searchAcmdtCnt eq '30' ? 'selected' : '' }>미신청</option>
<option value="40" ${vEEduAplctVO.searchAcmdtCnt eq '40' ? 'selected' : '' }>승인</option>
<option value="50" ${vEEduAplctVO.searchAcmdtCnt eq '50' ? 'selected' : '' }>미승인</option>
</select>
</div>
</div>
<!--
<div class="list_top_3">
<div class="util_left">
<p>확정일자</p>
@ -175,6 +212,7 @@
</div>
</div>
</div>
-->
</div>
<!-- //list_top -->
@ -221,27 +259,27 @@
<colgroup>
<col style="width: 5%">
<col style="width: 10%">
<col style="width: 10%">
<%-- <col style="width: 10%"> --%>
<col style="width: 10%">
<col style="width: auto;">
<col style="width: 8%">
<col style="width: 8%">
<col style="width: 10%">
<col style="width: 10%">
<%-- <col style="width: 10%"> --%>
<col style="width: 10%">
</colgroup>
<thead>
<tr>
<th>번호</th>
<th>교육일자</th>
<th>확정일자</th>
<!-- <th>확정일자</th> -->
<th>지역</th>
<th>학교(기관)명</th>
<th>학교구분</th>
<th>도서벽지여부</th>
<th>신청자</th>
<th>확정수</th>
<th>숙박신청</th>
<th>강사명</th>
<!-- <th>확정수</th> -->
<th>숙박신청여부</th>
</tr>
</thead>
<tbody>
@ -270,11 +308,13 @@
</c:choose>
</a>
</td>
<!--
<td>
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}'); return false;">
<c:out value="${list.aprvlPnttm}"/>
</a>
</td>
-->
<td>
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}'); return false;">
<c:if test="${list.eduSlctCd eq '10'}">
@ -305,14 +345,37 @@
</td>
<td>
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}'); return false;">
<c:out value="${list.chrgNm}"/>
<c:out value="${list.instrNm}"/>
</a>
</td>
<!--
<td>
<c:out value="${list.instrCnfrmCnt}" /> / <c:out value="${list.chasiCnt}" />
</td>
-->
<td>
<!--
<c:out value="${list.acmdtCnt}" /> / <c:out value="${list.acmdtAllCnt}" />
-->
<c:choose>
<c:when test="${list.acmdtSbmtYn eq 'Y' and list.acmdtAprvlCd eq '10'}">
확정
</c:when>
<c:when test="${list.acmdtSbmtYn eq 'Y' and list.acmdtAprvlCd eq '20'}">
미확정
</c:when>
<c:when test="${list.acmdtSbmtYn eq 'Y'}">
<button class="btn_type06"
onclick="fncEduAcmdtAplctDetailInfo('<c:out value="${list.userId}" />','<c:out value="${list.eduAplctOrd}" />','<c:out value="${list.eduChasiOrd}" />'); return false;" >신청</button>
</c:when>
<c:otherwise>
미신청
</c:otherwise>
</c:choose>
</td>
</tr>
</c:forEach>
@ -333,5 +396,12 @@
</div>
</div>
</form:form>
<form id="createForm" name="createForm" method="post">
<input type="hidden" name="frstRegisterId" value="" />
<input type="hidden" name="instrDiv" value="10" />
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="" />
<input type="hidden" name="eduChasiOrd" id="eduChasiOrd" value="" />
</form>
</body>
</html>

View File

@ -789,31 +789,26 @@
<th scope="row">
<p>학교구분</p>
</th>
<td colspan="3"><kc:code codeId="VE0009" code="${info.scholDivCd}"/></td>
</tr>
<tr>
<td><kc:code codeId="VE0009" code="${info.scholDivCd}"/></td>
<th scope="row">
<p>도서학교구분</p>
<p>도서벽지구분</p>
</th>
<td colspan="3">${info.isltnYn eq 'Y' ? '예' : '아니오'}</td>
</tr>
<tr>
<th scope="row">
<p>벽지학교구분</p>
</th>
<td colspan="3">${info.isltn2Yn eq 'Y' ? '예' : '아니오'}</td>
</tr>
<tr>
<th scope="row">
<p>접적학교구분</p>
</th>
<td colspan="3">${info.isltn3Yn eq 'Y' ? '예' : '아니오'}</td>
</tr>
<tr>
<th scope="row">
<p>인구감소지역여부</p>
</th>
<td colspan="3">${info.ppltnReducAreaYn eq 'Y' ? '예' : '아니오'}</td>
<td>
<c:choose>
<c:when test="${info.isltnYn eq 'Y'}">
</c:when>
<c:when test="${info.isltn2Yn eq 'Y'}">
</c:when>
<c:when test="${info.isltn3Yn eq 'Y'}">
</c:when>
<c:otherwise>
아니오
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<th scope="row">

View File

@ -931,6 +931,37 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
<ve:radio codeId="VE0009" id="scholDivCd" name="scholDivCd" selectedValue="${empty info.scholDivCd ? '10' : info.scholDivCd}" script="onclick='return(false);'"/>
</td>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>도서벽지학교여부</p>
</th>
<td>
<input type="radio" name="isltn0Yn" id="isltn0_Y" value="Y"
${info.isltnYn eq 'Y' ? 'checked' : info.isltnYn}
<c:choose>
<c:when test="${info.isltnYn eq 'Y'}">
checked
</c:when>
<c:when test="${info.isltn2Yn eq 'Y'}">
checked
</c:when>
<c:when test="${info.isltn3Yn eq 'Y'}">
checked
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
disabled>
<label for="isltn_Y">예</label>
<input type="radio" name="isltn0Yn" id="isltn0_N" value="N"
${empty info.isltnYn or info.isltnYn eq 'N' ? 'checked' : info.isltnYn} disabled>
<label for="isltn_N">아니오</label>
</td>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>

View File

@ -843,31 +843,26 @@
<th scope="row">
<p>학교구분</p>
</th>
<td colspan="3"><kc:code codeId="VE0009" code="${info.scholDivCd}"/></td>
</tr>
<tr>
<td><kc:code codeId="VE0009" code="${info.scholDivCd}"/></td>
<th scope="row">
<p>도서학교구분</p>
<p>도서벽지구분</p>
</th>
<td colspan="3">${info.isltnYn eq 'Y' ? '예' : '아니오'}</td>
</tr>
<tr>
<th scope="row">
<p>벽지학교구분</p>
</th>
<td colspan="3">${info.isltn2Yn eq 'Y' ? '예' : '아니오'}</td>
</tr>
<tr>
<th scope="row">
<p>접적학교구분</p>
</th>
<td colspan="3">${info.isltn3Yn eq 'Y' ? '예' : '아니오'}</td>
</tr>
<tr>
<th scope="row">
<p>인구감소지역여부</p>
</th>
<td colspan="3">${info.ppltnReducAreaYn eq 'Y' ? '예' : '아니오'}</td>
<td>
<c:choose>
<c:when test="${info.isltnYn eq 'Y'}">
</c:when>
<c:when test="${info.isltn2Yn eq 'Y'}">
</c:when>
<c:when test="${info.isltn3Yn eq 'Y'}">
</c:when>
<c:otherwise>
아니오
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<th scope="row">