From 544c1f3c1a5a3b6504d35289530ea84e3363f2f2 Mon Sep 17 00:00:00 2001 From: hylee Date: Wed, 18 Oct 2023 12:44:05 +0900 Subject: [PATCH] =?UTF-8?q?[=EC=82=AC=EC=9A=A9=EC=9E=90]=20=EA=B8=B0?= =?UTF-8?q?=EC=86=8C=EC=9C=A0=EC=98=88=20=EC=BA=98=EB=A6=B0=EB=8D=94=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20-=20=EA=B0=95=EC=9D=98=EC=83=81=EC=84=B8?= =?UTF-8?q?=20=EC=8B=A0=EC=B2=AD=20=EB=B2=84=ED=8A=BC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/FndtnEnhanceTrnController.java | 11 + .../sspnIdtmt/web/SspnIdtmtController.java | 12 + .../aplct/fndtnEnhanceTrn/eduAplctDetail.jsp | 7 +- .../ve/aplct/fndtnEnhanceTrn/eduAplctList.jsp | 49 -- .../web/ve/aplct/sspnIdtmt/eduAplctDetail.jsp | 184 ++++++- .../web/ve/aplct/sspnIdtmt/eduAplctList.jsp | 459 ++++++++++-------- 6 files changed, 461 insertions(+), 261 deletions(-) diff --git a/src/main/java/kcc/ve/aplct/fndtnEnhanceTrn/web/FndtnEnhanceTrnController.java b/src/main/java/kcc/ve/aplct/fndtnEnhanceTrn/web/FndtnEnhanceTrnController.java index e674527a..1d5acbbf 100644 --- a/src/main/java/kcc/ve/aplct/fndtnEnhanceTrn/web/FndtnEnhanceTrnController.java +++ b/src/main/java/kcc/ve/aplct/fndtnEnhanceTrn/web/FndtnEnhanceTrnController.java @@ -396,6 +396,17 @@ public class FndtnEnhanceTrnController { //1.pageing step1 //과정 조회 VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsAplctPrdService.selectDetailNewOne4Fndth(vEPrcsDetailVO); + VEEduAplctVO vEEduAplctReqVO = new VEEduAplctVO(); + vEEduAplctReqVO.setUserId(loginVO.getUniqId()); + vEEduAplctReqVO.setLctrDivCd(vEPrcsDetailVODetail.getLctrDivCd()); + vEEduAplctReqVO.setPrcsAplctPrdOrd(vEPrcsDetailVODetail.getPrcsAplctPrdOrd()); + vEEduAplctReqVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_50); + VEEduAplctVO vEEduAplctVO = fndtnEnhanceTrnService.findByAprvlCd(vEEduAplctReqVO); + // VO를 먼저 null 체크 후 진행해야 에러안남 + // vEEduAplctVO != null && + if(vEEduAplctVO != null && StringUtils.isNotEmpty(vEEduAplctVO.getAprvlCd())) { + vEPrcsDetailVODetail.setAprvlCd(vEEduAplctVO.getAprvlCd()); + } model.addAttribute("info", vEPrcsDetailVODetail); diff --git a/src/main/java/kcc/ve/aplct/sspnIdtmt/web/SspnIdtmtController.java b/src/main/java/kcc/ve/aplct/sspnIdtmt/web/SspnIdtmtController.java index c170f5b2..2c51c130 100644 --- a/src/main/java/kcc/ve/aplct/sspnIdtmt/web/SspnIdtmtController.java +++ b/src/main/java/kcc/ve/aplct/sspnIdtmt/web/SspnIdtmtController.java @@ -392,6 +392,18 @@ public class SspnIdtmtController { //1.pageing step1 //과정 조회 VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsAplctPrdService.selectDetailNewOne4Fndth(vEPrcsDetailVO); + VEEduAplctVO vEEduAplctReqVO = new VEEduAplctVO(); + vEEduAplctReqVO.setUserId(loginVO.getUniqId()); + vEEduAplctReqVO.setLctrDivCd(vEPrcsDetailVODetail.getLctrDivCd()); + vEEduAplctReqVO.setPrcsAplctPrdOrd(vEPrcsDetailVODetail.getPrcsAplctPrdOrd()); + vEEduAplctReqVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_60); + VEEduAplctVO vEEduAplctVO = sspnIdtmtService.findByAprvlCd(vEEduAplctReqVO); + // VO를 먼저 null 체크 후 진행해야 에러안남 + // vEEduAplctVO != null && + if(vEEduAplctVO != null && StringUtils.isNotEmpty(vEEduAplctVO.getAprvlCd())) { + vEPrcsDetailVODetail.setAprvlCd(vEEduAplctVO.getAprvlCd()); + } + model.addAttribute("info", vEPrcsDetailVODetail); diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctDetail.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctDetail.jsp index 5e1b44a8..8ba41da2 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctDetail.jsp @@ -33,10 +33,10 @@ function ddlnCdSttsChk(){ var $ddlnCdStts = $("#ddlnCdStts"); - + // 상태에따라 싱천버튼 활성화 비활성화 var regStatus = true; - + // 텍스트가 비어있는지 확인 if ($ddlnCdStts.text().trim() === "") { var dateText = $ddlnCdStts.closest('table').find("td:eq(2)").text().trim(); @@ -44,6 +44,7 @@ var strtPnttm = new Date(dateText.split("~")[0].trim().replace(/\./g, '-')); var endPnttm = new Date(dateText.split("~")[1].trim().replace(/\./g, '-')); var currentDate = new Date(); + if (currentDate < strtPnttm) { $ddlnCdStts.text("접수전"); } else if (currentDate >= strtPnttm && currentDate <= endPnttm) { @@ -52,8 +53,6 @@ } else if (currentDate > endPnttm) { $ddlnCdStts.text("접수종료"); } - - console.log('regStatus :: ', regStatus); } $('#regBtn').prop('disabled', regStatus); // 버튼 비활성화 } diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.jsp index 69f925bd..80b00759 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.jsp @@ -516,7 +516,6 @@ $(document).ready(function(){ 6 7 8 - 9 10 11 @@ -524,54 +523,6 @@ $(document).ready(function(){ - diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/sspnIdtmt/eduAplctDetail.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/sspnIdtmt/eduAplctDetail.jsp index 535d5ce3..517e4633 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/sspnIdtmt/eduAplctDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/sspnIdtmt/eduAplctDetail.jsp @@ -27,12 +27,16 @@ // 상태값 확인 ddlnCdSttsChk(); - + + $("#regBtn").click(function(){ + var regForm = document.regForm; + regForm.prcsAplctPrdOrd.value = $(this).data('info'); + }); }); function ddlnCdSttsChk(){ - var $ddlnCdStts = $("#ddlnCdStts"); + var $ddlnCdStts = $(".ddlnCdStts"); // 상태에따라 싱천버튼 활성화 비활성화 var regStatus = true; @@ -54,20 +58,16 @@ $ddlnCdStts.text("접수종료"); } } + console.log('regStatus : ', regStatus); $('#regBtn').prop('disabled', regStatus); // 버튼 비활성화 } function fncGoList(){ var listForm = document.listForm ; - listForm.action = ""; + listForm.action = ""; listForm.submit(); } - function fncGoEdit(){ - var linkForm = document.linkForm ; - linkForm.action = ""; - linkForm.submit(); - } function fncSendSubmit(){ if(confirm("제출 하시겠습니까?")){ @@ -116,6 +116,42 @@ } } + + // 대상자 이름, 생년월일, 대상자TB ID + function fncEduReg(trgtNm, dBirth, sspnIdtmtTrgtOrd){ + var form = document.regForm; + form.trgtNm.value = trgtNm; + form.dBirth.value = dBirth; + form.sspnIdtmtTrgtOrd.value = sspnIdtmtTrgtOrd; + + var data = new FormData(document.getElementById("regForm")); + if(confirm("신청하시겠습니까?")){ + var url = "${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/eduRegAjax.do"; + console.log(data); + $.ajax({ + type:"POST", + url: url, + data: data, + dataType:'json', + async: false, + processData: false, + contentType: false, + cache: false, + success:function(returnData){ + if(returnData.result == "success"){ + alert("저장되었습니다."); + fncGoList(); + }else{ + alert("교육 신청에 실패하였습니다.\n담당자에게 문의해 주세요."); + } + }, + error:function(request , status, error){ + alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error); + } + }); + } + } + function fncGoDetail(){ var linkForm = document.linkForm ; linkForm.action = ""; @@ -132,9 +168,74 @@ , "chrgInfoUpdatePop" ); } + + + function fn_confirm(){ + + var form = document.confirmForm; + var dBirth = $('#dBirth').val().replace(/\./g, ''); + var trgtNm = $('#trgtNm').val(); + + + form.trgtNm.value = trgtNm; + form.dBirth.value = dBirth; + + var data = new FormData(document.getElementById("confirmForm")); + + var url = "${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/userConfirmAjax.do"; + $.ajax({ + type:"POST", + url: url, + data: data, + dataType:'json', + async: false, + processData: false, + contentType: false, + cache: false, + success:function(returnData){ + console.log('returnData : ', returnData); + if(returnData.result == "success"){ + // 대상자 테이블 pk 값 + var sspnIdtmtTrgtOrd = returnData.id; + if(sspnIdtmtTrgtOrd != ''){ + alert("확인되었습니다."); + + // 교육 신청 ajax + // 대상자 이름, 생년월일, 대상자TB ID + fncEduReg(trgtNm, dBirth, sspnIdtmtTrgtOrd); + } else { + alert("대상자에 없습니다."); + } + }else{ + alert("대상자에 없습니다."); + } + fn_target_confirm_clean(); + + }, + error:function(request , status, error){ + alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error); + } + }); + + + + + $('#target_confirm_popup-close').click(); + } + +
+ + + + +
+
+ + +

교육신청 상세

@@ -221,8 +322,15 @@ 상태 - - + + + + + + + + + @@ -233,9 +341,59 @@
-
- +
+
-
\ No newline at end of file + + + + +
+ +
+ diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/sspnIdtmt/eduAplctList.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/sspnIdtmt/eduAplctList.jsp index 841c2a1e..fb569ac0 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/sspnIdtmt/eduAplctList.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/sspnIdtmt/eduAplctList.jsp @@ -17,52 +17,108 @@ $(document).ready(function(){ + + $('.tab_button').click(function(){ + var type = $(this).data('info'); + // list 타입이면 return; + if(type === 'list') + return false; + + var data = fncEduSelect(); + console.log('data : ', data); + + // 월 하이라이트 체크 + fn_MonthHL(); + + // 현재 날짜를 가져옵니다. + var today = new Date(); + var currentMonth = today.getMonth() + 1; + + // 데이터 추가 전 촐기화 + $(".edu_program tbody").empty(); + // 반복시작 + $.each(data, function(index, item) { + var prcsNm = item.prcsNm; + var startDt = item.eduStrtPnttm; + // 교육 일수 구하기 + var dayDiff = fn_dayDiff(item); + var newRow = $(""); + + // prcsNm 값을 추가합니다. + newRow.append('' + prcsNm + ''); + + // dayDiff 값을 추가합니다. + newRow.append('' + dayDiff + ''); + + // 교육일정 칼럼을 초기화합니다. + for (var i = 1; i <= 12; i++) { + // 다음 월 class + var cellClass = "edup_pass"; // 기본값 + + // 전 월 class + if (i < currentMonth) { + cellClass = "edup_pre"; + // 현재 월 + } else if (i === currentMonth) { + cellClass = "edup_this"; + } + if (i === parseInt(startDt.split('.')[1])) { + newRow.append('' + parseInt(startDt.split('.')[2]) + ''); + } else { + newRow.append(''); + } + } + // 테이블에 새로운 행을 추가합니다. + $(".edu_program tbody").append(newRow); + + }); + //-- /반복끝 + }); + + $(".aplctBtn button").click(function(){ var regForm = document.regForm; regForm.prcsAplctPrdOrd.value = $(this).data('info'); }); // 상태값 확인 - $(".ddlnCdStts").each(function() { - var $thisCell = $(this); - var $applyButton = $thisCell.closest('tr').find(".aplctBtn button"); + $(".ddlnCdStts").each(function() { + var $thisCell = $(this); + var $applyButton = $thisCell.closest('tr').find(".aplctBtn button"); // var $aprvlCd = $thisCell.closest('tr').find(".aplctBtn input"); - - // 텍스트가 비어있는지 확인 - if ($thisCell.text().trim() === "") { - var $currentRow = $thisCell.closest('tr'); + + // 텍스트가 비어있는지 확인 + if ($thisCell.text().trim() === "") { + var $currentRow = $thisCell.closest('tr'); - var strtPnttm = new Date($currentRow.find("td:eq(2)").text().split("~")[0].trim()); - var endPnttm = new Date($currentRow.find("td:eq(2)").text().split("~")[1].trim()); - var currentDate = new Date(); + var strtPnttm = new Date($currentRow.find("td:eq(2)").text().split("~")[0].trim()); + var endPnttm = new Date($currentRow.find("td:eq(2)").text().split("~")[1].trim()); + var currentDate = new Date(); - // 시간, 분, 초 초기화 - strtPnttm.setHours(0, 0, 0, 0); - endPnttm.setHours(0, 0, 0, 0); - currentDate.setHours(0, 0, 0, 0); - - var ddlnCdText = ''; - - console.log('currentDate : ', currentDate); - console.log('strtPnttm : ', strtPnttm); - console.log('endPnttm : ', endPnttm); - console.log(''); - if (currentDate < strtPnttm) { - ddlnCdText = "접수전"; - } else if (currentDate >= strtPnttm && currentDate <= endPnttm) { - ddlnCdText = "접수중"; - } else if (currentDate > endPnttm) { - ddlnCdText = "접수종료"; - } - - $thisCell.text(ddlnCdText); - - } + // 시간, 분, 초 초기화 + strtPnttm.setHours(0, 0, 0, 0); + endPnttm.setHours(0, 0, 0, 0); + currentDate.setHours(0, 0, 0, 0); + + var ddlnCdText = ''; + + console.log(''); + if (currentDate < strtPnttm) { + ddlnCdText = "접수전"; + } else if (currentDate >= strtPnttm && currentDate <= endPnttm) { + ddlnCdText = "접수중"; + } else if (currentDate > endPnttm) { + ddlnCdText = "접수종료"; + } + + $thisCell.text(ddlnCdText); + + } - // 텍스트가 "접수중"인지 확인 - if ($thisCell.text().trim() !== "접수중") { - $applyButton.prop('disabled', true); // 버튼 비활성화 - } - }); + // 텍스트가 "접수중"인지 확인 + if ($thisCell.text().trim() !== "접수중") { + $applyButton.prop('disabled', true); // 버튼 비활성화 + } + }); }); @@ -101,6 +157,67 @@ $(document).ready(function(){ }); } } + + function fn_dayDiff(item){ + + var startDt = item.eduStrtPnttm; + var endDt = item.eduDdlnPnttm; + + // 날짜 문자열을 Date 객체로 변환합니다. + var startDate = new Date(startDt.split('.').join('-')); + var endDate = new Date(endDt.split('.').join('-')); + + // 두 날짜 사이의 밀리초 차이를 구합니다. + var differenceInMilliseconds = endDate - startDate; + + // 밀리초를 일수로 변환합니다. (1일 = 24시간 = 24 * 60분 = 24 * 60 * 60초 = 24 * 60 * 60 * 1000 밀리초) + var differenceInDays = differenceInMilliseconds / (24 * 60 * 60 * 1000); + + // 시작 날짜와 종료 날짜를 모두 포함하여 계산 + differenceInDays += 1; + + return differenceInDays; + + } + + function fn_MonthHL(){ + var today = new Date(); + // 현재 달을 가져옵니다. (0부터 시작하므로 1을 더해줍니다.) + var currentMonth = today.getMonth() + 1; + + // 해당하는 달의 요소에 'edup_this' 클래스를 추가합니다. + $("#monthTemp th:nth-child(" + currentMonth + ")").addClass("edup_this"); + } + + function fncEduSelect(){ + var returnVal = ''; + var data = new FormData(document.getElementById("selectForm")); + var url = "${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/eduSelectAjax.do"; + console.log(data); + $.ajax({ + type:"POST", + url: url, + data: data, + dataType:'json', + async: false, + processData: false, + contentType: false, + cache: false, + success:function(returnData){ + if(returnData.result == "success"){ + console.log('returnData : ', returnData); + returnVal = returnData.data; + } + }, + error:function(request , status, error){ + alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error); + } + }); + + return returnVal; + + + } function linkPage(pageNo){ var listForm = document.listForm ; @@ -132,8 +249,6 @@ $(document).ready(function(){ function fn_confirm(){ - console.log('??'); - var form = document.confirmForm; var dBirth = $('#dBirth').val().replace(/\./g, ''); var trgtNm = $('#trgtNm').val(); @@ -141,7 +256,7 @@ $(document).ready(function(){ form.trgtNm.value = trgtNm; form.dBirth.value = dBirth; - + var data = new FormData(document.getElementById("confirmForm")); var url = "${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/userConfirmAjax.do"; @@ -195,6 +310,9 @@ $(document).ready(function(){
+
+ +
@@ -224,144 +342,13 @@ $(document).ready(function(){
-
    -
  • -
  • -
+
    +
  • +
  • +
-
-
- - -
-
-
- -
- ~ -
- -
- -
-
- -
-
6개의 검색결과가 있습니다.
-
    -
  • 지난교육일정
  • -
  • 당월교육일정
  • -
  • 교육예정일정
  • -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
교육일정표
교육과정명
(상세 내용을 보시려면 과정을 클릭하세요)
일수시간교육일정(교육 시작일)
123456789101112
[경영기획] 경영기획기본21415,222242281427
[경영기획] 경영기획기본21415,222242281427
[경영기획] 경영기획기본21415,222242281427
-
-
- -
-
+
- - - - 주민번호앞자리 - -
+ + + + + + + + + + + + - -
성명 + +
주민번호앞자리 +
-
+ + +
-
+