diff --git a/src/main/java/geoinfo/drilling/inquiry/service/impl/DrillingInquiryServiceImpl.java b/src/main/java/geoinfo/drilling/inquiry/service/impl/DrillingInquiryServiceImpl.java index 1f96c765..9bfb9f85 100644 --- a/src/main/java/geoinfo/drilling/inquiry/service/impl/DrillingInquiryServiceImpl.java +++ b/src/main/java/geoinfo/drilling/inquiry/service/impl/DrillingInquiryServiceImpl.java @@ -5,6 +5,7 @@ import geoinfo.drilling.input.service.DrillingInputService; import geoinfo.drilling.inquiry.service.DrillingInquiryMapper; import geoinfo.drilling.inquiry.service.DrillingInquiryService; import geoinfo.main.login.service.LoginMapper; +import geoinfo.main.login.service.LoginService; import geoinfo.util.MyUtil; import java.sql.SQLException; @@ -13,6 +14,7 @@ import java.text.SimpleDateFormat; 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; @@ -38,6 +40,10 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService { @Autowired DrillingInputService drillingInputService; + + @Resource(name = "loginService") + private LoginService loginService; + @Resource(name="loginMapper") private LoginMapper loginMapper; @@ -345,6 +351,30 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService { throw new Exception( "로그인이 필요한 서비스입니다." ); } + Map map = new HashMap(); + map.put("userid", userId); + + Map result = loginService.selectWebMemberIn(map); + + int cls = MyUtil.getIntegerFromObject( result.get("cls") ); + + if( cls == 2 ) { + // 발주기관 계정으로 조회한 경우, 본인의 영역에 해당하는 프로젝트만 조회한다. + String masterCompanyCode = MyUtil.getStringFromObject( result.get("master_company_code") ); + + HashMap spGetMasterCompanyDistrictParams = drillingInputService.getOrganizationUserGlGmGsGfCodes(userId); + + String glDistrict = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gl") ); + String gmDistrict = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gm") ); + String gsDistrict = MyUtil.getStringFromObject( spGetMasterCompanyDistrictParams.get("v_gs") ); + params.put("glDistrict", glDistrict); + params.put("gmDistrict", gmDistrict); + params.put("gsDistrict", gsDistrict); + + } + + + try { try { diff --git a/src/main/java/geoinfo/util/MyUtil.java b/src/main/java/geoinfo/util/MyUtil.java index 87e44a0c..dc4c3e24 100644 --- a/src/main/java/geoinfo/util/MyUtil.java +++ b/src/main/java/geoinfo/util/MyUtil.java @@ -444,7 +444,9 @@ public final class MyUtil { return ((Long) obj).intValue(); } else if (obj instanceof Double) { return ((Long)Math.round((Double)obj)).intValue(); - } + } else if (obj instanceof BigDecimal) { + return ((BigDecimal)obj).intValue(); + } return null; } diff --git a/src/main/resources/egovframework/sqlmap/mapper/drilling/inquiry/DrillingInquiryMapper.xml b/src/main/resources/egovframework/sqlmap/mapper/drilling/inquiry/DrillingInquiryMapper.xml index 8e56bcff..93428e10 100644 --- a/src/main/resources/egovframework/sqlmap/mapper/drilling/inquiry/DrillingInquiryMapper.xml +++ b/src/main/resources/egovframework/sqlmap/mapper/drilling/inquiry/DrillingInquiryMapper.xml @@ -74,7 +74,8 @@ tgmd.GM_DISTRICT, tgsd.GS_DISTRICT, tcsi.CID, - tcsi.CONST_NAME + tcsi.CONST_NAME, + tcsi.CONST_START_DATE FROM TEMP_CONSTRUCT_SITE_INFO tcsi LEFT JOIN ( @@ -112,7 +113,16 @@ tcsi.MASTER_COMPANY_TH_CODE = tgsd.GS_CODE WHERE tcsi.PROJECT_CODE IS NULL AND - tcsi.CONST_NAME LIKE '%' || #{projectName} || '%' + tcsi.CONST_NAME LIKE '%' || #{projectName} || '%' + + + + + + + + + ORDER BY tcsi.CRT_DT DESC diff --git a/src/main/webapp/WEB-INF/views/drilling/inquiry/drilling_inquiry.jsp b/src/main/webapp/WEB-INF/views/drilling/inquiry/drilling_inquiry.jsp index ccfc951a..f7a57f76 100644 --- a/src/main/webapp/WEB-INF/views/drilling/inquiry/drilling_inquiry.jsp +++ b/src/main/webapp/WEB-INF/views/drilling/inquiry/drilling_inquiry.jsp @@ -34,6 +34,97 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe + + @@ -260,6 +441,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe +
~ 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 4f0edb42..f6477496 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 @@ -348,7 +348,6 @@ window.onload = function() { resultData = json.result; if(resultData == "false"){ shakeAndHighlight(projectNameInput, json.message); - //projectNameInput.value = ''; return false; } else { return true; @@ -367,91 +366,76 @@ window.onload = function() { }); - var preProjectList = [ - "새로운 웹사이트 개발 프로젝트", - "새로운 나라만들기 프로젝트", - "모바일 앱 개편", - "데이터베이스 마이그레이션", - "클라우드 인프라 구축", - "인공지능 기반 서비스 개발", - "머신러닝 모델 학습", - "빅데이터 분석 플랫폼 구축", - "사이버 보안 강화 프로젝트", - "소프트웨어 품질 개선", - "사용자 인터페이스 디자인 개선" - ]; - - projectNameInput.onkeyup = function() { - - var projectName = this.value; + projectNameInput.onkeyup = function() { + + var projectName = String(this.value).trim(); + + if (projectName.length > 0) { + + $.ajax({ + type : "GET", + data : { + projectName : projectName, + isProjectNameChecking : "true" + }, + url : "/drilling-project-list.json", + dataType : "json", + success : function( json ) { + suggestionListDiv.innerHTML = ""; // 이전 목록 비우기 + suggestionListDiv.style.display = "none"; + var list = json.result.list; + var matchingProjects = []; + for (var i = 0; i < list.length; i++) { + matchingProjects.push(list[i]); + } + if (matchingProjects.length > 0) { + for (var i = 0; i < matchingProjects.length; i++) { + var suggestionItem = document.createElement("div"); + + var organHierarchy = " " + matchingProjects[i].glDistrict !== null ? matchingProjects[i].glDistrict : ""; + if( matchingProjects[i].gmDistrict !== null ) { + organHierarchy = organHierarchy + " > " + matchingProjects[i].gmDistrict; + } + if( matchingProjects[i].gsDistrict !== null ) { + organHierarchy = organHierarchy + " > " + matchingProjects[i].gsDistrict; + } + + suggestionItem.setAttribute('data-const-name', matchingProjects[i].constName); + suggestionItem.setAttribute('data-cid', matchingProjects[i].cid); + suggestionItem.innerHTML = + '' + matchingProjects[i].constName + '
\n' + + '' + + "발주처: " + organHierarchy + ''; + + suggestionItem.onclick = function() { + projectNameInput.value = this.getAttribute('data-const-name'); + document.getElementById("TEMP_CONSTRUCT_SITE_INFO-CID").value = this.getAttribute('data-cid'); + suggestionListDiv.style.display = "none"; + }; + + suggestionListDiv.appendChild(suggestionItem); + } + // suggestionListDiv 위치 설정 + var rect = projectNameInput.getBoundingClientRect(); + suggestionListDiv.style.position = 'absolute'; + //suggestionListDiv.style.left = rect.left + 'px'; + //suggestionListDiv.style.top = (rect.bottom + window.scrollY) + 'px'; + //suggestionListDiv.style.float = 'left'; + suggestionListDiv.style.width = rect.width + 'px'; + suggestionListDiv.style.display = "block"; + } + + }, + error: function(xhr, option, error){ + alert(xhr.status); //오류코드 + alert(error); //오류내용 + } + }); + + } - if (projectName.length > 0) { - - $.ajax({ - type : "GET", - data : { - projectName : projectName, - isProjectNameChecking : "true" - }, - url : "/drilling-project-list.json", - dataType : "json", - success : function( json ) { - suggestionListDiv.innerHTML = ""; // 이전 목록 비우기 - suggestionListDiv.style.display = "none"; - var list = json.result.list; - var matchingProjects = []; - for (var i = 0; i < list.length; i++) { - matchingProjects.push(list[i]); - } - if (matchingProjects.length > 0) { - for (var i = 0; i < matchingProjects.length; i++) { - var suggestionItem = document.createElement("div"); - - var organHierarchy = " " + matchingProjects[i].glDistrict !== null ? matchingProjects[i].glDistrict : ""; - if( matchingProjects[i].gmDistrict !== null ) { - organHierarchy = organHierarchy + " > " + matchingProjects[i].gmDistrict; - } - if( matchingProjects[i].gsDistrict !== null ) { - organHierarchy = organHierarchy + " > " + matchingProjects[i].gsDistrict; - } - - suggestionItem.setAttribute('data-const-name', matchingProjects[i].constName); - suggestionItem.setAttribute('data-cid', matchingProjects[i].cid); - suggestionItem.innerHTML = - '' + matchingProjects[i].constName + '
\n' + - '' + - "발주처: " + organHierarchy - ''; - - suggestionItem.onclick = function() { - projectNameInput.value = this.getAttribute('data-const-name'); - document.getElementById("TEMP_CONSTRUCT_SITE_INFO-CID").value = this.getAttribute('data-cid'); - suggestionListDiv.style.display = "none"; - }; - - suggestionListDiv.appendChild(suggestionItem); - } - // suggestionListDiv 위치 설정 - var rect = projectNameInput.getBoundingClientRect(); - suggestionListDiv.style.position = 'absolute'; - //suggestionListDiv.style.left = rect.left + 'px'; - //suggestionListDiv.style.top = (rect.bottom + window.scrollY) + 'px'; - //suggestionListDiv.style.float = 'left'; - suggestionListDiv.style.width = rect.width + 'px'; - suggestionListDiv.style.display = "block"; - } - - }, - error: function(xhr, option, error){ - alert(xhr.status); //오류코드 - alert(error); //오류내용 - } - }); - - } - - - }; + };