#3779 [관리자] EXCEL 청소년 > 교육배치확정관리 완료

This commit is contained in:
hylee 2024-03-29 14:21:26 +09:00
parent 341d6578c9
commit d73f7e79c1

View File

@ -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<VEEduExcelVO> dataList = list; // 가정한 메소드: 실제 데이터를 로드
// ketSet에 대해 기존 (0이 아닌 ) 있는지 체크
// 식대
Map<String, Boolean> foodChkMap = new HashMap<>();
// 식대
Map<String, Boolean> 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;
}
/**
* 월별 강사 배정시간 목록 화면