From 6b0b4bf3ee302b3404077c27c97952d94aeac808 Mon Sep 17 00:00:00 2001 From: myname Date: Mon, 22 Jan 2024 17:23:46 +0900 Subject: [PATCH] =?UTF-8?q?2024-01-22=2017:23=20=EA=B0=95=EC=82=AC?= =?UTF-8?q?=EA=B1=B0=EB=A6=AC=EA=B3=84=EC=82=B0=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../asgnmInfo/service/VEAsgnmMIXService.java | 3 + .../asgnmInfo/service/impl/VEAsgnmMIXDAO.java | 5 + .../service/impl/VEAsgnmMIXServiceImpl.java | 4 + .../web/EduAsgnmCnfrmMngTngrController.java | 2 +- .../web/EduCnfrmMngTngrController.java | 51 +++++++++ .../ve/asgnm/VEAsgnm_MIX_2023_SQL_Tibero.xml | 11 +- .../ve/asgnm/VEAsgnm_MIX_SQL_Tibero.xml | 83 ++++++++++++-- .../tngrVisitEdu/eduAsgnmCnfrmMngDetail.jsp | 102 ++++++++++++++++-- .../popup/instrAsgnmDstncPopup.jsp | 7 +- .../popup/instrAsgnmDstncPopupCount.jsp | 13 ++- .../tngrVisitEdu/popup/instrAsgnmPopup.jsp | 101 +++++++++++++++-- 11 files changed, 350 insertions(+), 32 deletions(-) diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEAsgnmMIXService.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEAsgnmMIXService.java index 4bd91afd..06639edf 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEAsgnmMIXService.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEAsgnmMIXService.java @@ -114,6 +114,9 @@ public interface VEAsgnmMIXService { //거리계산 대상 - step3 List selectInstrDstncStep3(VEEduAplctVO vEEduAplctVO) throws Exception; + //거리계산 대상 - step-no chasi + List selectInstrDstncStepNoChasi(VEEduAplctVO vEEduAplctVO) throws Exception; + //동일 일자에 강사 배정 여부 체크 List selectInstrAsgnmScholCheck(VEInstrAsgnmVO paramVO) throws Exception; diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/impl/VEAsgnmMIXDAO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/impl/VEAsgnmMIXDAO.java index edd01056..2c1d0992 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/impl/VEAsgnmMIXDAO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/impl/VEAsgnmMIXDAO.java @@ -204,6 +204,11 @@ public class VEAsgnmMIXDAO extends EgovAbstractDAO { List tlist = (List) list("VEAsgnmMIXDAO.selectInstrDstncStep3", paramVO); return tlist; } + + public List selectInstrDstncStepNoChasi(VEEduAplctVO paramVO) throws Exception { + List tlist = (List) list("VEAsgnmMIXDAO.selectInstrDstncStepNoChasi", paramVO); + return tlist; + } public List selectInstrAsgnmScholCheck(VEInstrAsgnmVO paramVO) throws Exception { List tlist = (List) list("VEAsgnmMIXDAO.selectInstrAsgnmScholCheck", paramVO); diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/impl/VEAsgnmMIXServiceImpl.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/impl/VEAsgnmMIXServiceImpl.java index 197006fb..f59afe9a 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/impl/VEAsgnmMIXServiceImpl.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/impl/VEAsgnmMIXServiceImpl.java @@ -186,6 +186,10 @@ public class VEAsgnmMIXServiceImpl implements VEAsgnmMIXService { return vEAsgnmMIXDAO.selectInstrDstncStep3(paramVO); } + public List selectInstrDstncStepNoChasi(VEEduAplctVO paramVO) throws Exception{ + return vEAsgnmMIXDAO.selectInstrDstncStepNoChasi(paramVO); + } + public List selectInstrAsgnmScholCheck(VEInstrAsgnmVO paramVO) throws Exception{ return vEAsgnmMIXDAO.selectInstrAsgnmScholCheck(paramVO); } diff --git a/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduAsgnmCnfrmMng/web/EduAsgnmCnfrmMngTngrController.java b/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduAsgnmCnfrmMng/web/EduAsgnmCnfrmMngTngrController.java index 20816ebc..cefe5b57 100644 --- a/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduAsgnmCnfrmMng/web/EduAsgnmCnfrmMngTngrController.java +++ b/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduAsgnmCnfrmMng/web/EduAsgnmCnfrmMngTngrController.java @@ -240,7 +240,7 @@ public class EduAsgnmCnfrmMngTngrController { System.out.println("vEInstrAsgnmVOList.get(i).getOnewayDstnc()"); System.out.println(vEInstrAsgnmVOList.get(i).getOnewayDstnc()); System.out.println(vEInstrAsgnmVOList.get(i).getOnewayDstnc()); - if ("".equals(vEInstrAsgnmVOList.get(i).getOnewayDstnc())) { + if ("".equals(vEInstrAsgnmVOList.get(i).getOnewayDstnc()) || vEInstrAsgnmVOList.get(i).getOnewayDstnc()==null) { i_disnc_n++; }else { i_disnc_y++; diff --git a/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduCnfrmMng/web/EduCnfrmMngTngrController.java b/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduCnfrmMng/web/EduCnfrmMngTngrController.java index c647cd18..9be6efc0 100644 --- a/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduCnfrmMng/web/EduCnfrmMngTngrController.java +++ b/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduCnfrmMng/web/EduCnfrmMngTngrController.java @@ -469,6 +469,57 @@ public class EduCnfrmMngTngrController { return "oprtn/tngrVisitEdu/popup/instrAsgnmDstncPopupCount"; } + /** + * 강사거리계산 팝업 - 배정전에 + */ + @RequestMapping("popup/instrAsgnmDstncPopupCountNoChasi.do") + public String instrAsgnmDstncPopupCountNoChasi( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + ,@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO + ,@ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO + , ModelMap model + , HttpServletRequest request + , HttpSession session + ) throws Exception { + + LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + + String[] s_param = vEEduAplctVO.getEduAplctOrd().split("@"); + + vEEduAplctVO.setEduAplctOrd(s_param[0]); + vEEduAplctVO.setUserId(s_param[1]); + + System.out.println(s_param[0]); + System.out.println(s_param[1]); + + // 확정 + vEEduAplctVO.setSearchStatusArr(new String[]{"60"}); + // 청소년 + vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10); + //1.pageing step1 + PaginationInfo paginationInfo = this.setPagingStep1(vEEduAplctVO); + //2. pageing step2 + vEEduAplctVO = this.setPagingStep2(vEEduAplctVO, paginationInfo); + vEEduAplctVO.setNotiUserId(user.getUniqId()); + vEEduAplctVO.setMenuNo(session.getAttribute("menuNo").toString()); + List vEInstrAsgnmVOList = vEAsgnmMIXService.selectInstrDstncStepNoChasi(vEEduAplctVO); + + //이름 복호화 + vEInstrAsgnmVOList = egovCryptoUtil.decryptVEInstrAsgnmVOList(vEInstrAsgnmVOList); + + + + + //3.pageing step3 + paginationInfo = this.setPagingAsgnmStep3(vEInstrAsgnmVOList, paginationInfo); + //model.addAttribute("paginationInfo", paginationInfo); + //대상 리스트, 페이징 정보 전달 + model.addAttribute("list", vEInstrAsgnmVOList); + model.addAttribute("resultMap", vEInstrAsgnmVOList.get(0)); + + return "oprtn/tngrVisitEdu/popup/instrAsgnmDstncPopupCount"; + } + /** * 강사배정관리 상세 화면 */ diff --git a/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAsgnm_MIX_2023_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAsgnm_MIX_2023_SQL_Tibero.xml index f94b357a..dc8a7845 100644 --- a/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAsgnm_MIX_2023_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAsgnm_MIX_2023_SQL_Tibero.xml @@ -250,6 +250,10 @@ 오프라인 청소년 - VEAsgnmMIX2023DAO.selectInstrAsgnmOffPagingList_202310 */ /* 차시 신청 정보 와 신청 학교 주소 정보 + 학교 소재지명 + 신청 가능한 강사 리스트( 주소, 설정 정보 and 패널티) */ + SELECT aaaa.* + , ffff.oneway_dstnc AS onewayDstnc + FROM ( + SELECT COUNT(1) OVER() AS totCnt , aaa.edu_aplct_ord AS eduAplctOrd, aaa.edu_chasi_ord AS eduChasiOrd, @@ -427,7 +431,12 @@ AND bbb.instr_nm = #searchKeyword# - + )aaaa + LEFT OUTER JOIN ve_edu_instr_dstnc ffff + on( + aaaa.eduaplctord=ffff.edu_aplct_ord + AND aaaa.userid=ffff.user_id + ) diff --git a/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAsgnm_MIX_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAsgnm_MIX_SQL_Tibero.xml index 1d604264..cde035e6 100644 --- a/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAsgnm_MIX_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAsgnm_MIX_SQL_Tibero.xml @@ -4682,13 +4682,14 @@ - AND 1=2 + AND 1=1 - ORDER BY 1 , + ORDER BY e.oneway_dstnc desc, + 1 , A.EDU_APLCT_ORD DESC @@ -4784,7 +4785,7 @@ /* VEAsgnmMIXDAO.selectInstrDstncStep3 */ SELECT b.new_addr AS sAddr , d.addr AS iAddr - , ifnull(e.oneway_dstnc,'') AS onewayDstnc + , NVL(e.oneway_dstnc,'') AS onewayDstnc , a.schol_instt_nm AS scholInsttNm , a.edu_aplct_ord AS eduAplctOrd , c.edu_chasi_ord AS eduChasiOrd @@ -4802,7 +4803,7 @@ WHERE 1 =1 AND a.stndrd_schol_cd=b.stndrd_schol_cd - AND IFNULL(A.USE_YN, 'Y') != 'N' + AND NVL(A.USE_YN, 'Y') != 'N' AND A.SBMT_YN = 'Y' AND A.LCTR_DIV_CD = '10' AND A.APRVL_CD IN ( '60') @@ -4850,8 +4851,8 @@ AND ( - A.SCHOL_INSTT_NM LIKE CONCAT('%' , #searchKeyword# , '%') OR - A.INSTT_NM LIKE CONCAT('%' , #searchKeyword# , '%') + A.SCHOL_INSTT_NM LIKE '%'||#searchKeyword#||'%' OR + A.INSTT_NM LIKE '%'||#searchKeyword#||'%' ) @@ -4864,11 +4865,79 @@ AND TO_CHAR(A.APRVL_PNTTM, 'YYYYMMDD') REPLACE(#searchEndAprvlPnttm#, '.' , '') - ORDER BY 1=1 , + ORDER BY 1 , A.EDU_APLCT_ORD DESC + + - + + + + + +
" /> @@ -508,8 +573,8 @@

교육차시 정보

(*이동거리는 교육장소부터 강사주소까지의 거리를 TMAP API를 이용하여 계산하였습니다.) -
-
+
+
@@ -524,7 +589,9 @@ - + @@ -544,7 +611,18 @@ - +
nono + + 교육희망일 시간 구분
+ + + + + + + + + @@ -625,13 +703,13 @@
-
+
- +
-
+
@@ -991,6 +1069,7 @@ diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrAsgnmDstncPopup.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrAsgnmDstncPopup.jsp index e2a3d1a8..1bb7c678 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrAsgnmDstncPopup.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrAsgnmDstncPopup.jsp @@ -254,13 +254,16 @@ - + - 계산완료 + 계산완료 + diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrAsgnmDstncPopupCount.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrAsgnmDstncPopupCount.jsp index ff413a72..49187456 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrAsgnmDstncPopupCount.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrAsgnmDstncPopupCount.jsp @@ -26,9 +26,9 @@ - + <%-- --%> - + 강사배치 팝업 @@ -83,7 +83,7 @@ if ('${vEEduAplctVO.phone1}'=='${vEEduAplctVO.phone2}'){ alert("완료되었습니다."); opener.reloadPage(); - window.close(); + //window.close(); }else{ opener.fncInstrDstncInfo_outer('${vEEduAplctVO.phone1}','${vEEduAplctVO.phone2}'); @@ -498,7 +498,12 @@ //체크 수량 증가 i_chk_cnt = i_chk_cnt + 1; - + + console.log('response-start'); + console.log(response); + console.log('response------'); + console.log(resultData); + console.log('response-end'); var tDistance = (resultData[0].properties.totalDistance / 1000).toFixed(1); diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrAsgnmPopup.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrAsgnmPopup.jsp index d281c00c..71cac365 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrAsgnmPopup.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/popup/instrAsgnmPopup.jsp @@ -147,15 +147,79 @@ function reloadPage(){ location.reload(); + } + + //체크박스 전체 선택 + function chkAll(thisObj){ + $("input[name=chk]").prop("checked" , $(thisObj).is(":checked")); + } + + //계산하기 + var cnt_ttl=0; + var cnt_n=0; + function fncInstrMassAsgnm30(){ + //step1.전체 대상 수량 카운트 + //step2.첫번째, 전체 수량 넘기면서 호출, sAddr, iAddr, edu_aplct_ord, edu_chasi_ord, cnt_n, cnt_ttl + //step3.다음 수량 호출 + + cnt_ttl = $('input:checkbox[name="chk"]:checked').length; + cnt_n = cnt_n + 1; + + + + //alert($('input:checkbox[name="chk"]:checked').eq(0).val()); + + if (cnt_ttl<=0){ + alert("선택된 항목이 없습니다."); + return; + } + + fncInstrDstncInfo( + $('input:checkbox[name="chk"]:checked').eq(0).val(), + cnt_ttl, + cnt_n + ); + } + function fncInstrDstncInfo_outer(p_ttl, p_n) { + + //alert(p_ttl); + //alert(p_n); + + fncInstrDstncInfo( + $('input:checkbox[name="chk"]:checked').eq(p_n).val(), + p_ttl, + p_n*1+1 + ); + } + + // 강사 거리계산 + function fncInstrDstncInfo(p_varEduAplctOrd, p_ttl, p_n) { + var form = document.create2Form ; + form.eduAplctOrd.value=p_varEduAplctOrd; + form.phone1.value=p_ttl; + form.phone2.value=p_n; + + + form.action = ""; + + window.open("#", "_dstncCountPop", "scrollbars = no, top=200px, left=200px, height=450px, width=600px"); + form.target = "_dstncCountPop"; + form.submit(); + }
+ + + + + " /> " /> @@ -194,9 +258,10 @@
- +
+

강사 목록

@@ -205,8 +270,9 @@
- - + + + <%-- --%> @@ -217,9 +283,12 @@ + + + @@ -253,7 +322,18 @@ - + + @@ -302,12 +382,15 @@
+
*배정우선순위 -
*배정우선순위 +
@@ -604,8 +687,9 @@
이름 거주
지역
강의희망지역
+ + + + + + + +
(${fn:split(list.userId,'_')[1]*1})