2023-11-15 17:50 성인 강사 배정 조건 수정

This commit is contained in:
myname 2023-11-15 17:50:36 +09:00
parent c0fd9d8e1c
commit 03491019c5
6 changed files with 132 additions and 16 deletions

View File

@ -30,4 +30,8 @@ public interface VEAsgnmMIX2023Service {
//오프라인 강사 배정 220210_adult
List<VEInstrAsgnmVO> selectInstrAsgnmOffPagingList_220210_adult(VEInstrAsgnmVO paramVO) throws Exception;
//배정 강사 /오프 통합 202311_adult
List<VEInstrAsgnmVO> selectInstrAsgnmList_202311_adult(VEInstrAsgnmVO paramVO) throws Exception;
}

View File

@ -53,4 +53,9 @@ public class VEAsgnmMIX2023DAO extends EgovAbstractDAO {
List<VEInstrAsgnmVO> tlist = (List<VEInstrAsgnmVO>) list("VEAsgnmMIXDAO.selectInstrAsgnmOnPagingList_220210_adult", paramVO);
return tlist;
}
public List<VEInstrAsgnmVO> selectInstrAsgnmList_202311_adult(VEInstrAsgnmVO paramVO) throws Exception {
List<VEInstrAsgnmVO> tlist = (List<VEInstrAsgnmVO>) list("VEAsgnmMIX2023DAO.selectInstrAsgnmList_202311_adult", paramVO);
return tlist;
}
}

View File

@ -53,4 +53,9 @@ public class VEAsgnmMIX2023ServiceImpl implements VEAsgnmMIX2023Service {
return vEAsgnmMIX2023DAO.selectInstrAsgnmOnPagingList_220210_adult(paramVO);
}
public List<VEInstrAsgnmVO> selectInstrAsgnmList_202311_adult(VEInstrAsgnmVO paramVO) throws Exception{
return vEAsgnmMIX2023DAO.selectInstrAsgnmList_202311_adult(paramVO);
}
}

View File

