Restore files lost by merge beb276ac (from 73017623)

This commit is contained in:
leejunho 2025-10-29 14:33:56 +09:00
parent beb276acac
commit 5087d7b50d
5 changed files with 6964 additions and 0 deletions

View File

@ -0,0 +1,667 @@
package kcc.let.my.web;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
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.LoginVO;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.cop.bbs.service.BoardMasterVO;
import kcc.let.cop.bbs.service.BoardVO;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.uss.notify.service.NotifyManageService;
import kcc.let.uss.notify.service.NotifyManageVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.aplct.fndtnEnhanceTrn.service.FndtnEnhanceTrnService;
import kcc.ve.cmm.VeConstants;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
/**
* 게시물 관리를 위한 컨트롤러 클래스
*
* @author 공통 서비스 개발팀 이삼섭
* @since 2009.03.19
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.03.19 이삼섭 최초 생성
* 2009.06.29 한성곤 2단계 기능 추가 (댓글관리, 만족도조사)
* 2011.08.31 JJY 경량환경 템플릿 커스터마이징버전 생성
*
* </pre>
*/
//@Controller
public class MyPageController_back_251028 {
// 로그인 체크 util
@Resource(name = "checkLoginUtil")
private CheckLoginUtil checkLoginUtil;
// 교육과정신청
@Resource(name = "vEEduMIXService")
private VEEduMIXService vEEduMIXService;
//암복호화 유틸
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
//과정차시 관리
@Resource(name = "vEPrcsAplctPrdService")
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
//과정 관리
@Resource(name = "vEPrcsService")
private VEPrcsService vEPrcsService;
//온라인콘텐츠과정 관리
@Resource(name = "fndtnEnhanceTrnService")
private FndtnEnhanceTrnService fndtnEnhanceTrnService;
@Resource(name = "NotifyManageService")
private NotifyManageService notifyManageService;
private static final Logger LOGGER = LoggerFactory.getLogger(MyPageController_back_251028.class);
@RequestMapping(value = { "/web/my/myPageDashBoard.do" })
public String selectFaqListWeb(HttpServletRequest request, @ModelAttribute("searchVO") BoardMasterVO boardMasterVO,
ModelMap model, BoardVO boardVO, RedirectAttributes redirectAttributes) throws Exception {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); // 권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); // SSO 로그인 정보 가져오기
if (loginVO == null || ssoLoginVO == null) {
return checkLoginUtil.getUserLoginPage(model, request); // 로그인 정보가 없으면 로그인 페이지로 이동한다.
}
/*
* 청소년 진행목록
*/
{
/*진행/종료 건수에서 신청/완료 건수로 변경 > 진행/종료는 차시 기준. 신청은 신청 기준이라 조회쿼리 변경*/
/*VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
// 청소년
// 사용자 교육신청 차시 리스트
VEEduChasiVO vEEduChasiVO = new VEEduChasiVO();
vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
vEEduChasiVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10);
vEEduChasiVO.setAprvlCd(VeConstants.STATUS_CD_EDU_SELCT);
vEEduChasiVO.setUserId(loginVO.getUniqId());
vEEduChasiVO.setRecordCountPerPage(1000000);
vEEduChasiVO.setFirstIndex(0);
// List<VEEduChasiVO> vEEduChasiVOList =
// vEEduMIXService.selectChasiList(vEEduChasiVO);
vEEduChasiVO.setPageIndex(vEEduAplctVO.getPageIndex());
vEEduChasiVO.setPageUnit(vEEduAplctVO.getPageUnit());
vEEduChasiVO.setPageSize(vEEduAplctVO.getPageSize());
List<VEEduChasiVO> tngrList = vEEduMIXService.selectChasiListMypage(vEEduChasiVO);
Map<String, String> tngrMap = tngrList.stream()
.collect(Collectors.partitioningBy(vo -> "30".equals(vo.getAsgnmAprvlCd()), Collectors.counting()))
//.collect(Collectors.partitioningBy(vo -> "60".equals(vo.getAprvlCd()), Collectors.counting()))
.entrySet().stream()
.collect(Collectors.toMap(
entry -> entry.getKey() ? "tngrEnd" : "tngrIng",
entry -> entry.getValue().toString()
)
);
System.out.println(tngrMap);
System.out.println(tngrMap);
model.addAttribute("tngrMap", tngrMap);
model.addAttribute("tngrList", tngrList);*/
//신청목록
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
vEEduAplctVO.setUserId(loginVO.getUniqId());
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10);
vEEduAplctVO.setRecordCountPerPage(10);
vEEduAplctVO.setFirstIndex(0);
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingApplyList(vEEduAplctVO);
int tngrAplctCnt = 0;
if(vEEduAplctVOList != null && !vEEduAplctVOList.isEmpty()) {
tngrAplctCnt = vEEduAplctVOList.get(0).getTotCnt();
}
model.addAttribute("tngrAplctCnt", tngrAplctCnt);
//완료목록
VEEduChasiVO vEEduChasiVO = new VEEduChasiVO();
vEEduChasiVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10);
vEEduChasiVO.setAprvlCd(VeConstants.STATUS_CD_EDU_SELCT);
vEEduChasiVO.setUserId(loginVO.getUniqId());
vEEduChasiVO.setSearchStartDt(vEEduAplctVO.getSearchStartDt());
vEEduChasiVO.setSearchEndDt(vEEduAplctVO.getSearchEndDt());
vEEduChasiVO.setRecordCountPerPage(10);
vEEduChasiVO.setFirstIndex(0);
List<VEEduChasiVO> vEEduChasiVOList = vEEduMIXService.selectChasiList(vEEduChasiVO);
int tngrEndCnt = 0;
if(vEEduChasiVOList != null && !vEEduChasiVOList.isEmpty()) {
tngrEndCnt = vEEduChasiVOList.get(0).getTotCnt();
}
model.addAttribute("tngrEndCnt", tngrEndCnt);
model.addAttribute("tngrList", vEEduChasiVOList);
}
/*
* 성인 진행목록
*/
{
/*진행/종료 건수에서 신청/완료 건수로 변경 > 진행/종료는 차시 기준. 신청은 신청 기준이라 조회쿼리 변경*/
/*VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
// 청소년
// 사용자 교육신청 차시 리스트
VEEduChasiVO vEEduChasiVO = new VEEduChasiVO();
vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
vEEduChasiVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_20);
vEEduChasiVO.setAprvlCd(VeConstants.STATUS_CD_EDU_SELCT);
vEEduChasiVO.setUserId(loginVO.getUniqId());
vEEduChasiVO.setRecordCountPerPage(1000000);
vEEduChasiVO.setFirstIndex(0);
// List<VEEduChasiVO> vEEduChasiVOList =
// vEEduMIXService.selectChasiList(vEEduChasiVO);
vEEduChasiVO.setPageIndex(vEEduAplctVO.getPageIndex());
vEEduChasiVO.setPageUnit(vEEduAplctVO.getPageUnit());
vEEduChasiVO.setPageSize(vEEduAplctVO.getPageSize());
List<VEEduChasiVO> adultList = vEEduMIXService.selectChasiListMypage(vEEduChasiVO);
Map<String, String> adultMap = adultList.stream()
.collect(Collectors.partitioningBy(vo -> "30".equals(vo.getAsgnmAprvlCd()), Collectors.counting()))
.entrySet().stream()
.collect(Collectors.toMap(
entry -> entry.getKey() ? "adultEnd" : "adultIng",
entry -> entry.getValue().toString()
)
);
model.addAttribute("adultMap", adultMap);
model.addAttribute("adultList", adultList);*/
//신청목록
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
vEEduAplctVO.setUserId(loginVO.getUniqId());
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_20);
vEEduAplctVO.setRecordCountPerPage(10);
vEEduAplctVO.setFirstIndex(0);
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO);
int adultAplctCnt = 0;
if(vEEduAplctVOList != null && !vEEduAplctVOList.isEmpty()) {
adultAplctCnt = vEEduAplctVOList.get(0).getTotCnt();
}
model.addAttribute("adultAplctCnt", adultAplctCnt);
//완료목록
VEEduChasiVO vEEduChasiVO = new VEEduChasiVO();
vEEduChasiVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_20);
vEEduChasiVO.setAprvlCd(VeConstants.STATUS_CD_EDU_SELCT);
vEEduChasiVO.setUserId(loginVO.getUniqId());
vEEduChasiVO.setRecordCountPerPage(10);
vEEduChasiVO.setFirstIndex(0);
List<VEEduChasiVO> vEEduChasiVOList = vEEduMIXService.selectChasiList(vEEduChasiVO);
int adultEndCnt = 0;
if(vEEduChasiVOList != null && !vEEduChasiVOList.isEmpty()) {
adultEndCnt = vEEduChasiVOList.get(0).getTotCnt();
}
model.addAttribute("adultEndCnt", adultEndCnt);
model.addAttribute("adultList", vEEduChasiVOList);
}
/*
* 체험교실
* */
{
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
// 저작권
vEEduAplctVO.setUserId(loginVO.getUniqId());
vEEduAplctVO.setRecordCountPerPage(1000000);
vEEduAplctVO.setFirstIndex(0);
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_30);
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectExprnPagingList(vEEduAplctVO);
vEEduAplctVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduAplctVOList);
System.out.println("vEEduAplctVOList.size() :: "+vEEduAplctVOList.size());
// vEEduAplctVOList에서 10, 11, 12, 13 제거
List<VEEduAplctVO> filteredList = vEEduAplctVOList.stream()
/*
.filter(item -> !item.getAprvlCd().equals("10")
&& !item.getAprvlCd().equals("11")
&& !item.getAprvlCd().equals("12")
&& !item.getAprvlCd().equals("13"))
*/
.filter(item -> item.getAprvlCd().equals("80")
|| item.getAprvlCd().equals("20")
)
.collect(Collectors.toList());
// -- 종료 80
// -- 진행중 20~70
Map<String, String> exprnMap = filteredList.stream()
.collect(Collectors.partitioningBy(vo -> "80".equals(vo.getAprvlCd()), Collectors.counting()))
.entrySet().stream()
.collect(Collectors.toMap(
entry -> entry.getKey() ? "exprnEnd" : "exprnIng",
entry -> entry.getValue().toString()
)
);
model.addAttribute("exprnMap", exprnMap);
model.addAttribute("exprnList", filteredList);
}
/*
* 실무역량강화
* */
{
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
vEPrcsDetailVO.setUserId(loginVO.getUniqId());
//기반강화 조회
vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_50); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
vEPrcsDetailVO.setRecordCountPerPage(1000000);
vEPrcsDetailVO.setFirstIndex(0);
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlList(vEPrcsDetailVO);
// 요청
long cont = vEPrcsDetailVOList.stream().filter(t-> "10".equals(t.getAprvlCd())).count();
// 미이수
long aplctStateCd10 = vEPrcsDetailVOList.stream().filter(t-> "10".equals(t.getAplctStateCd())).count();
// 이수완료
long aplctStateCd20 = vEPrcsDetailVOList.stream().filter(t-> "20".equals(t.getAplctStateCd())).count();
Map<String, String> fndtnMap = new HashMap<>();
fndtnMap.put("fndtnEnd", String.valueOf(aplctStateCd20));
fndtnMap.put("fndtnIng", String.valueOf(aplctStateCd10+cont));
model.addAttribute("fndtnMap", fndtnMap);
model.addAttribute("fndtnList", vEPrcsDetailVOList);
//신청중, 수강중, 종료된 수량
Map<String,Object> countMap = vEPrcsAplctPrdService.findAllDashboardCnt(vEPrcsDetailVO);
model.addAttribute("countMap", countMap);
}
// 문의 목록
{
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
vEPrcsDetailVO.setRecordCountPerPage(3);
vEPrcsDetailVO.setFirstIndex(0);
vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId());
List<VEPrcsDetailVO> qnaList = vEPrcsService.selectQnaPagingList(vEPrcsDetailVO);
model.addAttribute("qnaList", qnaList);
}
// return "/web/cop/bbs/FaqListAjax";
return "web/my/myPageDashBoard";
}
@RequestMapping(value = { "/web/my/myQnaMngList.do" })
public String myQnaMngList(
HttpServletRequest request
, @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
) throws Exception {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); // 권한에 따른 로그인 정보 가져오기
//1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
//2. pageing step2
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId());
if(StringUtils.isNotEmpty(vEPrcsDetailVO.getSearchStatus())) {
String status = "";
if("Y".equals(vEPrcsDetailVO.getSearchStatus()))
status = "IS NOT NULL";
if("N".equals(vEPrcsDetailVO.getSearchStatus()))
status = "IS NULL";
vEPrcsDetailVO.setSearchQuery(" AND qn.QNA_ANSWER_CN "+status);
}
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectQnaPagingList(vEPrcsDetailVO);
//3.pageing step3
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
// 사용자 이름 디코딩
// vEPrcsDetailVOList.stream().forEach(t->t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm())));
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEPrcsDetailVOList);
return "web/my/myQnaMngList";
}
@RequestMapping(value = { "/web/my/myNotifyMngList.do" })
public String myNotifyMngList(
HttpServletRequest request
, @ModelAttribute("notifyManageVO") NotifyManageVO notifyManageVO
, ModelMap model
) throws Exception {
// try {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
if (loginVO == null || ssoLoginVO == null) {
//이전 url 처리(beforeSiteUrl)_이준호_220228추가
return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다.
// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
}
notifyManageService.updateM7DaysUseYnN();
//1.pageing step1
PaginationInfo paginationInfo = this.setNotiPagingStep1(notifyManageVO);
//2. pageing step2
notifyManageVO = this.setNotiPagingStep2(notifyManageVO, paginationInfo);
//
notifyManageVO.setToUserId(loginVO.getUniqId());
/*if(StringUtils.isNotEmpty(notifyManageVO.getSearchStatus())) {
String status = "";
if("Y".equals(notifyManageVO.getSearchStatus()))
status = "IS NOT NULL";
if("N".equals(notifyManageVO.getSearchStatus()))
status = "IS NULL";
notifyManageVO.setSearchQuery(" AND qn.QNA_ANSWER_CN "+status);
} */
List<NotifyManageVO> notifyManageVOList = notifyManageService.selectPagingList(notifyManageVO);
//3.pageing step3
paginationInfo = this.setNotiPagingStep3(notifyManageVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
// 사용자 이름 디코딩
// vEPrcsDetailVOList.stream().forEach(t->t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm())));
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", notifyManageVOList);
// } catch (Exception e) {
// e.printStackTrace();
// // TODO: handle exception
// }
// return "web/my/myQnaMngList";
return "web/my/myNotifyMngList";
}
@RequestMapping(value = { "/web/my/myNotifyMngDetail.do"})
public String myNotifyMngDetail(
@ModelAttribute("notifyManageVO") NotifyManageVO notifyManageVO
, 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, request); //로그인 정보가 없으면 로그인 페이지로 이동한다.
}
//로그인 처리====================================
//과정 조회
NotifyManageVO notifyManageInfo = notifyManageService.findById(notifyManageVO);
model.addAttribute("info", notifyManageInfo);
try {
if ("30".equals(notifyManageInfo.getLctrDivCd())){ //체험교실은 다른게 바로가기를 만든다.
//eduAplctOrd:eduAplct_00000015581
List<NotifyManageVO> notifyParamList = new ArrayList<NotifyManageVO>();
NotifyManageVO tInfo = new NotifyManageVO();
tInfo.setSiteNm("eduAplctOrd");
tInfo.setParams(notifyManageInfo.getEduAplctOrd());
notifyParamList.add(tInfo);
model.addAttribute("notifyParamList", notifyParamList);
}else{
//세부과정 목록 조회
String[] a_params = notifyManageInfo.getParams().split(",");
List<NotifyManageVO> notifyParamList = new ArrayList<NotifyManageVO>();
for (int i=0;i<a_params.length;i++) {
NotifyManageVO tInfo = new NotifyManageVO();
tInfo.setSiteNm(a_params[i].split(":")[0]);
tInfo.setParams(a_params[i].split(":")[1]);
notifyParamList.add(tInfo);
}
model.addAttribute("notifyParamList", notifyParamList);
}
}catch(Exception ex) {
ex.printStackTrace();
}
return "web/my/myNotifyMngDetail";
}
@RequestMapping(value = { "/web/my/myQnaMngDetail.do"})
public String myQnaMngDetail(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, 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) {
//이전 url 처리(beforeSiteUrl)_이준호_220228추가
return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다.
}
//로그인 처리====================================
//과정 조회
VEPrcsDetailVO vEPrcsQnaDetail = vEPrcsService.selectQnaDetail(vEPrcsDetailVO);
vEPrcsQnaDetail.setMberNm(egovCryptoUtil.decrypt(vEPrcsQnaDetail.getMberNm()));
model.addAttribute("info", vEPrcsQnaDetail);
//세부과정 목록 조회
return "web/my/myQnaMngDetail";
}
@RequestMapping(value = { "/web/my/myNotifyMngDeleteAjax.do"})
public ModelAndView myNotifyMngDeleteAjax(
@ModelAttribute("notifyManageVO") NotifyManageVO notifyManageVO
, ModelMap model
, RedirectAttributes redirectAttributes
, HttpSession session
, HttpServletRequest request
, String[] chk
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
if (loginVO == null || ssoLoginVO == null) {
modelAndView.addObject("result", "loginFail");
}
//로그인 처리====================================
try {
notifyManageVO.setCmmNotifyOrdArr(chk);
notifyManageService.updateChkedUseYnN(notifyManageVO);
modelAndView.addObject("result", "success");
}catch(Exception e) {
e.printStackTrace();
modelAndView.addObject("result", "fail");
}
//세부과정 목록 조회
return modelAndView;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//
// private function
//
//
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정
private PaginationInfo setPagingStep1(
VEPrcsDetailVO p_vEPrcsDetailVO
)throws Exception{
// pageing step1
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(p_vEPrcsDetailVO.getPageIndex());
paginationInfo.setRecordCountPerPage(p_vEPrcsDetailVO.getPageUnit());
paginationInfo.setPageSize(p_vEPrcsDetailVO.getPageSize());
return paginationInfo;
}
//페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화
private VEPrcsDetailVO setPagingStep2(
VEPrcsDetailVO p_vEPrcsDetailVO
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step2
p_vEPrcsDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex());
p_vEPrcsDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex());
p_vEPrcsDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
if("".equals(p_vEPrcsDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
p_vEPrcsDetailVO.setSearchSortCnd("prcs_ord");
p_vEPrcsDetailVO.setSearchSortOrd("desc");
}
return p_vEPrcsDetailVO;
}
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
private PaginationInfo setPagingStep3(
List<VEPrcsDetailVO> p_vEPrcsDetailVOList
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step3
int totCnt = 0;
if(p_vEPrcsDetailVOList.size() > 0) totCnt = p_vEPrcsDetailVOList.get(0).getTotCnt();
p_paginationInfo.setTotalRecordCount(totCnt);
return p_paginationInfo;
}
private PaginationInfo setNotiPagingStep1(NotifyManageVO notifyManageVO) {
// pageing step1
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(notifyManageVO.getPageIndex());
paginationInfo.setRecordCountPerPage(notifyManageVO.getPageUnit());
paginationInfo.setPageSize(notifyManageVO.getPageSize());
return paginationInfo;
}
private NotifyManageVO setNotiPagingStep2(NotifyManageVO notifyManageVO, PaginationInfo paginationInfo) {
// pageing step2
notifyManageVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
notifyManageVO.setLastIndex(paginationInfo.getLastRecordIndex());
notifyManageVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if("".equals(notifyManageVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
notifyManageVO.setSearchSortCnd("prcs_ord");
notifyManageVO.setSearchSortOrd("desc");
}
return notifyManageVO;
}
private PaginationInfo setNotiPagingStep3(List<NotifyManageVO> vEPrcsDetailVOList, PaginationInfo paginationInfo) {
// pageing step3
int totCnt = 0;
if(vEPrcsDetailVOList.size() > 0) totCnt = vEPrcsDetailVOList.get(0).getTotCnt();
paginationInfo.setTotalRecordCount(totCnt);
return paginationInfo;
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,249 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="KccadrStatus" className="kcc.kccadr.cmm.KccadrConstants" />
<%
/**
* @Class Name : instrActvtHstrySignMngList.jsp
* @Description : 운영관리 > 직인대장관리
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2022.12.7 안주영 최초 생성
* @author 안주영
* @since 2022.2.7
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
input:read-only{
background-color: #ededed;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
});
function press(event) {
if (event.keyCode==13) {
fncGoList();
}
}
function fncGoList(){
linkPage(1);
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/kccadr/oprtn/prevent/instrActvtHstrySignAndCmpltCrtfcMngList.do'/>";
listForm.submit();
}
// function fn_goDetail(instrDetailActvtHstryOrd){
// var form = document.detailForm;
// form.instrDetailActvtHstryOrd.value = instrDetailActvtHstryOrd ;
// form.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/instrActvtHstryMngDetail.do'/>";
// form.submit();
// }
function fncReset(thisObj){
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function(){
if($(this).prop('tagName') == 'SELECT'){
if($(this).attr('name').indexOf('Month') != -1){
$(this).val(new Date().getMonth()+1);
}else if($(this).attr('name').indexOf('Year') != -1){
$(this).val(new Date().getFullYear());
}else{
$(this).prop("selectedIndex", 0);
}
}else{
$(this).val('');
}
});
}
</script>
<title>직인대장관리(이수증)</title>
</head>
<body>
<form id="detailForm" name="detailForm" method="post">
<input type="hidden" name="instrDetailActvtHstryOrd" id="instrDetailActvtHstryOrd" value=""/>
</form>
<form id="listForm" name="listForm" method="post">
<input type="hidden" name="pageIndex" value="<c:out value='${vEInstrActvtHstryVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEInstrActvtHstryVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEInstrActvtHstryVO.searchSortOrd}" />" />
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>직인대장관리(이수증) 목록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>운영관리</p>
</li>
<li><span class="cur_nav">직인대장관리(이수증)</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_top -->
<div class="list_top">
<!--
<div class="list_top_1">
<div class="util_left">
<p>구분</p>
</div>
<div class="util_right">
<ve:select codeId="VEA011" name="searchSelStatus" id="searchSelStatus" css="class='sel_type1'"
selectedValue="${vEInstrActvtHstryVO.searchSelStatus}" defaultValue=''
defaultText='전체'
/>
</div>
</div>
-->
<div class="list_top_2">
<div class="util_left">
<p>발급일자</p>
</div>
<div class="util_right">
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="searchStartDt" name="searchStartDt" value="<c:out value='${vEInstrActvtHstryVO.searchStartDt}'/>">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="searchEndDt" name="searchEndDt" value="<c:out value='${vEInstrActvtHstryVO.searchEndDt}'/>">
</div>
</div>
</div>
<div class="list_top_2">
<div class="util_left">
<p>성명</p>
</div>
<div class="util_right">
<input type="text" id=searchKeyword name="searchKeyword" class="search_input" placeholder="검색어를 입력하세요" value="<c:out value='${vEInstrActvtHstryVO.searchKeyword}'/>" onkeyDown="press(event);">
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
<button class="btn_type03" onclick="fncReset(this); return false;">초기화</button>
</div>
</div>
</div>
<!-- //list_top -->
<!-- list util -->
<div class="list_util">
<p class="list_util_p">총 건수 : <span><c:out value="${paginationInfo.totalRecordCount}" /></span>건</p>
<div>
<select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px">
<option value='10' <c:if test="${vEInstrActvtHstryVO.pageUnit == '10' or vEInstrActvtHstryVO.pageUnit == ''}">selected</c:if>>10줄</option>
<option value='20' <c:if test="${vEInstrActvtHstryVO.pageUnit == '20'}">selected</c:if>>20줄</option>
<option value='30' <c:if test="${vEInstrActvtHstryVO.pageUnit == '30'}">selected</c:if>>30줄</option>
<option value='100' <c:if test="${vEInstrActvtHstryVO.pageUnit == '100'}">selected</c:if>>100줄</option>
</select>
</div>
</div>
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<col style="width: 60px;">
<col style="width: 150px;">
<col style="width: 120px;">
<col style="width: 120px;">
<col style="width: 120px;">
<col style="width: 120px;">
<col style="width: 120px;">
</colgroup>
<thead>
<tr>
<th>번호</th>
<th>항목</th>
<th>문서번호</th>
<th>과정명</th>
<th>교육일시</th>
<th>성명</th>
<th>발급일자</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<%-- <tr onclick="fn_goDetail('${list.instrDetailActvtHstryOrd}')" style="cursor:pointer;"> --%>
<!-- VE0011 -->
<tr>
<td>
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
</td>
<td>
<ve:code codeId="VE0011" code="${list.lctrDivCd }"/>
</td>
<td>
<c:if test="${list.lctrDivCd eq '50'}">실무역량-</c:if>
<c:if test="${list.lctrDivCd eq '60'}">기소유예-</c:if>
<c:out value="${list.eduCmpltCrtfcNmbr }" />
</td>
<td>
<c:out value="${list.prcsNm }" />
</td>
<td>
<c:out value="${list.eduStrtPnttm }" />
</td>
<td>
<c:out value="${list.mberNm }" />
</td>
<td>
<c:out value="${list.lastUpdtPnttm }" />
</td>
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
<!-- //page -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
<!-- //cont -->
</form>
</body>
</html>