geoinfo_admin/src/main/java/geoinfo/admins/constructionProjectManagement/ConstructionProjectManageme...

843 lines
32 KiB
Java

package geoinfo.admins.constructionProjectManagement;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.springframework.http.ResponseEntity;
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 egovframework.rte.psl.dataaccess.util.EgovMap;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import geoinfo.admins.constructionProjectManagement.service.ConstructionProjectManagementService;
import geoinfo.admins.user.service.DrillingInquiryService;
import geoinfo.admins.user.service.GeneralUserMngService;
import geoinfo.admins.user.service.HomeTrainingService;
import geoinfo.comm.util.strUtil;
import geoinfo.session.UserInfo;
import geoinfo.util.MyUtil;
@Controller
public class ConstructionProjectManagementController {
@Resource(name = "generalUserMngService")
private GeneralUserMngService masterService;
@Resource(name = "homeTrainingService")
private HomeTrainingService homeTrainingService;
// [변경] 새로 만든 서비스 주입
@Resource(name = "constructionProjectManagementService")
private ConstructionProjectManagementService constructionProjectManagementService;
// [추가] 기존 검색/조회 기능을 위해 필요 (변수 선언 추가)
@Resource(name = "drillingInquiryService")
private DrillingInquiryService drillingInquiryService;
/**
* 건설현장 통계 화면
* @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<String, Object> 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";
}
/**
* 건설현장 통계 데이터 조회 (AJAX)
*/
@RequestMapping(value = "admins/constructionProjectManagement/selectStatistics.do", method = RequestMethod.POST)
@ResponseBody
public JSONObject selectStatistics(HttpServletRequest request, @RequestBody String strJSON, HttpServletResponse response) {
JSONObject jsonResponse = new JSONObject();
try {
// 1. 파라미터 파싱
JSONParser jsonParser = new JSONParser();
JSONObject jsonObject = (JSONObject) jsonParser.parse(strJSON);
HashMap<String, Object> params = new HashMap<>();
if (jsonObject != null) {
for(Object key : jsonObject.keySet()){
params.put((String)key, jsonObject.get(key));
}
}
// 2. 서비스 호출 (새로 만든 서비스 사용)
Map<String, Object> stats = constructionProjectManagementService.selectConstructionProjectStatistics(params);
jsonResponse.put("result", "true");
jsonResponse.put("data", stats);
} catch (Exception e) {
jsonResponse.put("result", "false");
jsonResponse.put("message", e.getMessage());
e.printStackTrace();
}
return jsonResponse;
}
/**
* 집합교육 추가
* @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<String, Object> params = new HashMap<>();
for (Object key : jsonObject.keySet()) {
String keyStr = (String) key;
Object value = jsonObject.get(keyStr);
params.put(keyStr, value);
}
try {
HashMap<String, Object> 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<String, Object> params = new HashMap<>();
for (Object key : jsonObject.keySet()) {
String keyStr = (String) key;
Object value = jsonObject.get(keyStr);
params.put(keyStr, value);
}
try {
HashMap<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> params = new HashMap<>();
for (Object key : jsonObject.keySet()) {
String keyStr = (String) key;
Object value = jsonObject.get(keyStr);
params.put(keyStr, value);
}
try {
HashMap<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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";
}
/**
* 건설현장 조회 목록화면
* @param params
* @param model
* @param response
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "admins/constructionProjectManagement/construction-site-index.do")
public String constructionSiteIndex(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception {
if (!UserInfo.isValidSession(request, response, "admin")) {
return "";
}
model.addAttribute("params", params);
return "admins/constructionProjectManagement/construction-site-index";
}
/**
* 건설현장 관리 > 발주기관 계정 화면
* @param params
* @param model
* @param response
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "admins/constructionProjectManagement/construction-user-mgmt-index.do")
public String goConstructionUserMgmt(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception {
if (!UserInfo.isValidSession(request, response, "admin")) {
return "";
}
/** 2023.10.25 LHJ 검색조건 추가 : 가입기간 시작/종료날짜를 8자리 숫자로 입력하지 않았을 때 처리 **/
String searchBgndt = (String) params.get("searchBgndt");
if(searchBgndt == null || searchBgndt.length() != 8 || !searchBgndt.matches("[0-9]+")) {
params.put("searchBgndt", "");
}
String searchEnddt = (String) params.get("searchEnddt");
if(searchEnddt == null || searchEnddt.length() != 8 || !searchEnddt.matches("[0-9]+")) {
params.put("searchEnddt", "");
}
params.put("cls", "2");
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) {
paginationInfo.setCurrentPageNo(1);
params.put("pageIndex", 1);
} else {
paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex")));
}
paginationInfo.setRecordCountPerPage(10);
paginationInfo.setPageSize(10);
params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex());
params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage());
List<?> resultList = masterService.selectInfoList(params);
int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString());
paginationInfo.setTotalRecordCount(totalCnt);
model.addAttribute("params", params);
model.addAttribute("resultList", resultList);
model.addAttribute("paginationInfo", paginationInfo);
return "admins/constructionProjectManagement/construction-user-mgmt-index";
}
/**
* 건설현장 관리 > 발주기관 계정 상세조회 화면
* @param params
* @param model
* @param response
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "admins/constructionProjectManagement/construction-user-detail.do")
public String goConstructionUserDetail(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception {
if (!UserInfo.isValidSession(request, response, "admin")) {
return "";
}
model.addAttribute("params", params);
return "admins/constructionProjectManagement/construction-user-detail";
}
/**
* 프로젝트 목록 조회 프로젝트명 자동검색
* @param request
* @param response
* @param params
* @return
* @throws Exception
*/
@ResponseBody
@RequestMapping(value = "/drilling-project-list", method = RequestMethod.GET, produces = "application/json; charset=UTF-8")
public String getDrillingProjectList(HttpServletRequest request, HttpServletResponse response, @RequestParam HashMap<String,Object> params) throws Exception {
if (!UserInfo.isValidSession(request, response, "admin")) {
return "";
}
JSONObject jsonObject = new JSONObject();
strUtil sUtil = new strUtil();
String projectName = sUtil.checkNull((String)params.get("projectName"));
JSONArray jsonListObject = new JSONArray();
JSONObject result = new JSONObject();
result.put("list", drillingInquiryService.drillingInquiryAutocompleteList(request, params));
jsonObject.put("resultMessage", "OK");
jsonObject.put("resultCode", 200);
jsonObject.put("result", result);
response.setContentType("application/json; charset=UTF-8"); // 응답 헤더 설정
response.setCharacterEncoding("UTF-8"); // 응답 데이터 인코딩 설정 (중요)
try (OutputStream os = response.getOutputStream()) { // OutputStream 사용
os.write(jsonObject.toString().getBytes("UTF-8")); // UTF-8 인코딩하여 출력
}
return null; // @ResponseBody이므로 반환 값은 필요 없습니다.
}
/**
* 발주기관 프로젝트목록 가져오기
* @param request
* @param params
* @param response
* @return
* @throws IOException
*/
@RequestMapping(value = "/drilling/inquiry/list.do", method = RequestMethod.GET, produces = { "application/json; charset=utf-8" })
@ResponseBody
public ResponseEntity<JSONObject> drillingInquiryList (
HttpServletRequest request,
@RequestParam HashMap<String, Object> params,
HttpServletResponse response
) throws IOException {
if (!UserInfo.isValidSession(request, response, "admin")) {
return null;
}
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " IN:" +
"\n--------------------------------------------------------------\n" +
"params" + params.toString() + "\n" +
"\n--------------------------------------------------------------\n"
);
JSONObject jSONOResponse = null;
try {
jSONOResponse = drillingInquiryService.drillingInquiryList( request, params );
} catch (Exception e) {
// TODO Auto-generated catch block
jSONOResponse = new JSONObject();
String strTxt =
"---------- BUG REPORTING START ----------" + "\n" +
"에러 문구:[" + request.getRequestURI() + " " + "]" + "\n" +
"params:[\n" + params.toString() + "\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);
jSONOResponse.put("resultCode", -1);
jSONOResponse.put("result", "false");
jSONOResponse.put("message", e.getMessage());
}
System.out.println(
"\n--------------------------------------------------------------\n" +
request.getRequestURI() + " OUT:" +
"\n--------------------------------------------------------------\n" +
"jSONOResponse.toJSONString():[" + jSONOResponse.toJSONString() + "]\n" +
"\n--------------------------------------------------------------\n"
);
int contentLength = 0;
try {
contentLength = jSONOResponse.toJSONString().getBytes("UTF-8").length;
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
response.setStatus(HttpServletResponse.SC_OK);
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Type", "application/json; charset=utf-8");
response.setContentLength(contentLength); // Content-Length 설정
try {
response.getWriter().print(jSONOResponse);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
* 건설현장 관리 > 발주기관 로그인 내역 화면
* @param params
* @param model
* @param response
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "admins/constructionProjectManagement/construction-user-login-history.do")
public String goConstructionUserloginHist(@RequestParam HashMap<String, Object> params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception {
if (!UserInfo.isValidSession(request, response, "admin")) {
return "";
}
/** 2023.10.25 LHJ 검색조건 추가 : 가입기간 시작/종료날짜를 8자리 숫자로 입력하지 않았을 때 처리 **/
String searchBgndt = (String) params.get("searchBgndt");
if(searchBgndt == null || searchBgndt.length() != 8 || !searchBgndt.matches("[0-9]+")) {
params.put("searchBgndt", "");
}
String searchEnddt = (String) params.get("searchEnddt");
if(searchEnddt == null || searchEnddt.length() != 8 || !searchEnddt.matches("[0-9]+")) {
params.put("searchEnddt", "");
}
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) {
paginationInfo.setCurrentPageNo(1);
params.put("pageIndex", 1);
} else {
paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex")));
}
paginationInfo.setRecordCountPerPage(10);
paginationInfo.setPageSize(10);
params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex());
params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage());
List<?> resultList = masterService.selectUserLoginHistory(params);
int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString());
paginationInfo.setTotalRecordCount(totalCnt);
model.addAttribute("params", params);
model.addAttribute("resultList", resultList);
model.addAttribute("paginationInfo", paginationInfo);
return "admins/constructionProjectManagement/construction-user-login-history";
}
}