From 511331f929437263d439d44f8199ac8809d0e58c Mon Sep 17 00:00:00 2001 From: myname Date: Thu, 16 Nov 2023 15:28:52 +0900 Subject: [PATCH] =?UTF-8?q?2023-11-16=2015:28=20=EC=9B=94=EB=B3=84=20?= =?UTF-8?q?=EA=B0=95=EC=82=AC=20=EB=B0=B0=EC=A0=95=EC=8B=9C=EA=B0=84=20?= =?UTF-8?q?=EB=AA=A9=EB=A1=9D=20=EC=9E=91=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../let/utl/fcc/service/EgovCryptoUtil.java | 22 +++ .../eduInfo/service/VEAutoAsgnmVO.java | 20 ++ .../web/OprtnInstrTngrPrflContoller.java | 1 + .../web/EduAsgnmCnfrmMngTngrController.java | 150 ++++++++++++-- .../ve/edu/VEAutoAsgnm_MIX_SQL_Tibero.xml | 54 ++++- .../tngrVisitEdu/mntInstrAsgnmMngList.jsp | 187 ++++++++++-------- 6 files changed, 327 insertions(+), 107 deletions(-) diff --git a/src/main/java/kcc/let/utl/fcc/service/EgovCryptoUtil.java b/src/main/java/kcc/let/utl/fcc/service/EgovCryptoUtil.java index 7e03b860..81511320 100644 --- a/src/main/java/kcc/let/utl/fcc/service/EgovCryptoUtil.java +++ b/src/main/java/kcc/let/utl/fcc/service/EgovCryptoUtil.java @@ -21,6 +21,7 @@ import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEEduExcelVO; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEEduSatisfactionExcelVO; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeAcmdtVO; +import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEAutoAsgnmVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; @@ -366,6 +367,15 @@ public class EgovCryptoUtil { return p_vELctrDetailVO; } + //VEAutoAsgnmVO - 복호화 + public VEAutoAsgnmVO decryptVEAutoAsgnmVOInfo(VEAutoAsgnmVO p_vEAutoAsgnmVO){ + + if (!"".equals(p_vEAutoAsgnmVO.getInstrNm())) p_vEAutoAsgnmVO.setInstrNm(this.decrypt(p_vEAutoAsgnmVO.getInstrNm())); + + return p_vEAutoAsgnmVO; + } + + //VEEduAplctVOList - 복호화 public List decryptVELctrDetailVOList(List p_vELctrDetailVO){ @@ -377,6 +387,18 @@ public class EgovCryptoUtil { return p_vELctrDetailVO; } + //VEAutoAsgnmVOList - 복호화 + public List decryptVEAutoAsgnmVOList(List p_vEAutoAsgnmVO){ + + for (int i=0;i selectStngYrList = vELctrMIXService.selectStngYrList(vELctrDetailVO); model.addAttribute("selectStngYrList", selectStngYrList); + /* + System.out.println(vEEduAplctVO.getSearchKeyword()); + System.out.println(vEEduAplctVO.getSearchKeyword()); + System.out.println(vEEduAplctVO.getSearchKeyword()); + System.out.println(vEEduAplctVO.getMngNmbrYr()); + System.out.println(vEEduAplctVO.getMngNmbrYr()); + + if (vEEduAplctVO.getMngNmbrYr() == null) { + System.out.println("null"); + }else { + System.out.println("oo null"); + } + */ + + + VEAutoAsgnmVO vEAutoAsgnmVO = new VEAutoAsgnmVO(); + vEAutoAsgnmVO.setYr(vEEduAplctVO.getMngNmbrYr()); + List vEInstrAssiEduAplctVOList = null; + + if (vEEduAplctVO.getMngNmbrYr() != null) { + + if (vEEduAplctVO.getSearchKeyword() != null) { + vEAutoAsgnmVO.setInstrNm(egovCryptoUtil.encrypt(vEEduAplctVO.getSearchKeyword())); + } + + vEInstrAssiEduAplctVOList = vEAutoAsgnmMIXService.selectAsgnmInfoList(vEAutoAsgnmVO); + + //복호화 + vEInstrAssiEduAplctVOList = egovCryptoUtil.decryptVEAutoAsgnmVOList(vEInstrAssiEduAplctVOList); + model.addAttribute("vEInstrAssiEduAplctVOList",vEInstrAssiEduAplctVOList); + model.addAttribute("vEInstrAssiEduAplctVOListCnt",vEInstrAssiEduAplctVOList.size()); + }else { + model.addAttribute("vEInstrAssiEduAplctVOList",null); + model.addAttribute("vEInstrAssiEduAplctVOListCnt",0); + } + + + /* //1.pageing step1 //vEInstrDetailVODetail.setPageUnit(10); System.out.println(vELctrDetailVO.getPageUnit()); @@ -1004,8 +1048,6 @@ public class EduAsgnmCnfrmMngTngrController { //복호화 selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List); - - model.addAttribute("list",selectAsgnmInfoT2List); @@ -1013,6 +1055,8 @@ public class EduAsgnmCnfrmMngTngrController { paginationInfo = vEPagingUtil.setPagingStep3_VELctrDetailVO(selectAsgnmInfoT2List, paginationInfo); model.addAttribute("paginationInfo", paginationInfo); + */ + }catch(Exception ex) { ex.printStackTrace(); } @@ -1039,6 +1083,7 @@ public class EduAsgnmCnfrmMngTngrController { try { + /* //1.pageing step1 //vEInstrDetailVODetail.setPageUnit(10); PaginationInfo paginationInfo = new PaginationInfo(); @@ -1068,53 +1113,120 @@ public class EduAsgnmCnfrmMngTngrController { } System.out.println("out-list-2"); + */ + VEAutoAsgnmVO vEAutoAsgnmVO = new VEAutoAsgnmVO(); + vEAutoAsgnmVO.setYr(vEEduAplctVO.getMngNmbrYr()); + List vEInstrAssiEduAplctVOList = null; + + if (vEEduAplctVO.getMngNmbrYr() != null) { + + /* + * excel 다운로드에 강사명 검색은 제외 + if (vEEduAplctVO.getSearchKeyword() != null) { + vEAutoAsgnmVO.setInstrNm(egovCryptoUtil.encrypt(vEEduAplctVO.getSearchKeyword())); + } + */ + + vEInstrAssiEduAplctVOList = vEAutoAsgnmMIXService.selectAsgnmInfoList(vEAutoAsgnmVO); + + //복호화 + vEInstrAssiEduAplctVOList = egovCryptoUtil.decryptVEAutoAsgnmVOList(vEInstrAssiEduAplctVOList); + //model.addAttribute("vEInstrAssiEduAplctVOList",vEInstrAssiEduAplctVOList); + //model.addAttribute("vEInstrAssiEduAplctVOListCnt",vEInstrAssiEduAplctVOList.size()); + }else { + //model.addAttribute("vEInstrAssiEduAplctVOList",null); + //model.addAttribute("vEInstrAssiEduAplctVOListCnt",0); + } List excelData = new ArrayList<>(); - excelData.addAll(selectAsgnmInfoT2List); + excelData.addAll(vEInstrAssiEduAplctVOList); // 세팅값 String title = "월별 강사 배정시간 목록"; int[] width = { - + /* 4000, 4000 , 4000 , 4000, 4000 - //, 4000 - , 4000 - , 4000, 4000 + */ + 4000 - , 4000, 4000, 4000, 4000, 4000 - , 4000, 4000, 4000, 4000, 4000 , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + + , 4000, 4000 + + , 4000 }; // 너비 //33개 항목 String[] header = { + /* "NO", "기수" , "이름" , "지역1", "거주지" + */ //, "요일" - , "배정시간" - , "1월", "2월" - , "3월", "4월", "5월", "6월", "7월" - , "8월", "9월", "10월", "11월", "12월" - , "누계", "달성율(%)" + "이름" + + , "1월실제배정차시", "1월최대배정가능차시" + , "2월실제배정차시", "2월최대배정가능차시" + , "3월실제배정차시", "3월최대배정가능차시" + , "4월실제배정차시", "4월최대배정가능차시" + , "5월실제배정차시", "5월최대배정가능차시" + , "6월실제배정차시", "6월최대배정가능차시" + , "7월실제배정차시", "7월최대배정가능차시" + , "8월실제배정차시", "8월최대배정가능차시" + , "9월실제배정차시", "9월최대배정가능차시" + , "10월실제배정차시", "10월최대배정가능차시" + , "11월실제배정차시", "11월최대배정가능차시" + , "12월실제배정차시", "12월최대배정가능차시" + + , "누계(실제배정차시)", "누계(최대배정가능차시)" + + , "달성율(%)" }; String[] order = { + /* "RqstId", "ApptDiv" , "InstrNm" , "LctrAreaNm", "Rsdne" //, "wCnt" - , "YrMxmmAsgnmTm" - , "AsgnmTm1", "AsgnmTm2" - , "AsgnmTm3", "AsgnmTm4", "AsgnmTm5", "AsgnmTm6", "AsgnmTm7" - , "AsgnmTm8", "AsgnmTm9", "AsgnmTm10", "AsgnmTm11", "AsgnmTm12" - , "MntSum", "AchvPer" + * + */ + "InstrNm" + + , "M01Isc", "M01Tm" + , "M02Isc", "M02Tm" + , "M03Isc", "M03Tm" + , "M04Isc", "M04Tm" + , "M05Isc", "M05Tm" + , "M06Isc", "M06Tm" + , "M07Isc", "M07Tm" + , "M08Isc", "M08Tm" + , "M09Isc", "M09Tm" + , "M10Isc", "M10Tm" + , "M11Isc", "M11Tm" + , "M12Isc", "M12Tm" + + , "MIscSum", "MTmSum" + + , "AchvmRt" }; // 호출 diff --git a/src/main/resources/egovframework/sqlmap/ve/edu/VEAutoAsgnm_MIX_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/edu/VEAutoAsgnm_MIX_SQL_Tibero.xml index a27c79da..d93ac09c 100644 --- a/src/main/resources/egovframework/sqlmap/ve/edu/VEAutoAsgnm_MIX_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/ve/edu/VEAutoAsgnm_MIX_SQL_Tibero.xml @@ -701,6 +701,8 @@ SELECT aa.yr , aa.user_id AS userId + + , MAX(cc.instr_nm) AS instrNm , NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='01' THEN bb.instrSumChasi END),0) AS m01Isc @@ -754,7 +756,36 @@ + NVL(aa.m09_tm,0) + NVL(aa.m10_tm,0) + NVL(aa.m11_tm,0) - + NVL(aa.m12_tm,0) AS mTmSum + + NVL(aa.m12_tm,0) AS mTmSum + + , CEIL((NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='01' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='02' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='03' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='04' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='05' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='06' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='07' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='08' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='09' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='10' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='11' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='12' THEN bb.instrSumChasi END),0))*100 + / + ( NVL(aa.m01_tm,0) + + NVL(aa.m02_tm,0) + + NVL(aa.m03_tm,0) + + NVL(aa.m04_tm,0) + + NVL(aa.m05_tm,0) + + NVL(aa.m06_tm,0) + + NVL(aa.m07_tm,0) + + NVL(aa.m08_tm,0) + + NVL(aa.m09_tm,0) + + NVL(aa.m10_tm,0) + + NVL(aa.m11_tm,0) + + NVL(aa.m12_tm,0) + )) + AS achvmRt + FROM vea_instr_indvd_mnt_tm aa LEFT OUTER JOIN ( @@ -783,7 +814,23 @@ aa.user_id=bb.user_id AND aa.yr=substring(bb.yrMnt,0,4) ) - WHERE aa.user_id=#userId# + , ve_instr_detail cc + WHERE 1=1 + AND aa.user_id=cc.user_id + AND cc.use_yn='Y' + + AND aa.user_id=#userId# + + + + AND aa.yr=#yr# + + + + AND cc.instr_nm=#instrNm# + + + GROUP BY aa.yr , aa.user_id @@ -800,6 +847,7 @@ , aa.m11_tm , aa.m12_tm - ORDER BY aa.yr + ORDER BY aa.yr + , aa.user_id diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/mntInstrAsgnmMngList.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/mntInstrAsgnmMngList.jsp index b12695e4..76424ed0 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/mntInstrAsgnmMngList.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/mntInstrAsgnmMngList.jsp @@ -151,98 +151,115 @@ - + +
-

총 건수 :

+

총 건수 :

*교육신청과 강사배정이 모두 확정된 데이터 기준 - + +<%-- --%> +<%-- --%> +<%-- --%> +<%-- --%> +
-
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - -
-
이름1월(실제배정차시/최대가능배정차시)2월3월4월5월6월7월8월9월10월11월12월누계(달성율)
+ + +
(${fn:split(asgnmInfoT2.userId,'_')[1]*1}) +
+
/ / / / / / / / / / / / / +
( %) +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
이름
(배정시간)
1월(일수/지역)2월3월4월5월6월7월8월9월10월11월12월누계
(달성율)
- - -
(${fn:split(list.userId,'_')[1]*1}) -
-
(시간) -
-
(%) -
-
- + 데이터가 없습니다. - -
- -
- + + + + + + + +