From 008767112d1ee4428af5a9f2b9b12c46975260cd Mon Sep 17 00:00:00 2001 From: thkim Date: Fri, 20 Mar 2026 13:45:25 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EB=B0=9C=EC=A3=BC=EA=B8=B0=EA=B4=80=20?= =?UTF-8?q?=EA=B1=B4=EC=84=A4=ED=98=84=EC=9E=A5=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EC=8B=9C,=20=EA=B1=B4=EC=84=A4=EC=82=AC=20=EB=AF=B8=EC=84=A0?= =?UTF-8?q?=EC=A0=95=20=EC=B2=B4=ED=81=AC=20=EC=95=88=20=EB=90=98=EB=8A=94?= =?UTF-8?q?=20=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DrillingInquiryServiceImpl.java | 10 ++ .../views/drilling/input/drilling_input.jsp | 109 +++++++++++------- 2 files changed, 76 insertions(+), 43 deletions(-) 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 ea81e18f..b5b868c4 100644 --- a/src/main/java/geoinfo/drilling/inquiry/service/impl/DrillingInquiryServiceImpl.java +++ b/src/main/java/geoinfo/drilling/inquiry/service/impl/DrillingInquiryServiceImpl.java @@ -311,6 +311,16 @@ public class DrillingInquiryServiceImpl implements DrillingInquiryService { data.put("modDt", formattedDate); } + // 건설사 미선정 여부를 판단한다. + boolean contractorTbd = false; + String constCompanyCode = MyUtil.getStringFromObject( data.get("constCompanyCode") ); + String constCompanyAdmin = MyUtil.getStringFromObject( data.get("constCompanyAdmin") ); + String constCompanyTel = MyUtil.getStringFromObject( data.get("constCompanyTel") ); + if( constCompanyCode == null && constCompanyAdmin == null && constCompanyTel == null ) { + contractorTbd = true; + } + data.put("contractorTbd", contractorTbd); + } jsonResponse.put("datas", datas); diff --git a/src/main/webapp/WEB-INF/views/drilling/input/drilling_input.jsp b/src/main/webapp/WEB-INF/views/drilling/input/drilling_input.jsp index 71e96423..28f204de 100644 --- a/src/main/webapp/WEB-INF/views/drilling/input/drilling_input.jsp +++ b/src/main/webapp/WEB-INF/views/drilling/input/drilling_input.jsp @@ -296,6 +296,54 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe } + /** 건설사 미선정 처리 **/ + function contractorTbd(ele) { + + document.querySelectorAll('input[id*=unselected-constructor-]').forEach(function (list) { + if (!list.contains(ele)) return; + + + let chgChk = ele.checked; // false: 체크박스해제, true: 체크 + const userid = list.closest('td')?.querySelector('input[id*=const-user-id]'); // hidden 사용자 id + const company = list.closest('td')?.querySelector('input[id*=const-company-dept-]'); // 건설사명 + const admin = list.closest('td')?.querySelector('input[id*=const-company-admin-]'); // 담당자 + const tel = list.closest('td')?.querySelector('input[id*=const-company-tel-]'); // 담당자 연락처 + const pageType = location.href.includes("modify.do") ? "edit" : "add"; + if (chgChk) { // 건설사 미지정에 체크시 입력정보 초기화 + if (pageType == 'edit' && orgConstUsr != "") { // 수정하면서 원건설사를 미지정할때 확인진행 + if (!confirm("건설사에서 입력중인 경우 입력내용이 삭제됩니다. 건설사를 미지정하시겠습니까?")) { + return; + } else { + document.getElementById('const-user-id-1').value = '' + } + } + + // 건설사 미지정 처리 + // 입력값 초기화 + userid.value = ''; + company.value = ''; + admin.value = ''; + tel.value = ''; + // 입력 불가 + userid.disabled = true; + company.disabled = true; + admin.disabled = true; + tel.disabled = true; + } else { + userid.value = orgConstUsr; + company.value = orgConstCompany; + admin.value = orgConstName; + tel.value = orgConstTel; + // 입력 허용 + userid.disabled = false; + company.disabled = false; + admin.disabled = false; + tel.disabled = false; + } + + }); + } + document.addEventListener('DOMContentLoaded', function() { // 'CID' 쿼리스트링 파라미터 확인 및 버튼 숨김 처리 @@ -499,49 +547,9 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe list.style.display = 'none'; }); - - // 건설사 미지정 체크시 건설사(계정)정보 초기화 - document.querySelectorAll('input[id*=unselected-constructor-]').forEach(function (list) { - if (!list.contains(e.target)) return; - let chgChk = e.target.checked // false: 체크박스해제, true: 체크 - const userid = list.closest('td')?.querySelector('input[id*=const-user-id]'); // hidden 사용자 id - const company = list.closest('td')?.querySelector('input[id*=const-company-dept-]'); // 건설사명 - const admin = list.closest('td')?.querySelector('input[id*=const-company-admin-]'); // 담당자 - const tel = list.closest('td')?.querySelector('input[id*=const-company-tel-]'); // 담당자 연락처 - const pageType = location.href.includes("modify.do") ? "edit" : "add"; - if (chgChk) { // 건설사 미지정에 체크시 입력정보 초기화 - if (pageType == 'edit' && orgConstUsr != "") { // 수정하면서 원건설사를 미지정할때 확인진행 - if (!confirm("건설사에서 입력중인 경우 입력내용이 삭제됩니다. 건설사를 미지정하시겠습니까?")) { - return; - } else { - document.getElementById('const-user-id-1').value = '' - } - } - - // 건설사 미지정 처리 - // 입력값 초기화 - userid.value = ''; - company.value = ''; - admin.value = ''; - tel.value = ''; - // 입력 불가 - userid.disabled = true; - company.disabled = true; - admin.disabled = true; - tel.disabled = true; - } else { - userid.value = orgConstUsr; - company.value = orgConstCompany; - admin.value = orgConstName; - tel.value = orgConstTel; - // 입력 허용 - userid.disabled = false; - company.disabled = false; - admin.disabled = false; - tel.disabled = false; - } - }); + // 건설사 미지정 체크시 건설사(계정)정보 초기화 + contractorTbd(e.target); }); /** @@ -567,7 +575,7 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe } } }); - }) + }); }); // 사업 등록 처리 @@ -802,6 +810,21 @@ if (request.getSession().getAttribute("CLS") == null || "2".equals(request.getSe orgConstTel = item.constCompanyTel ? item.constCompanyTel : ""; orgPrjCd = item.projectCode ? item.projectCode : ""; + + + const unselectedConstructor1Ele = document.getElementById('unselected-constructor-1'); + if( unselectedConstructor1Ele ) { + unselectedConstructor1Ele.checked = item.contractorTbd || false; //건설사 미선정 check 처리 + + contractorTbd(unselectedConstructor1Ele); + // 기존 이벤트 제거 (동일한 함수 참조 전달) + //unselectedConstructor1Ele.removeEventListener('change', contractorTbd); + + // 새 이벤트 등록 + //unselectedConstructor1Ele.addEventListener('change', contractorTbd); + } + + // 툴팁에 표시할 아이디 가져오기