diff --git a/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java b/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java index 98b84969..0dd73a40 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java @@ -1747,32 +1747,39 @@ public class EstimateService { // SchDrawingFlg (1 : 견적서,2 : 발전시뮬레이션, 3 : 도면, 4 : 가대) // ex) 1|2|3|4 if (!StringUtils.isEmpty(estimateRequest.getSchDrawingFlg())) { + if (estimateRequest.getSchDrawingFlg().indexOf("1") < 0) { - workbook.removeSheetAt(workbook.getSheetIndex("見積書")); - workbook.removeSheetAt(workbook.getSheetIndex("特異事項")); + safeRemoveSheet(workbook, "見積書"); + safeRemoveSheet(workbook, "特異事項"); + } if (estimateRequest.getSchDrawingFlg().indexOf("2") < 0) { - workbook.removeSheetAt(workbook.getSheetIndex("発電シミュレーション")); + safeRemoveSheet(workbook, "発電シミュレーション"); + } if (estimateRequest.getSchDrawingFlg().indexOf("3") < 0) { - workbook.removeSheetAt(workbook.getSheetIndex("割付図・系統図")); - workbook.removeSheetAt(workbook.getSheetIndex("架台図")); + safeRemoveSheet(workbook, "割付図・系統図"); + safeRemoveSheet(workbook, "架台図"); + } } // 추후 개발 (가대중량표) if (estimateRequest.getSchDrawingFlg().indexOf("4") < 0) { - workbook.removeSheetAt(workbook.getSheetIndex("重量算")); + safeRemoveSheet(workbook, "重量算"); } if ("EXCEL2".equals(estimateRequest.getSchDownload())) { - workbook.removeSheetAt(workbook.getSheetIndex("特異事項")); - workbook.removeSheetAt(workbook.getSheetIndex("発電シミュレーション")); - workbook.removeSheetAt(workbook.getSheetIndex("割付図・系統図")); - workbook.removeSheetAt(workbook.getSheetIndex("架台図")); - workbook.removeSheetAt(workbook.getSheetIndex("重量算")); + safeRemoveSheet(workbook, "見積書"); + safeRemoveSheet(workbook, "特異事項"); + safeRemoveSheet(workbook, "発電シミュレーション"); + safeRemoveSheet(workbook, "割付図・系統図"); + safeRemoveSheet(workbook, "架台図"); + safeRemoveSheet(workbook, "重量算"); + }else{ + safeRemoveSheet(workbook,"見積書."); } ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); @@ -2573,4 +2580,18 @@ public class EstimateService { } + + /** + * 워크북에서 시트를 안전하게 제거하는 헬퍼 메소드 + * 시트가 존재하지 않으면 무시함 + * + * @param workbook 워크북 + * @param sheetName 제거할 시트명 + */ + private void safeRemoveSheet(Workbook workbook, String sheetName) { + int sheetIndex = workbook.getSheetIndex(sheetName); + if (sheetIndex >= 0) { + workbook.removeSheetAt(sheetIndex); + } + } } diff --git a/src/main/resources/template/excel/excel_download_quotation_detail_template.xlsx b/src/main/resources/template/excel/excel_download_quotation_detail_template.xlsx index 4e1ce477..76d3d2e4 100644 Binary files a/src/main/resources/template/excel/excel_download_quotation_detail_template.xlsx and b/src/main/resources/template/excel/excel_download_quotation_detail_template.xlsx differ