From d73f7e79c1d894080ed84e2fc7396c8c188cd8f7 Mon Sep 17 00:00:00 2001 From: hylee Date: Fri, 29 Mar 2024 14:21:26 +0900 Subject: [PATCH] =?UTF-8?q?#3779=20[=EA=B4=80=EB=A6=AC=EC=9E=90]=20EXCEL?= =?UTF-8?q?=20=EC=B2=AD=EC=86=8C=EB=85=84=20>=20=EA=B5=90=EC=9C=A1?= =?UTF-8?q?=EB=B0=B0=EC=B9=98=ED=99=95=EC=A0=95=EA=B4=80=EB=A6=AC=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/EduAsgnmCnfrmMngTngrController.java | 93 ++++++++++++++++++- 1 file changed, 88 insertions(+), 5 deletions(-) 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 e1690c7a..87181ab1 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 @@ -1,8 +1,10 @@ package kcc.ve.oprtn.tngrVisitEdu.eduAsgnmCnfrmMng.web; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Locale; +import java.util.Map; import java.util.Properties; import javax.annotation.Resource; @@ -858,6 +860,7 @@ public class EduAsgnmCnfrmMngTngrController { //list = egovCryptoUtil.decryptVEEduExcelVOList(list); // 복호화 + System.out.println("list.size() :: "+ list.size()); VEEduExcelVO vVo = new VEEduExcelVO(); for(int i=0; i < list.size(); i++) { vVo = egovCryptoUtil.decryptVEEduExcelVOInfo(list.get(i)); @@ -886,6 +889,38 @@ public class EduAsgnmCnfrmMngTngrController { System.out.println("out-list-1"); + + + // 강사 식비와 장거리교육수당을 위한 빈값 체크 + List dataList = list; // 가정한 메소드: 실제 데이터를 로드 + // 각 ketSet에 대해 기존 값(0이 아닌 값)이 있는지 체크 + // 식대 + Map foodChkMap = new HashMap<>(); + // 식대 + Map distanceChkMap = new HashMap<>(); + + // hylee + // 20240329 + // 식대 체크 체크 + for (VEEduExcelVO row : dataList) { + String ketSet = row.getEduHopeDt() + row.getEduAplctOrd(); + // 기존 값을 체크 + if (!"0".equals(row.getFoodExpenses())) { + foodChkMap.put(ketSet, true); + } + } + + // hylee + // 20240329 + // 장거리 교육수당 체크 + for (VEEduExcelVO row : dataList) { + String ketSet = row.getEduHopeDt() + row.getEduAplctOrd(); + // 기존 값을 체크 + if (!"0".equals(row.getDistanceAllow())) { + distanceChkMap.put(ketSet, true); + } + } + list.forEach( vo -> { /* ComDefaultCodeVO codeParam = new ComDefaultCodeVO(); @@ -958,24 +993,50 @@ public class EduAsgnmCnfrmMngTngrController { VeInstrFeeMng veInstrFeeMng = new VeInstrFeeMng(); VEInstrFeeAcmdtVO vEInstrFeeAcmdtVO = veInstrFeeMng.VeInstrFeeMng(vEInstrFeeService, vo.getEduAplctOrd(), vo.getEduChasiOrd()); - // 식비 - vo.setFoodExpenses(vEInstrFeeAcmdtVO.getFoodExpenses()); + + String ketSet = vo.getEduHopeDt() + vo.getEduAplctOrd(); + + // hylee + // 20240329 기존 vEInstrFeeAcmdtVO 무시(공통이라 무시하고 값을 새로 구함) + // before + // vo.setFoodExpenses(vEInstrFeeAcmdtVO.getFoodExpenses()); + // after + if (!foodChkMap.getOrDefault(ketSet, false)) { + // 식대 + vo.setFoodExpenses("7000"); + foodChkMap.put(ketSet, true); + } + // 강사료 계산 (강의차시 * 강사 기본값) vo.setInstrFee(vEInstrFeeAcmdtVO.getInstrFee()); // 도서벽지수당 계산 vo.setSpecialWorkAllow(vEInstrFeeAcmdtVO.getSpecialWorkAllow()); - - // 장거리교육수당 - vo.setDistanceAllow(vEInstrFeeAcmdtVO.getDistanceAllow()); + + // hylee + // 장거리교육수당 20240329 + // if("20".equals(vo.getEduSlctCd())) 아래 수정해서 추가 + // before +// vo.setDistanceAllow(vEInstrFeeAcmdtVO.getDistanceAllow()); // 온라인 여부 확인(10:온라인, 20:오프라인) if("20".equals(vo.getEduSlctCd())) { //강사료 부분 + // onewayDstnc 편도 + // KmRoundTrip 왕복 int kmRoundTrip = (Integer.parseInt(vo.getOnewayDstnc()) * 2); vo.setKmOneWay(vo.getOnewayDstnc()+"Km"); // Km편도 vo.setKmRoundTrip(Integer.toString(kmRoundTrip)+"Km"); // Km왕복 + + // hylee + // 20240329 기존 vEInstrFeeAcmdtVO 무시(공통이라 무시하고 값을 새로 구함) + // after + if (!distanceChkMap.getOrDefault(ketSet, false)) { + // 장거리교육수당 + vo.setDistanceAllow(this.distanceAllowCal(kmRoundTrip)); + distanceChkMap.put(ketSet, true); + } }else if("10".equals(vo.getEduSlctCd())) { vo.setKmOneWay("0"); // 편도 거리 @@ -1095,6 +1156,28 @@ public class EduAsgnmCnfrmMngTngrController { modelAndView.addObject(model); return modelAndView; } + + // km 왕복 KmRoundTrip + // 장거리 교육 수당 DistanceAllow + // 200Km 이상 : 40,000원 / 100Km 이상 : 30,000원 + // 12Km 이상 : 20,000원 / 1Km 이상 10,000원 + // 장거리 교육수당 계산 + public String distanceAllowCal(int kmRoundTrip) { + String distanceAllow= null; + if(0 == kmRoundTrip) { + distanceAllow = "0"; + }else if(1<=kmRoundTrip && kmRoundTrip < 12) { + distanceAllow = "10000"; + }else if(12<=kmRoundTrip && kmRoundTrip < 100) { + distanceAllow = "20000"; + }else if(100<=kmRoundTrip && kmRoundTrip < 200) { + distanceAllow = "30000"; + }else {// 200 이상 + distanceAllow = "40000"; + } + return distanceAllow; + } + /** * 월별 강사 배정시간 목록 화면