This commit is contained in:
myname 2023-07-03 12:09:14 +09:00
commit fc72f53f5d
12 changed files with 197 additions and 48 deletions

View File

@ -27,6 +27,8 @@ public interface VEAsgnmMIXService {
//배정 강사 확정 리스트
List<VEInstrAsgnmVO> selectAsgnmPagingList(VEInstrAsgnmVO paramVO) throws Exception;
VEInstrAsgnmVO findByAcmdtCnfrm(VEInstrAsgnmVO vEInstrAsgnmVO) throws Exception;
//R
VEInstrAsgnmVO selectAsgnmRqstDetail(VEInstrAsgnmVO paramVO) throws Exception;
@ -117,4 +119,5 @@ public interface VEAsgnmMIXService {
//배정 최대값 제한 산술식을 위한 해당 교육 차시에 속한 달의 강사 교육접수차시 가져오기
//R
VEInstrAsgnmVO selectTtlMntChasiSumDetail(VEInstrAsgnmVO paramVO) throws Exception;
}

View File

@ -58,6 +58,11 @@ public class VEAsgnmMIXDAO extends EgovAbstractDAO {
return tlist;
}
public VEInstrAsgnmVO findByAcmdtCnfrm(VEInstrAsgnmVO paramVO) throws Exception {
VEInstrAsgnmVO tlist = (VEInstrAsgnmVO) select("VEAsgnmMIXDAO.findByAcmdtCnfrm", paramVO);
return tlist;
}
public VEInstrAsgnmVO selectAsgnmRqstDetail(VEInstrAsgnmVO paramVO) throws Exception {
return (VEInstrAsgnmVO) select("VEAsgnmMIXDAO.selectAsgnmRqstDetail", paramVO);
}

View File

@ -49,6 +49,10 @@ public class VEAsgnmMIXServiceImpl implements VEAsgnmMIXService {
return vEAsgnmMIXDAO.selectAsgnmPagingList(paramVO);
}
public VEInstrAsgnmVO findByAcmdtCnfrm(VEInstrAsgnmVO paramVO) throws Exception{
return vEAsgnmMIXDAO.findByAcmdtCnfrm(paramVO);
}
//R
public VEInstrAsgnmVO selectAsgnmRqstDetail(VEInstrAsgnmVO paramVO) throws Exception {
return vEAsgnmMIXDAO.selectAsgnmRqstDetail(paramVO);

View File

@ -260,6 +260,28 @@ public class VEAsgnmController {
List<VEInstrAsgnmVO> vEInstrAsgnmVOList = vEAsgnmMIXService.selectAsgnmPagingList(vEInstrAsgnmVO);
vEInstrAsgnmVOList.stream().forEach(t-> {
try {
VEInstrAsgnmVO acmdtCnfrmVO = vEAsgnmMIXService.findByAcmdtCnfrm(t);
if(acmdtCnfrmVO != null)
{
if(StringUtils.isNotEmpty(acmdtCnfrmVO.getAcmdtSbmtYn()))
t.setAcmdtSbmtYn(acmdtCnfrmVO.getAcmdtSbmtYn());
if(StringUtils.isNotEmpty(acmdtCnfrmVO.getAcmdtSbmtYn()))
t.setAcmdtAprvlCd(acmdtCnfrmVO.getAcmdtSbmtYn());
if(StringUtils.isNotEmpty(acmdtCnfrmVO.getAcmdtSbmtYn()))
t.setAcmdtFee(acmdtCnfrmVO.getAcmdtSbmtYn());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
});
System.out.println("=========================================== ");
//6.pageing step3
paginationInfo = this.setPagingStep3(vEInstrAsgnmVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
@ -448,9 +470,11 @@ public class VEAsgnmController {
//숙박
VEInstrFeeAcmdtVO acmdtAplct = new VEInstrFeeAcmdtVO();
acmdtAplct.setFrstRegisterId(loginVO.getUniqId());
acmdtAplct.setEduAplctOrd(vEInstrAsgnmVO.getEduAplctOrd());
acmdtAplct.setEduChasiOrd(vEInstrAsgnmVO.getEduChasiOrd());
// acmdtAplct.setEduAplctOrd(vEInstrAsgnmVO.getEduAplctOrd());
// acmdtAplct.setEduChasiOrd(vEInstrAsgnmVO.getEduChasiOrd());
acmdtAplct.setInstrDiv("10");
acmdtAplct.setEduHopeDt(vEInstrAsgnmVOInfo.getEduHopeDt());
//=== 20230627 이호영
//=== 숙박신청 차시 제거
@ -458,6 +482,11 @@ public class VEAsgnmController {
// acmdtAplct = vEAcmdtAplctService.selectDetailByUser(acmdtAplct);
acmdtAplct = vEAcmdtAplctService.selectDetailByUser_r2(acmdtAplct);
System.out.println("=========================================== ");
String acmdtAplctCheck = "N";
// if(StringUtils.isNotEmpty(acmdtAplct.getAcmdtAplctOrd())) {
if(acmdtAplct != null) {

View File

@ -342,8 +342,6 @@ public class OprtnLctrRsrchTngrContoller {
//로그인 처리====================================
System.out.println(vELctrDetailVO.getStngYrMnt());
System.out.println(vELctrDetailVO.getRsrchInstrDiv());
//1.pageing step1
PaginationInfo paginationInfo = new PaginationInfo();
@ -352,8 +350,28 @@ public class OprtnLctrRsrchTngrContoller {
//2. pageing step2
vELctrDetailVO = vEPagingUtil.setPagingStep2_VELctrDetailVO(vELctrDetailVO, paginationInfo);
System.out.println("vELctrDetailVO.getOrderByQuery() :: "+ vELctrDetailVO.getOrderByQuery());
// 공통으로 사용하는 setPagingStep2_VELctrDetailVO 메소드에서
// vELctrDetailVO.getSearchSortCnd() 없으면 prcs_ord로 강제 입력하는데
// prcs_ord값은 detail 쿼리에 없는 값이라 다시 초기화
System.out.println(vELctrDetailVO.getSearchSortCnd());
System.out.println(vELctrDetailVO.getSearchSortOrd());
if("prcs_ord".equals(vELctrDetailVO.getSearchSortCnd())) {
vELctrDetailVO.setSearchSortCnd("");
vELctrDetailVO.setSearchSortOrd("");
}
if(StringUtils.isNotEmpty(vELctrDetailVO.getSearchSortCnd())) {
vELctrDetailVO.setOrderByQuery(vELctrDetailVO.getSearchSortCnd()+" "+vELctrDetailVO.getSearchSortOrd());
}
List<VELctrDetailVO> selectVELctrDetailVOList = vELctrRsrchMngService.selectPagingListLctr(vELctrDetailVO);
System.out.println("============");
//3.pageing step3
paginationInfo = vEPagingUtil.setPagingStep3_VELctrDetailVO(selectVELctrDetailVOList, paginationInfo);

View File

@ -402,6 +402,7 @@ public class EduAplctMngTngrController {
List<VEEduChasiVO> vEEduChasiVOList = vVEEduChasiService.selectList(vEEduChasiVO);
model.addAttribute("chasiList", vEEduChasiVOList);
model.addAttribute("cryptoUtil",egovCryptoUtil);
return "oprtn/tngrVisitEdu/popup/eduAplctMngDetailPopup";
}

View File

@ -159,18 +159,19 @@
</isNotEmpty>
</select>
<!-- 강사 정보 R -->
<select id="VEAcmdtAplctDAO.selectDetailByUser_r2" parameterClass="VEInstrFeeAcmdtVO" resultClass="VEInstrFeeAcmdtVO">
select
aprvl_cd as aprvlCd
, aplct_cn as aplctCn
, acmdt_fee as acmdtFee
, acmdt_aplct_ord as AcmdtAplctOrd
from
ve_acmdt_aplct
where
edu_aplct_ord = #eduAplctOrd#
and aplct_cn is not null
vaa.aprvl_cd as aprvlCd
, vaa.aplct_cn as aplctCn
, vaa.acmdt_fee as acmdtFee
, vaa.acmdt_aplct_ord as AcmdtAplctOrd
FROM ve_acmdt_aplct vaa
, ve_edu_chasi vee
WHERE vee.instr_cnfrm_cd ='Y'
AND vee.instr_cnfrm_id = #frstRegisterId#
AND vee.edu_hope_dt = #eduHopeDt#
AND vee.edu_chasi_ord = vaa.edu_chasi_ord
ORDER BY aprvl_cd desc
limit 1

View File

@ -4789,4 +4789,27 @@
</select>
<!-- 강의내역(확정) 목록. 배정테이블 ID가 본인이면서 코드30(교육확정)-->
<select id="VEAsgnmMIXDAO.findByAcmdtCnfrm" parameterClass="VEInstrAsgnmVO" resultClass="VEInstrAsgnmVO">
SELECT
vaa.sbmt_yn as acmdtSbmtYn
, vaa.aprvl_cd as acmdtAprvlCd
, vaa.acmdt_fee as acmdtFee
FROM ve_acmdt_aplct vaa
, ve_edu_chasi vee
WHERE vee.instr_cnfrm_cd ='Y'
AND vee.instr_cnfrm_id = #userId#
AND vee.edu_hope_dt = #eduHopeDt#
AND vee.edu_aplct_ord = vaa.edu_aplct_ord
AND vee.edu_chasi_ord = vaa.edu_chasi_ord
ORDER BY aprvl_cd desc
limit 1
</select>
</sqlMap>

View File

@ -345,7 +345,10 @@
ORDER BY 1=1
<!-- <isNotNull prepend=" ," property="searchSortCnd"> -->
<!-- </isNotNull> -->
<isEmpty property="orderByQuery">
, dddd.rsdne asc
</isEmpty>

View File

@ -30,6 +30,40 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
$(document).ready(function(){
var $cnd = $('#searchSortCnd');
var $ord = $('#searchSortOrd');
$('.sort_btn').click(function(){
$cnd.val($(this).attr('id').replace('_sort', ''));
if($(this).text() == '▼'){
$ord.val('asc');
$(this).text('▲');
}else{
$ord.val('desc');
$(this).text('▼');
}
linkPage(1);
});
sort_init();
});
function sort_init(){
var $cnd = $('#searchSortCnd');
var $ord = $('#searchSortOrd');
if($ord.val() == 'asc'){
var idVal ='#'+$cnd.val()+'_sort';
console.log(idVal);
$(idVal).text('▲');
}
}
function fncGoList(){
var listForm = document.listForm ;
listForm.stngYrMnt.value = '' ;
@ -96,8 +130,8 @@
<body>
<form:form id="listForm" name="listForm" method="post" commandName="vEInstrDetailVO" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${vELctrDetailVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vELctrDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vELctrDetailVO.searchSortOrd}" />" />
<input type="hidden" name="searchSortCnd" id="searchSortCnd" value="<c:out value="${vELctrDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" id="searchSortOrd" value="<c:out value="${vELctrDetailVO.searchSortOrd}" />" />
<input type="hidden" name="userId" id="userId" value=""/> <!-- 사용자 아이디 -->
@ -190,21 +224,24 @@
</colgroup>
<thead>
<tr>
<!-- <th>이름<button class="sort_btn" id="instrNm_sort">▼</button></th> -->
<th>이름</th>
<th>구분</th>
<th>거주지역</th>
<th>강의가능지역</th>
<th>구분<button class="sort_btn" id="divCd_sort">▼</button></th>
<th>거주지역<button class="sort_btn" id="rsdne_sort">▼</button></th>
<th>강의가능지역<button class="sort_btn" id="lctrAreaNm_sort">▼</button></th>
<!-- <th>연락처<button class="sort_btn" id="phone_sort">▼</button></th> -->
<th>연락처</th>
<th>주5일여부</th>
<th>자격종료여부</th>
<th>강의조사서제출여부</th>
<th>주5일여부<button class="sort_btn" id="wCnt_sort">▼</button></th>
<th>자격종료여부<button class="sort_btn" id="qlfctEndYn_sort">▼</button></th>
<th>제출여부<button class="sort_btn" id="lctrStngOrd_sort">▼</button></th>
<!-- <th>강의조사서제출여부<button class="sort_btn">▼</button></th> -->
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td>
<c:out value="${list.instrNm}"/>
<c:out value="${list.instrNm}"/>
<br/>(${fn:split(list.userId,'_')[1]*1})
</td>
<td>

View File

@ -37,11 +37,13 @@
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
if(listForm.searchStartDt.value > listForm.searchEndDt.value){
alert("시작일은 종료일보다 작아야합니다.");
return;
}
listForm.action = "<c:url value='/ve/oprtn/instr/tngrVisitEdu/instrInfo/lctrRsrchMngList.do'/>";
// console.log('listForm : ', listForm);
// if(listForm.searchStartDt.value > listForm.searchEndDt.value){
// alert("시작일은 종료일보다 작아야합니다.");
// return;
// }
// listForm.action = "<c:url value='/ve/oprtn/instr/tngrVisitEdu/instrInfo/lctrRsrchMngList.do'/>";
listForm.action = "<c:url value='/ve/oprtn/instr/tngrVisitEdu/lctrRsrch/lctrRsrchMngList.do'/>";
listForm.submit();
}
@ -56,14 +58,14 @@
function fncGoReg(){
var listForm = document.listForm ;
listForm.instrDiv.value = "10" ;
listForm.action = "<c:url value='/ve/oprtn/instr/tngrVisitEdu/instrInfo/instrAplctReg.do'/>";
listForm.action = "<c:url value='/ve/oprtn/instr/tngrVisitEdu/lctrRsrch/instrAplctReg.do'/>";
listForm.submit();
}
function fncGoRegExcel(){
var listForm = document.listForm ;
listForm.instrDiv.value = "10" ;
listForm.action = "<c:url value='/ve/oprtn/instr/tngrVisitEdu/instrInfo/instrAplctRegExcel.do'/>";
listForm.action = "<c:url value='/ve/oprtn/instr/tngrVisitEdu/lctrRsrch/instrAplctRegExcel.do'/>";
listForm.submit();
}

View File

@ -37,22 +37,15 @@
/* Page Url Hide */
@page {
size: auto; /* auto is the initial value */
margin: 0; /* this affects the margin in the printer settings */
margin: 0; /* this affects the margin in the printer settings */
}
@media print {
.cont_tit {
page-break-before: always;
}
.page_break {
page-break-before: always;
height: 40px;
}
.print_mark {
page-break-before: auto;
}
html, body {height:auto;margin: 0 !important;padding: 0 !important;overflow: hidden;page-break-after: avoid;}
.cont_tit {page-break-before: always;}
.page_break {page-break-inside:avoid; page-break-after:auto}
.print_mark {page-break-before: auto;}
form{display: none;}
}
</style>
@ -155,7 +148,15 @@
<th scope="row">
<p>교육장소</p>
</th>
<td colspan="3"><c:out value="${info.eduPlace}" /></td>
<td colspan="3">
<c:out value="${info.eduPlace}" />
<p style="padding-left:10%; display:inline-block;">
<input type="checkbox" <c:if test="${info.corpsEdu eq 'Y'}">checked</c:if> disabled="disabled"> 집체교육
</p>
<p style="padding-left:20px; display:inline-block;">
<input type="checkbox" <c:if test="${info.broadroomEdu eq 'Y'}">checked</c:if> disabled="disabled"> 방송실교육
</p>
</td>
</tr>
<tr>
<th scope="row">
@ -183,7 +184,7 @@
</th>
<td colspan="3">
<c:choose>
<c:when test="${info.useYn eq 'N'}">
<c:when test="${info.useYn eq 'N' or info.aprvlCd eq '40'}">
<span class="app_status3">신청취소</span>
</c:when>
<c:when test="${info.sbmtYn eq 'N' or empty info.sbmtYn}">
@ -192,12 +193,24 @@
<c:when test="${info.aprvlCd eq '10'}">
<span class="app_status1">교육신청</span>
</c:when>
<c:when test="${info.aprvlCd eq '230'}">
<span class="app_status1">대기</span>
</c:when>
<c:when test="${info.aprvlCd eq '20'}">
<span class="app_status1">교육확정</span>
<span class="app_status1">교육승인</span>
</c:when>
<c:when test="${info.aprvlCd eq '30'}">
<span class="app_status1">교육반려</span>
</c:when>
<c:when test="${info.aprvlCd eq '60'}">
<span class="app_status1">교육확정</span>
</c:when>
<c:when test="${info.aprvlCd eq '70'}">
<span class="app_status1">수정요청<c:if test="${info.isWait eq 'Y'}">(대기)</c:if></span>
</c:when>
<c:when test="${info.aprvlCd eq '80'}">
<span class="app_status1">수정완료<c:if test="${info.isWait eq 'Y'}">(대기)</c:if></span>
</c:when>
<c:otherwise>
-
</c:otherwise>
@ -214,9 +227,9 @@
</c:if>
</tbody>
</table>
<p class="page_break"></p>
<br/>
<div class="page_break"></div>
<div class="pop_tb_tit01">
<p>교육차시 정보</p>
</div>
@ -235,6 +248,7 @@
<th scope="col">시간</th>
<th scope="col">구분</th>
<th scope="col">대상</th>
<th scope="col">배정강사</th>
<th scope="col">인원</th>
</tr>
</thead>
@ -264,6 +278,15 @@
<ve:code codeId="VE0010" code="${list.divCd}"/>
</td>
<td><c:out value="${list.trgt}" /></td>
<td>
<c:out value="${cryptoUtil.decrypt(list.instrNm)}"/>
<c:if test="${list.instrNm eq null}">
-
</c:if>
<c:if test="${list.instrNm ne null}">
<br/>(${fn:split(list.userId,'_')[1]*1})
</c:if>
</td>
<td><c:out value="${list.prsnl}" /></td>
</tr>
</c:forEach>