From 234e8b64178edbe9c487f81002dbaf6fbd2faa71 Mon Sep 17 00:00:00 2001 From: hjjeong Date: Wed, 28 Jan 2026 13:54:46 +0900 Subject: [PATCH] =?UTF-8?q?E-BOM=20=EC=A1=B0=ED=9A=8C=20=EC=97=91=EC=85=80?= =?UTF-8?q?=EB=8B=A4=EC=9A=B4=EB=A1=9C=EB=93=9C=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../view/partMng/structureAscendingList.jsp | 89 +++----- .../partMng/structureAscendingListExcel.jsp | 104 ++++++++- .../partMng/structureDescendingListExcel.jsp | 211 +++++++----------- src/com/pms/controller/PartMngController.java | 19 ++ 4 files changed, 225 insertions(+), 198 deletions(-) diff --git a/WebContent/WEB-INF/view/partMng/structureAscendingList.jsp b/WebContent/WEB-INF/view/partMng/structureAscendingList.jsp index bea1765..395cfd0 100644 --- a/WebContent/WEB-INF/view/partMng/structureAscendingList.jsp +++ b/WebContent/WEB-INF/view/partMng/structureAscendingList.jsp @@ -152,12 +152,9 @@ $(document).ready(function(){ fn_search(); }); + // 엑셀 다운로드 - 서버 사이드 방식 $("#btnExcel").click(function(){ - - $("#search_partNo").val($.trim($("#search_partNo").val())); - $("#search_partName").val($.trim($("#search_partName").val())); - - fn_excelExport($("#mainGrid"),"BOM_REPORT_정전개"); + fn_excelDownload(); }); // 초기 로딩 시 레벨에 따라 표시 (검색 결과 기준) @@ -734,64 +731,44 @@ function fn_search(){ } -function fn_excelExport(pGridObj,pFileName){ - var mya = pGridObj.getDataIDs(); - var data = pGridObj.getRowData(mya[0]); - var colNames=new Array(); - var ii=0; - for (var d in data){ colNames[ii++] = d; } - - //컬럼 헤더 가져오기 - var columnHeader = pGridObj.jqGrid('getGridParam','colNames') + ''; - var arrHeader = columnHeader.split(','); - var html=""; - for ( var y = 0; y < arrHeader.length; y++ ) { - var hName = arrHeader[y]; - if("PART_OBJID" == hName || "EO_OBJID" == hName){ - continue; - } - - html = html + ""; - } - - - html = html + ""; - - //값 불러오기 - for(var i=0;i< mya.length;i++) { - var datac= pGridObj.getRowData(mya[i]); - html = html +""; - for(var j=0; j< colNames.length;j++){ - if("PART_OBJID" == colNames[j] || "EO_OBJID" == colNames[j]){ - continue; - } - html=html + '"; - } - html = html+""; - } - - - html=html+"
" + arrHeader[y] + "
' + datac[colNames[j]]+"
"; // end of line at the end - document.EXCEL_.csvBuffer.value = html; - document.EXCEL_.fileName.value = pFileName; - document.EXCEL_.target='_new'; - document.EXCEL_.submit(); +// 엑셀 다운로드 - 서버 사이드 방식 +function fn_excelDownload(){ + // 검색 조건 확인 + var partObjId = $("#search_partObjId").val(); + var partNo = $("#search_partNo").val(); + var partName = $("#search_partName").val(); + + if(!partObjId && !partNo && !partName) { + alert("품번 또는 품명을 선택해주세요."); + return; + } + + var form = document.form1; + var searchType = $("#searchType").val(); + + // 정전개/역전개에 따라 다른 URL 호출 + if(searchType == "descending") { + form.action = "/partMng/structureDescendingExcelList.do"; + } else { + form.action = "/partMng/structureAscendingExcelList.do"; + } + + form.target = "_blank"; + form.submit(); + form.action = ""; + form.target = ""; } -
- - -
- +
@@ -807,11 +784,9 @@ function fn_excelExport(pGridObj,pFileName){
- - - + + +
diff --git a/WebContent/WEB-INF/view/partMng/structureAscendingListExcel.jsp b/WebContent/WEB-INF/view/partMng/structureAscendingListExcel.jsp index 437f941..b3d57c4 100644 --- a/WebContent/WEB-INF/view/partMng/structureAscendingListExcel.jsp +++ b/WebContent/WEB-INF/view/partMng/structureAscendingListExcel.jsp @@ -9,12 +9,21 @@ java.text.SimpleDateFormat frm= new java.text.SimpleDateFormat ("yyyy_MM_dd_HH_m Calendar cal = Calendar.getInstance(); String todayKor = frm.format(cal.getTime()); -String excelName = request.getParameter("fileName"); +String excelName = "BOM 조회(정전개)"; String encodeName = excelName+todayKor+".xls"; String fileName = java.net.URLEncoder.encode(encodeName,"UTF-8"); response.setHeader("Content-Disposition", "attachment;filename="+fileName+""); response.setHeader("Content-Description", "JSP Generated Data"); + +ArrayList list = (ArrayList)request.getAttribute("LIST"); + +// MAX_LEVEL 가져오기 +int maxLevel = 1; +if(list != null && list.size() > 0) { + HashMap firstMap = (HashMap)list.get(0); + maxLevel = Integer.parseInt(CommonUtils.checkNull(firstMap.get("MAX_LEVEL"), "1")); +} %> @@ -22,24 +31,101 @@ response.setHeader("Content-Description", "JSP Generated Data"); <%=Constants.SYSTEM_NAME%> - - diff --git a/WebContent/WEB-INF/view/partMng/structureDescendingListExcel.jsp b/WebContent/WEB-INF/view/partMng/structureDescendingListExcel.jsp index 4e6bc57..16f2dae 100644 --- a/WebContent/WEB-INF/view/partMng/structureDescendingListExcel.jsp +++ b/WebContent/WEB-INF/view/partMng/structureDescendingListExcel.jsp @@ -17,6 +17,13 @@ response.setHeader("Content-Disposition", "attachment;filename="+fileName+""); response.setHeader("Content-Description", "JSP Generated Data"); ArrayList list = (ArrayList)request.getAttribute("LIST"); + +// MAX_LEVEL 가져오기 +int maxLevel = 1; +if(list != null && list.size() > 0) { + HashMap firstMap = (HashMap)list.get(0); + maxLevel = Integer.parseInt(CommonUtils.checkNull(firstMap.get("MAX_LEVEL"), "1")); +} %> @@ -24,10 +31,6 @@ ArrayList list = (ArrayList)request.getAttribute("LIST"); <%=Constants.SYSTEM_NAME%> - - @@ -40,143 +43,87 @@ ArrayList list = (ArrayList)request.getAttribute("LIST");
- - - - - - - - - - - - - - - - - - - - - - - - - - - <% - for(int i = 0 ; i < list.size() ; i++){ - HashMap map = (HashMap)list.get(i); - - String level = CommonUtils.checkNull(map.get("LEVEL"), "0"); - String lev = CommonUtils.checkNull(map.get("LEV")); - String bomReportObjId = CommonUtils.checkNull(map.get("BOM_REPORT_OBJID")); - String topObjId = CommonUtils.checkNull(map.get("TOP_OBJID")); - String subTopObjId = CommonUtils.checkNull(map.get("SUB_TOP_OBJID")); - String partNo = CommonUtils.checkNull(map.get("PART_NO")); - String partName = CommonUtils.checkNull(map.get("PART_NAME")); - String qty = CommonUtils.checkNull(map.get("QTY")); - String rev = CommonUtils.checkNull(map.get("REV")); - String ecoNo = CommonUtils.checkNull(map.get("EO_NO")); - String ecoDate = CommonUtils.checkNull(map.get("EO_ISSUE_DATE")); - String materialName = CommonUtils.checkNull(map.get("MATERIAL_NAME")); - String thickness = CommonUtils.checkNull(map.get("THICKNESS")); - String carName = CommonUtils.checkNull(map.get("CAR_NAME")); - String carCode = CommonUtils.checkNull(map.get("CAR_CODE")); - String productName = CommonUtils.checkNull(map.get("PRODUCT_NAME")); - String regionName = CommonUtils.checkNull(map.get("REGION_NAME")); - String remarks = CommonUtils.checkNull(map.get("REMARKS")); - String ea = "EA"; - String ecd = CommonUtils.checkNull(map.get("ECD_OBJID")); - String erp = CommonUtils.checkNull(map.get("RH_PART_NO")); - String plated = CommonUtils.checkNull(map.get("PLATED")); - String stamp = CommonUtils.checkNull(map.get("STAMP")); - String cavity = CommonUtils.checkNull(map.get("CAVITY")); - String weight = CommonUtils.checkNull(map.get("WEIGHT")); - String sprue = CommonUtils.checkNull(map.get("SPRUE")); - String m_c_name = CommonUtils.checkNull(map.get("M_C_NAME")); - String comm_name = CommonUtils.checkNull(map.get("COMM_NAME")); - String c_m_name = CommonUtils.checkNull(map.get("C_M_NAME")); - String c_s_m_name = CommonUtils.checkNull(map.get("C_S_M_NAME")); - String c_p_p_name = CommonUtils.checkNull(map.get("C_P_P_NAME")); - String c_e_name = CommonUtils.checkNull(map.get("C_E_NAME")); - String background = ""; - - //역전개만해당 - String baseLevel = CommonUtils.checkNull(map.get("BASE_LEVEL")); - - String ecdTitle = "Y"; - if(ecd == "") ecdTitle = "N"; - if("1".equals(lev)){ - background = "#fde9d9"; - }else if("2".equals(lev)){ - background = "#daeef3"; - regionName = "-"; - }else if("3".equals(lev)){ - background = "#e4dfec"; - regionName = "-"; - }else if("4".equals(lev)){ - background = "#ebf1de"; - regionName = "-"; - }else if("5".equals(lev)){ - background = "#f2f2f2"; - regionName = "-"; - }else if("6".equals(lev)){ - background = "#f2dcdb"; - regionName = "-"; - }else if("7".equals(lev)){ - background = "#eeece1"; - regionName = "-"; - }else if("8".equals(lev)){ - background = "#dce6f1"; - regionName = "-"; - }else if("9".equals(lev)){ - background = "#FFFFEB"; - regionName = "-"; - }else if("10".equals(lev)){ - background = "#ffffff"; - regionName = "-"; - } - %> - - - <% - for(int j = 0 ; j < Integer.parseInt(level) ; j++){ + for(int i = 1; i <= maxLevel; i++){ %> -   + <% } %> - <%=partNo%> - - + + + + + + + + + + + + + + + + <% + if(list != null) { + for(int i = 0 ; i < list.size() ; i++){ + HashMap map = (HashMap)list.get(i); + + int level = Integer.parseInt(CommonUtils.checkNull(map.get("LEVEL"), "1")); + String partNo = CommonUtils.checkNull(map.get("PART_NO")); + String partName = CommonUtils.checkNull(map.get("PART_NAME")); + String qty = CommonUtils.checkNull(map.get("QTY")); + String pQty = CommonUtils.checkNull(map.get("P_QTY")); + String file3dCnt = CommonUtils.checkNull(map.get("FILE_3D_CNT"), "0"); + String file2dCnt = CommonUtils.checkNull(map.get("FILE_2D_CNT"), "0"); + String filePdfCnt = CommonUtils.checkNull(map.get("FILE_PDF_CNT"), "0"); + String material = CommonUtils.checkNull(map.get("MATERIAL")); + String heatTreatmentHardness = CommonUtils.checkNull(map.get("HEAT_TREATMENT_HARDNESS")); + String heatTreatmentMethod = CommonUtils.checkNull(map.get("HEAT_TREATMENT_METHOD")); + String surfaceTreatment = CommonUtils.checkNull(map.get("SURFACE_TREATMENT")); + String maker = CommonUtils.checkNull(map.get("MAKER")); + String partTypeTitle = CommonUtils.checkNull(map.get("PART_TYPE_TITLE")); + String remark = CommonUtils.checkNull(map.get("REMARK")); + + // 파일 유무 Y/N 표시 + String has3d = !"0".equals(file3dCnt) ? "Y" : ""; + String has2d = !"0".equals(file2dCnt) ? "Y" : ""; + String hasPdf = !"0".equals(filePdfCnt) ? "Y" : ""; + %> + + <% + for(int j = 1; j <= maxLevel; j++){ + if(level == j){ + %> + + <% + } else { + %> + + <% + } + } + %> + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + <% } + } %>
Level품번품명수량단위ECO.NoECO.DateREVECDERP재질원소재사이즈도금도장Cavity제품스프루금형구분생산구분금형업체부자재업체도금/도장업체원소재업체비고
<%=baseLevel%> +
<%=i%> <%=partName%>품번품명수량항목수량3D2DPDF재료열처리경도열처리방법표면처리메이커범주 이름비고
*<%=partNo%><%=partName%> <%=qty%><%=ea%><%=ecoNo%><%=ecoDate%><%=rev%><%=ecdTitle%><%=erp%><%=materialName%><%=thickness%><%=plated%><%=stamp%><%=cavity%><%=weight%><%=sprue%><%=m_c_name%><%=comm_name%><%=c_m_name%><%=c_s_m_name%><%=c_p_p_name%><%=c_e_name%><%=remarks%><%=pQty%><%=has3d%><%=has2d%><%=hasPdf%><%=material%><%=heatTreatmentHardness%><%=heatTreatmentMethod%><%=surfaceTreatment%><%=maker%><%=partTypeTitle%><%=remark%>
diff --git a/src/com/pms/controller/PartMngController.java b/src/com/pms/controller/PartMngController.java index a4b104a..3e460a1 100644 --- a/src/com/pms/controller/PartMngController.java +++ b/src/com/pms/controller/PartMngController.java @@ -1399,9 +1399,28 @@ public class PartMngController { @RequestMapping("/partMng/structureAscendingExcelList.do") public String structureAscendingExcelList(HttpServletRequest request, @RequestParam Map paramMap){ + try { + // 정전개 데이터 조회 + List resultList = partMngService.getStructureAscendingList(request, paramMap); + request.setAttribute("LIST", resultList); + } catch(Exception e) { + e.printStackTrace(); + } return "/partMng/structureAscendingListExcel"; } + @RequestMapping("/partMng/structureDescendingExcelList.do") + public String structureDescendingExcelList(HttpServletRequest request, @RequestParam Map paramMap){ + try { + // 역전개 데이터 조회 + List resultList = partMngService.getStructureDescendingList(request, paramMap); + request.setAttribute("LIST", resultList); + } catch(Exception e) { + e.printStackTrace(); + } + return "/partMng/structureDescendingListExcel"; + } + /** * 정전개 멀티 목록 * @param request