From 43e00bb0f21e6e760125cd3eb76bd129f437797c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9C=A0=EC=A7=80=EC=9D=B8?= Date: Fri, 21 Nov 2025 16:41:00 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B1=B4=EC=84=A4=ED=98=84=EC=9E=A5=20?= =?UTF-8?q?=EA=B4=80=EB=A6=AC=20>=20=EA=B1=B4=EC=84=A4=ED=98=84=EC=9E=A5?= =?UTF-8?q?=20=EC=A1=B0=ED=9A=8C=20=EB=A9=94=EB=89=B4=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?=20=20-=20=EB=AA=A8=EB=93=A0=20=EB=B0=9C=EC=A3=BC=EA=B8=B0?= =?UTF-8?q?=EA=B4=80=EC=9D=98=20=EA=B1=B4=EC=84=A4=ED=98=84=EC=9E=A5=20?= =?UTF-8?q?=EB=AA=A9=EB=A1=9D=EC=9D=84=20=ED=91=9C=EC=8B=9C=ED=95=9C?= =?UTF-8?q?=EB=8B=A4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nstructionProjectManagementController.java | 65 +++ .../user/service/DrillingInquiryMapper.java | 2 +- .../user/service/DrillingInquiryService.java | 2 +- .../impl/DrillingInquiryServiceImpl.java | 134 ++--- .../admins/user/DrillingInquiryMapper.xml | 118 ++-- .../construction-site-index.jsp | 506 ++++++++++++++++++ .../constructionProjectManagement/left.jsp | 3 + .../com/img/common/icon/ico_btn_big_map.png | Bin 0 -> 1837 bytes .../com/img/common/icon/ico_btn_search.png | Bin 0 -> 1505 bytes 9 files changed, 702 insertions(+), 128 deletions(-) create mode 100644 src/main/webapp/WEB-INF/views/admins/constructionProjectManagement/construction-site-index.jsp create mode 100644 src/main/webapp/com/img/common/icon/ico_btn_big_map.png create mode 100644 src/main/webapp/com/img/common/icon/ico_btn_search.png diff --git a/src/main/java/geoinfo/admins/constructionProjectManagement/ConstructionProjectManagementController.java b/src/main/java/geoinfo/admins/constructionProjectManagement/ConstructionProjectManagementController.java index e30ade0..dd90f38 100644 --- a/src/main/java/geoinfo/admins/constructionProjectManagement/ConstructionProjectManagementController.java +++ b/src/main/java/geoinfo/admins/constructionProjectManagement/ConstructionProjectManagementController.java @@ -581,6 +581,26 @@ public class ConstructionProjectManagementController { 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 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 @@ -652,6 +672,51 @@ public class ConstructionProjectManagementController { 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 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 drillingInquiryList ( diff --git a/src/main/java/geoinfo/admins/user/service/DrillingInquiryMapper.java b/src/main/java/geoinfo/admins/user/service/DrillingInquiryMapper.java index 5fbbf95..1593a40 100644 --- a/src/main/java/geoinfo/admins/user/service/DrillingInquiryMapper.java +++ b/src/main/java/geoinfo/admins/user/service/DrillingInquiryMapper.java @@ -10,7 +10,7 @@ import egovframework.rte.psl.dataaccess.util.EgovMap; @Mapper("drillingInquiryMapper") public interface DrillingInquiryMapper { -// public List drillingInquiryAutocompleteList(HashMap params) throws SQLException; + public List drillingInquiryAutocompleteList(HashMap params) throws SQLException; public Long sPCntTblCsiByKeyword(HashMap params) throws SQLException; public List spGetTblCsiByKeyword(HashMap params) throws SQLException; diff --git a/src/main/java/geoinfo/admins/user/service/DrillingInquiryService.java b/src/main/java/geoinfo/admins/user/service/DrillingInquiryService.java index a4bfa6e..0adff82 100644 --- a/src/main/java/geoinfo/admins/user/service/DrillingInquiryService.java +++ b/src/main/java/geoinfo/admins/user/service/DrillingInquiryService.java @@ -12,7 +12,7 @@ import egovframework.rte.psl.dataaccess.util.EgovMap; public interface DrillingInquiryService { -// List drillingInquiryAutocompleteList(HttpServletRequest request, HashMap params) throws Exception; + List drillingInquiryAutocompleteList(HttpServletRequest request, HashMap params) throws Exception; public JSONObject drillingInquiryList(HttpServletRequest request, HashMap params) throws Exception; diff --git a/src/main/java/geoinfo/admins/user/service/impl/DrillingInquiryServiceImpl.java b/src/main/java/geoinfo/admins/user/service/impl/DrillingInquiryServiceImpl.java index ce07b84..0e93cbd 100644 --- a/src/main/java/geoinfo/admins/user/service/impl/DrillingInquiryServiceImpl.java +++ b/src/main/java/geoinfo/admins/user/service/impl/DrillingInquiryServiceImpl.java @@ -38,14 +38,14 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService { @Autowired DrillingInputService drillingInputService; -// @Override -// public List drillingInquiryAutocompleteList(HttpServletRequest request, HashMap params) throws Exception { -// HashMap map = new HashMap(); -// String userid = (String)params.get("userid"); -// map.put("userId", userid); -// -// EgovMap result = userMapper.selectInfo(map); -// + @Override + public List drillingInquiryAutocompleteList(HttpServletRequest request, HashMap params) throws Exception { + HashMap map = new HashMap(); + String userid = (String)params.get("userid"); + map.put("userId", userid); + + EgovMap result = userMapper.selectInfo(map); + // int cls = MyUtil.getIntegerFromObject(result.get("cls")); // // if( cls == 2 ) { @@ -63,54 +63,54 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService { // // } // -// -// -// -// try { -// try { -// List list = drillingInquiryMapper.drillingInquiryAutocompleteList(params); -// return list; -// } catch (SQLException e) { -// 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); -// throw new Exception( "오류가 발생하였습니다." + "\n" + "SQLException" ); -// } -// -// -// } catch (org.json.simple.parser.ParseException e) { -// // TODO Auto-generated catch block -// throw new Exception( e.getMessage() ); -// } -// } + + + + try { + try { + List list = drillingInquiryMapper.drillingInquiryAutocompleteList(params); + return list; + } catch (SQLException e) { + 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); + throw new Exception( "오류가 발생하였습니다." + "\n" + "SQLException" ); + } -// public HashMap getOrganizationUserGlGmGsGfCodes(String userId) throws Exception { -// -// String projectMasterCompanyName = userMapper.findProjectMasterCompanyNameByUserid(userId); -// -// if( projectMasterCompanyName == null ) { -// throw new Exception( "발주 기관 계정에 설정된 기관이 존재하지 않습니다" ); -// } -// -// HashMap spGetMasterCompanyDistrictParams = new HashMap(); -// -// //String[] words = projectMasterCompanyName.split(" "); -// //String lastWord = words[words.length - 1]; -// //spGetMasterCompanyDistrictParams.put("projectMasterCompanyName", lastWord); -// spGetMasterCompanyDistrictParams.put("projectMasterCompanyName", projectMasterCompanyName); -// -// -// drillingInputMapper.spGetMasterCompanyDistrict(spGetMasterCompanyDistrictParams); -// -// return spGetMasterCompanyDistrictParams; -// -// } + + } catch (org.json.simple.parser.ParseException e) { + // TODO Auto-generated catch block + throw new Exception( e.getMessage() ); + } + } + + public HashMap getOrganizationUserGlGmGsGfCodes(String userId) throws Exception { + + String projectMasterCompanyName = userMapper.findProjectMasterCompanyNameByUserid(userId); + + if( projectMasterCompanyName == null ) { + throw new Exception( "발주 기관 계정에 설정된 기관이 존재하지 않습니다" ); + } + + HashMap spGetMasterCompanyDistrictParams = new HashMap(); + + //String[] words = projectMasterCompanyName.split(" "); + //String lastWord = words[words.length - 1]; + //spGetMasterCompanyDistrictParams.put("projectMasterCompanyName", lastWord); + spGetMasterCompanyDistrictParams.put("projectMasterCompanyName", projectMasterCompanyName); + + + drillingInputMapper.spGetMasterCompanyDistrict(spGetMasterCompanyDistrictParams); + + return spGetMasterCompanyDistrictParams; + + } @Override public JSONObject drillingInquiryList(HttpServletRequest request, HashMap params) throws Exception { @@ -118,20 +118,20 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService { JSONObject jsonResponse = new JSONObject(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String userId = MyUtil.getStringFromObject( params.get("userId") ); - -// if( userId == null){ -// throw new Exception( "로그인이 필요한 서비스입니다." ); -// } - - - HashMap spGetMasterCompanyDistrictParams = drillingInputService.getOrganizationUserGlGmGsGfCodes(userId); - - String masterCompanyOCode = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gl") ); - String masterCompanyTwCode = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gm") ); - String masterCompanyThCode = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gs") ); - String masterCompanyName = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gf") ); + String masterCompanyOCode = ""; + String masterCompanyTwCode = ""; + String masterCompanyThCode = ""; + String masterCompanyName = ""; String sortfield = "C".equals(MyUtil.getStringFromObject(params.get("constTag"))) ? "0" : "2"; String sorttype = "2"; + + if( userId != null){ + HashMap spGetMasterCompanyDistrictParams = drillingInputService.getOrganizationUserGlGmGsGfCodes(userId); + masterCompanyOCode = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gl") ); + masterCompanyTwCode = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gm") ); + masterCompanyThCode = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gs") ); + masterCompanyName = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gf") ); + } params.put("masterCompanyOCode", masterCompanyOCode); params.put("masterCompanyTwCode", masterCompanyTwCode); params.put("masterCompanyThCode", masterCompanyThCode); diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/user/DrillingInquiryMapper.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/user/DrillingInquiryMapper.xml index 234c318..fc5f496 100644 --- a/src/main/resources/geoinfo/sqlmap/mappers/admins/user/DrillingInquiryMapper.xml +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/user/DrillingInquiryMapper.xml @@ -4,65 +4,65 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + +
+ +
+ +
+
+ + +
+
+ +
Total: -
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
연번사업명입력상태사업내용발주기관현황건설사현황
사업기간사업단계
(설계 시공 준공 유지관리)
담당부서담당자담당연락처건설사명담당자담당연락처
+
+
+
+
+
+ +
+
+ +
+
+ + + + + diff --git a/src/main/webapp/WEB-INF/views/admins/constructionProjectManagement/left.jsp b/src/main/webapp/WEB-INF/views/admins/constructionProjectManagement/left.jsp index bdd6582..26b4bd9 100644 --- a/src/main/webapp/WEB-INF/views/admins/constructionProjectManagement/left.jsp +++ b/src/main/webapp/WEB-INF/views/admins/constructionProjectManagement/left.jsp @@ -77,6 +77,9 @@ img { border:0; } + diff --git a/src/main/webapp/com/img/common/icon/ico_btn_big_map.png b/src/main/webapp/com/img/common/icon/ico_btn_big_map.png new file mode 100644 index 0000000000000000000000000000000000000000..a80da58ad3a77322dd6d35ee4cda4a13bed18fcf GIT binary patch literal 1837 zcmbVNX;2eq7>*)WDgquTqOh!>R-5c*bCDea5)J_kVqg#zg-v!h#E@*G+BII&;a?amME;>|=RGYJ&QSTLI4gyEE$0AdW7mQWEGZd-bh z2h(r?jI{<+Z7=p!+0O1KFC@ew+QefZ#S!*;-qN<3f z0bA@&4yH4V356hw#lp7;`4p{%1TvWnf)NNocr1cvwiy}B$}^fL4QhxW%o{4y|L0f@MTdnoI*>WMU%ZAbZ2dbvP=5gM?zSSj|%l z1Tar56OlYjfDt@GC=L<{aG6vrlMd?n5+4@9GKC;qB$f&hfgmzm5spZr!VnQ6fkmt= z8|20q%?xJL5QDaLtnC4=@T*)joF*`aq7x}9W3UV2(O7qhr!3}g z?KS!oas)x^vIsnirVPNxB%``7I6&eW0V$CoJeU+}cv4&><*7-5lqVwyOav1M9wZ9_ z2l)8^O&-KL1=&00KbY zJ7P%J`tzrRu#2VN8Jy@dmsFZOKhXL23D3N!056LQX?HJvA9%vz$8GBCywtxd)5EW3 zMN>b$927Hh4H^JDcc?kID{-a zmQuL*b}YHGJ}K|{d|PW)R_23()cr^9pDe9Zxt81Z|FH#-z8Tt#BM&F|dXw)YP$1KD zTUdX()^Y2O(`k~|hSx91tc%wk4{ZsnO=?wjty1_0p(y{w#fk?9qy@wC&Mq5!WQU?k z;zMf5v6IzsT+6LX6-$#1Nu{DqeAh)$=AO*#niOoxy&JwxPrg~y+_q~aW=*}bao?X) z_q^%u?9eW_emwB)a`yx63tjigr&-^;b^RrvQnB=%rsr`VCws}5*wmhk_b!*H#d#<= zGUYyBpP;KAJ?30@H+8DGe0ax}hQ^L2_nJ`!J~=aNZS!jiR@)r)^Sb_WUOOWx+v!zq z?<%fgnyEYZ<~iL|<(&NDGgLfN%NhFi-G{id7I)>i53<53YW2( z8MX2JmE9eOo~{TIiyg0>5br7s;RX_wFpAa%kQo`nr|mNyEql?zEh{TaUeSIfe?_m_ zcmG~;p8LUyl(<5#`ugm{Pt876l@(3OwzjHqZHY5abfqM{vQ60((`eP;9?h;L&Hd9~ z&)U8{NPTRaYJOLbP&1qR+_Fts^5fkh%hvB%^Q!pO*%P$4pZ{fjFEPtQ0UTcEIbLH- m;LplAb0N1k7wVt+{SeOer`xvOljn%-Kd_j{xQJ>+TK+#ipS&ah literal 0 HcmV?d00001 diff --git a/src/main/webapp/com/img/common/icon/ico_btn_search.png b/src/main/webapp/com/img/common/icon/ico_btn_search.png new file mode 100644 index 0000000000000000000000000000000000000000..239f78f4f1b239db4c07eda9c2d7ea882ade68b4 GIT binary patch literal 1505 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xd_B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!WpKsVXIz(~Q|QqR!L z#Kg=%N5ROz$Uxt~RNv4@*U-$$z{JYXTmcG{fVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr62to{@q^cxGNo zetEGbSc9*xm1kaYNn&1ds;7&s63_^}%*+%kLsK(LCj%E_S63%vLqk_5M@vUjOA}*P zH%B8!V>4HCm|mCsATTyAK;qT@(WYQ;4UF zV@SoVH`DfaO9cuXzu)CKQ6NcF`J#4+j;ey-Lx&BP8;qvTFj8N#;Y0if{tc5H4m>&` z$~If%kfVa&6_K4zM~;~^No~2YfbEMyR#U~~_c>)J=YBlCjx*fy!`Gdg-~E2G$K2Sz zv*U>GEYCX|-ZuWfduH{VNh-0s%dF=18}4c7TfqF)HFX8cTp<6{s>(3cC0j17WMbUa z{807FoV#k1JtNkJC7R7{)j6HCF(RXXj^lBL`rB+Fb537MxS-zgr_TOqk)>3x+mf3p zMhl%5IxGz6_+hR$eRc1}U8V1M4+ziG5bC^8V6kMi7!TXYw9SD^6Bp!d_x@NB)99q? zVZ`&qwpq_|)4>FX)7LUgG-jWjbo}wd6DzL24z!TDw!pufao?l%N=fsZ6*gfDWHOfq zU2J$?&baMP-uJDx(djap`uaj0HFomM^-kNbGhV;?kTHGn(WIME;f)RsH{O;VleQMz(^3)j0fs_MN;+PFeG zZ2fiD{r8`*f1bf$-^1kpQ+e{q7hRL$_2&9zPgif7z5SN-`G6}*Gkv;l=4=z3=CyQ6 zt&8^`p76Zummf(8mz;XKsl#pYqOjF}uL?;Dbsu%Hn}5A#&y;d=#_gu>+a>Nfwb#5Y zu$XdX{`u#NZsufFFUwJ6=eBLMNbTR?CEn)GEqZG82Oh6g!dd2)()Ld47n)zNeZlx}M