@ -306,6 +306,69 @@ public class EduCnfrmMngAdultController {
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
//String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request);
//if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo;
//로그인 처리====================================
//0.step0
//해당 처시 정보 가져오기 (온라인 오프라인 여부 신청내용 확인)
vEEduAplctVO = vEEduAplctService.selectDetail(vEEduAplctVO);
System.out.println(vEEduAplctVO.getEduSlctCd()); //10-온라인, 20-오프라인
System.out.println(vEEduAplctVO.getAplctCn()); //신청내용
System.out.println(vEInstrAsgnmVO.getInstrNm()); //검색강사
String s_instrNm = vEInstrAsgnmVO.getInstrNm();
//1.step1.신청내용과 맞는 선호분야를 가진 강사를 가져온다.
//순서는 할당이 낮은 강사
String s_searchQuery = "";
if (!"".equals(s_instrNm)) {
//검색인 경우는 이름만으로 검색
s_searchQuery = " AND b.instr_nm = '"+egovCryptoUtil.encrypt(s_instrNm)+"'";
}else {
//검색이 아닌 경우는 우선 순위에 맞게
String[] a_rr = s_instrNm.split(",");
s_searchQuery = " AND (1=2";
for (int i=0;i<a_rr.length;i++) {
s_searchQuery = s_searchQuery + " OR b.hope_edu_fld like '%'||'"+a_rr[i]+"'||'%' ";
}
s_searchQuery = s_searchQuery + " ) ";
}
vEInstrAsgnmVO.setSearchQuery(s_searchQuery);
List<VEInstrAsgnmVO> selectVEInstrAsgnmVOList = vEAsgnmMIX2023Service.selectInstrAsgnmList_202311_adult(vEInstrAsgnmVO);
//4.복호화
selectVEInstrAsgnmVOList = egovCryptoUtil.decryptVEInstrAsgnmVOList(selectVEInstrAsgnmVOList);
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", selectVEInstrAsgnmVOList);
return "oprtn/adultVisitEdu/popup/instrAsgnmPopup";
}
/**
* 강사배치 팝업
*/
@RequestMapping("popup/instrAsgnmPopup_bak.do")
public String instrAsgnmPopup_bak(
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
,@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
,@ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
//String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request);
//if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo;
@ -382,7 +445,6 @@ public class EduCnfrmMngAdultController {
}
/**
* 강사배정관리 상세 화면
*/

View File

@ -783,5 +783,43 @@
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
</select>
<!-- 성인 강사 배정 온/오프 통합 202311-->
<select id="VEAsgnmMIX2023DAO.selectInstrAsgnmList_202311_adult" parameterClass="VEInstrAsgnmVO" resultClass="VEInstrAsgnmVO">
/*
온/오프 통합 성인 - VEAsgnmMIX2023DAO.selectInstrAsgnmList_202311_adult
*/
/* 신청 가능한 전체 강사 리스트 */
SELECT a.user_id AS userId,
b.rsdne ,
b.instr_nm AS instrNm,
b.addr ,
b.addr_detail AS addrDetail,
b.div_cd AS divCd, /*성인강사 내부구분 VE0018*/
b.instr_div AS instrDiv /* 20-성인, 10-청소년 */
, b.hope_edu_fld AS prfrnFldCd /* 희망교육분야 VEA010*/
FROM ve_instr a ,
ve_instr_detail b
LEFT OUTER JOIN ve_lctr_stng c
ON (
1 =1
AND b.instr_div=c.instr_div
AND b.user_id =c.user_id
AND c.use_yn ='Y'
/* 사용중인강의설정 */
)
WHERE 1 =1
AND b.user_id =a.user_id
AND b.use_yn ='Y'
AND b.INSTR_DIV ='20'
/* 활동중인 강사 */
AND
(
b.qlfct_end_yn='N' OR b.qlfct_end_yn IS NULL
)
$searchQuery$
</select>
</sqlMap>

View File

@ -132,10 +132,10 @@
<div class="util_left">
<p>강사검색</p>
</div>
<ve:select codeId="VE0008" name="searchEduSlctAreaCd" id="searchEduSlctAreaCd" css="class='sel_type1'"
selectedText="${vEEduAplctVO.rsdne}" defaultValue=''
defaultText='전체'
/>
<%-- <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="instrNm" name="instrNm" class="search_input" placeholder="검색어를 입력하세요" value="${vEEduAplctVO.instrNm}">
<button type="button" class="btn_type08" onclick="linkPage(1); return false;">검색</button>
@ -153,7 +153,7 @@
<col style="width: 15%;">
<%-- <col style="width: 10%"> --%>
<col style="width: auto;">
<col style="width: 15%;">
<%-- <col style="width: 15%;"> --%>
<col style="width: 15%;">
<%-- <col style="width: 9%;"> --%>
<col style="width: 9%;">
@ -164,7 +164,7 @@
<th scope="col">거주<br>지역</th>
<!-- <th scope="col">이동<br>거리</th> -->
<th scope="col">선호분야</th>
<th scope="col">온라인</th>
<!-- <th scope="col">온라인</th> -->
<th scope="col">구분</th>
<!-- <th scope="col">Penalty 횟수</th> -->
<th scope="col">선택</th>
@ -177,8 +177,15 @@
<td><c:out value='${list.rsdne}'/></td>
<%-- <td><c:out value='${list.onewayDstnc}'/>Km</td> --%>
<td><ve:code codeId="VE0004" code="${list.prfrnFldCd}"/></td>
<td><c:out value='${list.onlnPsblYn}'/></td>
<td><ve:code codeId="VE0004" code="${list.prfrnFldCd}"/>
<!-- , 들어간 값을 구분해서 표시한다. -->
<c:set var="aplctCns" value="${fn:split(list.prfrnFldCd,',')}" />
<c:forEach var="aplctCn" items="${aplctCns}" varStatus="g">
<ve:code codeId="VEA006" code="${aplctCn}"/>&nbsp;&nbsp;
</c:forEach>
</td>
<%-- <td><c:out value='${list.onlnPsblYn}'/></td> --%>
<td><ve:code codeId="VE0018" code="${list.divCd}"/></td>
<%-- <td>
<c:set var="pnltyCds" value="0" />
@ -207,16 +214,11 @@
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="6"><spring:message code="common.nodata.msg" /></td></tr>
<tr><td colspan="5"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
<!-- //page -->
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">