diff --git a/src/main/java/kcc/ve/oprtn/instr/adultVisitEdu/instrInfo/web/OprtnInstrAdultPrflContoller.java b/src/main/java/kcc/ve/oprtn/instr/adultVisitEdu/instrInfo/web/OprtnInstrAdultPrflContoller.java index 760004d2..fd86665e 100644 --- a/src/main/java/kcc/ve/oprtn/instr/adultVisitEdu/instrInfo/web/OprtnInstrAdultPrflContoller.java +++ b/src/main/java/kcc/ve/oprtn/instr/adultVisitEdu/instrInfo/web/OprtnInstrAdultPrflContoller.java @@ -196,6 +196,8 @@ public class OprtnInstrAdultPrflContoller { //알림 @Resource(name = "iTNotiUtil") private ITNotiUtil iTNotiUtil; + + private String p_s_instr_div = "60"; //20-성인, 60-기소유예, 70-시정명령, 80-예방교육 /** * 1.강사등록신청 목록 조회 - @@ -232,9 +234,8 @@ public class OprtnInstrAdultPrflContoller { // selectCondition += "AND a.sbmt_yn='Y' AND a.aprvl_Cd = '10'"; //3.2 강사 테이블 성인강사여부 Y가 아닌것만 조회(등록요청과 수정요청 둘다 코드값 10이라 강사 상세 테이블만으로는 비교 불가) //selectCondition += " AND b.adult_instr_yn !='Y' AND (a.qlfct_end_yn != 'Y' or a.qlfct_end_yn IS NULL) "; - selectCondition += " AND a.instr_div='20' "; //성인강사로 등록된 대상만 이용 + selectCondition += " AND a.instr_div='"+p_s_instr_div+"' "; //성인강사로 등록된 대상만 이용 selectCondition += " AND a.use_yn='Y' "; //사용처리된 강사만 보여줌 -// selectCondition += " AND a.aprvl_cd=10 "; //3.3 이름 검색 시 if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchKeyword())){ //이름 암호화 - comDefaultVO 검색단어 공통 암호화 @@ -375,7 +376,7 @@ public class OprtnInstrAdultPrflContoller { vEInstrDetailVO.setUserId(instrTempGnrService.getNextStringId()); vEInstrDetailVO.setFrstRegisterId(loginVO.getUniqId()); vEInstrDetailVO.setUseYn("Y"); - vEInstrDetailVO.setInstrDiv("20"); + vEInstrDetailVO.setInstrDiv(p_s_instr_div); VEInstrDetailVO vEInstrVO = new VEInstrDetailVO(); vEInstrVO = vEInstrService.selectDetail(vEInstrDetailVO); @@ -513,8 +514,8 @@ public class OprtnInstrAdultPrflContoller { //기본 데이터 가져오기 vEInstrDetailVO.setUserId(instrTempGnrService.getNextStringId()); vEInstrDetailVO.setFrstRegisterId(loginVO.getUniqId()); - vEInstrDetailVO.setUseYn("N"); - vEInstrDetailVO.setInstrDiv("20"); + vEInstrDetailVO.setUseYn("Y"); + vEInstrDetailVO.setInstrDiv(p_s_instr_div); vEInstrDetailVO.setInstrNm(s_tmp[3]); vEInstrDetailVO.setPhone(s_tmp[9]); @@ -1080,7 +1081,7 @@ public class OprtnInstrAdultPrflContoller { if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchEndDt())){ selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <= REPLACE('"+vEInstrDetailVO.getSearchEndDt()+"', '.', '')"; } - vEInstrDetailVO.setInstrDiv("20"); + vEInstrDetailVO.setInstrDiv(p_s_instr_div); vEInstrDetailVO.setSelectPagingListQuery(selectCondition); List vEInstrDetailVOList = vEInstrMixService.selectPagingDetailList(vEInstrDetailVO); @@ -1161,7 +1162,7 @@ public class OprtnInstrAdultPrflContoller { - vEInstrDetailVO.setInstrDiv("20"); + vEInstrDetailVO.setInstrDiv(p_s_instr_div); List vEInstrDetailVOList = vEInstrMixService.selectInstrExcelList(vEInstrDetailVO); // List vEInstrDetailsVOList = vEInstrMixService.selectPagingDetailList(vEInstrDetailVO); diff --git a/src/main/java/kcc/ve/oprtn/instr/cmdTrgtEdu/instrInfo/web/CmdTrgtInstrContoller.java b/src/main/java/kcc/ve/oprtn/instr/cmdTrgtEdu/instrInfo/web/CmdTrgtInstrContoller.java new file mode 100644 index 00000000..6b2b148f --- /dev/null +++ b/src/main/java/kcc/ve/oprtn/instr/cmdTrgtEdu/instrInfo/web/CmdTrgtInstrContoller.java @@ -0,0 +1,2052 @@ +package kcc.ve.oprtn.instr.cmdTrgtEdu.instrInfo.web; + +import java.text.SimpleDateFormat; +import java.time.Year; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.xssf.streaming.SXSSFWorkbook; +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.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import kcc.com.cmm.ComDefaultVO; +import kcc.com.cmm.EgovMessageSource; +import kcc.com.cmm.LoginVO; +import kcc.com.cmm.service.EgovCmmUseService; +import kcc.com.cmm.service.EgovFileMngService; +import kcc.com.cmm.service.EgovFileMngUtil; +import kcc.com.cmm.service.FileVO; +import kcc.com.cmm.spring.data.util.ExcelUtil; +import kcc.com.cmm.util.StringUtil; +import kcc.com.utl.user.service.CheckAdrProcessUtil; +import kcc.com.utl.user.service.CheckFileUtil; +import kcc.com.utl.user.service.CheckLoginUtil; +import kcc.kccadr.adjPgrMgr.cclt.service.ConciliatorManageService; +import kcc.kccadr.kccadrCom.service.KccadrMgrUdtService; +import kcc.let.cop.bbs.service.Board; +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.ITNotiUtil; +import kcc.ve.adv.tngr.stngInfo.service.VEAStngService; +import kcc.ve.adv.tngr.stngInfo.service.VEAStngVO; +import kcc.ve.aplct.cpyrgExprnClsrm.exprnClsrmAplct.service.ScholInfoService; +import kcc.ve.aplct.cpyrgExprnClsrm.exprnClsrmAplct.service.ScholInfoVO; +import kcc.ve.cmm.VeConstants; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrExcelVO; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrMixService; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrService; +import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrAreaService; +import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO; +import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrMIXService; +import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrPrfrnService; +import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrStngService; +import kcc.ve.instr.tngrVisitEdu.rsdncInfo.service.VERsdncMIXService; +import kcc.ve.instr.tngrVisitEdu.rsdncInfo.service.VERsdncVO; + +/** + * InstrAdultPrflController.java + * 성인대상 찾아가는 저작권 교육 / 강사정보 / 강사프로필 + * 강사프로필 controller 클래스를 정의한다. + * @author 이지우 + * @since 2021.12.07 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2021.12.23  이지우          최초 생성
+ *
+ * 
+ */ + +@Controller + +public class CmdTrgtInstrContoller { + + private static final Logger LOGGER = LoggerFactory.getLogger(CmdTrgtInstrContoller.class); + + @Resource(name = "conciliatorManageService") + private ConciliatorManageService conciliatorManageService; + + // eGov 공통 메세지 + @Resource(name = "egovMessageSource") + EgovMessageSource egovMessageSource; + + //로그인 체크 util + @Resource(name = "checkLoginUtil") + private CheckLoginUtil checkLoginUtil; + + //파일 체크 util + @Resource(name = "checkFileUtil") + private CheckFileUtil checkFileUtil; + + //암복호화 유틸 + @Resource(name = "egovCryptoUtil") + EgovCryptoUtil egovCryptoUtil; + + //파일정보의 관리 + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileService; + + //파일 처리 egov + @Resource(name="EgovFileMngUtil") + private EgovFileMngUtil egovFileMngUtil; + + //파일 처리 egov + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileMngService; + + + @Resource(name="KccadrMgrUdtService") + private KccadrMgrUdtService kccadrMgrUdtService; + + // 교육신청 서비스단 + @Resource(name = "checkAdrProcessUtil") + private CheckAdrProcessUtil checkAdrProcessUtil; + + //강사 정보 + @Resource(name="vEInstrService") + private VEInstrService vEInstrService; + + //강사상세 정보 + @Resource(name="vEInstrDetailService") + private VEInstrDetailService vEInstrDetailService; + + //강사MIX 정보 + @Resource(name="vEInstrMixService") + private VEInstrMixService vEInstrMixService; + + //강의설정 + @Resource(name = "vELctrStngService") + private VELctrStngService vELctrStngService; + + //강의설정 MIX + @Resource(name = "vELctrMIXService") + private VELctrMIXService vELctrMIXService; + + //강의지역 + @Resource(name = "vELctrAreaService") + private VELctrAreaService vELctrAreaService; + + //강의지역 MIX + @Resource(name = "vERsdncMIXService") + private VERsdncMIXService vERsdncMIXService; + + //강의선호 + @Resource(name = "vELctrPrfrnService") + private VELctrPrfrnService vELctrPrfrnService; + + //VO 암/복호화 + @Resource(name="egovCryptoUtil4VO") + private EgovCryptoUtil4VO egovCryptoUtil4VO; + + // eGov 공통코드 + @Resource(name = "EgovCmmUseService") + private EgovCmmUseService cmmUseService; + + //강의설정 ID + @Resource(name = "lctrStngGnrService") + private EgovIdGnrService lctrStngGnrService; + + //강의지역 ID + @Resource(name = "lctrAreaGnrService") + private EgovIdGnrService lctrAreaGnrService; + + //강의선호 ID + @Resource(name = "prfrnTrgtGnrService") + private EgovIdGnrService prfrnTrgtGnrService; + + //강사신청 임의 ID + @Resource(name = "instrTempGnrService") + private EgovIdGnrService instrTempGnrService; + + //강사신청 임의 ID + @Resource(name = "scholInfoService") + private ScholInfoService scholInfoService; + + //강의설정 관리 + @Resource(name = "vEAStngService") + private VEAStngService vEAStngService; + + //알림 + @Resource(name = "iTNotiUtil") + private ITNotiUtil iTNotiUtil; + + private String p_s_instr_div = "70"; //20-성인, 60-기소유예, 70-시정명령, 80-예방교육 + + /** + * 1.강사등록신청 목록 조회 - + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/instrInfo/instrAplctMngList.do") + public String instrPrflList( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + + //1.pageing step1 + PaginationInfo paginationInfo = this.setPagingStep1(vEInstrDetailVO); + + + //2. pageing step2 + vEInstrDetailVO = this.setPagingStep2(vEInstrDetailVO, paginationInfo); + + //3. SelectPagingListQuery set 할 조건 설정 + String selectCondition = new String(); + //3.1 제출 완료한 요청만 조회 +// selectCondition += "AND a.sbmt_yn='Y' AND a.aprvl_Cd = '10'"; + //3.2 강사 테이블 성인강사여부 Y가 아닌것만 조회(등록요청과 수정요청 둘다 코드값 10이라 강사 상세 테이블만으로는 비교 불가) + //selectCondition += " AND b.adult_instr_yn !='Y' AND (a.qlfct_end_yn != 'Y' or a.qlfct_end_yn IS NULL) "; + selectCondition += " AND a.instr_div='"+p_s_instr_div+"' "; //성인강사로 등록된 대상만 이용 + selectCondition += " AND a.use_yn='Y' "; //사용처리된 강사만 보여줌 + //3.3 이름 검색 시 + if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchKeyword())){ + //이름 암호화 - comDefaultVO 검색단어 공통 암호화 + ComDefaultVO comDefaultVO = new ComDefaultVO(); + comDefaultVO.setSearchKeyword(vEInstrDetailVO.getSearchKeyword()); + comDefaultVO = egovCryptoUtil.encryptComDefaultVO(comDefaultVO); + vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword()); + //selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')"; + selectCondition += "AND a.instr_nm LIKE '%'||'" +vEInstrDetailVO.getSearchKeyword() + "'||'%'"; + comDefaultVO = egovCryptoUtil.decryptComDefaultVO(comDefaultVO); + vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword()); + } + //3.4 요청일 시작일 검색 시 + if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchStartDt())){ + selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') >= REPLACE('"+vEInstrDetailVO.getSearchStartDt()+"', '.', '')"; + } + //3.5 요청일 종료일 검색 시 + if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchEndDt())){ + selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <= REPLACE('"+vEInstrDetailVO.getSearchEndDt()+"', '.', '')"; + } + + vEInstrDetailVO.setSelectPagingListQuery(selectCondition); + + List vEInstrDetailVOList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); + + + //4.pageing step3 + paginationInfo = this.setPagingStep3(vEInstrDetailVOList, paginationInfo); + model.addAttribute("paginationInfo", paginationInfo); + + //대상 리스트, 페이징 정보 전달 + vEInstrDetailVOList = egovCryptoUtil.decryptVEInstrDetailVOList(vEInstrDetailVOList); + model.addAttribute("resultList", vEInstrDetailVOList); + + return "/oprtn/cmdTrgtEdu/instrAplctMngList"; + } + + + /** + * 2. 강사등록신청 등록 화면 + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/instrInfo/instrAplctReg.do") + public String instrAplctReg( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + /* VEInstrDetailVO vEInstrDetailVODetail = vEInstrDetailService.selectDetail(vEInstrDetailVO); + + model.addAttribute("info", vEInstrDetailVODetail); + + if(StringUtils.isNotBlank(vEInstrDetailVODetail.getPhtAtchFileId())){ + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(vEInstrDetailVODetail.getPhtAtchFileId()); + List fileList = fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", fileList); + }*/ + return "/oprtn/cmdTrgtEdu/instrAplctReg"; + } + + /** + * 2. 강사등록신청 거주지 팝업 + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/popup/instrRsdnePopup.do") + public String instrRsdnePopup( + @ModelAttribute("vERsdncVO") VERsdncVO vERsdncVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + List rsdncStep1VOList = vERsdncMIXService.selectRsdncStep1List(vERsdncVO); + model.addAttribute("rsdncStep1VOList", rsdncStep1VOList); + + System.out.println(vERsdncVO.getOneDepthNm()); + System.out.println(vERsdncVO.getTwoDepthNm()); + System.out.println(vERsdncVO.getThreeDepthNm()); + + if (!"".equals(vERsdncVO.getOneDepthNm()) && vERsdncVO.getOneDepthNm() != null) { + List rsdncStep2VOList = vERsdncMIXService.selectRsdncStep2List(vERsdncVO); + model.addAttribute("rsdncStep2VOList", rsdncStep2VOList); + } + + if (!"".equals(vERsdncVO.getTwoDepthNm()) && vERsdncVO.getTwoDepthNm() != null) { + List rsdncStep3VOList = vERsdncMIXService.selectRsdncStep3List(vERsdncVO); + model.addAttribute("rsdncStep3VOList", rsdncStep3VOList); + } + //로그인 처리==================================== + + return "/oprtn/cmdTrgtEdu/popup/instrRsdnePopup"; + } + + /** + * 성인대상 강사 등록Ajax - + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/instrInfo/instrAplctRegAjax.do") + public ModelAndView instrPrflRegAjax( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + , final MultipartHttpServletRequest multiRequest + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + + String atchFileId = ""; + final Map files = multiRequest.getFileMap(); + + if (!files.isEmpty()) { + //XXX_로 첨부파일 네이밍 + List result = egovFileMngUtil.parseFileInf(files, "PHT_", 0, "", "", ""); + atchFileId = fileMngService.insertFileInfs(result); + //첨부파일Id(atchFileId)를 해당 VO atchFileId변수에 저장 + vEInstrDetailVO.setPhtAtchFileId(atchFileId); + } + + //user Id는 임시 아이디 사용. 사용자에서 등록 요청 시 실제 uniqId로 업데이트 + vEInstrDetailVO.setUserId(instrTempGnrService.getNextStringId()); + vEInstrDetailVO.setFrstRegisterId(loginVO.getUniqId()); + vEInstrDetailVO.setUseYn("Y"); + vEInstrDetailVO.setInstrDiv(p_s_instr_div); + + VEInstrDetailVO vEInstrVO = new VEInstrDetailVO(); + vEInstrVO = vEInstrService.selectDetail(vEInstrDetailVO); + //최초 신청시에만 강사 테이블에 insert, 수정 요청시는 강사 디테일만 insert + if(vEInstrVO == null) { +// vEInstrService.insert(vEInstrDetailVO); + } + VEInstrDetailVO vEInstrDetailYn = new VEInstrDetailVO(); + vEInstrDetailYn = vEInstrDetailService.selectDetail(vEInstrDetailVO); + if(vEInstrDetailYn == null) { +// vEInstrDetailVO.setUseYn("Y"); //강사 테이블에 기존 데이터가 있고, 수정 요청을 할 경우 기존의 데이터 useY이고 수정요청한 데이터는 useN + } + vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); + vEInstrDetailService.insert(vEInstrDetailVO); + vEInstrDetailVO.setTngrInstrYn("N"); + vEInstrDetailVO.setAdultInstrYn("N"); + vEInstrService.insert(vEInstrDetailVO); + modelAndView.addObject("result", "success"); + + return modelAndView; + } + + /** + * 2. 강사등록신청 등록 화면 (Excel) + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/instrInfo/instrAplctRegExcel.do") + public String instrAplctRegExcel( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + /* VEInstrDetailVO vEInstrDetailVODetail = vEInstrDetailService.selectDetail(vEInstrDetailVO); + + model.addAttribute("info", vEInstrDetailVODetail); + + if(StringUtils.isNotBlank(vEInstrDetailVODetail.getPhtAtchFileId())){ + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(vEInstrDetailVODetail.getPhtAtchFileId()); + List fileList = fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", fileList); + }*/ + return "/oprtn/cmdTrgtEdu/instrAplctRegExcel"; + } + + /** + * 강사EXCEL 등록한다. + * + * @param boardVO + * @param board + * @param model + * @return + * @throws Exception + */ + @RequestMapping(value= + { + "/ve/oprtn/cmdTrgtEdu/instrInfo/instrAplctRegExcelAjax.do" + } + ) + public ModelAndView insertAddrAgencyAjax( + HttpServletRequest request + , @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + //, @ModelAttribute("insertAgency") VacsVactVO vacsVactVO + , final MultipartHttpServletRequest multiRequest + , @ModelAttribute("board") Board board + //, ModelMap model + , ModelAndView modelAndView + , RedirectAttributes redirectAttributes + ) throws Exception { + + //json 알림 + modelAndView.setViewName("jsonView"); + + + //사용자 로그인 여부 체크 for json + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + //String isLogin = checkLoginUtil.isLoginCheck4JsonAction(modelAndView); + //if ("N".equals(isLogin)) return modelAndView; + + + //필요 쿼리 생성 및 처리 - 계좌번호만 작성된 파일 처리 + String s_split = "\t"; + int i_data_column_size = 16; + int i_data_start_row = 0; + + + //1.파일 정상 처리 여부와 첨부 파일 정보 + String atchFileId = this.readFile(multiRequest, modelAndView, "xls|xlsx|xlsm", 10, 1); //size and ea + + if ("ERROR".equals(atchFileId)) return modelAndView; + + + //2.파일 읽기 + //text 파일 읽어서 list에 넣기 + List sb = new ArrayList<>(); + sb = checkFileUtil.extractFromTxtFile(multiRequest, sb); + + if (sb.size()==0) { + //text 파일읽기가 안된경우 excel 읽기를 실행 + sb = checkFileUtil.extractFromExcelFile(multiRequest, sb, 0, i_data_column_size, i_data_start_row); + + } + + + + //3.쿼리 만들기 + //String s_in_query = "'0'"; + //String s_select_query = "SELECT '0' acct_no"; + + //3.데이터 저장하기 + try { + String[] s_stndrd_tmp = sb.get(0).split(s_split); + + for (int i=1;i=s_stndrd_tmp.length) { + //성인 강사 등록 처리 + + + //user Id는 임시 아이디 사용. 사용자에서 등록 요청 시 실제 uniqId로 업데이트 + //기본 데이터 가져오기 + vEInstrDetailVO.setUserId(instrTempGnrService.getNextStringId()); + vEInstrDetailVO.setFrstRegisterId(loginVO.getUniqId()); + vEInstrDetailVO.setUseYn("Y"); + vEInstrDetailVO.setInstrDiv(p_s_instr_div); + + vEInstrDetailVO.setInstrNm(s_tmp[3]); + vEInstrDetailVO.setPhone(s_tmp[9]); + vEInstrDetailVO.setEmail(s_tmp[10]); + vEInstrDetailVO.setPost(s_tmp[14]); + vEInstrDetailVO.setAddr(s_tmp[13]); + vEInstrDetailVO.setRmrks(s_tmp[15]); + + //vEInstrDetailVO.setAddrDetail(s_tmp[6]); + vEInstrDetailVO.setRsdne(s_tmp[12]); + vEInstrDetailVO.setdBirth(s_tmp[5].replaceAll("[.]", "")); + //vEInstrDetailVO.setFinalSchol(s_tmp[9]); + //vEInstrDetailVO.setMjr(s_tmp[10]); + + vEInstrDetailVO.setApptYr(s_tmp[1]); + vEInstrDetailVO.setApptDiv(s_tmp[2].replaceAll("신규", "10").replaceAll("재위촉", "30").replaceAll("위촉", "20")); + vEInstrDetailVO.setBlng(s_tmp[6]); + + vEInstrDetailVO.setPstn(s_tmp[7]); + vEInstrDetailVO.setPrfsnFld(s_tmp[8]); + vEInstrDetailVO.setDivCd(s_tmp[4].replaceAll("입문", "10").replaceAll("전문", "20").replaceAll("내부", "30")); + + + //암호화 + vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); + + + //ve_instr 데이터 존재여부 확인 - 이름, 핸드폰으로 해야 함. + VEInstrDetailVO vEInstrVO = new VEInstrDetailVO(); + vEInstrVO = vEInstrMixService.selectDetailForCheck(vEInstrDetailVO); + //vEInstrVO = vEInstrService.selectDetail(vEInstrDetailVO); + + //최초 신청시에만 강사 테이블에 insert, 수정 요청시는 강사 디테일만 insert + if(vEInstrVO == null) { +// vEInstrService.insert(vEInstrDetailVO); + //ve_instr 데이터 넣기 + vEInstrDetailVO.setTngrInstrYn("N"); + vEInstrDetailVO.setAdultInstrYn("N"); + vEInstrService.insert(vEInstrDetailVO); + + //insert - use use_yn + vEInstrDetailService.insert(vEInstrDetailVO); + + }else { + if ("Y".equals(vEInstrVO.getAdultInstrYn())) { + //ve_instr_detail + //기존에 값이 있으면 상세정보만 업데이트 + //vEInstrDetailVO.setTngrInstrYn("N"); + vEInstrDetailVO.setUserId(vEInstrVO.getUserId()); + vEInstrDetailVO.setUseYn("Y"); + vEInstrVO = vEInstrMixService.selectDetailGetY(vEInstrDetailVO); + + if (vEInstrVO == null) { //insert - use use_yn + vEInstrDetailService.insert(vEInstrDetailVO); + + }else { //update + vEInstrDetailVO.setInstrDetailOrd(vEInstrVO.getInstrDetailOrd()); + //vEInstrService.update(vEInstrDetailVO); + vEInstrDetailService.insertDup(vEInstrDetailVO); //no use use_yn + + } + }else { + //step2-2-2.ve_instr n면 + //max로 ve_instr_detail 찾아서 있으면 up + //없으면 n로 생성 + + //ve_instr_detail + //기존에 값이 있으면 상세정보만 업데이트 + //vEInstrDetailVO.setTngrInstrYn("N"); + vEInstrDetailVO.setUserId(vEInstrVO.getUserId()); + vEInstrVO = vEInstrMixService.selectDetailGetMaxOrd(vEInstrDetailVO); + + if (vEInstrVO == null) { //insert - use use_yn + vEInstrDetailService.insert(vEInstrDetailVO); + + }else { //update + vEInstrDetailVO.setInstrDetailOrd(vEInstrVO.getInstrDetailOrd()); + //vEInstrService.update(vEInstrDetailVO); + vEInstrDetailService.insertDup(vEInstrDetailVO); //no use use_yn + + } + } + /* + //기존에 값이 있으면 상세정보만 업데이트 + //vEInstrDetailVO.setTngrInstrYn("N"); + vEInstrDetailVO.setUserId(vEInstrVO.getUserId()); + vEInstrVO = vEInstrMixService.selectDetailGetMaxOrd(vEInstrDetailVO); + + if (vEInstrVO == null) { + vEInstrDetailService.insert(vEInstrDetailVO); + }else { + vEInstrDetailVO.setInstrDetailOrd(vEInstrVO.getInstrDetailOrd()); + //vEInstrService.update(vEInstrDetailVO); + vEInstrDetailService.insertDup(vEInstrDetailVO); + } + */ + + } + + + //ve_instr_detail 데이터 넣기 + //vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); + //dup 추가 + + + + } + } + }catch(Exception ex) { + ex.printStackTrace(); + } + + + modelAndView.addObject("result", "success"); + + return modelAndView; + } + + /** + * 고립학교EXCEL 등록한다. + * + * @param boardVO + * @param board + * @param model + * @return + * @throws Exception + */ + @RequestMapping(value= + { + "/ve/oprtn/cmdTrgtEdu/instrInfo/instrAplctRegScholExcelAjax.do" + } + ) + public ModelAndView instrAplctRegScholExcelAjax( + HttpServletRequest request + , @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + //, @ModelAttribute("insertAgency") VacsVactVO vacsVactVO + , final MultipartHttpServletRequest multiRequest + , @ModelAttribute("board") Board board + //, ModelMap model + , ModelAndView modelAndView + , RedirectAttributes redirectAttributes + ) throws Exception { + + //json 알림 + modelAndView.setViewName("jsonView"); + + + //사용자 로그인 여부 체크 for json + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + //String isLogin = checkLoginUtil.isLoginCheck4JsonAction(modelAndView); + //if ("N".equals(isLogin)) return modelAndView; + + + //필요 쿼리 생성 및 처리 - 계좌번호만 작성된 파일 처리 + String s_split = "\t"; + int i_data_column_size = 4; + int i_data_start_row = 0; + + + //1.파일 정상 처리 여부와 첨부 파일 정보 + String atchFileId = this.readFile(multiRequest, modelAndView, "xls|xlsx|xlsm", 10, 1); //size and ea + + if ("ERROR".equals(atchFileId)) return modelAndView; + + + //2.파일 읽기 + //text 파일 읽어서 list에 넣기 + List sb = new ArrayList<>(); + sb = checkFileUtil.extractFromTxtFile(multiRequest, sb); + + if (sb.size()==0) { + //text 파일읽기가 안된경우 excel 읽기를 실행 + sb = checkFileUtil.extractFromExcelFile(multiRequest, sb, 0, i_data_column_size, i_data_start_row); + + } + + + + //3.쿼리 만들기 + //String s_in_query = "'0'"; + //String s_select_query = "SELECT '0' acct_no"; + + //3.데이터 저장하기 + try { + String[] s_stndrd_tmp = sb.get(0).split(s_split); + + for (int i=1;i=s_stndrd_tmp.length) { + //성인 강사 등록 처리 + if (!"".equals(s_tmp[3])) { + //step1.검색을 해서 학교를 찾고 + ScholInfoVO scholInfoVO = new ScholInfoVO(); + String p_selectPagingListQuery = ""; + p_selectPagingListQuery = p_selectPagingListQuery + " AND a.loc_nm ='"+s_tmp[0]+"' "; + p_selectPagingListQuery = p_selectPagingListQuery + " AND a.new_addr like'%"+s_tmp[1]+"%' "; + p_selectPagingListQuery = p_selectPagingListQuery + " AND a.schol_nm ='"+s_tmp[3]+"' "; + + scholInfoVO.setSelectPagingListQuery(p_selectPagingListQuery); + scholInfoVO = scholInfoService.selectDetailWithQuery(scholInfoVO); + + + //step2.있으면 데이터를 넣는다. + if (scholInfoVO!=null) { + scholInfoService.insertIsltn(scholInfoVO); + } + + + } + //vEInstrDetailVO.setInstrNm(s_tmp[3]); + + /* + //user Id는 임시 아이디 사용. 사용자에서 등록 요청 시 실제 uniqId로 업데이트 + //기본 데이터 가져오기 + vEInstrDetailVO.setUserId(instrTempGnrService.getNextStringId()); + vEInstrDetailVO.setFrstRegisterId(loginVO.getUniqId()); + vEInstrDetailVO.setUseYn("N"); + vEInstrDetailVO.setInstrDiv("20"); + + vEInstrDetailVO.setInstrNm(s_tmp[3]); + vEInstrDetailVO.setPhone(s_tmp[9]); + vEInstrDetailVO.setEmail(s_tmp[10]); + vEInstrDetailVO.setPost(s_tmp[14]); + vEInstrDetailVO.setAddr(s_tmp[13]); + vEInstrDetailVO.setRmrks(s_tmp[15]); + + //vEInstrDetailVO.setAddrDetail(s_tmp[6]); + vEInstrDetailVO.setRsdne(s_tmp[12]); + vEInstrDetailVO.setdBirth(s_tmp[5].replaceAll("[.]", "")); + //vEInstrDetailVO.setFinalSchol(s_tmp[9]); + //vEInstrDetailVO.setMjr(s_tmp[10]); + + vEInstrDetailVO.setApptYr(s_tmp[1]); + vEInstrDetailVO.setApptDiv(s_tmp[2].replaceAll("신규", "10").replaceAll("재위촉", "30").replaceAll("위촉", "20")); + vEInstrDetailVO.setBlng(s_tmp[6]); + + vEInstrDetailVO.setPstn(s_tmp[7]); + vEInstrDetailVO.setPrfsnFld(s_tmp[8]); + vEInstrDetailVO.setDivCd(s_tmp[4].replaceAll("입문", "10").replaceAll("전문", "20").replaceAll("내부", "30")); + + + //암호화 + vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); + + + //ve_instr 데이터 존재여부 확인 - 이름, 핸드폰으로 해야 함. + VEInstrDetailVO vEInstrVO = new VEInstrDetailVO(); + vEInstrVO = vEInstrMixService.selectDetailForCheck(vEInstrDetailVO); + //vEInstrVO = vEInstrService.selectDetail(vEInstrDetailVO); + + //최초 신청시에만 강사 테이블에 insert, 수정 요청시는 강사 디테일만 insert + if(vEInstrVO == null) { +// vEInstrService.insert(vEInstrDetailVO); + //ve_instr 데이터 넣기 + vEInstrDetailVO.setTngrInstrYn("N"); + vEInstrDetailVO.setAdultInstrYn("N"); + vEInstrService.insert(vEInstrDetailVO); + + vEInstrDetailService.insert(vEInstrDetailVO); + + }else { + //기존에 값이 있으면 상세정보만 업데이트 + //vEInstrDetailVO.setTngrInstrYn("N"); + vEInstrDetailVO.setUserId(vEInstrVO.getUserId()); + vEInstrVO = vEInstrMixService.selectDetailGetMaxOrd(vEInstrDetailVO); + + if (vEInstrVO == null) { + vEInstrDetailService.insert(vEInstrDetailVO); + }else { + vEInstrDetailVO.setInstrDetailOrd(vEInstrVO.getInstrDetailOrd()); + //vEInstrService.update(vEInstrDetailVO); + vEInstrDetailService.insertDup(vEInstrDetailVO); + } + + } + */ + + //ve_instr_detail 데이터 넣기 + //vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); + //dup 추가 + + + + } + } + }catch(Exception ex) { + ex.printStackTrace(); + } + + + modelAndView.addObject("result", "success"); + + return modelAndView; + } + + /** + * 2. 강사등록신청 상세 조회 + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/instrInfo/instrAplctMngDetail.do") + public String instrPrflDetial( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + VEInstrDetailVO vEInstrDetailVODetail = vEInstrDetailService.selectDetail(vEInstrDetailVO); + vEInstrDetailVODetail = egovCryptoUtil.decryptVEInstrDetailVO(vEInstrDetailVODetail); + model.addAttribute("info", vEInstrDetailVODetail); + + if(StringUtils.isNotBlank(vEInstrDetailVODetail.getPhtAtchFileId())){ + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(vEInstrDetailVODetail.getPhtAtchFileId()); + List fileList = fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", fileList); + } + return "/oprtn/cmdTrgtEdu/instrAplctMngDetail"; + } + + /** + * 2. 강사 신청 삭제 + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/instrInfo/instrAplctMngDetailDeleteAjax.do") + public ModelAndView instrAplctMngDetailDeleteAjax( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + //step1.detail 에서 삭제 + //step2.detail 에서 확인 + //step3.2번 결과에 따라서 instr 에서 삭제 + System.out.println(vEInstrDetailVO.getInstrDiv()); + System.out.println(vEInstrDetailVO.getUserId()); + System.out.println(vEInstrDetailVO.getInstrDetailOrd()); + + //강사 관리 프로세스 변경에 따라서 DB 삭제에서 use_yn='N' 처리로 변경 2025-08-28 + vEInstrDetailVO.setUseYn("N"); + vEInstrDetailService.deleteYn(vEInstrDetailVO); + + /* + vEInstrDetailService.delete(vEInstrDetailVO); + + + vEInstrDetailVO.setInstrDiv("20"); + VEInstrDetailVO v_vEInstrDetailVO = vEInstrDetailService.selectDetail(vEInstrDetailVO); + + + if (v_vEInstrDetailVO==null) { + vEInstrService.delete(vEInstrDetailVO); + } + */ + + + modelAndView.addObject("result", "success"); + return modelAndView; + } + + /** + * 3. 강사등록신청 위촉확인 처리 + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/instrInfo/instrAplctApptAjax.do") + public ModelAndView instrAplctApptAjax( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); + Date time = new Date(); + String now = format1.format(time); + SimpleDateFormat format2 = new SimpleDateFormat ( "yyyy-MM-dd"); + Date time2 = new Date(); + String now2 = format2.format(time2); + vEInstrDetailVO.setAprvlPnttm(now); + vEInstrDetailVO.setApptDt(now2); + vEInstrDetailVO.setLastUpdusrId(loginVO.getUniqId()); + vEInstrDetailVO.setAprvlId(loginVO.getUniqId()); + vEInstrDetailVO.setAprvlCd("20"); + vEInstrDetailVO.setUseYn("Y"); + vEInstrDetailService.update(vEInstrDetailVO); + vEInstrDetailVO.setAdultInstrYn("Y"); + vEInstrService.update(vEInstrDetailVO); + + //권한 ROLE_USER_MANAGER로 수정 + if("Y".equals(vEInstrDetailVO.getAdultInstrYn())){ + LoginVO loginVOInsert = new LoginVO(); + loginVOInsert.setUniqId(vEInstrDetailVO.getUserId()); + loginVOInsert.setAuthority("ROLE_USER_MANAGER"); + conciliatorManageService.updateConciliatorManageAuthority(loginVOInsert); + } + + + modelAndView.addObject("result", "success"); + return modelAndView; + } + + /** + * 3. 강사등록신청 승인, 반려 처리 + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/instrInfo/instrAplctMdfyAjax.do") + public ModelAndView instrPrflMdfyAjax( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); + Date time = new Date(); + String now = format1.format(time); + vEInstrDetailVO.setAprvlPnttm(now); + vEInstrDetailVO.setLastUpdusrId(loginVO.getUniqId()); + vEInstrDetailVO.setAprvlId(loginVO.getUniqId()); + //등록 or 수정 요청의 승인 시 useYn Y 업데이트 및 나머지 디테일들 useYn N 업데이트 + if("20".equals(vEInstrDetailVO.getAprvlCd())){ + vEInstrDetailVO.setUseYn("Y"); + //디테일 다른 데이터들 useYn N 업데이트 + vEInstrMixService.updateUseYnN(vEInstrDetailVO); + + //강사 정보 수정 + try { + iTNotiUtil.insertNotifyNew( + "20", + loginVO.getUniqId(), + VeConstants.NOTI_STATUS_82, + vEInstrDetailVO.getUserId(), + "", + "0", + "1" + ); + }catch(Exception ex) { + ex.printStackTrace(); + } + }else { + vEInstrDetailService.update(vEInstrDetailVO); + } + + + + modelAndView.addObject("result", "success"); + return modelAndView; + } + + /** + * 4. 강사등록신청 반려 처리 팝업 + */ + @RequestMapping(value = "/ve/oprtn/cmdTrgtEdu/instrInfo/instrAplctCmpnnPopup.do") + public String addRpplPop(@ModelAttribute("info") VEInstrDetailVO vEInstrDetailVO, ModelMap model) throws Exception { + + return "/oprtn/cmdTrgtEdu/instrAplctCmpnnPopup"; + } + + + /** + * 5.강사 관리 목록(성인) + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/instrInfo/instrMngList.do") + public String instrMngList( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + + //1.pageing step1 + PaginationInfo paginationInfo = this.setPagingStep1(vEInstrDetailVO); + + + //2. pageing step2 + vEInstrDetailVO = this.setPagingStep2(vEInstrDetailVO, paginationInfo); + + //3. SelectPagingListQuery set 할 조건 설정 + String selectCondition = new String(); + //3.0 데이터가 있으면 모두 조회 + selectCondition += " AND a0.user_id=b0.user_id "; + selectCondition += " AND a0.use_yn='Y' "; + //3.1 제출 완료 후 사용중인 데이터 조회 + //selectCondition += "AND a.sbmt_yn='Y' AND a.use_yn = 'Y'"; + //selectCondition += "AND a0.sbmt_yn='Y' AND a0.use_yn = 'Y'"; + //3.2 강사 테이블 성인강사여부 Y인것만 조회 + //selectCondition += "AND (b.adult_instr_yn ='Y' OR a.qlfct_end_yn = 'Y') "; + //selectCondition += "AND (b0.adult_instr_yn ='Y' OR a0.qlfct_end_yn = 'Y') "; + //3.3 이름 검색 시 + if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchKeyword())){ + //selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')"; + //이름 암호화 - comDefaultVO 검색단어 공통 암호화 + ComDefaultVO comDefaultVO = new ComDefaultVO(); + comDefaultVO.setSearchKeyword(vEInstrDetailVO.getSearchKeyword()); + comDefaultVO = egovCryptoUtil.encryptComDefaultVO(comDefaultVO); + vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword()); + //selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')"; + selectCondition += "AND a0.instr_nm LIKE '%'||'" +vEInstrDetailVO.getSearchKeyword() + "'||'%'"; + comDefaultVO = egovCryptoUtil.decryptComDefaultVO(comDefaultVO); + vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword()); + } + //3.4 요청일 시작일 검색 시 + if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchStartDt())){ + selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') >= REPLACE('"+vEInstrDetailVO.getSearchStartDt()+"', '.', '')"; + } + //3.5 요청일 종료일 검색 시 + if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchEndDt())){ + selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <= REPLACE('"+vEInstrDetailVO.getSearchEndDt()+"', '.', '')"; + } + vEInstrDetailVO.setInstrDiv(p_s_instr_div); + vEInstrDetailVO.setSelectPagingListQuery(selectCondition); + + List vEInstrDetailVOList = vEInstrMixService.selectPagingDetailList(vEInstrDetailVO); + + vEInstrDetailVOList = egovCryptoUtil.decryptVEInstrDetailVOList(vEInstrDetailVOList); + + //4.pageing step3 + paginationInfo = this.setPagingStep3(vEInstrDetailVOList, paginationInfo); + model.addAttribute("paginationInfo", paginationInfo); + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("resultList", vEInstrDetailVOList); + + VELctrDetailVO lctrDetailVO = new VELctrDetailVO(); + lctrDetailVO.setInstrDiv(vEInstrDetailVO.getInstrDiv()); + lctrDetailVO.setUserId(vEInstrDetailVO.getUserId()); + + //강의설정 요청 리스트만 불러오기 + lctrDetailVO.setAprvlCd("10"); // 강의 설정 요청 리스트만 불러오기 + List lctrStngSbmtInfo = vELctrMIXService.selectLctrStngSbmtList(lctrDetailVO); + model.addAttribute("lctrStngSbmtInfo", lctrStngSbmtInfo); + + return "/oprtn/cmdTrgtEdu/instrMngList"; + } + + /** + * 성인찾아가는 저작권 교육 목록 Excel + * @param model + * @return + * @throws Exception + */ + @SuppressWarnings("rawtypes") + @RequestMapping(value = "/ve/oprtn/cmdTrgtEdu/instrInfo/eduAplctExcelDownLoad.do") + public ModelAndView eduAplctExcelDownLoad( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + , ModelMap model) throws Exception { + + System.out.println("userIdList :: "+ vEInstrDetailVO.getUserIdList().toString()); +// vEInstrDetailVO.setRecordCountPerPage(10000000); +// +// //1.pageing step1 +// PaginationInfo paginationInfo = this.setPagingStep1(vEInstrDetailVO); +// +// +// //2. pageing step2 +// vEInstrDetailVO = this.setPagingStep2(vEInstrDetailVO, paginationInfo); +// +// //3. SelectPagingListQuery set 할 조건 설정 +// String selectCondition = new String(); +// //3.1 제출 완료 후 사용중인 데이터 조회 +// //selectCondition += "AND a.sbmt_yn='Y' AND a.use_yn = 'Y'"; +// selectCondition += "AND a0.sbmt_yn='Y' AND a0.use_yn = 'Y'"; +// //3.2 강사 테이블 성인강사여부 Y인것만 조회 +// //selectCondition += "AND (b.adult_instr_yn ='Y' OR a.qlfct_end_yn = 'Y') "; +// selectCondition += "AND (b0.adult_instr_yn ='Y' OR a0.qlfct_end_yn = 'Y') "; +// //3.3 이름 검색 시 +// if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchKeyword())){ +// //selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')"; +// //이름 암호화 - comDefaultVO 검색단어 공통 암호화 +// ComDefaultVO comDefaultVO = new ComDefaultVO(); +// comDefaultVO.setSearchKeyword(vEInstrDetailVO.getSearchKeyword()); +// comDefaultVO = egovCryptoUtil.encryptComDefaultVO(comDefaultVO); +// vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword()); +// //selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')"; +// selectCondition += "AND a0.instr_nm LIKE '%'||'" +vEInstrDetailVO.getSearchKeyword() + "'||'%'"; +// comDefaultVO = egovCryptoUtil.decryptComDefaultVO(comDefaultVO); +// vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword()); +// } +// //3.4 요청일 시작일 검색 시 +// if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchStartDt())){ +// selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') >= REPLACE('"+vEInstrDetailVO.getSearchStartDt()+"', '.', '')"; +// } +// //3.5 요청일 종료일 검색 시 +// if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchEndDt())){ +// selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <= REPLACE('"+vEInstrDetailVO.getSearchEndDt()+"', '.', '')"; +// } +// vEInstrDetailVO.setSelectPagingListQuery(selectCondition); + + + + vEInstrDetailVO.setInstrDiv(p_s_instr_div); + + List vEInstrDetailVOList = vEInstrMixService.selectInstrExcelList(vEInstrDetailVO); +// List vEInstrDetailsVOList = vEInstrMixService.selectPagingDetailList(vEInstrDetailVO); + + vEInstrDetailVOList = egovCryptoUtil.decryptVEInstrDetailVOList(vEInstrDetailVOList); + + + List vEInstrExcelVOList = new ArrayList<>(); + + for(VEInstrDetailVO aa : vEInstrDetailVOList) { + + VEInstrExcelVO vEInstrExcelVO = new VEInstrExcelVO(); + vEInstrExcelVO.setInstrNm( aa.getInstrNm()); + vEInstrExcelVO.setApptYr( aa.getApptYr()); + vEInstrExcelVO.setDBirth( aa.getdBirth()); + vEInstrExcelVO.setBlng( aa.getBlng()); + vEInstrExcelVO.setPstn( aa.getPstn()); + vEInstrExcelVO.setPhone( aa.getPhone()); + vEInstrExcelVO.setEmail( aa.getEmail()); + vEInstrExcelVO.setPrfsnFld( aa.getPrfsnFld()); + vEInstrExcelVO.setAddr( aa.getAddr()); + vEInstrExcelVO.setYNowEduCnt( aa.getyNowEduCnt()); + vEInstrExcelVO.setYNowMoneEduCnt( aa.getyNowMoneEduCnt()); + vEInstrExcelVO.setYNowMtwoEduCnt( aa.getyNowMtwoEduCnt()); + vEInstrExcelVO.setYNowMthreeEduCnt( aa.getyNowMthreeEduCnt()); + vEInstrExcelVO.setYNowMfourEduCnt( aa.getyNowMfourEduCnt()); + vEInstrExcelVO.setYNowStsfc( aa.getyNowStsfc()); + vEInstrExcelVO.setYNowMoneStsfc( aa.getyNowMoneStsfc()); + vEInstrExcelVO.setYNowMtwoStsfc( aa.getyNowMtwoStsfc()); + vEInstrExcelVO.setYNowMthreeStsfc( aa.getyNowMthreeStsfc()); + vEInstrExcelVO.setYNowMfourStsfc( aa.getyNowMfourStsfc()); + vEInstrExcelVO.setMemo( aa.getMemo()); + + vEInstrExcelVOList.add(vEInstrExcelVO); + } + + + List excelData = new ArrayList<>(); + excelData.addAll(vEInstrExcelVOList); + // 세팅값 + String title = "성인 찾아가는 저작권 교육 - 강사 목록"; + int[] width = { + 4000, 4000, 4000, 4000, 4000 + , 4000, 4000, 4000, 4000, 4000 + , 4000, 4000, 4000, 4000, 4000, 4000 + }; // 너비 + + + // 현재년도 + int currentYear = Year.now().getValue(); + + String[] header = { + "강사명", "위촉년도", "생년월일", "소속", "직함" + ,"연락처", "이메일", "전문분야", "주소", "비공개메모" + , "교육횟수("+currentYear+")", "교육횟수("+(currentYear-1)+")", "교육횟수("+(currentYear-2)+")", "교육횟수("+(currentYear-3)+")", "교육횟수("+(currentYear-4)+")" + , "교육만족도("+currentYear+")", "교육만족도("+(currentYear-1)+")", "교육만족도("+(currentYear-2)+")", "교육만족도("+(currentYear-3)+")", "교육만족도("+(currentYear-4)+")" + }; + + String[] order = { + "InstrNm", "ApptYr", "DBirth", "Blng", "Pstn" + , "Phone", "Email", "PrfsnFld", "Addr", "Memo" + , "YNowEduCnt", "YNowMoneEduCnt", "YNowMtwoEduCnt", "YNowMthreeEduCnt", "YNowMfourEduCnt" + , "YNowStsfc", "YNowMoneStsfc", "YNowMtwoStsfc", "YNowMthreeStsfc", "YNowMfourStsfc" + }; + + // 호출 + SXSSFWorkbook workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(excelData , header, order, width, title); + model.addAttribute("locale", Locale.KOREA); + model.addAttribute("workbook", workbook); + model.addAttribute("workbookName", title); + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("excelDownloadView"); + modelAndView.addObject(model); + + + + return modelAndView; + } + + /** + * 6. 강사 관리 상세 조회 + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/instrInfo/instrMngDetail.do") + public String instrMngDetail( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + VEInstrDetailVO vEInstrDetailVODetail = vEInstrDetailService.selectDetail(vEInstrDetailVO); + //요청사항 있는지 체크 + vEInstrDetailVODetail.setRqstCnt(vEInstrDetailVO.getRqstCnt()); + vEInstrDetailVODetail = egovCryptoUtil.decryptVEInstrDetailVO(vEInstrDetailVODetail); + System.out.println("vEInstrDetailVODetail"); + System.out.println(vEInstrDetailVODetail.toString()); + System.out.println(vEInstrDetailVODetail.toString()); + + model.addAttribute("info", vEInstrDetailVODetail); + + if(StringUtils.isNotBlank(vEInstrDetailVODetail.getPhtAtchFileId())){ + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(vEInstrDetailVODetail.getPhtAtchFileId()); + List fileList = fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", fileList); + } + + VELctrDetailVO lctrDetailVO = new VELctrDetailVO(); + lctrDetailVO.setInstrDiv(vEInstrDetailVO.getInstrDiv()); + lctrDetailVO.setUserId(vEInstrDetailVO.getUserId()); + + //강의설정테이블 + VELctrDetailVO lctrStngInfo = vELctrMIXService.selectDetail(lctrDetailVO); + model.addAttribute("lctrStngInfo", lctrStngInfo); + + //강의설정 요청 리스트만 불러오기 + lctrDetailVO.setAprvlCd("10"); // 강의 설정 요청 리스트만 불러오기 + List lctrStngSbmtInfo = vELctrMIXService.selectLctrStngSbmtList(lctrDetailVO); + model.addAttribute("lctrStngSbmtInfo", lctrStngSbmtInfo); + + // 이력관리 리스트 + VEAStngVO vEAStngVO = new VEAStngVO(); + vEAStngVO.setUserId(vEInstrDetailVO.getUserId()); + List selectList_VEAIHM = vEAStngService.selectList_VEAIHM(vEAStngVO); + + model.addAttribute("selectListVEAIHM",selectList_VEAIHM); + + return "/oprtn/cmdTrgtEdu/instrMngDetail"; + } + + /** + * 6. 강사 관리 상세 조회 + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/instrInfo/instrMngDetailStng.do") + public String instrMngDetailStng( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + VEInstrDetailVO vEInstrDetailVODetail = vEInstrDetailService.selectDetail(vEInstrDetailVO); + //요청사항 있는지 체크 + vEInstrDetailVODetail.setRqstCnt(vEInstrDetailVO.getRqstCnt()); + vEInstrDetailVODetail = egovCryptoUtil.decryptVEInstrDetailVO(vEInstrDetailVODetail); + model.addAttribute("info", vEInstrDetailVODetail); + + if(StringUtils.isNotBlank(vEInstrDetailVODetail.getPhtAtchFileId())){ + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(vEInstrDetailVODetail.getPhtAtchFileId()); + List fileList = fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", fileList); + } + + VELctrDetailVO lctrDetailVO = new VELctrDetailVO(); + lctrDetailVO.setInstrDiv(vEInstrDetailVO.getInstrDiv()); + lctrDetailVO.setUserId(vEInstrDetailVO.getUserId()); + + //강의설정테이블 + VELctrDetailVO lctrStngInfo = vELctrMIXService.selectDetail(lctrDetailVO); + model.addAttribute("lctrStngInfo", lctrStngInfo); + return "/oprtn/cmdTrgtEdu/instrMngDetailStng"; + } + + /** + * 7. 강사 관리 강의설정 팝업 + */ + @RequestMapping(value = "/ve/oprtn/cmdTrgtEdu/instrInfo/instrLctrStngPopup.do") + public String instrLctrStngPopup( + @ModelAttribute("info") VEInstrDetailVO vEInstrDetailVO + ,@ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO + , ModelMap model, HttpServletRequest request) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + //로그인 처리==================================== + + //강의지역 조회 + VERsdncVO vERsdncVO = new VERsdncVO(); + List rsdncStep1VOList = vERsdncMIXService.selectRsdncStep1List(vERsdncVO); + model.addAttribute("rsdncStep1VOList", rsdncStep1VOList); + + List rsdncStep2VOList = vERsdncMIXService.selectRsdncStep2List(vERsdncVO); + model.addAttribute("rsdncStep2VOList", rsdncStep2VOList); + + //강의설정테이블 + VELctrDetailVO lctrStngInfo = vELctrMIXService.selectDetail(vELctrDetailVO); + + /* + //등록된 강의설정 없을 시 등록 팝업 + if(lctrStngInfo == null) { + //강사 정보 가져오기 + vELctrDetailVO.setInstrDiv(vEInstrDetailVO.getInstrDiv()); //강사구분 10-청소년 20-성인대상 + vELctrDetailVO.setUserId(vEInstrDetailVO.getUserId()); + + model.addAttribute("info", vELctrDetailVO); + // 선호대상 공통코드 조회 + List prfrnTrgtList = cmmUseService.selectCmmCodeDetail("VE0006"); + model.addAttribute("prfrnTrgtList", prfrnTrgtList); + + return "/oprtn/cmdTrgtEdu/popup/instrLctrStngRegPopup"; + } + */ + model.addAttribute("lctrStngInfo", lctrStngInfo); + //강의지역 조회 + vELctrDetailVO.setRecordCountPerPage(1000); + vELctrDetailVO.setFirstIndex(0); + List vELctrAreaList = vELctrAreaService.selectPagingList(vELctrDetailVO); + model.addAttribute("vELctrAreaList", vELctrAreaList); + return "/oprtn/cmdTrgtEdu/popup/instrLctrStngMdfyPopup"; + } + + /** + * 7-1. 강사 관리 강의설정 승인 팝업 + */ + @RequestMapping(value = "/ve/oprtn/cmdTrgtEdu/instrInfo/instrLctrStngConfirmPopup.do") + public String instrLctrStngConfirmPopup( + @ModelAttribute("info") VEInstrDetailVO vEInstrDetailVO + ,@ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO + , ModelMap model, HttpServletRequest request) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + //로그인 처리==================================== + + //강의지역 조회 + VERsdncVO vERsdncVO = new VERsdncVO(); + List rsdncStep1VOList = vERsdncMIXService.selectRsdncStep1List(vERsdncVO); + model.addAttribute("rsdncStep1VOList", rsdncStep1VOList); + + List rsdncStep2VOList = vERsdncMIXService.selectRsdncStep2List(vERsdncVO); + model.addAttribute("rsdncStep2VOList", rsdncStep2VOList); + + //강의설정테이블 + VELctrDetailVO lctrStngInfo = vELctrMIXService.selectDetail(vELctrDetailVO); + + /* + //등록된 강의설정 없을 시 등록 팝업 + if(lctrStngInfo == null) { + //강사 정보 가져오기 + vELctrDetailVO.setInstrDiv(vEInstrDetailVO.getInstrDiv()); //강사구분 10-청소년 20-성인대상 + vELctrDetailVO.setUserId(vEInstrDetailVO.getUserId()); + + model.addAttribute("info", vELctrDetailVO); + // 선호대상 공통코드 조회 + List prfrnTrgtList = cmmUseService.selectCmmCodeDetail("VE0006"); + model.addAttribute("prfrnTrgtList", prfrnTrgtList); + + return "/oprtn/cmdTrgtEdu/popup/instrLctrStngRegPopup"; + } + */ + model.addAttribute("lctrStngInfo", lctrStngInfo); + + // 선호대상 공통코드 조회 + List prfrnTrgtList = cmmUseService.selectCmmCodeDetail("VE0006"); + model.addAttribute("prfrnTrgtList", prfrnTrgtList); + + //선호대상 정보 테이블 + vELctrDetailVO.setLctrStngOrd(lctrStngInfo.getLctrStngOrd()); + List lctrPrfrnInfo = vELctrPrfrnService.selectPrfrnInfoList(vELctrDetailVO); + model.addAttribute("lctrPrfrnInfo", lctrPrfrnInfo); + + //강의지역 조회 + vELctrDetailVO.setRecordCountPerPage(1000); + vELctrDetailVO.setFirstIndex(0); + List vELctrAreaList = vELctrAreaService.selectPagingList(vELctrDetailVO); + model.addAttribute("vELctrAreaList", vELctrAreaList); + return "/oprtn/cmdTrgtEdu/popup/instrLctrStngConfirmPopup"; + } + + /** + * 7-2.강사 강의설정 승인/반려처리Ajax + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/instrInfo/lctrStngAprvlConfirmAjax.do") + public ModelAndView lctrStngAprvlConfirmAjax( + @ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO + , final MultipartHttpServletRequest multiRequest + , ModelMap model + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + + //세션 ID 가져오기 + vELctrDetailVO.setFrstRegisterId(loginVO.getUniqId()); + vELctrDetailVO.setLastUpdusrId(loginVO.getUniqId()); + + //제출, 승인요청 일시 + SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); + Date time = new Date(); + String now = format1.format(time); + + //강의설정테이블 + if(StringUtil.isNotEmpty(vELctrDetailVO.getAprvlCd())) { + + if(vELctrDetailVO.getAprvlCd().equals("20")) { //강의설정 승인시 + vELctrDetailVO.setUseYn("Y"); + }else { + + vELctrDetailVO.setUseYn("N"); + + } + + } + + vELctrStngService.updatelctrStngAprvlConfirm(vELctrDetailVO); + + modelAndView.addObject("result", "success"); + + return modelAndView; + } + + /** + * 7-3.강사 강의설정 반려처리Ajax + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/instrInfo/lctrStngAprvlRejectAjax.do") + public ModelAndView lctrStngAprvlRejectAjax( + @ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO + , final MultipartHttpServletRequest multiRequest + , ModelMap model + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + + //세션 ID 가져오기 + vELctrDetailVO.setFrstRegisterId(loginVO.getUniqId()); + vELctrDetailVO.setLastUpdusrId(loginVO.getUniqId()); + + //제출, 승인요청 일시 + SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); + Date time = new Date(); + String now = format1.format(time); + + //강의설정테이블 + /*if(StringUtil.isNotEmpty(vELctrDetailVO.getAprvlCd())) { + + if(vELctrDetailVO.getAprvlCd().equals("20")) { //강의설정 승인시 + vELctrDetailVO.setUseYn("Y"); + }else { + + vELctrDetailVO.setUseYn("N"); + + } + + }*/ + + vELctrStngService.updatelctrStngAprvlReject(vELctrDetailVO); + + modelAndView.addObject("result", "success"); + + return modelAndView; + } + + /** + * 7. 강사 관리 강의설정 팝업 + */ + @RequestMapping(value = "/ve/oprtn/cmdTrgtEdu/instrInfo/instrLctrDetailStngPopup.do") + public String instrLctrDetailStngPopup( + @ModelAttribute("info") VEInstrDetailVO vEInstrDetailVO + ,@ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO + , ModelMap model, HttpServletRequest request) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + //로그인 처리==================================== + + //강의지역 조회 + VERsdncVO vERsdncVO = new VERsdncVO(); + List rsdncStep1VOList = vERsdncMIXService.selectRsdncStep1List(vERsdncVO); + model.addAttribute("rsdncStep1VOList", rsdncStep1VOList); + + List rsdncStep2VOList = vERsdncMIXService.selectRsdncStep2List(vERsdncVO); + model.addAttribute("rsdncStep2VOList", rsdncStep2VOList); + + //강의설정테이블 + VELctrDetailVO lctrStngInfo = vELctrMIXService.selectDetail(vELctrDetailVO); + + /* + //등록된 강의설정 없을 시 등록 팝업 + if(lctrStngInfo == null) { + //강사 정보 가져오기 + vELctrDetailVO.setInstrDiv(vEInstrDetailVO.getInstrDiv()); //강사구분 10-청소년 20-성인대상 + vELctrDetailVO.setUserId(vEInstrDetailVO.getUserId()); + + model.addAttribute("info", vELctrDetailVO); + // 선호대상 공통코드 조회 + List prfrnTrgtList = cmmUseService.selectCmmCodeDetail("VE0006"); + model.addAttribute("prfrnTrgtList", prfrnTrgtList); + + return "/oprtn/cmdTrgtEdu/popup/instrLctrStngRegPopup"; + } + */ + model.addAttribute("lctrStngInfo", lctrStngInfo); + //강의지역 조회 + vELctrDetailVO.setRecordCountPerPage(1000); + vELctrDetailVO.setFirstIndex(0); + List vELctrAreaList = vELctrAreaService.selectPagingList(vELctrDetailVO); + model.addAttribute("vELctrAreaList", vELctrAreaList); + return "/oprtn/cmdTrgtEdu/popup/instrLctrDetailStngPopup"; + } + + /** + * 1.강사 강의설정 등록Ajax + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/instrInfo/lctrStngRegAjax.do") + public ModelAndView lctrStngRegAjax( + @ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO + , final MultipartHttpServletRequest multiRequest + , ModelMap model + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + + //세션 ID 가져오기 + vELctrDetailVO.setFrstRegisterId(loginVO.getUniqId()); + + //제출, 승인요청 일시 + SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); + Date time = new Date(); + String now = format1.format(time); + + //강의설정테이블 + vELctrDetailVO.setLctrStngOrd(lctrStngGnrService.getNextStringId()); + vELctrDetailVO.setUseYn("Y"); + vELctrStngService.insert(vELctrDetailVO); + //강의지역테이블 + if(StringUtil.isNotEmpty(vELctrDetailVO.getAreaCd())) { + String[] areaCdArr = vELctrDetailVO.getAreaCd().split(","); + for(String areaCd : areaCdArr) { + vELctrDetailVO.setAreaCd(areaCd); + vELctrDetailVO.setLctrAreaOrd(lctrAreaGnrService.getNextStringId()); + vELctrAreaService.insert(vELctrDetailVO); + } + } + //강의선호테이블 + if(StringUtil.isNotEmpty(vELctrDetailVO.getPrfrnTrgtCd())) { + String[] prfrnTrgtCdArr = vELctrDetailVO.getPrfrnTrgtCd().split(","); + for(String prfrnTrgtCd : prfrnTrgtCdArr) { + vELctrDetailVO.setPrfrnTrgtCd(prfrnTrgtCd); + vELctrDetailVO.setPrfrnTrgtOrd(prfrnTrgtGnrService.getNextStringId()); + vELctrPrfrnService.insert(vELctrDetailVO); + } + } + + modelAndView.addObject("result", "success"); + + return modelAndView; + } + + /** + * 1.강사 강의설정 수정Ajax + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/instrInfo/lctrStngMdfyAjax.do") + public ModelAndView lctrStngMdfyAjax( + @ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO + , ModelMap model + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + + //세션 ID 가져오기 + vELctrDetailVO.setLastUpdusrId(loginVO.getUniqId()); + + //제출, 승인요청 일시 + SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); + Date time = new Date(); + String now = format1.format(time); + + //강의설정테이블 수정 + if(!"".equals(vELctrDetailVO.getLctrStngOrd()) && vELctrDetailVO.getLctrStngOrd() != null) { + vELctrStngService.update(vELctrDetailVO); + } else { + vELctrDetailVO.setLctrStngOrd(lctrStngGnrService.getNextStringId()); + vELctrDetailVO.setUseYn("Y"); + vELctrStngService.insert(vELctrDetailVO); + + } + + //강의지역테이블 새로 Insert + vELctrAreaService.deleteAll(vELctrDetailVO); + if(StringUtil.isNotEmpty(vELctrDetailVO.getAreaCd())) { + String[] areaCdArr = vELctrDetailVO.getAreaCd().split(","); + for(String areaCd : areaCdArr) { + vELctrDetailVO.setAreaCd(areaCd); + vELctrDetailVO.setLctrAreaOrd(lctrAreaGnrService.getNextStringId()); + vELctrAreaService.insert(vELctrDetailVO); + } + } + modelAndView.addObject("result", "success"); + + return modelAndView; + } + + /** + * 8. 강사 관리 수정요청 팝업 + */ + @RequestMapping(value = "/ve/oprtn/cmdTrgtEdu/instrInfo/instrMdfyRqstPopup.do") + public String instrMdfyRqstPopup(@ModelAttribute("info") VEInstrDetailVO vEInstrDetailVO, ModelMap model, HttpServletRequest request) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + //로그인 처리==================================== + + //요청 내용의 상세만 조회 + vEInstrDetailVO.setAprvlCd("10"); + vEInstrDetailVO.setSelectPagingListQuery(" AND NVL(a.use_yn,'N')='N' AND a.sbmt_yn='Y' "); + VEInstrDetailVO vEInstrDetailVODetail = vEInstrMixService.selectMdfyRqstDetail(vEInstrDetailVO); + vEInstrDetailVODetail = egovCryptoUtil.decryptVEInstrDetailVO(vEInstrDetailVODetail); + model.addAttribute("info", vEInstrDetailVODetail); + + + //현재 사용 내용의 상세만 조회 + vEInstrDetailVO.setAprvlCd(null); + vEInstrDetailVO.setInstrMdfyOrd(null); + vEInstrDetailVO.setSelectPagingListQuery(" AND NVL(a.use_yn,'N')='Y' AND a.sbmt_yn='Y' "); + VEInstrDetailVO vEInstrDetailVODetail_ori = vEInstrMixService.selectMdfyRqstDetail(vEInstrDetailVO); + vEInstrDetailVODetail_ori = egovCryptoUtil.decryptVEInstrDetailVO(vEInstrDetailVODetail_ori); + model.addAttribute("info_ori", vEInstrDetailVODetail_ori); + + /*if(StringUtils.isNotBlank(vEInstrDetailVODetail.getPhtAtchFileId())){ + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(vEInstrDetailVODetail.getPhtAtchFileId()); + List fileList = fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", fileList); + } */ + return "/oprtn/cmdTrgtEdu/popup/instrMdfyRqstPopup"; + } + + /** + * 8. 강사신청 등록 사진 팝업 + */ + @RequestMapping(value = "/ve/oprtn/cmdTrgtEdu/popup/instrAplctPhotoPopup.do") + public String instrAplctPhotoPopup(@ModelAttribute("info") VEInstrDetailVO vEInstrDetailVO, ModelMap model, HttpServletRequest request) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + //로그인 처리==================================== + + + /*if(StringUtils.isNotBlank(vEInstrDetailVODetail.getPhtAtchFileId())){ + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(vEInstrDetailVODetail.getPhtAtchFileId()); + List fileList = fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", fileList); + } */ + return "/oprtn/cmdTrgtEdu/popup/instrAplctPhotoPopup"; + } + + /** + * 강사 위촉, 해촉 처리 + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/instrInfo/instrqlfctEndYnMdfy.do") + public String instrqlfctEndYnMdfy( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); + Date time = new Date(); + String now = format1.format(time); + SimpleDateFormat format2 = new SimpleDateFormat ( "yyyy-MM-dd"); + Date time2 = new Date(); + String now2 = format2.format(time2); + vEInstrDetailVO.setLastUpdusrId(loginVO.getUniqId()); + if("Y".equals(vEInstrDetailVO.getQlfctEndYn())) {//해촉 + vEInstrDetailVO.setAdultInstrYn("N"); + vEInstrDetailVO.setQlfctEndPnttm(now); + vEInstrDetailVO.setHchkDt(now2); + }else {//위촉 + vEInstrDetailVO.setAdultInstrYn("Y"); + vEInstrDetailVO.setApptDt(now2);; + } + + //암호화 + vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); + + vEInstrDetailService.update(vEInstrDetailVO); + vEInstrService.update(vEInstrDetailVO); + + return "redirect:/ve/oprtn/cmdTrgtEdu/instrInfo/instrMngList.do"; + } + + /** + * 강사 정보 수정 + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/instrInfo/instrMdfyAjax.do") + public ModelAndView instrMdfyAjax( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , HttpSession session + , HttpServletRequest request + ) throws Exception { + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + //a + vEInstrDetailVO.setLastUpdusrId(loginVO.getUniqId()); + //암호화 + vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); + + int i_ret = vEInstrDetailService.update(vEInstrDetailVO); + //vEInstrService.update(vEInstrDetailVO); + + if (i_ret>0) modelAndView.addObject("result", "success"); + else modelAndView.addObject("result", "fail"); + + + + //return "redirect:/ve/oprtn/cmdTrgtEdu/instrInfo/instrMngList.do"; + return modelAndView; + } + + /** + * 강사 정보 수정 + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/instrInfo/instrCmpltMdfyAjax.do") + public ModelAndView instrCmpltMdfyAjax( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , HttpSession session + , HttpServletRequest request + ) throws Exception { + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + //a + vEInstrDetailVO.setLastUpdusrId(loginVO.getUniqId()); + //암호화 + //vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); + + int i_ret = vEInstrService.update(vEInstrDetailVO); + + //int i_ret = vEInstrDetailService.update(vEInstrDetailVO); + //vEInstrService.update(vEInstrDetailVO); + + if (i_ret>0) modelAndView.addObject("result", "success"); + else modelAndView.addObject("result", "fail"); + + + + //return "redirect:/ve/oprtn/cmdTrgtEdu/instrInfo/instrMngList.do"; + return modelAndView; + } + + /** + * 2. 강사신청 수정 + */ + @RequestMapping("/ve/oprtn/cmdTrgtEdu/instrInfo/instrAplctMngDetailUpdateAjax.do") + public ModelAndView instrAplctMngDetailUpdateAjax( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + , final MultipartHttpServletRequest multiRequest + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + + String atchFileId = ""; + final Map files = multiRequest.getFileMap(); + + if (!files.isEmpty()) { + //XXX_로 첨부파일 네이밍 + List result = egovFileMngUtil.parseFileInf(files, "PHT_", 0, "", "", ""); + atchFileId = fileMngService.insertFileInfs(result); + } + //첨부파일Id(atchFileId)를 해당 VO atchFileId변수에 저장 + vEInstrDetailVO.setPhtAtchFileId(atchFileId); + + //세션 ID 가져오기 + vEInstrDetailVO.setLastUpdusrId(loginVO.getUniqId()); + + //제출, 승인요청 일시 + SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); + Date time = new Date(); + String now = format1.format(time); + if("Y".equals(vEInstrDetailVO.getSbmtYn())) { + vEInstrDetailVO.setSbmtPnttm(now); + } + + vEInstrService.update(vEInstrDetailVO); + //등록 요청, 재요청일 시 반려사유 삭제 + if("10".equals(vEInstrDetailVO.getAprvlCd())) { + vEInstrDetailVO.setAprvlCn(""); + } + + //암호화 + vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO);/*이름, 번호 복호화*/ + vEInstrDetailService.update(vEInstrDetailVO); + modelAndView.addObject("result", "success"); + + return modelAndView; + } + + //////////////////////////////////////////////////////////////// + // + // private function + // + + //페이징을 위한 처리 step1 - 페이징 기본 정보 설정 + private PaginationInfo setPagingStep1( + VEInstrDetailVO p_vEInstrDetailVO + )throws Exception{ + // pageing step1 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(p_vEInstrDetailVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(p_vEInstrDetailVO.getPageUnit()); + paginationInfo.setPageSize(p_vEInstrDetailVO.getPageSize()); + + return paginationInfo; + } + + //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 및 검색 조건 초기화 + private VEInstrDetailVO setPagingStep2( + VEInstrDetailVO p_vEInstrDetailVO + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step2 + p_vEInstrDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); + p_vEInstrDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); + p_vEInstrDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); + + if("".equals(p_vEInstrDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + p_vEInstrDetailVO.setSearchSortCnd("sbmt_pnttm"); + p_vEInstrDetailVO.setSearchSortOrd("desc"); + } + + return p_vEInstrDetailVO; + } + + + //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 + private PaginationInfo setPagingStep3( + List p_vEInstrDetailVOList + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step3 + int totCnt = 0; + if(p_vEInstrDetailVOList.size() > 0) totCnt = p_vEInstrDetailVOList.get(0).getTotCnt(); + p_paginationInfo.setTotalRecordCount(totCnt); + + return p_paginationInfo; + } + + //사용자 업로드 파일 처리 - 하나의 파일만 처리 + private String readFile( + MultipartHttpServletRequest p_multiRequest + , ModelAndView p_modelAndView + , String p_exts //가능한 확장자를 받는다. | + , int p_i_file_size + , int p_i_file_count + //, BoardMasterVO p_bmVO + ) throws Exception{ + //Map p_map = new Map<>(); + //Map in_map = new HashMap<>(); + boolean in_bool = true; + + + List result = null; + String atchFileId = ""; + String isThumbFile = ""; + //String isThumbFile = "thumbFile"; //"thumbFile" - 썸네일을 생성한다. + + final Map files = p_multiRequest.getFileMap(); + if (!files.isEmpty()) { + result = egovFileMngUtil.parseFileInf(files, "ADDRAGENCY_", 0, "", "", isThumbFile); + + // 파일 사이즈, 개수, 확장자 체크. model에 체크 오류 메세지 set + + //관리자에서 게시판 설정시 업로드 파일 사이즈와 수량 체크용 + if(!checkFileUtil.isPosblAtchFileMvWithUserSettingAdr(result, p_modelAndView, 0, p_exts, p_i_file_size, p_i_file_count)) { + // 공통코드 Set + //setBBSCommCd(model, bmVO); + + //model.addAttribute("bdMstr", bmVO); + //return "web/cop/bbs/EgovNoticeRegist"; + //modelAndView.addObject("bdMstr", bmVO); + p_modelAndView.addObject("result", "fail"); + + in_bool = false; + } + + //atchFileId = fileMngService.insertFileInfs(result); //첨부 파일 + for(int i=0;i /* VEInstrDetailDAO.insertDup */ + INSERT INTO + ( + + ) + VALUES( + #instrDiv#, + #userId#, + #instrDetailOrd#, + + #instrNm#, + #phone#, + #email#, + #post#, + #addr#, + #addrDetail#, + #rsdne#, + #dBirth#, + #finalSchol#, + #mjr#, + #apptYr#, + #apptDiv#, + #actvtCarer#, + #mnLctrCn#, + #phtAtchFileId#, + #blng#, + #pstn#, + #prfsnFld#, + #sbmtYn#, + #sbmtPnttm#, + #aprvlCd#, + #aprvlPnttm#, + #aprvlId#, + #aprvlCn#, + + + NOW(), + #frstRegisterId#, + NOW(), + #lastUpdusrId#, + + + #useYn#, + + + 'N', + + #qlfctEndYn#, + #qlfctEndPnttm#, + #qlfctEndCn#, + #divCd#, + #apptDt#, + #hchkDt#, + #rmrks#, + #memo#, + #sigMemo#, + #hopeEduFld# + ) + + ON + CONFLICT (instr_div, + instr_nm, + phone + ) + DO + + UPDATE + SET last_updusr_id = #frstRegisterId# + , last_updt_pnttm = NOW() + + + , email =EXCLUDED.email + + , post =EXCLUDED.post + + , addr =EXCLUDED.addr + + , addr_detail =EXCLUDED.addr_detail + + , rsdne =EXCLUDED.rsdne + + , d_birth =EXCLUDED.d_birth + + , final_schol =EXCLUDED.finalSchol + + , mjr =EXCLUDED.mjr + + , appt_yr =EXCLUDED.appt_yr + + , appt_div =EXCLUDED.appt_div + + , actvt_carer =EXCLUDED.actvt_carer + + , mn_lctr_cn =EXCLUDED.mn_lctr_cn + + , blng =EXCLUDED.blng + + , pstn =EXCLUDED.pstn + + , prfsn_fld =EXCLUDED.prfsn_fld + + , div_cd =EXCLUDED.div_cd + + , rmrks =EXCLUDED.rmrks + + , memo =EXCLUDED.memo + + , sig_memo =EXCLUDED.sig_memo + + , hope_edu_fld =EXCLUDED.hope_edu_fld + + + + + + + /* VEInstrDetailDAO.insertDup_old */ + MERGE INTO USING DUAL ON(instr_nm=#instrNm# AND phone=#phone#) @@ -320,7 +437,7 @@ - + + " /> + " /> + + + + +
+
+ + +
+

강사등록 및 정보변경 요청 목록

+
    +
  • +
  • +

    강사신청 관리

    +
  • +
  • 강사등록 및 정보변경 요청 목록
  • +
+
+ + +
+ +
+ +
+
+

이름

+
+
+ + + +
+
+
+
+

요청일자

+
+
+
+ +
+ ~ +
+ +
+
+
+ + <%--
+ +
--%> + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + ', '' , '');" style="cursor:pointer;"> + + + + + + + + + + + + + +
이름거주지소속직위위촉년도구분요청일
+ + + + + + + + + + + + + + +
+
+ + + + +
+ +
+ +
+
+
+
+
+
+ + +
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cmdTrgtEdu/instrAplctReg.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cmdTrgtEdu/instrAplctReg.jsp new file mode 100644 index 00000000..690d37e7 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/oprtn/cmdTrgtEdu/instrAplctReg.jsp @@ -0,0 +1,542 @@ +<%-- + Class Name : instrAplctReg.jsp + Description : 담당자 상세 및 업데이트 화면 + Modification Information + + 수정일 수정자 수정내용 + ------- -------- --------------------------- + 2021.08.09 김봉호 최초 생성 + + author : 김봉호 + since : 2021.08.09 +--%> +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ 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="double-submit" uri="http://www.egovframe.go.kr/tags/double-submit/jsp" %> +<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %> +<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%> + + + + + +강사 정보 등록 + + + + + + + + + +<%--
+ + + ` + +
--%> + + + + " /> + " /> + " /> + + + + + + + + + + + +
+
+ +
+

강사 정보 등록

+
    +
  • +
  • +

    강사신청관리

    +
  • +
  • 강사 정보 등록
  • +
+
+ +
+
+

강사 정보

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

강사명

+
+ +
+
+
+ 이미지를 넣어주세요 +
+ +
+
+
+

연락처(핸드폰)

+
+ + + - + + - + +
+

e-mail

+
+ + + @ + + + +
+

주소

+
+ + + +
+ + + + +
+
+

거주지

+
+ + + +
+

생년월일

+
+ + + + + +
+

소속

+
+ + + +

직위

+
+ + +
+

위촉년도

+
+ + + +

구분

+
+ + +
+

필수입력 항목*

+

전문분야

+
+ + +
+
+ + +
+
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + \ No newline at end of file