package geoinfo.admins.constructionProjectManagement; import java.net.URLEncoder; import java.security.SecureRandom; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.log4j.Logger; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Sheet; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import egovframework.com.cmm.service.EgovProperties; import egovframework.rte.psl.dataaccess.util.EgovMap; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import geoinfo.admins.board.RefrncRoomController; import geoinfo.admins.user.service.GeneralUserMngService; import geoinfo.admins.user.service.HomeTrainingService; import geoinfo.com.EgovExcel; import geoinfo.com.GeoinfoCommon; import geoinfo.comm.util.ScriptUtil; import geoinfo.session.UserInfo; import geoinfo.util.MyUtil; import whois.whoisSMS; @Controller public class ConstructionProjectManagementController { @Resource(name = "generalUserMngService") private GeneralUserMngService masterService; @Resource(name = "homeTrainingService") private HomeTrainingService homeTrainingService; /** * 집합교육 화면 * @param params * @param model * @param response * @param request * @return * @throws Exception */ @RequestMapping(value = "admins/constructionProjectManagement/construction-project-statistics-index.do") public String homeTrainingIndex(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { if (!UserInfo.isValidSession(request, response, "admin")) { return ""; } model.addAttribute("params", params); return "admins/constructionProjectManagement/construction-project-statistics-index"; } /** * 집합교육 추가 * @param request * @param strJSON * @param response * @return */ @RequestMapping(value = "admins/constructionProjectManagement/home-training-index/add.do", method = RequestMethod.POST) @ResponseBody public JSONObject addHomeTraining( HttpServletRequest request, @RequestBody String strJSON, HttpServletResponse response) { JSONObject jsonResponse = new JSONObject(); System.out.println( "\n--------------------------------------------------------------\n" + request.getRequestURI() + " IN:" + "\n--------------------------------------------------------------\n" + "strJSON" + strJSON + "\n" + "\n--------------------------------------------------------------\n" ); JSONParser jsonParser = new JSONParser(); JSONArray jsonArr = null; boolean isFail = false; String failMsg = ""; try { jsonArr = (JSONArray)jsonParser.parse(strJSON); for (Object obj : jsonArr) { JSONObject jsonObject = (JSONObject) obj; // JSONObject를 HashMap으로 변환 HashMap params = new HashMap<>(); for (Object key : jsonObject.keySet()) { String keyStr = (String) key; Object value = jsonObject.get(keyStr); params.put(keyStr, value); } try { HashMap hashMap = homeTrainingService.addHomeTraining(request, response, params); int nRetCode = MyUtil.getIntegerFromObject(hashMap.get("p_result_code")); String lpszRetMsg = MyUtil.getStringFromObject(hashMap.get("p_err_msg")); long lWvtRegId = MyUtil.getLongFromObject(hashMap.get("p_wvt_reg_id")); if( nRetCode == 100 ) { jsonResponse.put("resultCode", nRetCode); jsonResponse.put("result", "true"); jsonResponse.put("message", "등록이 완료되었습니다."); } else { if( nRetCode == 11 ) { lpszRetMsg += "\n" + "사업명: " + params.get("constName"); } jsonResponse.put("resultCode", nRetCode); jsonResponse.put("result", "false"); jsonResponse.put("message", lpszRetMsg); isFail = true; failMsg = lpszRetMsg; break; } } catch (Exception e) { // TODO Auto-generated catch block String strTxt = "---------- BUG REPORTING START ----------" + "\n" + "에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" + "strJSON:[\n" + strJSON + "\n]\n" + "e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" + "new Date().toString():[" + new Date().toString() + "]\n" + "\n" + "---------- BUG REPORTING END ----------" + "\n" + ""; System.out.println(strTxt); jsonResponse.put("resultCode", -1); jsonResponse.put("result", "false"); jsonResponse.put("message", e.getMessage()); } } } catch (org.json.simple.parser.ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } if( isFail ) { jsonResponse.put("resultCode", -2); jsonResponse.put("result", "false"); jsonResponse.put("message", failMsg); } System.out.println("\n--------------------------------------------------------------\n" + request.getRequestURI() + " OUT:" + "\n--------------------------------------------------------------\n" + "jsonResponse.toJSONString():[" + jsonResponse.toJSONString() + "]\n" + "\n--------------------------------------------------------------\n"); return jsonResponse; } /** * 집합교육 수정 * @param request * @param strJSON * @param response * @return */ @RequestMapping(value = "admins/constructionProjectManagement/home-training-index/update.do", method = RequestMethod.POST) @ResponseBody public JSONObject updateHomeTraining( HttpServletRequest request, @RequestBody String strJSON, HttpServletResponse response) { JSONObject jsonResponse = new JSONObject(); System.out.println( "\n--------------------------------------------------------------\n" + request.getRequestURI() + " IN:" + "\n--------------------------------------------------------------\n" + "strJSON" + strJSON + "\n" + "\n--------------------------------------------------------------\n" ); JSONParser jsonParser = new JSONParser(); JSONArray jsonArr = null; boolean isFail = false; String failMsg = ""; try { jsonArr = (JSONArray)jsonParser.parse(strJSON); for (Object obj : jsonArr) { JSONObject jsonObject = (JSONObject) obj; // JSONObject를 HashMap으로 변환 HashMap params = new HashMap<>(); for (Object key : jsonObject.keySet()) { String keyStr = (String) key; Object value = jsonObject.get(keyStr); params.put(keyStr, value); } try { HashMap hashMap = homeTrainingService.updateHomeTraining(request, response, params); int nRetCode = MyUtil.getIntegerFromObject(hashMap.get("p_result_code")); String lpszRetMsg = MyUtil.getStringFromObject(hashMap.get("p_err_msg")); if( nRetCode == 100 ) { jsonResponse.put("resultCode", nRetCode); jsonResponse.put("result", "true"); jsonResponse.put("message", "수정이 완료되었습니다."); } else { if( nRetCode == 11 ) { lpszRetMsg += "\n" + "사업명: " + params.get("constName"); } jsonResponse.put("resultCode", nRetCode); jsonResponse.put("result", "false"); jsonResponse.put("message", lpszRetMsg); isFail = true; failMsg = lpszRetMsg; break; } } catch (Exception e) { // TODO Auto-generated catch block String strTxt = "---------- BUG REPORTING START ----------" + "\n" + "에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" + "strJSON:[\n" + strJSON + "\n]\n" + "e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" + "new Date().toString():[" + new Date().toString() + "]\n" + "\n" + "---------- BUG REPORTING END ----------" + "\n" + ""; System.out.println(strTxt); jsonResponse.put("resultCode", -1); jsonResponse.put("result", "false"); jsonResponse.put("message", e.getMessage()); } } } catch (org.json.simple.parser.ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } if( isFail ) { jsonResponse.put("resultCode", -2); jsonResponse.put("result", "false"); jsonResponse.put("message", failMsg); } System.out.println("\n--------------------------------------------------------------\n" + request.getRequestURI() + " OUT:" + "\n--------------------------------------------------------------\n" + "jsonResponse.toJSONString():[" + jsonResponse.toJSONString() + "]\n" + "\n--------------------------------------------------------------\n"); return jsonResponse; } @RequestMapping(value = "admins/constructionProjectManagement/home-training-index/list.do", method = RequestMethod.GET) @ResponseBody public JSONObject getHomeTraining( HttpServletRequest request, @RequestParam HashMap params, HttpServletResponse response) { JSONObject jsonResponse = new JSONObject(); System.out.println( "\n--------------------------------------------------------------\n" + request.getRequestURI() + " IN:" + "\n--------------------------------------------------------------\n" + "params.toString()" + params.toString() + "\n" + "\n--------------------------------------------------------------\n" ); try { homeTrainingService.getHomeTraining(request, response, jsonResponse, params); jsonResponse.put("resultCode", 100); jsonResponse.put("result", "true"); jsonResponse.put("message", "조회가 완료되었습니다."); } catch (Exception e) { // TODO Auto-generated catch block String strTxt = "---------- BUG REPORTING START ----------" + "\n" + "에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" + "e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" + "new Date().toString():[" + new Date().toString() + "]\n" + "\n" + "---------- BUG REPORTING END ----------" + "\n" + ""; System.out.println(strTxt); String eMsg = e.getMessage(); if( eMsg != null ) { if( eMsg.equals("로그인이 필요한 서비스입니다.") ) { jsonResponse.put("resultCode", 401); } } jsonResponse.put("resultCode", -1); jsonResponse.put("result", "false"); jsonResponse.put("message", e.getMessage()); } System.out.println( "\n--------------------------------------------------------------\n" + request.getRequestURI() + " OUT:" + "\n--------------------------------------------------------------\n" + "jsonResponse.toJSONString():[" + jsonResponse.toJSONString() + "]\n" + "\n--------------------------------------------------------------\n" ); return jsonResponse; } /** * 특정 집합교육에 참여한 사용자 목록을 조회한다. * @param request * @param params * @param response * @return */ @RequestMapping(value = "admins/constructionProjectManagement/home-training-index/item/list.do", method = RequestMethod.GET) @ResponseBody public JSONObject getHomeTrainingItemList( HttpServletRequest request, @RequestParam HashMap params, HttpServletResponse response) { JSONObject jsonResponse = new JSONObject(); System.out.println( "\n--------------------------------------------------------------\n" + request.getRequestURI() + " IN:" + "\n--------------------------------------------------------------\n" + "params.toString()" + params.toString() + "\n" + "\n--------------------------------------------------------------\n" ); try { homeTrainingService.getHomeTrainingItemList(request, response, jsonResponse, params); jsonResponse.put("resultCode", 100); jsonResponse.put("result", "true"); jsonResponse.put("message", "조회가 완료되었습니다."); } catch (Exception e) { // TODO Auto-generated catch block String strTxt = "---------- BUG REPORTING START ----------" + "\n" + "에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" + "e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" + "new Date().toString():[" + new Date().toString() + "]\n" + "\n" + "---------- BUG REPORTING END ----------" + "\n" + ""; System.out.println(strTxt); jsonResponse.put("resultCode", -1); jsonResponse.put("result", "false"); jsonResponse.put("message", e.getMessage()); } System.out.println( "\n--------------------------------------------------------------\n" + request.getRequestURI() + " OUT:" + "\n--------------------------------------------------------------\n" + "jsonResponse.toJSONString():[" + jsonResponse.toJSONString() + "]\n" + "\n--------------------------------------------------------------\n" ); return jsonResponse; } @RequestMapping(value = "admins/constructionProjectManagement/home-training-index/item/delete.do", method = RequestMethod.POST) @ResponseBody public JSONObject deleteHomeTrainingItem( HttpServletRequest request, @RequestBody String strJSON, HttpServletResponse response) { JSONObject jsonResponse = new JSONObject(); System.out.println( "\n--------------------------------------------------------------\n" + request.getRequestURI() + " IN:" + "\n--------------------------------------------------------------\n" + "strJSON" + strJSON + "\n" + "\n--------------------------------------------------------------\n" ); JSONParser jsonParser = new JSONParser(); JSONArray jsonArr = null; boolean isFail = false; String failMsg = ""; try { jsonArr = (JSONArray)jsonParser.parse(strJSON); for (Object obj : jsonArr) { JSONObject jsonObject = (JSONObject) obj; // JSONObject를 HashMap으로 변환 HashMap params = new HashMap<>(); for (Object key : jsonObject.keySet()) { String keyStr = (String) key; Object value = jsonObject.get(keyStr); params.put(keyStr, value); } try { HashMap hashMap = homeTrainingService.deleteHomeTrainingItem(request, response, params); int nRetCode = MyUtil.getIntegerFromObject(hashMap.get("p_result_code")); String lpszRetMsg = MyUtil.getStringFromObject(hashMap.get("p_err_msg")); if( nRetCode == 100 ) { jsonResponse.put("resultCode", nRetCode); jsonResponse.put("result", "true"); jsonResponse.put("message", "삭제가 완료되었습니다."); } else { if( nRetCode == 11 ) { lpszRetMsg += "\n" + "사업명: " + params.get("constName"); } jsonResponse.put("resultCode", nRetCode); jsonResponse.put("result", "false"); jsonResponse.put("message", lpszRetMsg); isFail = true; failMsg = lpszRetMsg; break; } } catch (Exception e) { // TODO Auto-generated catch block String strTxt = "---------- BUG REPORTING START ----------" + "\n" + "에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" + "strJSON:[\n" + strJSON + "\n]\n" + "e.getMessage():[\n" + e.getMessage() + "\n]\n" + "\n" + "new Date().toString():[" + new Date().toString() + "]\n" + "\n" + "---------- BUG REPORTING END ----------" + "\n" + ""; System.out.println(strTxt); jsonResponse.put("resultCode", -1); jsonResponse.put("result", "false"); jsonResponse.put("message", e.getMessage()); } } } catch (org.json.simple.parser.ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } if( isFail ) { jsonResponse.put("resultCode", -2); jsonResponse.put("result", "false"); jsonResponse.put("message", failMsg); } System.out.println("\n--------------------------------------------------------------\n" + request.getRequestURI() + " OUT:" + "\n--------------------------------------------------------------\n" + "jsonResponse.toJSONString():[" + jsonResponse.toJSONString() + "]\n" + "\n--------------------------------------------------------------\n"); return jsonResponse; } /** * 집합교육 승인 화면 * @param params * @param model * @param response * @param request * @return * @throws Exception */ @RequestMapping(value = "admins/constructionProjectManagement/home-training-approval-system") public String homeTrainingApprovalSystem(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { if (!UserInfo.isValidSession(request, response, "admin")) { return ""; } model.addAttribute("params", params); return "admins/constructionProjectManagement/home-training-approval-system"; } /** * 방문교육 달력 화면 * @param params * @param model * @param response * @param request * @return * @throws Exception */ @RequestMapping(value = "admins/constructionProjectManagement/visit-training-index.do") public String visitTrainingIndex(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { if (!UserInfo.isValidSession(request, response, "admin")) { return ""; } model.addAttribute("params", params); return "admins/constructionProjectManagement/visit-training-index"; } /** * 방문교육 승인 화면 * @param params * @param model * @param response * @param request * @return * @throws Exception */ @RequestMapping(value = "admins/constructionProjectManagement/visit-training-approval-system") public String visitTrainingApprovalSystem(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { if (!UserInfo.isValidSession(request, response, "admin")) { return ""; } model.addAttribute("params", params); return "admins/constructionProjectManagement/visit-training-approval-system"; } }