diff --git a/WebContent/WEB-INF/view/contractMgmt/estimateTemplate1.jsp b/WebContent/WEB-INF/view/contractMgmt/estimateTemplate1.jsp index fe38b37..286927e 100644 --- a/WebContent/WEB-INF/view/contractMgmt/estimateTemplate1.jsp +++ b/WebContent/WEB-INF/view/contractMgmt/estimateTemplate1.jsp @@ -264,6 +264,10 @@ textarea { font-size: inherit; } +.item-amount { + pointer-events: none; +} + textarea { resize: vertical; min-height: 25px; @@ -323,11 +327,12 @@ $(function(){ } }); + // 초기 로드는 $(document).ready에서 처리하므로 주석 처리 // templateObjId가 있으면 기존 데이터 로드 - var templateObjId = "<%=templateObjId%>"; - if(templateObjId && templateObjId !== ""){ - fn_loadTemplateData(templateObjId); - } + // var templateObjId = "<%=templateObjId%>"; + // if(templateObjId && templateObjId !== ""){ + // fn_loadTemplateData(templateObjId); + // } // 인쇄 버튼 $("#btnPrint").click(function(){ @@ -351,55 +356,62 @@ $(function(){ fn_addItemRow(); }); - // 금액 자동 계산 + // 계 행 삭제 버튼 + $(document).on("click", ".btn-delete-total-row", function(){ + if(confirm("계 행을 삭제하시겠습니까?")) { + $(".total-row").hide(); + } + }); + + // 금액 자동 계산 (수량, 단가 변경 시) $(document).on("change keyup", ".item-qty, .item-price", function(){ fn_calculateAmount($(this).closest("tr")); fn_calculateTotal(); // 합계 재계산 }); - // 금액 필드 직접 수정 시에도 합계 재계산 - $(document).on("change keyup", ".item-amount", function(){ - fn_calculateTotal(); // 합계 재계산 - }); - - // 콤마 자동 추가 (동적 요소 포함) - $(document).on("blur", ".item-price, .item-amount", function(){ - var val = $(this).val().replace(/,/g, "").replace(/₩/g, ""); + // 단가 입력 완료 시 콤마 자동 추가 + $(document).on("blur", ".item-price", function(){ + var val = $(this).val().replace(/,/g, ""); if(!isNaN(val) && val !== "") { $(this).val(addComma(val)); } fn_calculateTotal(); // blur 시에도 합계 재계산 }); - // 단가 입력 시 실시간 콤마 처리 + // 단가 입력 시 숫자만 입력 가능하도록 제한 및 실시간 콤마 처리 $(document).on("input", ".item-price", function(){ - var val = $(this).val().replace(/,/g, ""); var cursorPos = this.selectionStart; - var commasBefore = ($(this).val().substring(0, cursorPos).match(/,/g) || []).length; + var originalVal = $(this).val(); + var commasBefore = (originalVal.substring(0, cursorPos).match(/,/g) || []).length; - if(!isNaN(val) && val !== "") { + // 콤마 제거 후 숫자가 아닌 문자 제거 + var val = originalVal.replace(/,/g, "").replace(/[^0-9]/g, ""); + + // 값 설정 (빈 문자열 포함) + if(val !== "") { $(this).val(addComma(val)); // 커서 위치 조정 var commasAfter = ($(this).val().substring(0, cursorPos).match(/,/g) || []).length; var newPos = cursorPos + (commasAfter - commasBefore); this.setSelectionRange(newPos, newPos); + } else { + $(this).val(""); } }); + // 수량 입력 시 숫자만 입력 가능하도록 제한 + $(document).on("input", ".item-qty", function(){ + var val = $(this).val().replace(/[^0-9]/g, ""); + $(this).val(val); + }); + // 데이터 로드 - if("<%=objId%>" !== "" && "<%=objId%>" !== "-1") { - fn_loadData(); - } else { - // 새 견적서 작성 시 기본 행의 셀렉트박스 초기화 - fn_initItemDescSelect('default_item_1'); - fn_initItemDescSelect('default_item_2'); - - // 초기 로드 시 합계 계산 - fn_calculateTotal(); - - // 새로 등록 시 명시적으로 작성중 상태 설정 - g_apprStatus = "작성중"; - fn_controlButtons(); + if("<%=templateObjId%>" !== "" && "<%=templateObjId%>" !== "-1") { + // 저장된 견적서 수정: 견적서 데이터 로드 + fn_loadTemplateData("<%=templateObjId%>"); + } else if("<%=objId%>" !== "" && "<%=objId%>" !== "-1") { + // 처음 견적서 작성: 영업정보의 품목 데이터 로드 + fn_loadContractItems("<%=objId%>"); } }); @@ -427,6 +439,7 @@ function fn_controlButtons() { // 삭제 버튼 숨김 $(".btn-delete-row").hide(); + $(".btn-delete-total-row").hide(); // 계 삭제 버튼도 숨김 } else { console.log("결재완료 아님 - 입력 필드 활성화"); // 결재완료가 아닌 경우 버튼 표시 @@ -446,6 +459,7 @@ function fn_controlButtons() { // 삭제 버튼 표시 $(".btn-delete-row").show(); + $(".btn-delete-total-row").show(); // 계 삭제 버튼도 표시 } } @@ -456,7 +470,8 @@ function fn_calculateAmount(row) { var amount = parseInt(qty) * parseInt(price); if(!isNaN(amount)) { - row.find(".item-amount").val(addComma(amount)); + var currencySymbol = getCurrencySymbol(); + row.find(".item-amount").val(currencySymbol + addComma(amount)); } } @@ -467,8 +482,8 @@ function fn_calculateTotal() { // 품목 행만 순회 (계 행, 원화환산 행, 비고 행, 참조사항 행, 회사명 행 제외) $("#itemsTableBody tr").not(".total-row, .total-krw-row, .remarks-row, .notes-row, .footer-row").each(function(){ var amount = $(this).find(".item-amount").val() || "0"; - // 콤마와 통화 기호 제거 후 숫자로 변환 - amount = amount.replace(/,/g, "").replace(/₩/g, "").replace(/\$/g, "").replace(/€/g, "").replace(/¥/g, ""); + // 모든 비숫자 문자 제거 (통화 기호, 콤마 등) + amount = amount.replace(/[^0-9]/g, ""); var numAmount = parseInt(amount) || 0; total += numAmount; }); @@ -613,6 +628,159 @@ function fn_addItemRow() { fn_calculateTotal(); } +// 영업정보의 품목 데이터 로드 +function fn_loadContractItems(contractObjId) { + $.ajax({ + url: "/contractMgmt/getContractItemList.do", + type: "POST", + data: { + contractObjId: contractObjId + }, + dataType: "json", + success: function(data) { + console.log("품목 데이터:", data); // 디버깅용 + + if(data && data.result === "success" && data.items && data.items.length > 0) { + // 환율 정보 설정 + if(data.exchangeRate) { + g_exchangeRate = parseFloat(data.exchangeRate); + } + if(data.currencyName) { + g_currencyName = data.currencyName; + } + console.log("환율 정보:", g_exchangeRate, g_currencyName); + + // 고객사 정보 설정 + if(data.customerObjId && data.customerObjId !== "") { + // 데이터 로드 중 플래그 설정 + window.isLoadingData = true; + + $("#recipient").val(data.customerObjId).trigger('change'); + + // 담당자 목록 로드 + fn_loadCustomerContact(data.customerObjId); + + // 플래그 해제 + setTimeout(function() { + window.isLoadingData = false; + }, 100); + } + + // 기존 테이블 초기화 + $("#itemsTableBody").empty(); + + // 품목 HTML 생성 + var itemsHtml = ""; + for(var i = 0; i < data.items.length; i++) { + var item = data.items[i]; + console.log("품목 " + (i+1) + ":", item); // 각 품목 디버깅 + + var itemId = 'contract_item_' + i; + var partNo = item.PART_NO || item.part_no || ''; + var partName = item.PART_NAME || item.part_name || ''; + var quantity = item.QUANTITY || item.quantity || ''; + var partObjId = item.PART_OBJID || item.part_objid || ''; + + console.log("추출된 값 - partName:", partName, ", partObjId:", partObjId, ", quantity:", quantity); + + itemsHtml += ''; + itemsHtml += '' + (i + 1) + ''; + itemsHtml += ''; + itemsHtml += ''; + itemsHtml += ''; + itemsHtml += ''; + itemsHtml += ''; + itemsHtml += ''; + itemsHtml += ''; + itemsHtml += ''; + itemsHtml += ''; + itemsHtml += ''; + itemsHtml += ''; + itemsHtml += ''; + } + + // 계 행 추가 + itemsHtml += ''; + itemsHtml += '계'; + itemsHtml += '0'; + itemsHtml += ''; + itemsHtml += ''; + + // 원화환산 공급가액 행 추가 (숨김) + itemsHtml += ''; + itemsHtml += '원화환산 공급가액 (KRW)'; + itemsHtml += '0'; + itemsHtml += ''; + itemsHtml += ''; + + // 비고 행 추가 + itemsHtml += ''; + itemsHtml += ''; + itemsHtml += '
<비고>
'; + itemsHtml += ''; + itemsHtml += ''; + itemsHtml += ''; + + // 참조사항 행 추가 + itemsHtml += ''; + itemsHtml += ''; + itemsHtml += '
<참조사항>
'; + itemsHtml += '
'; + itemsHtml += '
'; + itemsHtml += '
'; + itemsHtml += '
'; + itemsHtml += ''; + itemsHtml += ''; + + // 하단 회사명 행 추가 + itemsHtml += ''; + itemsHtml += ''; + itemsHtml += '㈜알피에스'; + itemsHtml += ''; + itemsHtml += ''; + + // HTML 삽입 + $("#itemsTableBody").html(itemsHtml); + + // 셀렉트박스 초기화 + for(var i = 0; i < data.items.length; i++) { + var itemId = 'contract_item_' + i; + fn_initItemDescSelect(itemId); + } + + // 합계 계산 + fn_calculateTotal(); + + // 결재상태에 따라 버튼 제어 + g_apprStatus = "작성중"; + fn_controlButtons(); + } else { + // 품목이 없으면 기본 행 표시 + fn_initItemDescSelect('default_item_1'); + fn_initItemDescSelect('default_item_2'); + fn_calculateTotal(); + g_apprStatus = "작성중"; + fn_controlButtons(); + } + }, + error: function(xhr, status, error) { + console.error("품목 데이터 로드 오류:", xhr, status, error); + Swal.fire("품목 데이터를 불러오는데 실패했습니다."); + + // 오류 시 기본 행 표시 + fn_initItemDescSelect('default_item_1'); + fn_initItemDescSelect('default_item_2'); + fn_calculateTotal(); + g_apprStatus = "작성중"; + fn_controlButtons(); + } + }); +} + // 데이터 로드 function fn_loadData() { $.ajax({ @@ -692,12 +860,12 @@ function fn_loadData() { itemsHtml += ''; } - // 계 행 추가 - itemsHtml += ''; - itemsHtml += '계'; - itemsHtml += '0'; - itemsHtml += ''; - itemsHtml += ''; + // 계 행 추가 + itemsHtml += ''; + itemsHtml += '계'; + itemsHtml += '0'; + itemsHtml += ''; + itemsHtml += ''; // 원화환산 공급가액 행 추가 (숨김) itemsHtml += ''; @@ -843,6 +1011,9 @@ function fn_loadTemplateData(templateObjId){ if(recipient && recipient !== "") { // OBJID로 셀렉트박스 선택 $("#recipient").val(recipient).trigger('change'); + + // 담당자 목록 로드 (저장된 수신인도 함께 전달) + fn_loadCustomerContact(recipient, contactPerson); } // 플래그 해제 @@ -883,9 +1054,12 @@ function fn_loadTemplateData(templateObjId){ var note = item.NOTE || item.note || ''; var partObjId = item.PART_OBJID || item.part_objid || ''; - // 단가와 금액에 콤마 추가 + // 통화 기호 가져오기 + var currencySymbol = getCurrencySymbol(); + + // 단가와 금액에 콤마 및 통화 기호 추가 var unitPriceFormatted = unitPrice ? addComma(unitPrice) : ''; - var amountFormatted = amount ? addComma(amount) : ''; + var amountFormatted = amount ? (currencySymbol + addComma(amount)) : ''; itemsHtml += ''; itemsHtml += '' + (i + 1) + ''; @@ -908,12 +1082,12 @@ function fn_loadTemplateData(templateObjId){ itemsHtml += ''; } - // 계 행 추가 - itemsHtml += ''; - itemsHtml += '계'; - itemsHtml += '0'; - itemsHtml += ''; - itemsHtml += ''; + // 계 행 추가 + itemsHtml += ''; + itemsHtml += '계'; + itemsHtml += '0'; + itemsHtml += ''; + itemsHtml += ''; // 원화환산 공급가액 행 추가 (숨김) itemsHtml += ''; @@ -1006,6 +1180,14 @@ function fn_loadTemplateData(templateObjId){ // 합계 계산 fn_calculateTotal(); + // 계 행 표시 여부 복원 + var showTotalRow = template.SHOW_TOTAL_ROW || template.show_total_row || "Y"; + if(showTotalRow === "N") { + $(".total-row").hide(); + } else { + $(".total-row").show(); + } + // 결재상태에 따라 버튼 제어 fn_controlButtons(); @@ -1027,27 +1209,42 @@ function fn_loadTemplateData(templateObjId){ } // 저장 -// 고객사 담당자 정보 로드 -function fn_loadCustomerContact(customerObjId) { +// 고객사 담당자 목록 로드 +function fn_loadCustomerContact(customerObjId, selectedContact) { if(!customerObjId || customerObjId === "") { - $("#contact_person").val(""); + $("#contact_person").empty().append(''); return; } $.ajax({ - url: "/contractMgmt/getCustomerContactInfo.do", + url: "/contractMgmt/getCustomerManagerList.do", type: "POST", data: { customerObjId: customerObjId }, dataType: "json", success: function(data) { - if(data && data.contactPerson) { - $("#contact_person").val(data.contactPerson + " 귀하"); + $("#contact_person").empty(); + $("#contact_person").append(''); + + if(data && data.managers && data.managers.length > 0) { + for(var i = 0; i < data.managers.length; i++) { + var manager = data.managers[i]; + if(manager.name && manager.name !== "") { + $("#contact_person").append(''); + } + } } else { - $("#contact_person").val("구매 담당자님 귀하"); + $("#contact_person").append(''); + } + + // 저장된 수신인이 있으면 선택 + if(selectedContact && selectedContact !== "") { + $("#contact_person").val(selectedContact); } }, error: function() { - $("#contact_person").val("구매 담당자님 귀하"); + $("#contact_person").empty(); + $("#contact_person").append(''); + $("#contact_person").append(''); } }); } @@ -1066,10 +1263,10 @@ function fn_save() { part_objid: row.find(".item-part-objid").val() || "", // part_objid 추가 description: row.find(".item-desc").val() || "", specification: row.find(".item-spec").val() || "", - quantity: quantity.replace(/,/g, ""), // 콤마 제거 + quantity: quantity.replace(/[^0-9]/g, ""), // 숫자만 추출 unit: row.find(".item-unit").val() || "", - unit_price: unitPrice.replace(/,/g, ""), // 콤마 제거 - amount: amount.replace(/,/g, "").replace(/₩/g, ""), // 콤마와 ₩ 제거 + unit_price: unitPrice.replace(/[^0-9]/g, ""), // 숫자만 추출 + amount: amount.replace(/[^0-9]/g, ""), // 숫자만 추출 note: row.find(".item-note").val() || "" }); }); @@ -1090,6 +1287,9 @@ function fn_save() { // 디버깅: 품목 데이터 확인 console.log("저장할 품목 데이터:", items); + // 계 행 표시 여부 확인 + var showTotalRow = $(".total-row").is(":visible") ? "Y" : "N"; + var formData = { objId: contractObjId, template_type: "1", @@ -1107,6 +1307,7 @@ function fn_save() { note2: $("#note2").val(), note3: $("#note3").val(), note4: $("#note4").val(), + show_total_row: showTotalRow, // 계 행 표시 여부 items: JSON.stringify(items) }; @@ -1189,7 +1390,9 @@ function fn_save() { 수신인 - + @@ -1258,12 +1461,12 @@ function fn_save() { - - - 계 - 0 - - + + + 계 + 0 + + 원화환산 공급가액 (KRW) diff --git a/src/com/pms/mapper/common.xml b/src/com/pms/mapper/common.xml index fb01425..d718536 100644 --- a/src/com/pms/mapper/common.xml +++ b/src/com/pms/mapper/common.xml @@ -3205,4 +3205,32 @@ SELECT option_objid::VARCHAR AS CODE WHERE USER_ID = #{userId} AND MASTER_OBJID::varchar = #{masterObjid} + + + \ No newline at end of file diff --git a/src/com/pms/salesmgmt/controller/ContractMgmtController.java b/src/com/pms/salesmgmt/controller/ContractMgmtController.java index 3232df4..c55f88f 100644 --- a/src/com/pms/salesmgmt/controller/ContractMgmtController.java +++ b/src/com/pms/salesmgmt/controller/ContractMgmtController.java @@ -2297,4 +2297,113 @@ public class ContractMgmtController { request.setAttribute("docTypeName", CommonUtils.checkNull(paramMap.get("docTypeName"))); return "/contractMgmt/FileRegistPopup"; } + + /** + * 영업정보의 품목 목록 조회 (견적서 작성 시 사용) + */ + @RequestMapping(value="/contractMgmt/getContractItemList.do", method=RequestMethod.POST) + @ResponseBody + public Map getContractItemList(@RequestParam Map paramMap) { + Map resultMap = new HashMap(); + + try { + String contractObjId = CommonUtils.checkNull((String)paramMap.get("contractObjId")); + + if(CommonUtils.isEmpty(contractObjId)) { + resultMap.put("result", "error"); + resultMap.put("message", "영업정보 OBJID가 없습니다."); + return resultMap; + } + + // 영업정보 조회 (고객사 정보 포함) + Map contractInfo = contractMgmtService.getContractInfo(contractObjId); + + // 품목 목록 조회 + List> items = contractMgmtService.getContractItemList(contractObjId); + + // 대문자로 키 변환 + List> upperItems = new ArrayList>(); + for(Map item : items) { + upperItems.add(CommonUtils.toUpperCaseMapKey(item)); + } + + resultMap.put("result", "success"); + resultMap.put("items", upperItems); + + // 고객사 정보 및 환율 정보 추가 + if(contractInfo != null) { + Map upperContractInfo = CommonUtils.toUpperCaseMapKey(contractInfo); + resultMap.put("customerObjId", upperContractInfo.get("CUSTOMER_OBJID")); + resultMap.put("exchangeRate", upperContractInfo.get("EXCHANGE_RATE")); + resultMap.put("currencyName", upperContractInfo.get("CONTRACT_CURRENCY_NAME")); + } + + } catch(Exception e) { + e.printStackTrace(); + resultMap.put("result", "error"); + resultMap.put("message", e.getMessage()); + } + + return resultMap; + } + + /** + * 고객사 담당자 목록 조회 + */ + @RequestMapping(value="/contractMgmt/getCustomerManagerList.do", method=RequestMethod.POST) + @ResponseBody + public Map getCustomerManagerList(@RequestParam Map paramMap) { + Map resultMap = new HashMap(); + + try { + String customerObjId = CommonUtils.checkNull((String)paramMap.get("customerObjId")); + + if(CommonUtils.isEmpty(customerObjId)) { + resultMap.put("result", "error"); + resultMap.put("message", "고객사 OBJID가 없습니다."); + return resultMap; + } + + // 고객사 정보 조회 + Map customerInfo = contractMgmtService.getCustomerInfo(customerObjId); + + System.out.println("=== 고객사 정보 조회 결과 ==="); + System.out.println("customerInfo: " + customerInfo); + + if(customerInfo != null) { + List> managers = new ArrayList>(); + + // manager1 ~ manager5 추출 (소문자 키로 접근) + for(int i = 1; i <= 5; i++) { + String managerName = CommonUtils.checkNull((String)customerInfo.get("manager" + i + "_name")); + String managerEmail = CommonUtils.checkNull((String)customerInfo.get("manager" + i + "_email")); + + System.out.println("manager" + i + "_name: " + managerName); + System.out.println("manager" + i + "_email: " + managerEmail); + + if(!CommonUtils.isEmpty(managerName)) { + Map manager = new HashMap(); + manager.put("name", managerName); + manager.put("email", managerEmail); + managers.add(manager); + } + } + + System.out.println("최종 managers 개수: " + managers.size()); + + resultMap.put("result", "success"); + resultMap.put("managers", managers); + } else { + resultMap.put("result", "success"); + resultMap.put("managers", new ArrayList>()); + } + + } catch(Exception e) { + e.printStackTrace(); + resultMap.put("result", "error"); + resultMap.put("message", e.getMessage()); + } + + return resultMap; + } } diff --git a/src/com/pms/salesmgmt/mapper/contractMgmt.xml b/src/com/pms/salesmgmt/mapper/contractMgmt.xml index 7779bd8..2bf0f36 100644 --- a/src/com/pms/salesmgmt/mapper/contractMgmt.xml +++ b/src/com/pms/salesmgmt/mapper/contractMgmt.xml @@ -3981,6 +3981,7 @@ ORDER BY ASM.SUPPLY_NAME ET.TOTAL_AMOUNT_KRW, ET.MANAGER_NAME, ET.MANAGER_CONTACT, + ET.SHOW_TOTAL_ROW, ET.WRITER, TO_CHAR(ET.REGDATE, 'YYYY-MM-DD HH24:MI') AS REGDATE, ET.CHG_USER_ID, @@ -4082,6 +4083,7 @@ ORDER BY ASM.SUPPLY_NAME TOTAL_AMOUNT_KRW, MANAGER_NAME, MANAGER_CONTACT, + SHOW_TOTAL_ROW, WRITER, REGDATE, CHG_USER_ID, @@ -4107,6 +4109,7 @@ ORDER BY ASM.SUPPLY_NAME #{total_amount_krw}, #{manager_name}, #{manager_contact}, + #{show_total_row}, #{writer}, NOW(), #{chg_user_id}, @@ -4135,6 +4138,7 @@ ORDER BY ASM.SUPPLY_NAME TOTAL_AMOUNT_KRW = #{total_amount_krw}, MANAGER_NAME = #{manager_name}, MANAGER_CONTACT = #{manager_contact}, + SHOW_TOTAL_ROW = #{show_total_row}, CHG_USER_ID = #{chg_user_id}, CHGDATE = NOW() WHERE @@ -4355,8 +4359,9 @@ WHERE SELECT OBJID, CONTRACT_NO, + CUSTOMER_OBJID, CONTRACT_CURRENCY, - (SELECT CODE_NAME FROM TB_CODE WHERE CODE_ID = CONTRACT_CURRENCY) AS CONTRACT_CURRENCY_NAME, + (SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CONTRACT_CURRENCY) AS CONTRACT_CURRENCY_NAME, EXCHANGE_RATE, QUANTITY, PART_NO, @@ -4582,8 +4587,8 @@ WHERE CI.CONTRACT_OBJID, CI.SEQ, CI.PART_OBJID, - CI.PART_NO, - CI.PART_NAME, + COALESCE(NULLIF(CI.PART_NO, ''), PM.PART_NO) AS PART_NO, + COALESCE(NULLIF(CI.PART_NAME, ''), PM.PART_NAME) AS PART_NAME, CI.QUANTITY, CI.DUE_DATE, CI.CUSTOMER_REQUEST, @@ -4597,6 +4602,8 @@ WHERE LEFT JOIN CONTRACT_ITEM_SERIAL CIS ON CI.OBJID = CIS.ITEM_OBJID AND CIS.STATUS = 'ACTIVE' + LEFT JOIN PART_MNG PM + ON CI.PART_OBJID = PM.OBJID WHERE CI.CONTRACT_OBJID = #{contractObjId} AND CI.STATUS = 'ACTIVE' @@ -4606,7 +4613,9 @@ WHERE CI.SEQ, CI.PART_OBJID, CI.PART_NO, - CI.PART_NAME, + CI.PART_NAME, + PM.PART_NO, + PM.PART_NAME, CI.QUANTITY, CI.DUE_DATE, CI.CUSTOMER_REQUEST, diff --git a/src/com/pms/salesmgmt/service/ContractMgmtService.java b/src/com/pms/salesmgmt/service/ContractMgmtService.java index d6edc9f..4fa4e0f 100644 --- a/src/com/pms/salesmgmt/service/ContractMgmtService.java +++ b/src/com/pms/salesmgmt/service/ContractMgmtService.java @@ -1986,6 +1986,32 @@ private String encodeImageToBase64(String imagePath) { return resultMap != null ? resultMap : new HashMap(); } + /** + * 고객사 정보 조회 + */ + public Map getCustomerInfo(String customerObjId) { + Map resultMap = new HashMap(); + SqlSession sqlSession = null; + + try { + sqlSession = SqlMapConfig.getInstance().getSqlSession(); + + Map paramMap = new HashMap(); + paramMap.put("objId", customerObjId); + + resultMap = (Map) sqlSession.selectOne("common.getSupplyInfo", paramMap); + + } catch(Exception e) { + e.printStackTrace(); + } finally { + if(sqlSession != null) { + sqlSession.close(); + } + } + + return resultMap != null ? resultMap : new HashMap(); + } + /** * 수주정보 조회 (영업정보와 동일) * @param objId