From e0e04e891f43c007320c3b67228b9230e8a79ea6 Mon Sep 17 00:00:00 2001 From: thkim Date: Mon, 15 Jul 2024 10:00:55 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=C2=96=EC=8B=A0=EA=B7=9C=20=ED=94=84?= =?UTF-8?q?=EB=A1=9C=EC=A0=9D=ED=8A=B8=20=EC=82=AC=EC=97=85=EB=AA=85=20?= =?UTF-8?q?=EC=A4=91=EB=B3=B5=20=EA=B2=80=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../projectList/ProjectListController.java | 272 +++++++++++------- .../service/ProjectListMapper.java | 2 + .../service/ProjectListService.java | 2 + .../service/impl/ProjectListServiceImpl.java | 5 + .../sqlmap/mapper/regi/projectList.xml | 11 + .../WEB-INF/views/web/input/meta_info.jsp | 8 +- .../WEB-INF/views/web/input/meta_info1.jsp | 75 +++++ 7 files changed, 273 insertions(+), 102 deletions(-) diff --git a/src/main/java/geoinfo/regi/projectList/ProjectListController.java b/src/main/java/geoinfo/regi/projectList/ProjectListController.java index cc68ce8b..d73e4f17 100644 --- a/src/main/java/geoinfo/regi/projectList/ProjectListController.java +++ b/src/main/java/geoinfo/regi/projectList/ProjectListController.java @@ -2,15 +2,21 @@ package geoinfo.regi.projectList; import java.util.ArrayList; import java.util.HashMap; +import java.io.OutputStream; +import java.io.PrintWriter; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.json.simple.JSONObject; +import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; 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 org.springframework.web.util.UrlPathHelper; @@ -33,110 +39,174 @@ public class ProjectListController { @Resource(name = "headerService") private HeaderService headerService; - // 지반정보등록 (관리자) - @RequestMapping(value = "/insertMeta.do") - public ModelAndView insertMeta(@RequestParam HashMap params, ModelAndView model ,HttpServletRequest request, HttpServletResponse response) throws Exception{ - UrlPathHelper urlPathHelper = new UrlPathHelper(); - String topPath = urlPathHelper.getOriginatingRequestUri(request); - //변수선언 - WebUtil wUtil = new WebUtil(); - strUtil sUtil = new strUtil(); - int affectRow = 0; - String rUrl = sUtil.checkNull(String.valueOf(params.get("rUrl"))); - //request - String oPROJECT_CODE = sUtil.checkNull(String.valueOf(params.get("PROJECT_CODE"))); - String oINPUT_COMPANY = sUtil.checkNull(String.valueOf(request.getParameter("INPUT_COMPANY"))); - String oDEPT = sUtil.checkNull(String.valueOf(request.getParameter("DEPT"))); - String oADMIN_NAME = sUtil.checkNull(String.valueOf(request.getParameter("ADMIN_NAME"))); - String oEMAIL = sUtil.checkNull(String.valueOf(request.getParameter("EMAIL"))); - String oTEL = sUtil.checkNull(String.valueOf(params.get("TEL"))); - String oPHONE = sUtil.checkNull(String.valueOf(params.get("PHONE"))); - String oSEARCHDATE = sUtil.checkNull(String.valueOf(params.get("SEARCHDATE"))); - String oINPUTDATE = wUtil.getToday(); - String oPROJECT_NAME = sUtil.checkNull(String.valueOf(request.getParameter("PROJECT_NAME"))); - String oHOLE_NUMBER = sUtil.checkNull(String.valueOf(params.get("HOLE_NUMBER"))); - String oHOLE_ADMIN_NAME= sUtil.checkNull(String.valueOf(request.getParameter("HOLE_ADMIN_NAME"))); - String oHOLE_COMPANY = sUtil.checkNull(String.valueOf(request.getParameter("HOLE_COMPANY"))); - String oHOLE_TYPE = "Boring"; - String oHOLE_SPOT_SD = sUtil.checkNull(String.valueOf(params.get("HOLE_SPOT_SD"))); - String oHOLE_SPOT_SGG = sUtil.checkNull(String.valueOf(params.get("HOLE_SPOT_SGG"))); - String oHOLE_SPOT = sUtil.checkNull(String.valueOf(request.getParameter("HOLE_SPOT"))); - String oREMARK = sUtil.checkNull(String.valueOf(request.getParameter("REMARK"))); - String oREPORT_TYPE=sUtil.checkNull(String.valueOf(params.get("REPORT_TYPE"))); - if("".equals(oPROJECT_CODE)){ - HashMap prjCd = new HashMap(); - prjCd=masterService.getProjectCd(params); - oPROJECT_CODE=(String)prjCd.get("P_CODE")+prjCd.get("P_NUM"); - //System.out.println(oREPORT_TYPE); - params.put("PROJECT_CODE", oPROJECT_CODE); - params.put("PROJECT_NAME", oPROJECT_NAME); - params.put("INPUT_COMPANY", oINPUT_COMPANY); - params.put("DEPT", oDEPT); - params.put("ADMIN_NAME", oADMIN_NAME); - params.put("EMAIL", oEMAIL); - params.put("TEL", oTEL); - params.put("PHONE", oPHONE); - params.put("SEARCHDATE", oSEARCHDATE); - params.put("INPUTDATE", oINPUTDATE); - params.put("HOLE_NUMBER", oHOLE_NUMBER); - params.put("HOLE_ADMIN_NAME", oHOLE_ADMIN_NAME); - params.put("HOLE_COMPANY", oHOLE_COMPANY); - params.put("HOLE_TYPE", oHOLE_TYPE); - params.put("HOLE_SPOT_SD", oHOLE_SPOT_SD); - params.put("HOLE_SPOT_SGG", oHOLE_SPOT_SGG); - params.put("HOLE_SPOT", oHOLE_SPOT); - params.put("REMARK", oREMARK); - params.put("REPORT_TYPE", oREPORT_TYPE); - params.put("USERID",request.getSession().getAttribute("USERID")); - params.put("MODUSERID",request.getSession().getAttribute("USERID")); - //System.out.println("!!!!!!!!!!!params!!!!!!!!!!!!!!!+"+oPROJECT_NAME); + //프로젝트명 중복여부를 체크한다. + @ResponseBody + @RequestMapping(value = "/project-duplicate-check", method = RequestMethod.GET, produces = "application/json; charset=UTF-8") + public String projectDuplicateCheck(HttpServletRequest request, HttpServletResponse response, @RequestParam HashMap params) throws Exception { - //TEMP_PROJECT_INFO - params.put("PROJECT_START_SPOT_SD", oHOLE_SPOT_SD); - params.put("PROJECT_START_SPOT_SGG", oHOLE_SPOT_SGG); - params.put("PROJECT_START_SPOT", oHOLE_SPOT); - params.put("PROJECT_END_SPOT_SD", oHOLE_SPOT_SD); - params.put("PROJECT_END_SPOT_SGG", oHOLE_SPOT_SGG); - params.put("PROJECT_WORK_COMPANY", oHOLE_COMPANY); - params.put("PROJECT_HOLE_NUMBER", oHOLE_NUMBER); - params.put("STATE", "4"); - params.put("REPORT_TYPE", "CH"); - affectRow = masterService.insertMeta(params); - masterService.insertProject(params); - if("/insertMeta.do".equals(topPath)){ - rUrl = "/meta_info.do?REPORT_TYPE="+oREPORT_TYPE+"&PROJECT_CODE="+oPROJECT_CODE; - } - }else{ - params.put("PROJECT_CODE", oPROJECT_CODE); - params.put("PROJECT_NAME", oPROJECT_NAME); - params.put("INPUT_COMPANY", oINPUT_COMPANY); - params.put("DEPT", oDEPT); - params.put("ADMIN_NAME", oADMIN_NAME); - params.put("EMAIL", oEMAIL); - params.put("TEL", oTEL); - params.put("PHONE", oPHONE); - params.put("SEARCHDATE", oSEARCHDATE); - params.put("INPUTDATE", oINPUTDATE); - params.put("HOLE_NUMBER", oHOLE_NUMBER); - params.put("HOLE_ADMIN_NAME", oHOLE_ADMIN_NAME); - params.put("HOLE_COMPANY", oHOLE_COMPANY); - params.put("HOLE_TYPE", oHOLE_TYPE); - params.put("HOLE_SPOT_SD", oHOLE_SPOT_SD); - params.put("HOLE_SPOT_SGG", oHOLE_SPOT_SGG); - params.put("HOLE_SPOT", oHOLE_SPOT); - params.put("REMARK", oREMARK); - params.put("REPORT_TYPE", oREPORT_TYPE); - params.put("USERID",request.getSession().getAttribute("USERID")); - affectRow =masterService.updateMeta(params); - } - model.addObject("oREPORT_TYPE", oREPORT_TYPE); - model.addObject("affectRow", affectRow); - model.addObject("oPROJECT_CODE", oPROJECT_CODE); - model.setViewName("redirect:/index_db.do"); - model.addObject("rUrl",rUrl); + JSONObject jsonObject = new JSONObject(); + strUtil sUtil = new strUtil(); - return model; + String projectName = sUtil.checkNull((String)params.get("projectName")); + String isProjectNameChecking = sUtil.checkNull((String)params.get("isProjectNameChecking")); + + + if(isProjectNameChecking != null && isProjectNameChecking.toLowerCase().equals("true") && projectName == ""){ + jsonObject.put("result", "false"); + jsonObject.put("resultCode", "The name is missing."); + jsonObject.put("message", "사업명이 없습니다. 사업명을 입력해 주세요."); + } else { + params.put("PROJECT_NAME", projectName); + // 사업명(프로젝트 명) 중복 검사를 수행한다. + ArrayList> arrProjectCodeAndProjectName = masterService.getProjectCodeAndProjectNameByProjectName(params); + if( 0 < arrProjectCodeAndProjectName.size() ) { + jsonObject.put("result", "false"); + jsonObject.put("resultCode", "The name already exists."); + jsonObject.put("message", "해당 사업명이 이미 있습니다. 다른 사업명으로 입력해 주세요."); + } else { + jsonObject.put("result", "true"); + jsonObject.put("message", ""); } + } + + 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이므로 반환 값은 필요 없습니다. + } + + // 지반정보등록 + @RequestMapping(value = "/insertMeta.do") + public ModelAndView insertMeta(@RequestParam HashMap params, ModelAndView model ,HttpServletRequest request, HttpServletResponse response) throws Exception{ + UrlPathHelper urlPathHelper = new UrlPathHelper(); + String topPath = urlPathHelper.getOriginatingRequestUri(request); + //변수선언 + WebUtil wUtil = new WebUtil(); + strUtil sUtil = new strUtil(); + int affectRow = 0; + String rUrl = sUtil.checkNull(String.valueOf(params.get("rUrl"))); + //request + String oPROJECT_CODE = sUtil.checkNull(String.valueOf(params.get("PROJECT_CODE"))); + String oINPUT_COMPANY = sUtil.checkNull(String.valueOf(request.getParameter("INPUT_COMPANY"))); + String oDEPT = sUtil.checkNull(String.valueOf(request.getParameter("DEPT"))); + String oADMIN_NAME = sUtil.checkNull(String.valueOf(request.getParameter("ADMIN_NAME"))); + String oEMAIL = sUtil.checkNull(String.valueOf(request.getParameter("EMAIL"))); + String oTEL = sUtil.checkNull(String.valueOf(params.get("TEL"))); + String oPHONE = sUtil.checkNull(String.valueOf(params.get("PHONE"))); + String oSEARCHDATE = sUtil.checkNull(String.valueOf(params.get("SEARCHDATE"))); + String oINPUTDATE = wUtil.getToday(); + String oPROJECT_NAME = sUtil.checkNull(String.valueOf(request.getParameter("PROJECT_NAME"))); + String oHOLE_NUMBER = sUtil.checkNull(String.valueOf(params.get("HOLE_NUMBER"))); + String oHOLE_ADMIN_NAME= sUtil.checkNull(String.valueOf(request.getParameter("HOLE_ADMIN_NAME"))); + String oHOLE_COMPANY = sUtil.checkNull(String.valueOf(request.getParameter("HOLE_COMPANY"))); + String oHOLE_TYPE = "Boring"; + String oHOLE_SPOT_SD = sUtil.checkNull(String.valueOf(params.get("HOLE_SPOT_SD"))); + String oHOLE_SPOT_SGG = sUtil.checkNull(String.valueOf(params.get("HOLE_SPOT_SGG"))); + String oHOLE_SPOT = sUtil.checkNull(String.valueOf(request.getParameter("HOLE_SPOT"))); + String oREMARK = sUtil.checkNull(String.valueOf(request.getParameter("REMARK"))); + String oREPORT_TYPE=sUtil.checkNull(String.valueOf(params.get("REPORT_TYPE"))); + if("".equals(oPROJECT_CODE)){ + HashMap prjCd = new HashMap(); + prjCd=masterService.getProjectCd(params); + oPROJECT_CODE=(String)prjCd.get("P_CODE")+prjCd.get("P_NUM"); + //System.out.println(oREPORT_TYPE); + + + params.put("PROJECT_CODE", oPROJECT_CODE); + params.put("PROJECT_NAME", oPROJECT_NAME); + params.put("INPUT_COMPANY", oINPUT_COMPANY); + params.put("DEPT", oDEPT); + params.put("ADMIN_NAME", oADMIN_NAME); + params.put("EMAIL", oEMAIL); + params.put("TEL", oTEL); + params.put("PHONE", oPHONE); + params.put("SEARCHDATE", oSEARCHDATE); + params.put("INPUTDATE", oINPUTDATE); + params.put("HOLE_NUMBER", oHOLE_NUMBER); + params.put("HOLE_ADMIN_NAME", oHOLE_ADMIN_NAME); + params.put("HOLE_COMPANY", oHOLE_COMPANY); + params.put("HOLE_TYPE", oHOLE_TYPE); + params.put("HOLE_SPOT_SD", oHOLE_SPOT_SD); + params.put("HOLE_SPOT_SGG", oHOLE_SPOT_SGG); + params.put("HOLE_SPOT", oHOLE_SPOT); + params.put("REMARK", oREMARK); + params.put("REPORT_TYPE", oREPORT_TYPE); + params.put("USERID",request.getSession().getAttribute("USERID")); + params.put("MODUSERID",request.getSession().getAttribute("USERID")); + //System.out.println("!!!!!!!!!!!params!!!!!!!!!!!!!!!+"+oPROJECT_NAME); + + //TEMP_PROJECT_INFO + params.put("PROJECT_START_SPOT_SD", oHOLE_SPOT_SD); + params.put("PROJECT_START_SPOT_SGG", oHOLE_SPOT_SGG); + params.put("PROJECT_START_SPOT", oHOLE_SPOT); + params.put("PROJECT_END_SPOT_SD", oHOLE_SPOT_SD); + params.put("PROJECT_END_SPOT_SGG", oHOLE_SPOT_SGG); + params.put("PROJECT_WORK_COMPANY", oHOLE_COMPANY); + params.put("PROJECT_HOLE_NUMBER", oHOLE_NUMBER); + params.put("STATE", "4"); + params.put("REPORT_TYPE", "CH"); + + // 사업명(프로젝트 명) 중복 검사를 수행한다. + + ArrayList> arrProjectCodeAndProjectName = masterService.getProjectCodeAndProjectNameByProjectName(params); + if( 0 < arrProjectCodeAndProjectName.size() ) { + //여기에서 프로젝트 중복되어서 다른 이름으로 지정해야한다는 메시지를 사용자에게 보여줘야 함. + model.addObject("result", "false"); + model.addObject("message", "해당 사업명이 이미 있습니다. 다른 사업명으로 입력 해주세요."); + model.setViewName("redirect:/index_db.do"); + model.addObject("rUrl",rUrl); + + response.setCharacterEncoding("euc-kr"); + PrintWriter writer = response.getWriter(); + writer.println(""); + writer.flush(); + return null; + } + + affectRow = masterService.insertMeta(params); + masterService.insertProject(params); + if("/insertMeta.do".equals(topPath)){ + rUrl = "/meta_info.do?REPORT_TYPE="+oREPORT_TYPE+"&PROJECT_CODE="+oPROJECT_CODE; + } + }else{ + params.put("PROJECT_CODE", oPROJECT_CODE); + params.put("PROJECT_NAME", oPROJECT_NAME); + params.put("INPUT_COMPANY", oINPUT_COMPANY); + params.put("DEPT", oDEPT); + params.put("ADMIN_NAME", oADMIN_NAME); + params.put("EMAIL", oEMAIL); + params.put("TEL", oTEL); + params.put("PHONE", oPHONE); + params.put("SEARCHDATE", oSEARCHDATE); + params.put("INPUTDATE", oINPUTDATE); + params.put("HOLE_NUMBER", oHOLE_NUMBER); + params.put("HOLE_ADMIN_NAME", oHOLE_ADMIN_NAME); + params.put("HOLE_COMPANY", oHOLE_COMPANY); + params.put("HOLE_TYPE", oHOLE_TYPE); + params.put("HOLE_SPOT_SD", oHOLE_SPOT_SD); + params.put("HOLE_SPOT_SGG", oHOLE_SPOT_SGG); + params.put("HOLE_SPOT", oHOLE_SPOT); + params.put("REMARK", oREMARK); + params.put("REPORT_TYPE", oREPORT_TYPE); + params.put("USERID",request.getSession().getAttribute("USERID")); + affectRow =masterService.updateMeta(params); + } + model.addObject("result", "true"); + model.addObject("oREPORT_TYPE", oREPORT_TYPE); + model.addObject("affectRow", affectRow); + model.addObject("oPROJECT_CODE", oPROJECT_CODE); + model.setViewName("redirect:/index_db.do"); + model.addObject("rUrl",rUrl); + + return model; + } // 지반정보등록 (관리자) @RequestMapping(value = "/deleteAll.do") diff --git a/src/main/java/geoinfo/regi/projectList/service/ProjectListMapper.java b/src/main/java/geoinfo/regi/projectList/service/ProjectListMapper.java index bcc9a4b2..e664b82e 100644 --- a/src/main/java/geoinfo/regi/projectList/service/ProjectListMapper.java +++ b/src/main/java/geoinfo/regi/projectList/service/ProjectListMapper.java @@ -50,4 +50,6 @@ public interface ProjectListMapper { public ArrayList getResistivity(HashMap params); public ArrayList getRefraction(HashMap params); public ArrayList getExpertOpinion(HashMap params); + + public ArrayList> getProjectCodeAndProjectNameByProjectName(HashMap params); } diff --git a/src/main/java/geoinfo/regi/projectList/service/ProjectListService.java b/src/main/java/geoinfo/regi/projectList/service/ProjectListService.java index 623fbc73..fa919f1a 100644 --- a/src/main/java/geoinfo/regi/projectList/service/ProjectListService.java +++ b/src/main/java/geoinfo/regi/projectList/service/ProjectListService.java @@ -48,4 +48,6 @@ public interface ProjectListService { public ArrayList getResistivity(HashMap params); public ArrayList getRefraction(HashMap params); public ArrayList getExpertOpinion(HashMap params); + + public ArrayList> getProjectCodeAndProjectNameByProjectName(HashMap params); } diff --git a/src/main/java/geoinfo/regi/projectList/service/impl/ProjectListServiceImpl.java b/src/main/java/geoinfo/regi/projectList/service/impl/ProjectListServiceImpl.java index 57957783..faf967da 100644 --- a/src/main/java/geoinfo/regi/projectList/service/impl/ProjectListServiceImpl.java +++ b/src/main/java/geoinfo/regi/projectList/service/impl/ProjectListServiceImpl.java @@ -210,4 +210,9 @@ public class ProjectListServiceImpl implements ProjectListService { return projectListMapper.getExpertOpinion(params); } + @Override + public ArrayList> getProjectCodeAndProjectNameByProjectName(HashMap params) { + return projectListMapper.getProjectCodeAndProjectNameByProjectName(params); + } + } diff --git a/src/main/resources/egovframework/sqlmap/mapper/regi/projectList.xml b/src/main/resources/egovframework/sqlmap/mapper/regi/projectList.xml index 62d54588..d91f3313 100644 --- a/src/main/resources/egovframework/sqlmap/mapper/regi/projectList.xml +++ b/src/main/resources/egovframework/sqlmap/mapper/regi/projectList.xml @@ -1323,4 +1323,15 @@ INSERT INTO TEMP_META_INFO ( + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/web/input/meta_info.jsp b/src/main/webapp/WEB-INF/views/web/input/meta_info.jsp index b38e90a4..5d260815 100644 --- a/src/main/webapp/WEB-INF/views/web/input/meta_info.jsp +++ b/src/main/webapp/WEB-INF/views/web/input/meta_info.jsp @@ -5,7 +5,7 @@ <%@ include file="/include/inc_head_2021_new.jsp" %> diff --git a/src/main/webapp/WEB-INF/views/web/input/meta_info1.jsp b/src/main/webapp/WEB-INF/views/web/input/meta_info1.jsp index 43914cdf..22baffff 100644 --- a/src/main/webapp/WEB-INF/views/web/input/meta_info1.jsp +++ b/src/main/webapp/WEB-INF/views/web/input/meta_info1.jsp @@ -2,6 +2,27 @@ <%@ include file="/include/inc_head_2021_new.jsp" %> +// CSS 애니메이션 추가 (head 태그 안에 넣거나 외부 CSS 파일에 추가) + +