diff --git a/src/main/java/kcc/let/utl/fcc/service/VisitEduTransUtil.java b/src/main/java/kcc/let/utl/fcc/service/VisitEduTransUtil.java
new file mode 100644
index 00000000..d7ab6574
--- /dev/null
+++ b/src/main/java/kcc/let/utl/fcc/service/VisitEduTransUtil.java
@@ -0,0 +1,77 @@
+/**
+ * @Class Name : VisitEduTransUtil.java
+ * @Description : 찾교 데이터 변환 관련 유틸리티
+ * @Modification Information
+ *
+ * 수정일 수정자 수정내용
+ * ------- -------- ---------------------------
+ * 2009.02.13 이삼섭 최초 생성
+ *
+ * @author 공통 서비스 개발팀 이삼섭
+ * @since 2009. 02. 13
+ * @version 1.0
+ * @see
+ *
+ */
+
+package kcc.let.utl.fcc.service;
+
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO;
+/**
+ * 숫자 데이터 처리 관련 유틸리티
+ * @author 공통서비스개발팀 이삼섭
+ * @since 2009.02.13
+ * @version 1.0
+ * @see
+ *
+ *
+ * << 개정이력(Modification Information) >>
+ *
+ * 수정일 수정자 수정내용
+ * ------- -------- ---------------------------
+ * 2009.02.13 이삼섭 최초 생성
+ * 2011.08.31 JJY 경량환경 템플릿 커스터마이징버전 생성
+ *
+ *
+ */
+
+public class VisitEduTransUtil {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(VisitEduTransUtil.class);
+
+ public static List transData4feeSum(List p_vEInstrAsgnmVOList){
+
+ p_vEInstrAsgnmVOList.stream().forEach(t-> {
+
+ int i_feeSum4Dp = 0;
+
+ int i_instrFee = 0;
+ int i_specialWorkAllow = 0;
+ int i_distanceAllow = 0;
+ int i_trafficFee = 0;
+ int i_acmdtFee = 0;
+
+ try { i_instrFee = Integer.parseInt(t.getInstrFee()); }catch(Exception ex) { i_instrFee = 0; System.out.println(ex.toString()); }
+ try { i_specialWorkAllow = Integer.parseInt(t.getSpecialWorkAllow()); }catch(Exception ex) { i_specialWorkAllow = 0; System.out.println(ex.toString()); }
+ try { i_distanceAllow = Integer.parseInt(t.getDistanceAllow()); }catch(Exception ex) { i_distanceAllow = 0; System.out.println(ex.toString()); }
+ try { i_trafficFee = Integer.parseInt(t.getTrafficFee()); }catch(Exception ex) { i_trafficFee = 0; System.out.println(ex.toString()); }
+ try { i_acmdtFee = Integer.parseInt(t.getAcmdtFee()); }catch(Exception ex) { i_acmdtFee = 0; System.out.println(ex.toString()); }
+
+ i_feeSum4Dp = i_instrFee + i_specialWorkAllow + i_distanceAllow + i_trafficFee + i_acmdtFee;
+
+ try { t.setFeeSum4Dp(Integer.toString(i_feeSum4Dp)); } catch (Exception e) { e.printStackTrace(); }
+
+ System.out.println("i_feeSum4Dp");
+ System.out.println(i_feeSum4Dp);
+ System.out.println(t.getFeeSum4Dp());
+
+ });
+
+ return p_vEInstrAsgnmVOList;
+ }
+}
diff --git a/src/main/java/kcc/ve/instr/adultVisitEdu/asgnmInfo/web/VEAdultAsgnmController.java b/src/main/java/kcc/ve/instr/adultVisitEdu/asgnmInfo/web/VEAdultAsgnmController.java
index 8b2fbc28..9cd6b91e 100644
--- a/src/main/java/kcc/ve/instr/adultVisitEdu/asgnmInfo/web/VEAdultAsgnmController.java
+++ b/src/main/java/kcc/ve/instr/adultVisitEdu/asgnmInfo/web/VEAdultAsgnmController.java
@@ -27,6 +27,7 @@ import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.let.utl.fcc.service.EgovCryptoUtil4VO;
+import kcc.let.utl.fcc.service.VisitEduTransUtil;
import kcc.ve.cmm.VeConstants;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAcmdtAplctService;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService;
@@ -146,6 +147,11 @@ public class VEAdultAsgnmController {
model.addAttribute("paginationInfo", paginationInfo);
+ //fee 계산하기
+ //feeSum4Dp
+ vEInstrAsgnmVOList = VisitEduTransUtil.transData4feeSum(vEInstrAsgnmVOList);
+
+
//대상 리스트, 페이징 정보 전달
model.addAttribute("vEInstrAsgnmVOList", vEInstrAsgnmVOList);
@@ -256,6 +262,11 @@ public class VEAdultAsgnmController {
model.addAttribute("paginationInfo", paginationInfo);
+ //fee 계산하기
+ //feeSum4Dp
+ vEInstrAsgnmVOList = VisitEduTransUtil.transData4feeSum(vEInstrAsgnmVOList);
+
+
//대상 리스트, 페이징 정보 전달
model.addAttribute("vEInstrAsgnmVOList", vEInstrAsgnmVOList);
diff --git a/src/main/java/kcc/ve/instr/adultVisitEdu/endInfo/web/VEAdultEduEndController.java b/src/main/java/kcc/ve/instr/adultVisitEdu/endInfo/web/VEAdultEduEndController.java
index 928adc42..fa46f67a 100644
--- a/src/main/java/kcc/ve/instr/adultVisitEdu/endInfo/web/VEAdultEduEndController.java
+++ b/src/main/java/kcc/ve/instr/adultVisitEdu/endInfo/web/VEAdultEduEndController.java
@@ -1,841 +1,847 @@
-package kcc.ve.instr.adultVisitEdu.endInfo.web;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.net.URLEncoder;
-import java.util.List;
-import java.util.Map;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.ModelMap;
-import org.springframework.util.FileCopyUtils;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.mvc.support.RedirectAttributes;
-
-import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
-import kcc.com.cmm.EgovMessageSource;
-import kcc.com.cmm.LoginVO;
-import kcc.com.cmm.service.EgovFileMngService;
-import kcc.com.cmm.service.FileVO;
-import kcc.com.cmm.util.IpUtil;
-import kcc.com.cmm.web.EgovFileDownloadController;
-import kcc.com.utl.user.service.CheckFileUtil;
-import kcc.com.utl.user.service.CheckLoginUtil;
-import kcc.kccadr.sch.service.SchduleManageService;
-import kcc.kccadr.sch.service.SchduleManageVO;
-import kcc.let.uat.uia.service.SsoLoginVO;
-import kcc.let.utl.fcc.service.EgovCryptoUtil;
-import kcc.let.utl.fcc.service.EgovCryptoUtil4VO;
-import kcc.ve.cmm.VeConstants;
-import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAcmdtAplctService;
-import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService;
-import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO;
-import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeAcmdtVO;
-import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeService;
-import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
-import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService;
-import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
-import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
-import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
-import kcc.ve.instr.tngrVisitEdu.rprtInfo.service.VEEduRprtVO;
-import kcc.ve.instr.tngrVisitEdu.rprtInfo.service.VEEduRsltRprtService;
-import kcc.ve.oprtn.asgnmnoti.service.VEAsgnmNotiService;
-import kcc.ve.oprtn.asgnmnoti.service.VEAsgnmNotiVO;
-
-
-@Controller
-public class VEAdultEduEndController {
-
- // eGov 공통 메세지
- @Resource(name = "egovMessageSource")
- EgovMessageSource egovMessageSource;
-
- //로그인 체크 util
- @Resource(name = "checkLoginUtil")
- private CheckLoginUtil checkLoginUtil;
-
- //암복호화 유틸
- @Resource(name = "egovCryptoUtil")
- EgovCryptoUtil egovCryptoUtil;
-
- //강사상세 정보
- @Resource(name="vEInstrDetailService")
- private VEInstrDetailService vEInstrDetailService;
-
- //결과보고
- @Resource(name="vEEduRsltRprtService")
- private VEEduRsltRprtService vEEduRsltRprtService;
-
- //배정 MIX 정보
- @Resource(name="vEAsgnmMIXService")
- private VEAsgnmMIXService vEAsgnmMIXService;
-
- //강의
- @Resource(name="vEPrcsService")
- private VEPrcsService vEPrcsService;
-
- //강사료
- @Resource(name="vEInstrFeeService")
- private VEInstrFeeService vEInstrFeeService;
-
- //숙박
- @Resource(name="vEAcmdtAplctService")
- private VEAcmdtAplctService vEAcmdtAplctService;
-
- //VO 암/복호화
- @Resource(name="egovCryptoUtil4VO")
- private EgovCryptoUtil4VO egovCryptoUtil4VO;
-
- // 파일첨부
- @Resource(name = "EgovFileMngService")
- private EgovFileMngService fileService;
-
- //파일 체크 util
- @Resource(name = "checkFileUtil")
- private CheckFileUtil checkFileUtil;
-
- //NOTI 서비스
- @Resource(name="vEAsgnmNotiService")
- private VEAsgnmNotiService vEAsgnmNotiService;
-
- //일정 정보
- @Resource(name = "schduleManageService")
- private SchduleManageService schduleManageService;
-
- private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileDownloadController.class);
-
- /**
- * 브라우저 구분 얻기.
- *
- * @param request
- * @return
- */
- private String getBrowser(HttpServletRequest request) {
- String header = request.getHeader("User-Agent");
- if (header.indexOf("MSIE") > -1) {
- return "MSIE";
- } else if (header.indexOf("Trident") > -1) { // IE11 문자열 깨짐 방지
- return "Trident";
- } else if (header.indexOf("Chrome") > -1) {
- return "Chrome";
- } else if (header.indexOf("Opera") > -1) {
- return "Opera";
- }
- return "Firefox";
- }
-
- //청소년강사 강의 종료교육 목록
- @RequestMapping("/web/ve/instr/adultVisitEdu/endInfo/instrEduEndList.do")
- public String instrEduEndList(
- @ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
-
- , ModelMap model
- , RedirectAttributes redirectAttributes
- , HttpSession session
- , HttpServletRequest request
- ) throws Exception {
-
- //로그인 처리====================================
- //로그인 정보 가져오기
-
- LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
- SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
-
- if (loginVO == null || ssoLoginVO == null) {
- return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
- }
- model.addAttribute("ssoLoginVO", ssoLoginVO);
- model.addAttribute("loginVO", loginVO);
- //로그인 처리====================================
-
-
- //3.pageing step1
- PaginationInfo paginationInfo = this.setPagingStep1(vEInstrAsgnmVO);
-
-
- //4. pageing step2
- vEInstrAsgnmVO = this.setPagingStep2(vEInstrAsgnmVO, paginationInfo);
-
- vEInstrAsgnmVO.setUserId(loginVO.getUniqId());
- vEInstrAsgnmVO.setInstrDiv("20");
- vEInstrAsgnmVO.setAsgnmAprvlCd("30"); // 강사확정코드 => 요청대기 : 10, 수락요청 : 20, 교육확정 : 30, 수락거절 : 40, 추가신청 : 50
-
- try {
- System.out.println("session.getAttribute(menuNo).toString()");
- System.out.println(session.getAttribute("menuNo").toString());
- vEInstrAsgnmVO.setMenuNo(session.getAttribute("menuNo").toString());
- }catch(Exception ex) {
- ex.printStackTrace();
- vEInstrAsgnmVO.setMenuNo("9991300");
- }
-
- List vEInstrAsgnmVOList = vEAsgnmMIXService.selectAsgnmPagingList(vEInstrAsgnmVO);
-
- //6.pageing step3
- paginationInfo = this.setPagingStep3(vEInstrAsgnmVOList, paginationInfo);
- model.addAttribute("paginationInfo", paginationInfo);
-
-
- //대상 리스트, 페이징 정보 전달
- model.addAttribute("vEInstrAsgnmVOList", vEInstrAsgnmVOList);
-
-
- return "/web/ve/instr/adultVisitEdu/endInfo/instrEduEndList";
- }
-
- //청소년강사 강의 종료교육 목록
- @RequestMapping("/web/ve/instr/adultVisitEdu/endInfo/instrEduEndSchdl.do")
- public String instrEduEndSchdl(
- @ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
-
- , ModelMap model
- , RedirectAttributes redirectAttributes
- , HttpSession session
- , HttpServletRequest request
- ) throws Exception {
-
- //로그인 처리====================================
- //로그인 정보 가져오기
-
- LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
- SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
-
- if (loginVO == null || ssoLoginVO == null) {
- return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
- }
- model.addAttribute("ssoLoginVO", ssoLoginVO);
- model.addAttribute("loginVO", loginVO);
- //로그인 처리====================================
-
-
- //3.pageing step1
- PaginationInfo paginationInfo = this.setPagingStep1(vEInstrAsgnmVO);
-
-
- //4. pageing step2
- vEInstrAsgnmVO = this.setPagingStep2(vEInstrAsgnmVO, paginationInfo);
-
- vEInstrAsgnmVO.setUserId(loginVO.getUniqId());
- vEInstrAsgnmVO.setInstrDiv("20");
- vEInstrAsgnmVO.setAsgnmAprvlCd("30"); // 강사확정코드 => 요청대기 : 10, 수락요청 : 20, 교육확정 : 30, 수락거절 : 40, 추가신청 : 50
-
- try {
- System.out.println("session.getAttribute(menuNo).toString()");
- System.out.println(session.getAttribute("menuNo").toString());
- vEInstrAsgnmVO.setMenuNo(session.getAttribute("menuNo").toString());
- }catch(Exception ex) {
- ex.printStackTrace();
- vEInstrAsgnmVO.setMenuNo("9991300");
- }
-
- List vEInstrAsgnmVOList = vEAsgnmMIXService.selectAsgnmPagingList(vEInstrAsgnmVO);
-
- //6.pageing step3
- paginationInfo = this.setPagingStep3(vEInstrAsgnmVOList, paginationInfo);
- model.addAttribute("paginationInfo", paginationInfo);
-
-
- //대상 리스트, 페이징 정보 전달
- model.addAttribute("vEInstrAsgnmVOList", vEInstrAsgnmVOList);
-
-
- return "/web/ve/instr/adultVisitEdu/endInfo/instrEduEndSchdl";
- }
-
- @RequestMapping(value = "/web/ve/instr/adultVisitEdu/endInfo/adultSchduleManagerAjaxLoadData.do")
- @ResponseBody
- public List adultSchduleManagerAjaxLoadData(@ModelAttribute("schduleManageVO") SchduleManageVO schduleManageVO, ModelMap model) throws Exception {
- schduleManageVO.setAprvlCd("60");
- schduleManageVO.setLctrDivCd("10");
-
- schduleManageVO.setSearchStartDt(schduleManageVO.getSearchStartDt().split("T")[0].replaceAll("-", ""));
-
- return schduleManageService.selectSchManageStatusList(schduleManageVO);
- }
-
- //청소년강사 강의 종료교육 상세
- @RequestMapping("/web/ve/instr/adultVisitEdu/endInfo/instrEduEndDetail.do")
- public String instrEduEndDetail(
- @ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
-
- , ModelMap model
- , RedirectAttributes redirectAttributes
- , HttpSession session
- , HttpServletRequest request
- ) throws Exception {
-
- try{
- System.out.println("adultVisitEdu-endInfo-instrEduEndDetail");
- //로그인 처리====================================
- //로그인 정보 가져오기
-
- LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
- SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
-
- if (loginVO == null || ssoLoginVO == null) {
- return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
- }
- model.addAttribute("ssoLoginVO", ssoLoginVO);
- model.addAttribute("loginVO", loginVO);
- //로그인 처리====================================
-
- // 교육차시 강사배정 정보
- VEInstrAsgnmVO vEInstrAsgnmVOInfo = new VEInstrAsgnmVO();
- vEInstrAsgnmVOInfo = vEAsgnmMIXService.selectAsgnmRqstDetail(vEInstrAsgnmVO);
-
- // 강사 상세정보
- VEInstrDetailVO vEInstrDetailVOInfo = new VEInstrDetailVO();
- vEInstrDetailVOInfo.setInstrDiv("20");
- vEInstrDetailVOInfo.setUserId(loginVO.getUniqId());
- vEInstrDetailVOInfo.setUseYn("Y");
- vEInstrDetailVOInfo = vEInstrDetailService.selectDetail(vEInstrDetailVOInfo);
- if (vEInstrDetailVOInfo != null) {
- //데이터 복호화 - VO 단위로 만들어서 사용
- VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
- vEEduAplctVO.setInstrNm(vEInstrDetailVOInfo.getInstrNm());
- vEEduAplctVO = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVO);
- vEInstrDetailVOInfo.setInstrNm(vEEduAplctVO.getInstrNm());
- }
-
- //강사료
- VEInstrFeeAcmdtVO instrFee = new VEInstrFeeAcmdtVO();
- instrFee.setEduAplctOrd(vEInstrAsgnmVO.getEduAplctOrd());
- instrFee.setEduChasiOrd(vEInstrAsgnmVO.getEduChasiOrd());
-
- instrFee = vEInstrFeeService.selectDetail(instrFee);
-
- //강사료 제외 합계
- int instrFeeSum = Integer.parseInt(instrFee.getInstrFee())
- + Integer.parseInt(instrFee.getBsnsTripFee())
- + Integer.parseInt(instrFee.getSpareFee());
- instrFee.setInstrFeeSum(instrFeeSum);
-
-
- //사용자 교육신청 과정 리스트
- VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
- vEPrcsDetailVO.setUseYn("Y");
- vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_20);
- List vEPrcsDetailVOList = vEPrcsService.selectTngrPrcsList(vEPrcsDetailVO);
- model.addAttribute("prcsList", vEPrcsDetailVOList);
-
-
- //파일 정보 가져오기
- int fileCnt = 0;
- List result = null;
- if (vEInstrAsgnmVOInfo != null) {
- FileVO fileVO = new FileVO();
- fileVO.setAtchFileId(vEInstrAsgnmVOInfo.getLctrPlanAtchFileId());
- result = fileService.selectFileInfs(fileVO);
- fileCnt = result.size();
- }
- else {
- fileCnt = 0;
- }
- model.addAttribute("fileList", result);
- model.addAttribute("fileListCnt", fileCnt);
-
-
- //대상 리스트, 페이징 정보 전달
- model.addAttribute("eduAplctOrd", vEInstrAsgnmVO.getEduAplctOrd());
- model.addAttribute("eduChasiOrd", vEInstrAsgnmVO.getEduChasiOrd());
- model.addAttribute("info", vEInstrAsgnmVOInfo);
- model.addAttribute("info2", vEInstrDetailVOInfo);
- model.addAttribute("instrFee", instrFee);
- model.addAttribute("cryptoUtil",egovCryptoUtil);
-
- //20220222 우영두 추가
- //강의내역 NOTI 입력
- VEAsgnmNotiVO vEAsgnmNotiVO = new VEAsgnmNotiVO();
-
- vEAsgnmNotiVO.setTblUniqOrd(vEInstrAsgnmVO.getEduChasiOrd());
- vEAsgnmNotiVO.setFrstRegisterId(loginVO.getUniqId());
-
- try {
- System.out.println("session.getAttribute(menuNo).toString()");
- System.out.println(session.getAttribute("menuNo").toString());
- vEAsgnmNotiVO.setMenuNo(session.getAttribute("menuNo").toString());
- }catch(Exception ex) {
- ex.printStackTrace();
- }
-
- vEAsgnmNotiVO.setUrlPath(IpUtil.getRequestURI(request));
-
- vEAsgnmNotiService.insertAsgnmNotiInfo(vEAsgnmNotiVO);
-
- }catch(Exception ex) {
- ex.printStackTrace();
- }
-
- return "/web/ve/instr/adultVisitEdu/endInfo/instrEduEndDetail";
- }
-
- /**
- * 결과보고 팝업
- */
- @RequestMapping("/web/ve/instr/adultVisitEdu/endInfo/popup/eduRsltRprtRegPop.do")
- public String filePopup(
- @ModelAttribute("vEEduRprtVO") VEEduRprtVO vEEduRprtVO
- ,@ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
- , ModelMap model
- , HttpServletRequest request
- ) throws Exception {
-
- try {
- vEEduRprtVO = vEEduRsltRprtService.selectDetail(vEEduRprtVO);
-
- //파일 정보 가져오기
- int fileCnt = 0;
- List result = null;
- if (vEEduRprtVO != null) {
- FileVO fileVO = new FileVO();
- fileVO.setAtchFileId(vEEduRprtVO.getAtchFileId());
- result = fileService.selectFileInfs(fileVO);
- fileCnt = result.size();
- }
- else {
- fileCnt = 0;
- }
- model.addAttribute("fileList", result);
- model.addAttribute("fileListCnt", fileCnt);
- model.addAttribute("vEEduRprtVO", vEEduRprtVO);
- model.addAttribute("vEInstrAsgnmVO", vEInstrAsgnmVO);
- }
- catch(Exception ex) {
- ex.printStackTrace();
- }
-
- return "/web/ve/instr/adultVisitEdu/endInfo/popup/eduRsltRprtRegPop";
- }
-
- /**
- * 숙박신청자 영수증 등록 팝업
- */
- @RequestMapping("/web/ve/instr/adultVisitEdu/endInfo/popup/eduAcmdtRegPop.do")
- public String eduAcmdtRegPop(
- @ModelAttribute("vEInstrFeeAcmdtVO") VEInstrFeeAcmdtVO vEInstrFeeAcmdtVO
- ,@ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
- , ModelMap model
- , HttpServletRequest request
- ) throws Exception {
-
- try {
- vEInstrFeeAcmdtVO = vEAcmdtAplctService.selectDetail(vEInstrFeeAcmdtVO);
-
- //파일 정보 가져오기
- int fileCnt = 0;
- List result = null;
- if (vEInstrFeeAcmdtVO != null) {
- FileVO fileVO = new FileVO();
- fileVO.setAtchFileId(vEInstrFeeAcmdtVO.getAtchFileId());
- result = fileService.selectFileInfs(fileVO);
- fileCnt = result.size();
- }
- else {
- fileCnt = 0;
- }
- model.addAttribute("fileList", result);
- model.addAttribute("fileListCnt", fileCnt);
- model.addAttribute("vEInstrFeeAcmdtVO", vEInstrFeeAcmdtVO);
- model.addAttribute("vEInstrAsgnmVO", vEInstrAsgnmVO);
- }
- catch(Exception ex) {
- ex.printStackTrace();
- }
-
- return "/web/ve/instr/adultVisitEdu/endInfo/popup/eduAcmdtPop";
- }
-
- /**
- * 결과보고 Ajax
- */
- @RequestMapping("/web/ve/instr/adultVisitEdu/endInfo/popup/eduRsltRprtPopupAjax.do")
- public ModelAndView filePopupAjax(
- @ModelAttribute("vEEduRprtVO") VEEduRprtVO vEEduRprtVO
- , ModelMap model
- //, RedirectAttributes redirectAttributes
- , HttpServletRequest request
- , final MultipartHttpServletRequest multiRequest
- ) throws Exception {
-
- ModelAndView modelAndView = new ModelAndView();
- modelAndView.setViewName("jsonView");
-
- //로그인 처리====================================
- //로그인 정보 가져오기
- /*
- String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request);
- if (!"".equals(s_userCheckNInfo)) {
- modelAndView.addObject("result", "loginFail");
- return modelAndView;
- }
- */
-
- LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
- //SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
-
- //로그인 처리====================================
-
-
- //step2.파일 처리====================================
- //파일 정상 처리 여부와 첨부 파일 정보
- //String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO);
- //파일 제한 수량 가져오기, 없으면 기본값 사용
- int i_file_limit = checkFileUtil.getLimitCount(request); // file count
- int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
- String s_file_exts = checkFileUtil.getS_exts(); // file exts
-
-
- //step2.기존 첨부파일 체크 후 저장 하기
- String s_atchFileId = "";
- VEEduRprtVO fileVEEduAplctVO = vEEduRsltRprtService.selectDetail(vEEduRprtVO);
- if (fileVEEduAplctVO != null) {
- s_atchFileId = fileVEEduAplctVO.getAtchFileId();
- }
-
- //DB에서 실제 첨부파일 존재 여부 확인
- FileVO fileVO = new FileVO();
- fileVO.setAtchFileId(s_atchFileId);
- List result = fileService.selectFileInfs(fileVO);
- if (result.size()<=0) {
- s_atchFileId = "";
- }
-
- if ("".equals(s_atchFileId)) {
- s_atchFileId = checkFileUtil.fileValCheckNdbInsert(
- multiRequest, modelAndView
- , "EDURSLTRPRT_" //file_name_prefix
- , s_file_exts
- , i_limit_size
- , i_file_limit
- ); //EXT, MB size and ea
- }else {
- s_atchFileId = checkFileUtil.fileValCheckNdbUpdate(
- multiRequest, modelAndView
- , "EDURSLTRPRT_" //file_name_prefix
- , s_file_exts
- , i_limit_size
- , i_file_limit
- , s_atchFileId
- );
- }
-
- if ("ERROR".equals(s_atchFileId)) return modelAndView;
-
- //step2.파일 처리====================================
-
- try {
- //결과 저장
- vEEduRprtVO.setAtchFileId(s_atchFileId);
-
- //최초등록 시
- if(fileVEEduAplctVO == null) {
- vEEduRprtVO.setFrstRegisterId(loginVO.getUniqId());
- } else { //수정 시
- vEEduRprtVO.setLastUpdusrId(loginVO.getUniqId());
- }
-
- vEEduRsltRprtService.insert(vEEduRprtVO);
-
- }catch(Exception ex) {
- System.out.println("Exception vEEduRsltRprtService.insert");
- }
-
- modelAndView.addObject("result", "success");
-
- return modelAndView;
- }
-
- /**
- * 영수증 등록 Ajax
- */
- @RequestMapping("/web/ve/instr/adultVisitEdu/endInfo/popup/eduAcmdtPopupAjax.do")
- public ModelAndView eduAcmdtPopupAjax(
- @ModelAttribute("vEInstrFeeAcmdtVO") VEInstrFeeAcmdtVO vEInstrFeeAcmdtVO
- , ModelMap model
- //, RedirectAttributes redirectAttributes
- , HttpServletRequest request
- , final MultipartHttpServletRequest multiRequest
- ) throws Exception {
-
- ModelAndView modelAndView = new ModelAndView();
- modelAndView.setViewName("jsonView");
-
- //로그인 처리====================================
- //로그인 정보 가져오기
- /*
- String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request);
- if (!"".equals(s_userCheckNInfo)) {
- modelAndView.addObject("result", "loginFail");
- return modelAndView;
- }
- */
-
- LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
- //SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
-
- //로그인 처리====================================
-
-
- //step2.파일 처리====================================
- //파일 정상 처리 여부와 첨부 파일 정보
- //String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO);
- //파일 제한 수량 가져오기, 없으면 기본값 사용
- int i_file_limit = checkFileUtil.getLimitCount(request); // file count
- int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
- String s_file_exts = checkFileUtil.getS_exts(); // file exts
-
-
- //step2.기존 첨부파일 체크 후 저장 하기
- String s_atchFileId = "";
- VEInstrFeeAcmdtVO acmdtVO = vEAcmdtAplctService.selectDetail(vEInstrFeeAcmdtVO);
- s_atchFileId = acmdtVO.getAtchFileId();
-
- //DB에서 실제 첨부파일 존재 여부 확인
- FileVO fileVO = new FileVO();
- fileVO.setAtchFileId(s_atchFileId);
- List result = fileService.selectFileInfs(fileVO);
- if (result.size()<=0) {
- s_atchFileId = "";
- }
-
- if ("".equals(s_atchFileId)) {
- s_atchFileId = checkFileUtil.fileValCheckNdbInsert(
- multiRequest, modelAndView
- , "ACMDTRECEIPT_" //file_name_prefix
- , s_file_exts
- , i_limit_size
- , i_file_limit
- ); //EXT, MB size and ea
- }else {
- s_atchFileId = checkFileUtil.fileValCheckNdbUpdate(
- multiRequest, modelAndView
- , "ACMDTRECEIPT_" //file_name_prefix
- , s_file_exts
- , i_limit_size
- , i_file_limit
- , s_atchFileId
- );
- }
-
- if ("ERROR".equals(s_atchFileId)) return modelAndView;
-
- //step2.파일 처리====================================
-
- try {
- //결과 저장
- vEInstrFeeAcmdtVO.setAtchFileId(s_atchFileId);
- vEInstrFeeAcmdtVO.setLastUpdusrId(loginVO.getUniqId());
-
- vEAcmdtAplctService.update(vEInstrFeeAcmdtVO);
-
- }catch(Exception ex) {
- System.out.println("Exception vEAcmdtAplctService.update");
- }
-
- modelAndView.addObject("result", "success");
-
- return modelAndView;
- }
-
- //첨부파일 이름 변경하여 다운로드
- /**
- * 첨부파일로 등록된 파일에 대하여 다운로드를 제공한다.
- *
- * @param commandMap
- * @param response
- * @throws Exception
- */
- @RequestMapping(value = "/web/ve/instr/adultVisitEdu/endInfo/FileDown.do")
- public void cvplFileDownload(@RequestParam Map commandMap, HttpServletRequest request, HttpServletResponse response) throws Exception {
-
- String atchFileId = (String) commandMap.get("atchFileId");
- String fileSn = (String) commandMap.get("fileSn");
- String newFileNm = (String) commandMap.get("newFileNm");
-
- /*Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();*/
-
- /*if (isAuthenticated) {*/
-
- FileVO fileVO = new FileVO();
- fileVO.setAtchFileId(atchFileId);
- fileVO.setFileSn(fileSn);
- FileVO fvo = fileService.selectFileInf(fileVO);
- if(fvo == null){
- response.setContentType("application/x-msdownload");
- PrintWriter printwriter = response.getWriter();
- printwriter.println("");
- printwriter.println("
Could not get file name:
");
- printwriter.println("
");
- printwriter.println("
© webAccess");
- printwriter.println("");
- printwriter.flush();
- printwriter.close();
- return ;
- }
-
- File uFile = new File(fvo.getFileStreCours(), fvo.getStreFileNm());
- long fSize = uFile.length();
-
- if (fSize > 0) {
- String mimetype = "application/x-msdownload";
-
- response.setContentType(mimetype);
-// setDisposition(fvo.getOrignlFileNm(), request, response);
- setDisposition(newFileNm+"."+fvo.getFileExtsn(), request, response); //받아온 파일명으로 다운로드 실행
- //response.setContentLength(fSize);
-
- BufferedInputStream in = null;
- BufferedOutputStream out = null;
-
- try {
- in = new BufferedInputStream(new FileInputStream(uFile));
- out = new BufferedOutputStream(response.getOutputStream());
-
- FileCopyUtils.copy(in, out);
- out.flush();
- } catch (Exception ex) {
- LOGGER.debug("IGNORED: {}", ex.getMessage());
- } finally {
- if (in != null) {
- try {
- in.close();
- } catch (Exception ignore) {
- LOGGER.debug("IGNORED: {}", ignore.getMessage());
- }
- }
- if (out != null) {
- try {
- out.close();
- } catch (Exception ignore) {
- LOGGER.debug("IGNORED: {}", ignore.getMessage());
- }
- }
- }
-
- } else {
- response.setContentType("application/x-msdownload");
-
- PrintWriter printwriter = response.getWriter();
- printwriter.println("");
- printwriter.println("
Could not get file name:
" + fvo.getOrignlFileNm() + "
");
- printwriter.println("
");
- printwriter.println("
© webAccess");
- printwriter.println("");
- printwriter.flush();
- printwriter.close();
- }
- /*}*/
- }
-
-
-
-
- //페이징을 위한 처리 step1 - 페이징 기본 정보 설정
- private PaginationInfo setPagingStep1(
- VEInstrAsgnmVO p_vEInstrAsgnmVO
- )throws Exception{
- // pageing step1
- PaginationInfo paginationInfo = new PaginationInfo();
- paginationInfo.setCurrentPageNo(p_vEInstrAsgnmVO.getPageIndex());
- paginationInfo.setRecordCountPerPage(p_vEInstrAsgnmVO.getPageUnit());
- paginationInfo.setPageSize(p_vEInstrAsgnmVO.getPageSize());
-
- return paginationInfo;
- }
-
-
- //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 및 검색 조건 초기화
- private VEInstrAsgnmVO setPagingStep2(
- VEInstrAsgnmVO p_vEInstrAsgnmVO
- , PaginationInfo p_paginationInfo
- )throws Exception{
- // pageing step2
- p_vEInstrAsgnmVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex());
- p_vEInstrAsgnmVO.setLastIndex(p_paginationInfo.getLastRecordIndex());
- p_vEInstrAsgnmVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
-
- if("".equals(p_vEInstrAsgnmVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
- p_vEInstrAsgnmVO.setSearchSortCnd("user_id");
- p_vEInstrAsgnmVO.setSearchSortOrd("desc");
- }
-
- return p_vEInstrAsgnmVO;
- }
-
-
- //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
- private PaginationInfo setPagingStep3(
- List p_vEInstrAsgnmVOList
- , PaginationInfo p_paginationInfo
- )throws Exception{
- // pageing step3
- int totCnt = 0;
- if(p_vEInstrAsgnmVOList.size() > 0) totCnt = p_vEInstrAsgnmVOList.get(0).getTotCnt();
- p_paginationInfo.setTotalRecordCount(totCnt);
-
- return p_paginationInfo;
- }
-
- /**
- * Disposition 지정하기.
- *
- * @param filename
- * @param request
- * @param response
- * @throws Exception
- */
- private void setDisposition(String filename, HttpServletRequest request, HttpServletResponse response) throws Exception {
- String browser = getBrowser(request);
-
- String dispositionPrefix = "attachment; filename=";
- String encodedFilename = null;
-
- if (browser.equals("MSIE")) {
- encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20");
- } else if (browser.equals("Trident")) { // IE11 문자열 깨짐 방지
- encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20");
- } else if (browser.equals("Firefox")) {
- encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
- } else if (browser.equals("Opera")) {
- encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
- } else if (browser.equals("Chrome")) {
- StringBuffer sb = new StringBuffer();
- for (int i = 0; i < filename.length(); i++) {
- char c = filename.charAt(i);
- if (c > '~') {
- sb.append(URLEncoder.encode("" + c, "UTF-8"));
- } else {
- sb.append(c);
- }
- }
- encodedFilename = sb.toString();
- } else {
- //throw new RuntimeException("Not supported browser");
- throw new IOException("Not supported browser");
- }
-
-// response.setHeader("Content-Disposition", dispositionPrefix + encodedFilename); // 파일명에 콤마 포함시 오류
- response.setHeader("Content-Disposition", dispositionPrefix + "\"" + encodedFilename + "\"");
-
- if ("Opera".equals(browser)) {
- response.setContentType("application/octet-stream;charset=UTF-8");
- }
- }
-
-}
+package kcc.ve.instr.adultVisitEdu.endInfo.web;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.net.URLEncoder;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.util.FileCopyUtils;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
+import kcc.com.cmm.EgovMessageSource;
+import kcc.com.cmm.LoginVO;
+import kcc.com.cmm.service.EgovFileMngService;
+import kcc.com.cmm.service.FileVO;
+import kcc.com.cmm.util.IpUtil;
+import kcc.com.cmm.web.EgovFileDownloadController;
+import kcc.com.utl.user.service.CheckFileUtil;
+import kcc.com.utl.user.service.CheckLoginUtil;
+import kcc.kccadr.sch.service.SchduleManageService;
+import kcc.kccadr.sch.service.SchduleManageVO;
+import kcc.let.uat.uia.service.SsoLoginVO;
+import kcc.let.utl.fcc.service.EgovCryptoUtil;
+import kcc.let.utl.fcc.service.EgovCryptoUtil4VO;
+import kcc.let.utl.fcc.service.VisitEduTransUtil;
+import kcc.ve.cmm.VeConstants;
+import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAcmdtAplctService;
+import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService;
+import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO;
+import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeAcmdtVO;
+import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeService;
+import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
+import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService;
+import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
+import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
+import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
+import kcc.ve.instr.tngrVisitEdu.rprtInfo.service.VEEduRprtVO;
+import kcc.ve.instr.tngrVisitEdu.rprtInfo.service.VEEduRsltRprtService;
+import kcc.ve.oprtn.asgnmnoti.service.VEAsgnmNotiService;
+import kcc.ve.oprtn.asgnmnoti.service.VEAsgnmNotiVO;
+
+
+@Controller
+public class VEAdultEduEndController {
+
+ // eGov 공통 메세지
+ @Resource(name = "egovMessageSource")
+ EgovMessageSource egovMessageSource;
+
+ //로그인 체크 util
+ @Resource(name = "checkLoginUtil")
+ private CheckLoginUtil checkLoginUtil;
+
+ //암복호화 유틸
+ @Resource(name = "egovCryptoUtil")
+ EgovCryptoUtil egovCryptoUtil;
+
+ //강사상세 정보
+ @Resource(name="vEInstrDetailService")
+ private VEInstrDetailService vEInstrDetailService;
+
+ //결과보고
+ @Resource(name="vEEduRsltRprtService")
+ private VEEduRsltRprtService vEEduRsltRprtService;
+
+ //배정 MIX 정보
+ @Resource(name="vEAsgnmMIXService")
+ private VEAsgnmMIXService vEAsgnmMIXService;
+
+ //강의
+ @Resource(name="vEPrcsService")
+ private VEPrcsService vEPrcsService;
+
+ //강사료
+ @Resource(name="vEInstrFeeService")
+ private VEInstrFeeService vEInstrFeeService;
+
+ //숙박
+ @Resource(name="vEAcmdtAplctService")
+ private VEAcmdtAplctService vEAcmdtAplctService;
+
+ //VO 암/복호화
+ @Resource(name="egovCryptoUtil4VO")
+ private EgovCryptoUtil4VO egovCryptoUtil4VO;
+
+ // 파일첨부
+ @Resource(name = "EgovFileMngService")
+ private EgovFileMngService fileService;
+
+ //파일 체크 util
+ @Resource(name = "checkFileUtil")
+ private CheckFileUtil checkFileUtil;
+
+ //NOTI 서비스
+ @Resource(name="vEAsgnmNotiService")
+ private VEAsgnmNotiService vEAsgnmNotiService;
+
+ //일정 정보
+ @Resource(name = "schduleManageService")
+ private SchduleManageService schduleManageService;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileDownloadController.class);
+
+ /**
+ * 브라우저 구분 얻기.
+ *
+ * @param request
+ * @return
+ */
+ private String getBrowser(HttpServletRequest request) {
+ String header = request.getHeader("User-Agent");
+ if (header.indexOf("MSIE") > -1) {
+ return "MSIE";
+ } else if (header.indexOf("Trident") > -1) { // IE11 문자열 깨짐 방지
+ return "Trident";
+ } else if (header.indexOf("Chrome") > -1) {
+ return "Chrome";
+ } else if (header.indexOf("Opera") > -1) {
+ return "Opera";
+ }
+ return "Firefox";
+ }
+
+ //청소년강사 강의 종료교육 목록
+ @RequestMapping("/web/ve/instr/adultVisitEdu/endInfo/instrEduEndList.do")
+ public String instrEduEndList(
+ @ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
+
+ , ModelMap model
+ , RedirectAttributes redirectAttributes
+ , HttpSession session
+ , HttpServletRequest request
+ ) throws Exception {
+
+ //로그인 처리====================================
+ //로그인 정보 가져오기
+
+ LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
+ SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
+
+ if (loginVO == null || ssoLoginVO == null) {
+ return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
+ }
+ model.addAttribute("ssoLoginVO", ssoLoginVO);
+ model.addAttribute("loginVO", loginVO);
+ //로그인 처리====================================
+
+
+ //3.pageing step1
+ PaginationInfo paginationInfo = this.setPagingStep1(vEInstrAsgnmVO);
+
+
+ //4. pageing step2
+ vEInstrAsgnmVO = this.setPagingStep2(vEInstrAsgnmVO, paginationInfo);
+
+ vEInstrAsgnmVO.setUserId(loginVO.getUniqId());
+ vEInstrAsgnmVO.setInstrDiv("20");
+ vEInstrAsgnmVO.setAsgnmAprvlCd("30"); // 강사확정코드 => 요청대기 : 10, 수락요청 : 20, 교육확정 : 30, 수락거절 : 40, 추가신청 : 50
+
+ try {
+ System.out.println("session.getAttribute(menuNo).toString()");
+ System.out.println(session.getAttribute("menuNo").toString());
+ vEInstrAsgnmVO.setMenuNo(session.getAttribute("menuNo").toString());
+ }catch(Exception ex) {
+ ex.printStackTrace();
+ vEInstrAsgnmVO.setMenuNo("9991300");
+ }
+
+ List vEInstrAsgnmVOList = vEAsgnmMIXService.selectAsgnmPagingList(vEInstrAsgnmVO);
+
+ //6.pageing step3
+ paginationInfo = this.setPagingStep3(vEInstrAsgnmVOList, paginationInfo);
+ model.addAttribute("paginationInfo", paginationInfo);
+
+
+ //fee 계산하기
+ //feeSum4Dp
+ vEInstrAsgnmVOList = VisitEduTransUtil.transData4feeSum(vEInstrAsgnmVOList);
+
+
+ //대상 리스트, 페이징 정보 전달
+ model.addAttribute("vEInstrAsgnmVOList", vEInstrAsgnmVOList);
+
+
+ return "/web/ve/instr/adultVisitEdu/endInfo/instrEduEndList";
+ }
+
+ //청소년강사 강의 종료교육 목록
+ @RequestMapping("/web/ve/instr/adultVisitEdu/endInfo/instrEduEndSchdl.do")
+ public String instrEduEndSchdl(
+ @ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
+
+ , ModelMap model
+ , RedirectAttributes redirectAttributes
+ , HttpSession session
+ , HttpServletRequest request
+ ) throws Exception {
+
+ //로그인 처리====================================
+ //로그인 정보 가져오기
+
+ LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
+ SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
+
+ if (loginVO == null || ssoLoginVO == null) {
+ return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
+ }
+ model.addAttribute("ssoLoginVO", ssoLoginVO);
+ model.addAttribute("loginVO", loginVO);
+ //로그인 처리====================================
+
+
+ //3.pageing step1
+ PaginationInfo paginationInfo = this.setPagingStep1(vEInstrAsgnmVO);
+
+
+ //4. pageing step2
+ vEInstrAsgnmVO = this.setPagingStep2(vEInstrAsgnmVO, paginationInfo);
+
+ vEInstrAsgnmVO.setUserId(loginVO.getUniqId());
+ vEInstrAsgnmVO.setInstrDiv("20");
+ vEInstrAsgnmVO.setAsgnmAprvlCd("30"); // 강사확정코드 => 요청대기 : 10, 수락요청 : 20, 교육확정 : 30, 수락거절 : 40, 추가신청 : 50
+
+ try {
+ System.out.println("session.getAttribute(menuNo).toString()");
+ System.out.println(session.getAttribute("menuNo").toString());
+ vEInstrAsgnmVO.setMenuNo(session.getAttribute("menuNo").toString());
+ }catch(Exception ex) {
+ ex.printStackTrace();
+ vEInstrAsgnmVO.setMenuNo("9991300");
+ }
+
+ List vEInstrAsgnmVOList = vEAsgnmMIXService.selectAsgnmPagingList(vEInstrAsgnmVO);
+
+ //6.pageing step3
+ paginationInfo = this.setPagingStep3(vEInstrAsgnmVOList, paginationInfo);
+ model.addAttribute("paginationInfo", paginationInfo);
+
+
+ //대상 리스트, 페이징 정보 전달
+ model.addAttribute("vEInstrAsgnmVOList", vEInstrAsgnmVOList);
+
+
+ return "/web/ve/instr/adultVisitEdu/endInfo/instrEduEndSchdl";
+ }
+
+ @RequestMapping(value = "/web/ve/instr/adultVisitEdu/endInfo/adultSchduleManagerAjaxLoadData.do")
+ @ResponseBody
+ public List adultSchduleManagerAjaxLoadData(@ModelAttribute("schduleManageVO") SchduleManageVO schduleManageVO, ModelMap model) throws Exception {
+ schduleManageVO.setAprvlCd("60");
+ schduleManageVO.setLctrDivCd("10");
+
+ schduleManageVO.setSearchStartDt(schduleManageVO.getSearchStartDt().split("T")[0].replaceAll("-", ""));
+
+ return schduleManageService.selectSchManageStatusList(schduleManageVO);
+ }
+
+ //청소년강사 강의 종료교육 상세
+ @RequestMapping("/web/ve/instr/adultVisitEdu/endInfo/instrEduEndDetail.do")
+ public String instrEduEndDetail(
+ @ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
+
+ , ModelMap model
+ , RedirectAttributes redirectAttributes
+ , HttpSession session
+ , HttpServletRequest request
+ ) throws Exception {
+
+ try{
+ System.out.println("adultVisitEdu-endInfo-instrEduEndDetail");
+ //로그인 처리====================================
+ //로그인 정보 가져오기
+
+ LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
+ SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
+
+ if (loginVO == null || ssoLoginVO == null) {
+ return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
+ }
+ model.addAttribute("ssoLoginVO", ssoLoginVO);
+ model.addAttribute("loginVO", loginVO);
+ //로그인 처리====================================
+
+ // 교육차시 강사배정 정보
+ VEInstrAsgnmVO vEInstrAsgnmVOInfo = new VEInstrAsgnmVO();
+ vEInstrAsgnmVOInfo = vEAsgnmMIXService.selectAsgnmRqstDetail(vEInstrAsgnmVO);
+
+ // 강사 상세정보
+ VEInstrDetailVO vEInstrDetailVOInfo = new VEInstrDetailVO();
+ vEInstrDetailVOInfo.setInstrDiv("20");
+ vEInstrDetailVOInfo.setUserId(loginVO.getUniqId());
+ vEInstrDetailVOInfo.setUseYn("Y");
+ vEInstrDetailVOInfo = vEInstrDetailService.selectDetail(vEInstrDetailVOInfo);
+ if (vEInstrDetailVOInfo != null) {
+ //데이터 복호화 - VO 단위로 만들어서 사용
+ VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
+ vEEduAplctVO.setInstrNm(vEInstrDetailVOInfo.getInstrNm());
+ vEEduAplctVO = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVO);
+ vEInstrDetailVOInfo.setInstrNm(vEEduAplctVO.getInstrNm());
+ }
+
+ //강사료
+ VEInstrFeeAcmdtVO instrFee = new VEInstrFeeAcmdtVO();
+ instrFee.setEduAplctOrd(vEInstrAsgnmVO.getEduAplctOrd());
+ instrFee.setEduChasiOrd(vEInstrAsgnmVO.getEduChasiOrd());
+
+ instrFee = vEInstrFeeService.selectDetail(instrFee);
+
+ //강사료 제외 합계
+ int instrFeeSum = Integer.parseInt(instrFee.getInstrFee())
+ + Integer.parseInt(instrFee.getBsnsTripFee())
+ + Integer.parseInt(instrFee.getSpareFee());
+ instrFee.setInstrFeeSum(instrFeeSum);
+
+
+ //사용자 교육신청 과정 리스트
+ VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
+ vEPrcsDetailVO.setUseYn("Y");
+ vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_20);
+ List vEPrcsDetailVOList = vEPrcsService.selectTngrPrcsList(vEPrcsDetailVO);
+ model.addAttribute("prcsList", vEPrcsDetailVOList);
+
+
+ //파일 정보 가져오기
+ int fileCnt = 0;
+ List result = null;
+ if (vEInstrAsgnmVOInfo != null) {
+ FileVO fileVO = new FileVO();
+ fileVO.setAtchFileId(vEInstrAsgnmVOInfo.getLctrPlanAtchFileId());
+ result = fileService.selectFileInfs(fileVO);
+ fileCnt = result.size();
+ }
+ else {
+ fileCnt = 0;
+ }
+ model.addAttribute("fileList", result);
+ model.addAttribute("fileListCnt", fileCnt);
+
+
+ //대상 리스트, 페이징 정보 전달
+ model.addAttribute("eduAplctOrd", vEInstrAsgnmVO.getEduAplctOrd());
+ model.addAttribute("eduChasiOrd", vEInstrAsgnmVO.getEduChasiOrd());
+ model.addAttribute("info", vEInstrAsgnmVOInfo);
+ model.addAttribute("info2", vEInstrDetailVOInfo);
+ model.addAttribute("instrFee", instrFee);
+ model.addAttribute("cryptoUtil",egovCryptoUtil);
+
+ //20220222 우영두 추가
+ //강의내역 NOTI 입력
+ VEAsgnmNotiVO vEAsgnmNotiVO = new VEAsgnmNotiVO();
+
+ vEAsgnmNotiVO.setTblUniqOrd(vEInstrAsgnmVO.getEduChasiOrd());
+ vEAsgnmNotiVO.setFrstRegisterId(loginVO.getUniqId());
+
+ try {
+ System.out.println("session.getAttribute(menuNo).toString()");
+ System.out.println(session.getAttribute("menuNo").toString());
+ vEAsgnmNotiVO.setMenuNo(session.getAttribute("menuNo").toString());
+ }catch(Exception ex) {
+ ex.printStackTrace();
+ }
+
+ vEAsgnmNotiVO.setUrlPath(IpUtil.getRequestURI(request));
+
+ vEAsgnmNotiService.insertAsgnmNotiInfo(vEAsgnmNotiVO);
+
+ }catch(Exception ex) {
+ ex.printStackTrace();
+ }
+
+ return "/web/ve/instr/adultVisitEdu/endInfo/instrEduEndDetail";
+ }
+
+ /**
+ * 결과보고 팝업
+ */
+ @RequestMapping("/web/ve/instr/adultVisitEdu/endInfo/popup/eduRsltRprtRegPop.do")
+ public String filePopup(
+ @ModelAttribute("vEEduRprtVO") VEEduRprtVO vEEduRprtVO
+ ,@ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
+ , ModelMap model
+ , HttpServletRequest request
+ ) throws Exception {
+
+ try {
+ vEEduRprtVO = vEEduRsltRprtService.selectDetail(vEEduRprtVO);
+
+ //파일 정보 가져오기
+ int fileCnt = 0;
+ List result = null;
+ if (vEEduRprtVO != null) {
+ FileVO fileVO = new FileVO();
+ fileVO.setAtchFileId(vEEduRprtVO.getAtchFileId());
+ result = fileService.selectFileInfs(fileVO);
+ fileCnt = result.size();
+ }
+ else {
+ fileCnt = 0;
+ }
+ model.addAttribute("fileList", result);
+ model.addAttribute("fileListCnt", fileCnt);
+ model.addAttribute("vEEduRprtVO", vEEduRprtVO);
+ model.addAttribute("vEInstrAsgnmVO", vEInstrAsgnmVO);
+ }
+ catch(Exception ex) {
+ ex.printStackTrace();
+ }
+
+ return "/web/ve/instr/adultVisitEdu/endInfo/popup/eduRsltRprtRegPop";
+ }
+
+ /**
+ * 숙박신청자 영수증 등록 팝업
+ */
+ @RequestMapping("/web/ve/instr/adultVisitEdu/endInfo/popup/eduAcmdtRegPop.do")
+ public String eduAcmdtRegPop(
+ @ModelAttribute("vEInstrFeeAcmdtVO") VEInstrFeeAcmdtVO vEInstrFeeAcmdtVO
+ ,@ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
+ , ModelMap model
+ , HttpServletRequest request
+ ) throws Exception {
+
+ try {
+ vEInstrFeeAcmdtVO = vEAcmdtAplctService.selectDetail(vEInstrFeeAcmdtVO);
+
+ //파일 정보 가져오기
+ int fileCnt = 0;
+ List result = null;
+ if (vEInstrFeeAcmdtVO != null) {
+ FileVO fileVO = new FileVO();
+ fileVO.setAtchFileId(vEInstrFeeAcmdtVO.getAtchFileId());
+ result = fileService.selectFileInfs(fileVO);
+ fileCnt = result.size();
+ }
+ else {
+ fileCnt = 0;
+ }
+ model.addAttribute("fileList", result);
+ model.addAttribute("fileListCnt", fileCnt);
+ model.addAttribute("vEInstrFeeAcmdtVO", vEInstrFeeAcmdtVO);
+ model.addAttribute("vEInstrAsgnmVO", vEInstrAsgnmVO);
+ }
+ catch(Exception ex) {
+ ex.printStackTrace();
+ }
+
+ return "/web/ve/instr/adultVisitEdu/endInfo/popup/eduAcmdtPop";
+ }
+
+ /**
+ * 결과보고 Ajax
+ */
+ @RequestMapping("/web/ve/instr/adultVisitEdu/endInfo/popup/eduRsltRprtPopupAjax.do")
+ public ModelAndView filePopupAjax(
+ @ModelAttribute("vEEduRprtVO") VEEduRprtVO vEEduRprtVO
+ , ModelMap model
+ //, RedirectAttributes redirectAttributes
+ , HttpServletRequest request
+ , final MultipartHttpServletRequest multiRequest
+ ) throws Exception {
+
+ ModelAndView modelAndView = new ModelAndView();
+ modelAndView.setViewName("jsonView");
+
+ //로그인 처리====================================
+ //로그인 정보 가져오기
+ /*
+ String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request);
+ if (!"".equals(s_userCheckNInfo)) {
+ modelAndView.addObject("result", "loginFail");
+ return modelAndView;
+ }
+ */
+
+ LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
+ //SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
+
+ //로그인 처리====================================
+
+
+ //step2.파일 처리====================================
+ //파일 정상 처리 여부와 첨부 파일 정보
+ //String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO);
+ //파일 제한 수량 가져오기, 없으면 기본값 사용
+ int i_file_limit = checkFileUtil.getLimitCount(request); // file count
+ int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
+ String s_file_exts = checkFileUtil.getS_exts(); // file exts
+
+
+ //step2.기존 첨부파일 체크 후 저장 하기
+ String s_atchFileId = "";
+ VEEduRprtVO fileVEEduAplctVO = vEEduRsltRprtService.selectDetail(vEEduRprtVO);
+ if (fileVEEduAplctVO != null) {
+ s_atchFileId = fileVEEduAplctVO.getAtchFileId();
+ }
+
+ //DB에서 실제 첨부파일 존재 여부 확인
+ FileVO fileVO = new FileVO();
+ fileVO.setAtchFileId(s_atchFileId);
+ List result = fileService.selectFileInfs(fileVO);
+ if (result.size()<=0) {
+ s_atchFileId = "";
+ }
+
+ if ("".equals(s_atchFileId)) {
+ s_atchFileId = checkFileUtil.fileValCheckNdbInsert(
+ multiRequest, modelAndView
+ , "EDURSLTRPRT_" //file_name_prefix
+ , s_file_exts
+ , i_limit_size
+ , i_file_limit
+ ); //EXT, MB size and ea
+ }else {
+ s_atchFileId = checkFileUtil.fileValCheckNdbUpdate(
+ multiRequest, modelAndView
+ , "EDURSLTRPRT_" //file_name_prefix
+ , s_file_exts
+ , i_limit_size
+ , i_file_limit
+ , s_atchFileId
+ );
+ }
+
+ if ("ERROR".equals(s_atchFileId)) return modelAndView;
+
+ //step2.파일 처리====================================
+
+ try {
+ //결과 저장
+ vEEduRprtVO.setAtchFileId(s_atchFileId);
+
+ //최초등록 시
+ if(fileVEEduAplctVO == null) {
+ vEEduRprtVO.setFrstRegisterId(loginVO.getUniqId());
+ } else { //수정 시
+ vEEduRprtVO.setLastUpdusrId(loginVO.getUniqId());
+ }
+
+ vEEduRsltRprtService.insert(vEEduRprtVO);
+
+ }catch(Exception ex) {
+ System.out.println("Exception vEEduRsltRprtService.insert");
+ }
+
+ modelAndView.addObject("result", "success");
+
+ return modelAndView;
+ }
+
+ /**
+ * 영수증 등록 Ajax
+ */
+ @RequestMapping("/web/ve/instr/adultVisitEdu/endInfo/popup/eduAcmdtPopupAjax.do")
+ public ModelAndView eduAcmdtPopupAjax(
+ @ModelAttribute("vEInstrFeeAcmdtVO") VEInstrFeeAcmdtVO vEInstrFeeAcmdtVO
+ , ModelMap model
+ //, RedirectAttributes redirectAttributes
+ , HttpServletRequest request
+ , final MultipartHttpServletRequest multiRequest
+ ) throws Exception {
+
+ ModelAndView modelAndView = new ModelAndView();
+ modelAndView.setViewName("jsonView");
+
+ //로그인 처리====================================
+ //로그인 정보 가져오기
+ /*
+ String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request);
+ if (!"".equals(s_userCheckNInfo)) {
+ modelAndView.addObject("result", "loginFail");
+ return modelAndView;
+ }
+ */
+
+ LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
+ //SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
+
+ //로그인 처리====================================
+
+
+ //step2.파일 처리====================================
+ //파일 정상 처리 여부와 첨부 파일 정보
+ //String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO);
+ //파일 제한 수량 가져오기, 없으면 기본값 사용
+ int i_file_limit = checkFileUtil.getLimitCount(request); // file count
+ int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
+ String s_file_exts = checkFileUtil.getS_exts(); // file exts
+
+
+ //step2.기존 첨부파일 체크 후 저장 하기
+ String s_atchFileId = "";
+ VEInstrFeeAcmdtVO acmdtVO = vEAcmdtAplctService.selectDetail(vEInstrFeeAcmdtVO);
+ s_atchFileId = acmdtVO.getAtchFileId();
+
+ //DB에서 실제 첨부파일 존재 여부 확인
+ FileVO fileVO = new FileVO();
+ fileVO.setAtchFileId(s_atchFileId);
+ List result = fileService.selectFileInfs(fileVO);
+ if (result.size()<=0) {
+ s_atchFileId = "";
+ }
+
+ if ("".equals(s_atchFileId)) {
+ s_atchFileId = checkFileUtil.fileValCheckNdbInsert(
+ multiRequest, modelAndView
+ , "ACMDTRECEIPT_" //file_name_prefix
+ , s_file_exts
+ , i_limit_size
+ , i_file_limit
+ ); //EXT, MB size and ea
+ }else {
+ s_atchFileId = checkFileUtil.fileValCheckNdbUpdate(
+ multiRequest, modelAndView
+ , "ACMDTRECEIPT_" //file_name_prefix
+ , s_file_exts
+ , i_limit_size
+ , i_file_limit
+ , s_atchFileId
+ );
+ }
+
+ if ("ERROR".equals(s_atchFileId)) return modelAndView;
+
+ //step2.파일 처리====================================
+
+ try {
+ //결과 저장
+ vEInstrFeeAcmdtVO.setAtchFileId(s_atchFileId);
+ vEInstrFeeAcmdtVO.setLastUpdusrId(loginVO.getUniqId());
+
+ vEAcmdtAplctService.update(vEInstrFeeAcmdtVO);
+
+ }catch(Exception ex) {
+ System.out.println("Exception vEAcmdtAplctService.update");
+ }
+
+ modelAndView.addObject("result", "success");
+
+ return modelAndView;
+ }
+
+ //첨부파일 이름 변경하여 다운로드
+ /**
+ * 첨부파일로 등록된 파일에 대하여 다운로드를 제공한다.
+ *
+ * @param commandMap
+ * @param response
+ * @throws Exception
+ */
+ @RequestMapping(value = "/web/ve/instr/adultVisitEdu/endInfo/FileDown.do")
+ public void cvplFileDownload(@RequestParam Map commandMap, HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ String atchFileId = (String) commandMap.get("atchFileId");
+ String fileSn = (String) commandMap.get("fileSn");
+ String newFileNm = (String) commandMap.get("newFileNm");
+
+ /*Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();*/
+
+ /*if (isAuthenticated) {*/
+
+ FileVO fileVO = new FileVO();
+ fileVO.setAtchFileId(atchFileId);
+ fileVO.setFileSn(fileSn);
+ FileVO fvo = fileService.selectFileInf(fileVO);
+ if(fvo == null){
+ response.setContentType("application/x-msdownload");
+ PrintWriter printwriter = response.getWriter();
+ printwriter.println("");
+ printwriter.println("
Could not get file name:
");
+ printwriter.println("
");
+ printwriter.println("
© webAccess");
+ printwriter.println("");
+ printwriter.flush();
+ printwriter.close();
+ return ;
+ }
+
+ File uFile = new File(fvo.getFileStreCours(), fvo.getStreFileNm());
+ long fSize = uFile.length();
+
+ if (fSize > 0) {
+ String mimetype = "application/x-msdownload";
+
+ response.setContentType(mimetype);
+// setDisposition(fvo.getOrignlFileNm(), request, response);
+ setDisposition(newFileNm+"."+fvo.getFileExtsn(), request, response); //받아온 파일명으로 다운로드 실행
+ //response.setContentLength(fSize);
+
+ BufferedInputStream in = null;
+ BufferedOutputStream out = null;
+
+ try {
+ in = new BufferedInputStream(new FileInputStream(uFile));
+ out = new BufferedOutputStream(response.getOutputStream());
+
+ FileCopyUtils.copy(in, out);
+ out.flush();
+ } catch (Exception ex) {
+ LOGGER.debug("IGNORED: {}", ex.getMessage());
+ } finally {
+ if (in != null) {
+ try {
+ in.close();
+ } catch (Exception ignore) {
+ LOGGER.debug("IGNORED: {}", ignore.getMessage());
+ }
+ }
+ if (out != null) {
+ try {
+ out.close();
+ } catch (Exception ignore) {
+ LOGGER.debug("IGNORED: {}", ignore.getMessage());
+ }
+ }
+ }
+
+ } else {
+ response.setContentType("application/x-msdownload");
+
+ PrintWriter printwriter = response.getWriter();
+ printwriter.println("");
+ printwriter.println("
Could not get file name:
" + fvo.getOrignlFileNm() + "
");
+ printwriter.println("
");
+ printwriter.println("
© webAccess");
+ printwriter.println("");
+ printwriter.flush();
+ printwriter.close();
+ }
+ /*}*/
+ }
+
+
+
+
+ //페이징을 위한 처리 step1 - 페이징 기본 정보 설정
+ private PaginationInfo setPagingStep1(
+ VEInstrAsgnmVO p_vEInstrAsgnmVO
+ )throws Exception{
+ // pageing step1
+ PaginationInfo paginationInfo = new PaginationInfo();
+ paginationInfo.setCurrentPageNo(p_vEInstrAsgnmVO.getPageIndex());
+ paginationInfo.setRecordCountPerPage(p_vEInstrAsgnmVO.getPageUnit());
+ paginationInfo.setPageSize(p_vEInstrAsgnmVO.getPageSize());
+
+ return paginationInfo;
+ }
+
+
+ //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 및 검색 조건 초기화
+ private VEInstrAsgnmVO setPagingStep2(
+ VEInstrAsgnmVO p_vEInstrAsgnmVO
+ , PaginationInfo p_paginationInfo
+ )throws Exception{
+ // pageing step2
+ p_vEInstrAsgnmVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex());
+ p_vEInstrAsgnmVO.setLastIndex(p_paginationInfo.getLastRecordIndex());
+ p_vEInstrAsgnmVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
+
+ if("".equals(p_vEInstrAsgnmVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
+ p_vEInstrAsgnmVO.setSearchSortCnd("user_id");
+ p_vEInstrAsgnmVO.setSearchSortOrd("desc");
+ }
+
+ return p_vEInstrAsgnmVO;
+ }
+
+
+ //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
+ private PaginationInfo setPagingStep3(
+ List p_vEInstrAsgnmVOList
+ , PaginationInfo p_paginationInfo
+ )throws Exception{
+ // pageing step3
+ int totCnt = 0;
+ if(p_vEInstrAsgnmVOList.size() > 0) totCnt = p_vEInstrAsgnmVOList.get(0).getTotCnt();
+ p_paginationInfo.setTotalRecordCount(totCnt);
+
+ return p_paginationInfo;
+ }
+
+ /**
+ * Disposition 지정하기.
+ *
+ * @param filename
+ * @param request
+ * @param response
+ * @throws Exception
+ */
+ private void setDisposition(String filename, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ String browser = getBrowser(request);
+
+ String dispositionPrefix = "attachment; filename=";
+ String encodedFilename = null;
+
+ if (browser.equals("MSIE")) {
+ encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20");
+ } else if (browser.equals("Trident")) { // IE11 문자열 깨짐 방지
+ encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20");
+ } else if (browser.equals("Firefox")) {
+ encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
+ } else if (browser.equals("Opera")) {
+ encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
+ } else if (browser.equals("Chrome")) {
+ StringBuffer sb = new StringBuffer();
+ for (int i = 0; i < filename.length(); i++) {
+ char c = filename.charAt(i);
+ if (c > '~') {
+ sb.append(URLEncoder.encode("" + c, "UTF-8"));
+ } else {
+ sb.append(c);
+ }
+ }
+ encodedFilename = sb.toString();
+ } else {
+ //throw new RuntimeException("Not supported browser");
+ throw new IOException("Not supported browser");
+ }
+
+// response.setHeader("Content-Disposition", dispositionPrefix + encodedFilename); // 파일명에 콤마 포함시 오류
+ response.setHeader("Content-Disposition", dispositionPrefix + "\"" + encodedFilename + "\"");
+
+ if ("Opera".equals(browser)) {
+ response.setContentType("application/octet-stream;charset=UTF-8");
+ }
+ }
+
+}
diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEInstrAsgnmVO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEInstrAsgnmVO.java
index 1dec77ea..119d4285 100644
--- a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEInstrAsgnmVO.java
+++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEInstrAsgnmVO.java
@@ -155,6 +155,8 @@ public class VEInstrAsgnmVO extends ComDefaultVO implements Serializable {
private String aplctCn; //신청내용
private String rqstCn; //요청내용
+ private String feeSum4Dp; //화면에 표시되는 fee 계산용
+
public String getMemoCn() {
return memoCn;
@@ -774,5 +776,11 @@ public class VEInstrAsgnmVO extends ComDefaultVO implements Serializable {
public void setRqstCn(String rqstCn) {
this.rqstCn = rqstCn;
}
+ public String getFeeSum4Dp() {
+ return feeSum4Dp;
+ }
+ public void setFeeSum4Dp(String feeSum4Dp) {
+ this.feeSum4Dp = feeSum4Dp;
+ }
}
diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/web/VEAsgnmController.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/web/VEAsgnmController.java
index 7853382e..cb72fb2c 100644
--- a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/web/VEAsgnmController.java
+++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/web/VEAsgnmController.java
@@ -23,6 +23,7 @@ import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.let.utl.fcc.service.EgovCryptoUtil4VO;
+import kcc.let.utl.fcc.service.VisitEduTransUtil;
import kcc.ve.cmm.VeConstants;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAcmdtAplctService;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService;
@@ -279,9 +280,11 @@ public class VEAsgnmController {
if(StringUtils.isNotEmpty(acmdtCnfrmVO.getAcmdtSbmtYn()))
t.setAcmdtSbmtYn(acmdtCnfrmVO.getAcmdtSbmtYn());
if(StringUtils.isNotEmpty(acmdtCnfrmVO.getAcmdtSbmtYn()))
- t.setAcmdtAprvlCd(acmdtCnfrmVO.getAcmdtSbmtYn());
+ //t.setAcmdtAprvlCd(acmdtCnfrmVO.getAcmdtSbmtYn());
+ ;
if(StringUtils.isNotEmpty(acmdtCnfrmVO.getAcmdtSbmtYn()))
- t.setAcmdtFee(acmdtCnfrmVO.getAcmdtSbmtYn());
+ t.setAcmdtFee(acmdtCnfrmVO.getAcmdtSbmtYn());
+
}
} catch (Exception e) {
// TODO Auto-generated catch block
@@ -296,6 +299,11 @@ public class VEAsgnmController {
model.addAttribute("paginationInfo", paginationInfo);
+ //fee 계산하기
+ //feeSum4Dp
+ vEInstrAsgnmVOList = VisitEduTransUtil.transData4feeSum(vEInstrAsgnmVOList);
+
+
//대상 리스트, 페이징 정보 전달
model.addAttribute("vEInstrAsgnmVOList", vEInstrAsgnmVOList);
diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/endInfo/web/VEEduEndController.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/endInfo/web/VEEduEndController.java
index 474b5fb0..a0dfd837 100644
--- a/src/main/java/kcc/ve/instr/tngrVisitEdu/endInfo/web/VEEduEndController.java
+++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/endInfo/web/VEEduEndController.java
@@ -39,6 +39,7 @@ import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.let.utl.fcc.service.EgovCryptoUtil4VO;
+import kcc.let.utl.fcc.service.VisitEduTransUtil;
import kcc.ve.cmm.VeConstants;
import kcc.ve.cmm.VeInstrFeeMng;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAcmdtAplctService;
@@ -211,6 +212,11 @@ public class VEEduEndController {
model.addAttribute("paginationInfo", paginationInfo);
+ //fee 계산하기
+ //feeSum4Dp
+ vEInstrAsgnmVOList = VisitEduTransUtil.transData4feeSum(vEInstrAsgnmVOList);
+
+
//대상 리스트, 페이징 정보 전달
model.addAttribute("vEInstrAsgnmVOList", vEInstrAsgnmVOList);
diff --git a/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAcmdtAplct_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAcmdtAplct_SQL_Tibero.xml
index aaa0ec12..1f7806a9 100644
--- a/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAcmdtAplct_SQL_Tibero.xml
+++ b/src/main/resources/egovframework/sqlmap/ve/asgnm/VEAcmdtAplct_SQL_Tibero.xml
@@ -205,6 +205,7 @@
, bb.aplctCn
, bb.acmdtFee
, bb.acmdtAplctOrd
+ , bb.aprvlCn
FROM (
SELECT a.EDU_HOPE_DT, b.USER_ID
@@ -227,13 +228,17 @@
, a.aprvl_cd AS aprvlCd
, a.aplct_cn AS aplctCn
, a.acmdt_fee AS acmdtFee
- , a.acmdt_aplct_ord AS AcmdtAplctOrd
+ , a.acmdt_aplct_ord AS AcmdtAplctOrd
+ , a.aprvl_cn AS aprvlCn
FROM ve_acmdt_aplct a
, ve_edu_chasi b
, ve_edu_chasi_instr_asgnm c
WHERE 1 =1
+ /*
+ 숙박신청한 경우가 있으면 모두 가져와야 한다.
AND NVL(a.APRVL_CD,'10') ='10'
+ */
AND a.SBMT_YN ='Y'
AND a.USE_YN ='Y'
AND a.edu_aplct_ord = b.edu_aplct_ord
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 4e2d1ce1..dce722ef 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
@@ -653,7 +653,7 @@
,cnt
,notiCnt
FROM
- ( SELECT DISTINCT
+ ( SELECT
a.user_id AS userId
, a.edu_aplct_ord AS eduAplctOrd
, a.edu_chasi_ord AS eduChasiOrd
@@ -688,7 +688,7 @@
LEFT OUTER JOIN ve_acmdt_aplct d
ON (
a.edu_aplct_ord = d.edu_aplct_ord
-
+ and a.edu_chasi_ord = d.edu_chasi_ord
and d.aplct_cn is not null
)
LEFT OUTER JOIN ve_instr_fee e
diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/eduAsgnmCnfrmMngList.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/eduAsgnmCnfrmMngList.jsp
index bce5f939..6e49f6d9 100644
--- a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/eduAsgnmCnfrmMngList.jsp
+++ b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/eduAsgnmCnfrmMngList.jsp
@@ -363,7 +363,7 @@
확정
- 미확정
+ 반려