From de875a207be9fcff789d1b8a89c21f0f4c097dbc Mon Sep 17 00:00:00 2001 From: Johngreen Date: Thu, 23 Oct 2025 11:30:46 +0900 Subject: [PATCH] =?UTF-8?q?=ED=8C=90=EB=A7=A4=EA=B4=80=EB=A6=AC,=20?= =?UTF-8?q?=EB=A7=A4=EC=B6=9C=EA=B4=80=EB=A6=AC=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salesmgmt/mapper/salesNcollectMgmt.xml | 1 - .../salesmgmt/salesMgmt/revenueMgmtList.jsp | 30 ++++----- .../salesmgmt/salesMgmt/salesMgmtList.jsp | 25 ++++--- WebContent/js/tabulator/tabulator_custom.js | 9 +-- .../SalesNcollectMgmtController.java | 65 ++++++------------- .../salesmgmt/mapper/salesNcollectMgmt.xml | 1 - src/com/pms/service/CommonService.java | 32 ++++----- 7 files changed, 62 insertions(+), 101 deletions(-) diff --git a/WebContent/WEB-INF/classes/com/pms/salesmgmt/mapper/salesNcollectMgmt.xml b/WebContent/WEB-INF/classes/com/pms/salesmgmt/mapper/salesNcollectMgmt.xml index d3d579b..fcaaf96 100644 --- a/WebContent/WEB-INF/classes/com/pms/salesmgmt/mapper/salesNcollectMgmt.xml +++ b/WebContent/WEB-INF/classes/com/pms/salesmgmt/mapper/salesNcollectMgmt.xml @@ -971,7 +971,6 @@ /* INCOTERMS 필드 없음 - 검색 조건 무시 */ ORDER BY T.REGDATE DESC - LIMIT #{COUNT_PER_PAGE} OFFSET #{PAGE_START} diff --git a/WebContent/WEB-INF/view/salesmgmt/salesMgmt/revenueMgmtList.jsp b/WebContent/WEB-INF/view/salesmgmt/salesMgmt/revenueMgmtList.jsp index 44898ac..5e8daae 100644 --- a/WebContent/WEB-INF/view/salesmgmt/salesMgmt/revenueMgmtList.jsp +++ b/WebContent/WEB-INF/view/salesmgmt/salesMgmt/revenueMgmtList.jsp @@ -45,13 +45,11 @@ //엔터키로 조회 $("input").keyup(function(e){ if(e.keyCode == 13){ - $("#page").val("1"); fn_search(); } }); $("#btnSearch").click(function(){ - $("#page").val("1"); fn_search(); }); @@ -183,7 +181,7 @@ var columns = [ ]; function fn_search(){ - // 그리드 조회 및 Total 합계 업데이트 + // 그리드 조회 및 Total 합계 업데이트를 위한 커스텀 AJAX $.ajax({ url: "/revenueMgmt/revenueGridList.do", type: "POST", @@ -196,23 +194,23 @@ function fn_search(){ _endLoading(); }, success: function(response) { - console.log("Response:", response); // 디버깅용 - // 그리드 데이터 설정 if(_tabulGrid){ _tabulGrid.setData(response.RESULTLIST || []); } else { // 그리드 초기화 - _tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/revenueMgmt/revenueGridList.do", columns, true); + _tabulGrid = new Tabulator("#mainGrid", { + layout: _tabul_layout_fitColumns, + columns: columns, + data: response.RESULTLIST || [] + }); // 그리드 초기화 후 Excel 버튼 이벤트 등록 fn_bindExcelButton(); } - // Total 합계 업데이트 (소문자 키 사용) + // Total 합계 업데이트 if(response && response.TOTALS){ var totals = response.TOTALS; - console.log("Totals:", totals); // 디버깅용 - // PostgreSQL이 소문자로 반환하므로 소문자 키 사용 var supplyPrice = totals.total_supply_price || totals.TOTAL_SUPPLY_PRICE || 0; var vat = totals.total_vat || totals.TOTAL_VAT || 0; var amount = totals.total_amount || totals.TOTAL_AMOUNT || 0; @@ -221,7 +219,6 @@ function fn_search(){ $("#totalVat").text(Number(vat).toLocaleString()); $("#totalAmount").text(Number(amount).toLocaleString()); } else { - console.log("No TOTALS in response"); // 디버깅용 $("#totalSupplyPrice").text("0"); $("#totalVat").text("0"); $("#totalAmount").text("0"); @@ -233,12 +230,10 @@ function fn_search(){ } }, error: function(jqxhr, status, error){ - console.error("Error:", jqxhr, status, error); - _endLoading(); + alert("데이터 조회 중 오류가 발생했습니다."); + console.error(error); } }); - - _tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/revenueMgmt/revenueGridList.do", columns, true); } function _fnc_datepick(){ @@ -330,10 +325,10 @@ function fn_excel() { function fn_FileRegist(objId, docType, docTypeName){ var popup_width = 800; - var popup_height = 350; + var popup_height = 680; var params = "?targetObjId="+objId+"&docType="+docType+"&docTypeName="+docTypeName; - var url = "/common/FileRegistPopup.do"+params; + var url = "/contractMgmt/FileRegistPopup.do"+params; fn_centerPopup(popup_width, popup_height, url); } @@ -347,9 +342,6 @@ function fn_FileRegist(objId, docType, docTypeName){
- - -
diff --git a/WebContent/WEB-INF/view/salesmgmt/salesMgmt/salesMgmtList.jsp b/WebContent/WEB-INF/view/salesmgmt/salesMgmt/salesMgmtList.jsp index aa748ad..9419115 100644 --- a/WebContent/WEB-INF/view/salesmgmt/salesMgmt/salesMgmtList.jsp +++ b/WebContent/WEB-INF/view/salesmgmt/salesMgmt/salesMgmtList.jsp @@ -18,18 +18,16 @@ fnc_datepick(); // 날짜 선택기 초기화 $('.select2').select2(); // select2 초기화 - // 엔터키로 조회 - $("input").keyup(function(e){ - if(e.keyCode == 13){ - $("#page").val("1"); - fn_search(); - } - }); + // 엔터키로 조회 + $("input").keyup(function(e){ + if(e.keyCode == 13){ + fn_search(); + } + }); - $("#btnSearch").click(function(){ - $("#page").val("1"); - fn_search(); - }); + $("#btnSearch").click(function(){ + fn_search(); + }); // 초기 데이터 조회 fn_search(); @@ -50,10 +48,10 @@ function fn_FileRegist(objId, docType, docTypeName){ var popup_width = 800; - var popup_height = 350; + var popup_height = 680; var params = "?targetObjId="+objId+"&docType="+docType+"&docTypeName="+docTypeName; - var url = "/common/FileRegistPopup.do"+params; + var url = "/contractMgmt/FileRegistPopup.do"+params; fn_centerPopup(popup_width, popup_height, url); } @@ -155,7 +153,6 @@ function fn_bulkRegister(){ -
diff --git a/WebContent/js/tabulator/tabulator_custom.js b/WebContent/js/tabulator/tabulator_custom.js index 7b375eb..bd3736c 100644 --- a/WebContent/js/tabulator/tabulator_custom.js +++ b/WebContent/js/tabulator/tabulator_custom.js @@ -139,10 +139,12 @@ function fnc_tabul_searchAjax(gridObj, searchURL, formId, hidePaging, checkValid return; } + var formData = $("#"+formId).serializeObject(); + $.ajax({ url: searchURL, type:"POST", - data:$("#"+formId).serializeObject(), + data:formData, dataType:"json", //async:false, beforeSend:function(){ @@ -162,9 +164,8 @@ function fnc_tabul_searchAjax(gridObj, searchURL, formId, hidePaging, checkValid //console.log(data); }, error: function(jqxhr, status, error){ - console.log(jqxhr); - console.log(status); - console.log(error); + alert("데이터 조회 중 오류가 발생했습니다."); + console.error(error); } }); } diff --git a/src/com/pms/salesmgmt/controller/SalesNcollectMgmtController.java b/src/com/pms/salesmgmt/controller/SalesNcollectMgmtController.java index c6572a9..84b83b3 100644 --- a/src/com/pms/salesmgmt/controller/SalesNcollectMgmtController.java +++ b/src/com/pms/salesmgmt/controller/SalesNcollectMgmtController.java @@ -175,14 +175,13 @@ public class SalesNcollectMgmtController { // 수주상태 codeMap.put("orderStatusList", commonService.bizMakeOptionList("0000932", "", "common.getCodeselect")); - // 출하대기 상태 - codeMap.put("shippingStatusList", - salesMgmtCommonService.bizMakeOptionList("SH", "", "salesMgmtCommon.getCodeList")); - // 담당자 - codeMap.put("managerList", - salesMgmtCommonService.bizMakeOptionList("", "", "salesMgmtCommon.getSalesmanList")); - - request.setAttribute("codeMap", codeMap); + // 출하대기 상태 + codeMap.put("shippingStatusList", + salesMgmtCommonService.bizMakeOptionList("SH", "", "salesMgmtCommon.getCodeList")); + // 담당자 + codeMap.put("managerList", commonService.bizMakeOptionList("", "", "common.getUserselect")); + + request.setAttribute("codeMap", codeMap); } catch (Exception e) { e.printStackTrace(); } @@ -200,39 +199,27 @@ public class SalesNcollectMgmtController { @ResponseBody @RequestMapping(value = "/revenueMgmt/revenueGridList.do", method = RequestMethod.POST) public Map salesMgmtGridList(HttpServletRequest request, @RequestParam Map paramMap) { - Map resultMap = new HashMap(); - try { - System.out.println("===== revenueGridList.do 파라미터 ====="); - System.out.println("paramMap: " + paramMap); + // commonService.selectListPagingNew를 사용하여 페이지네이션 처리 + commonService.selectListPagingNew("salesNcollectMgmt.getSalesMgmtGridList", request, paramMap); - List> list = salesNcollectMgmtService.getSalesMgmtGridList(request, paramMap); - int totalCount = salesNcollectMgmtService.getSalesMgmtGridListCount(paramMap); + // Total 합계 조회 (기존 로직 유지) Map totals = salesNcollectMgmtService.getSalesMgmtTotals(paramMap); - - System.out.println("list size: " + list.size()); - System.out.println("totalCount: " + totalCount); - System.out.println("totals: " + totals); - - resultMap.put("RESULTLIST", list); - resultMap.put("last_page", (int) Math.ceil((double)totalCount / Integer.parseInt(CommonUtils.checkNull(request.getParameter("size"), "10")))); - resultMap.put("TOTALS", totals); // Total 공급가액, 부가세, 총액 + paramMap.put("TOTALS", totals); } catch(Exception e) { e.printStackTrace(); - // Tabulator는 에러 발생 시 빈 배열을 기대합니다. - resultMap.put("RESULTLIST", new java.util.ArrayList<>()); - resultMap.put("last_page", 0); + // 에러 발생 시 빈 데이터 설정 + paramMap.put("RESULTLIST", new java.util.ArrayList<>()); // Total 초기화 Map emptyTotals = new HashMap(); - emptyTotals.put("TOTAL_SUPPLY_PRICE", 0); emptyTotals.put("TOTAL_VAT", 0); emptyTotals.put("TOTAL_AMOUNT", 0); - resultMap.put("TOTALS", emptyTotals); + paramMap.put("TOTALS", emptyTotals); } - return resultMap; + return paramMap; } /** @@ -264,8 +251,7 @@ public class SalesNcollectMgmtController { Map codeMap = new HashMap(); // 담당자 - codeMap.put("managerList", - salesMgmtCommonService.bizMakeOptionList("", "", "salesMgmtCommon.getSalesmanList")); + codeMap.put("managerList", commonService.bizMakeOptionList("", "", "common.getUserselect")); // 기존 판매 정보 조회 후 환종(통화) 공통코드 세팅 Map saleInfo = null; @@ -293,22 +279,9 @@ public class SalesNcollectMgmtController { @RequestMapping(value = "/salesMgmt/salesMgmtGridList.do", method = RequestMethod.POST) @ResponseBody public Map getSalesMgmtGridList(HttpServletRequest request, @RequestParam Map paramMap) { - Map resultMap = new HashMap(); - - try { - List> list = salesNcollectMgmtService.getSalesMgmtGridList(request, paramMap); - int totalCount = salesNcollectMgmtService.getSalesMgmtGridListCount(paramMap); - - resultMap.put("RESULTLIST", list); - resultMap.put("last_page", (int) Math.ceil((double)totalCount / Integer.parseInt(CommonUtils.checkNull(request.getParameter("size"), "10")))); - } catch(Exception e) { - e.printStackTrace(); - // Tabulator는 에러 발생 시 빈 배열을 기대합니다. - resultMap.put("RESULTLIST", new java.util.ArrayList<>()); - resultMap.put("last_page", 0); - } - - return resultMap; + // commonService.selectListPagingNew를 사용하여 페이지네이션 HTML 생성 + commonService.selectListPagingNew("salesNcollectMgmt.getSalesMgmtGridList", request, paramMap); + return paramMap; } @RequestMapping(value = "/salesMgmt/saveSales.do", method = RequestMethod.POST) diff --git a/src/com/pms/salesmgmt/mapper/salesNcollectMgmt.xml b/src/com/pms/salesmgmt/mapper/salesNcollectMgmt.xml index d3d579b..fcaaf96 100644 --- a/src/com/pms/salesmgmt/mapper/salesNcollectMgmt.xml +++ b/src/com/pms/salesmgmt/mapper/salesNcollectMgmt.xml @@ -971,7 +971,6 @@ /* INCOTERMS 필드 없음 - 검색 조건 무시 */ ORDER BY T.REGDATE DESC - LIMIT #{COUNT_PER_PAGE} OFFSET #{PAGE_START} diff --git a/src/com/pms/service/CommonService.java b/src/com/pms/service/CommonService.java index 68ac61a..a659dff 100644 --- a/src/com/pms/service/CommonService.java +++ b/src/com/pms/service/CommonService.java @@ -2466,22 +2466,22 @@ public class CommonService extends BaseService { //qryList = new StringBuffer(); selectListPaging2(sqlSession, log, sqlId, request, pageMap, query, resultList); - //결과 없으면 재검색 1번(240723 추가) - if(TOTAL_CNT_INT > 0 && (resultList == null || resultList.isEmpty()) ) { //!isFirstRecursive && - pageMap.put("page", "1"); //1페이지 검색 - pageMap = CommonUtils.setPagingInfo(request, rowCnt); //reset - //return selectListPagingAct(sqlId, request, paramMap, isNew, true); - selectListPaging2(sqlSession, log, sqlId, request, pageMap, query, resultList); - } - - //#SET PAGE_HTML /////////////////////////////////////////////////////// - String PAGE_HTML = ""; - if(isNew){ - PAGE_HTML = CommonUtils.getPageingHtml2(request, resultList, false, pageMap); - }else{ - PAGE_HTML = CommonUtils.getPageingHtml(request, resultList, false); - } - paramMap.put("PAGE_HTML", PAGE_HTML); + //결과 없으면 재검색 1번(240723 추가) + if(TOTAL_CNT_INT > 0 && (resultList == null || resultList.isEmpty()) ) { //!isFirstRecursive && + pageMap.put("page", "1"); //1페이지 검색 + pageMap = CommonUtils.setPagingInfo(request, rowCnt); //reset + //return selectListPagingAct(sqlId, request, paramMap, isNew, true); + selectListPaging2(sqlSession, log, sqlId, request, pageMap, query, resultList); + } + + //#SET PAGE_HTML /////////////////////////////////////////////////////// + String PAGE_HTML = ""; + if(isNew){ + PAGE_HTML = CommonUtils.getPageingHtml2(request, resultList, false, pageMap); + }else{ + PAGE_HTML = CommonUtils.getPageingHtml(request, resultList, false); + } + paramMap.put("PAGE_HTML", PAGE_HTML); request.setAttribute("PAGE_HTML" , PAGE_HTML); } catch (SQLException e) { // TODO Auto-generated catch block