방선주 방선주 03-17
250317 방선주 영주 엑셀 다운로드 제거 및 엑셀 주석 추가
@8282afcef19c9a2fc7e79f6b592d9a5a5f9174c4
src/main/java/com/takensoft/common/excel/service/ExcelCreateService.java
--- src/main/java/com/takensoft/common/excel/service/ExcelCreateService.java
+++ src/main/java/com/takensoft/common/excel/service/ExcelCreateService.java
@@ -16,6 +16,16 @@
 import java.nio.file.Paths;
 import java.util.Base64;
 import java.util.List;
+/**
+ * @author takensoft
+ * @since 2024.04.09
+ * @modification
+ *     since    |    author    | description
+ *  2024.05.30  |    박정하     | 최초 등록
+ *  2025.03.17  |    방선주     | 기업용 엑셀 다운로드 기능 삭제
+ *
+ * 엑셀 생성 서비스
+ */
 
 public class ExcelCreateService<T> {
     private Workbook workbook;
@@ -30,15 +40,24 @@
         this.resource = ExcelRenderResourceFactory.prepareRenderResource(type);
         this.dataList = dataList;
     }
-
-    // 헤더 스타일
+    /**
+     * @param
+     * @return CellStyle - 엑셀 셀 스타일
+     *
+     * 헤더 스타일
+     */
     private CellStyle theadStyle() {
         CellStyle headerCellStyle = tbodyStyle();
         headerCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
         headerCellStyle.setFillPattern(FillPatternType.BRICKS);
         return headerCellStyle;
     }
-    // 내용 스타일
+    /**
+     * @param
+     * @return CellStyle - 엑셀 셀 스타일
+     *
+     * 내용 스타일
+     */
     private CellStyle tbodyStyle() {
         CellStyle bodyCellStyle = workbook.createCellStyle();
         bodyCellStyle.setBorderLeft(BorderStyle.THIN);
@@ -48,7 +67,12 @@
         bodyCellStyle.setWrapText(true);
         return bodyCellStyle;
     }
-    // 빈칸 스타일
+    /**
+     * @param
+     * @return CellStyle - 엑셀 셀 스타일
+     *
+     * 빈칸 스타일
+     */
     private CellStyle emptyStyle() {
         CellStyle emptyStyle = workbook.createCellStyle();
         emptyStyle.setBorderLeft(BorderStyle.NONE);
@@ -58,7 +82,14 @@
         return emptyStyle;
     }
 
-    // 세로 적재 테이블 그리기
+    /**
+     * @param resource - 엑셀 렌더 리소스
+     * @param dataList - 엑셀 데이터 리스트
+     * @param rowIndex - 엑셀 행 인덱스
+     * @return CellStyle - 엑셀 셀 스타일
+     *
+     * 세로 적재 테이블 그리기
+     */
     public int createVertical(ExcelRenderResource resource, List<T> dataList, int rowIndex) throws NoSuchFieldException, IllegalAccessException {
         for (String dataFieldName : resource.getDataFieldNames()) {
             // tr
@@ -83,7 +114,14 @@
         return rowIndex;
     }
 
-    // 가로 적재 테이블 그리기
+    /**
+     * @param resource - 엑셀 렌더 리소스
+     * @param dataList - 엑셀 데이터 리스트
+     * @param rowIndex - 엑셀 행 인덱스
+     * @return int - 엑셀 행 인덱스
+     *
+     * 가로 적재 테이블 그리기
+     */
     public int createHorizontal(ExcelRenderResource resource, List<T> dataList, int rowIndex) throws NoSuchFieldException, IllegalAccessException {
         // tr
         Row row = sheet.createRow(rowIndex++);
@@ -111,8 +149,15 @@
 
         return rowIndex;
     }
-    
-    // 세로형 가로 적재 테이블 그리기
+
+    /**
+     * @param resource - 엑셀 렌더 리소스
+     * @param dataList - 엑셀 데이터 리스트
+     * @param rowIndex - 엑셀 행 인덱스
+     * @return int - 엑셀 행 인덱스
+     *
+     * 세로형 가로 적재 테이블 그리기
+     */
     public int createVH(ExcelRenderResource resource, List<T> dataList, int rowIndex) throws NoSuchFieldException, IllegalAccessException {
         for (T data : dataList) {
             for (String dataFieldName : resource.getDataFieldNames()) {
@@ -140,7 +185,12 @@
         return rowIndex;
     }
 
-    // 구분선
+    /**
+     * @param rowIndex - 엑셀 행 인덱스
+     * @return int - 엑셀 행 인덱스
+     *
+     *  구분선
+     */
     public int createHr(int rowIndex) {
         // tr
         Row row = sheet.createRow(rowIndex++);
@@ -150,7 +200,13 @@
         return rowIndex;
     }
 
-    // 제목
+    /**
+     * @param rowIndex - 엑셀 행 인덱스
+     * @param caption - 엑셀 캡션
+     * @return int - 엑셀 행 인덱스
+     *
+     *  제목
+     */
     public int createCaption(int rowIndex, String caption) {
         // tr
         Row row = sheet.createRow(rowIndex++);
@@ -160,7 +216,12 @@
         return rowIndex;
     }
 
-    // 셀 내 데이터 입력
+    /**
+     * @param cell - 엑셀 셀
+     * @param cellValue - 엑셀 셀 값
+     *
+     *  셀 내 데이터 입력
+     */
     private void setCellValue(Cell cell, Object cellValue) {
         if (cellValue instanceof Number) {
             Number numberValue = (Number) cellValue;
@@ -227,36 +288,13 @@
         }
     }
 
-    // 세로 적재 테이블 그리기 (기업정보용)
-    public int createVerticalByEntInfo(ExcelRenderResource resource, List<T> dataList, int rowIndex) throws NoSuchFieldException, IllegalAccessException {
-        String isIvstDscsn = null;
-        for (String dataFieldName : resource.getDataFieldNames()) {
-            if (dataFieldName!= "isIvstDscsn" && dataFieldName != "mvnInten" &&  dataFieldName != "mouInten" &&  dataFieldName != "rmrk") {
-                rowIndex = createTableByEntInfo(resource, rowIndex, dataFieldName);
-            }
-        }
-
-        rowIndex = createHr(rowIndex); // 구분선
-        rowIndex = createCaption(rowIndex, "세부정보");
-
-        Field field = SuperClassReflectionUtil.getField(dataList.get(0).getClass(), ("isIvstDscsn"));
-        field.setAccessible(true);
-        isIvstDscsn = field.get(dataList.get(0)).toString();
-        field.setAccessible(false);
-
-        rowIndex = createTableByEntInfo(resource, rowIndex, "isIvstDscsn");
-        if (isIvstDscsn == "Y") {
-            for (String dataFieldName : resource.getDataFieldNames()) {
-                if (dataFieldName == "mvnInten" || dataFieldName == "mouInten") {
-                    rowIndex = createTableByEntInfo(resource, rowIndex, dataFieldName);
-                }
-            }
-        }
-        rowIndex = createTableByEntInfo(resource, rowIndex, "rmrk");
-
-        return rowIndex;
-    }
-    // 테이블 그리기
+    /**
+     * @param resource - 엑셀 렌더 리소스
+     * @param rowIndex - 엑셀 행 인덱스
+     * @param dataFieldName - 엑셀 셀 값
+     *
+     *  테이블 그리기
+     */
     private int createTableByEntInfo(ExcelRenderResource resource, int rowIndex, String dataFieldName) throws NoSuchFieldException, IllegalAccessException  {
         // tr
         Row row = sheet.createRow(rowIndex++);
@@ -275,35 +313,4 @@
         return rowIndex;
     }
 
-    // 기업정보 전체 테이블 그리기 (기업정보용)
-    public int createByEntInfoAll(ExcelRenderResource resource, List<T> dataList, int rowIndex) throws NoSuchFieldException, IllegalAccessException {
-        // tr
-        Row row = sheet.createRow(rowIndex++);
-
-        // th
-        int columnIndex = 0;
-        for (String dataFieldName : resource.getDataFieldNames()) {
-            Cell cell = row.createCell(columnIndex++);
-            String value = resource.getExcelHeaderName(dataFieldName);
-            cell.setCellValue(value);
-            cell.setCellStyle(theadStyle());
-        }
-
-        // td
-        for (T data : dataList) {
-            row = sheet.createRow(rowIndex++);
-            columnIndex = 0;
-
-            for (String dataFieldName : resource.getDataFieldNames()) {
-                Cell cell = row.createCell(columnIndex++);
-                Field field = SuperClassReflectionUtil.getField(data.getClass(), (dataFieldName));
-                field.setAccessible(true);
-                Object cellValue = field.get(data);
-                field.setAccessible(false);
-                setCellValue(cell, cellValue);
-            }
-        }
-
-        return rowIndex;
-    }
 }
(파일 끝에 줄바꿈 문자 없음)
src/main/java/com/takensoft/common/excel/service/ExcelService.java
--- src/main/java/com/takensoft/common/excel/service/ExcelService.java
+++ src/main/java/com/takensoft/common/excel/service/ExcelService.java
@@ -1,19 +1,29 @@
 package com.takensoft.common.excel.service;
 
 import com.takensoft.cms.cntnStats.dto.CntnStatsExcelDTO;
-import com.takensoft.portal.entInfo.dto.BplcExcelDTO;
-import com.takensoft.portal.entInfo.dto.EntInfoExcelDTO;
-import com.takensoft.portal.ivstDscsn.dto.IvstDscsnExcelDTO;
-import com.takensoft.portal.rvwMttr.dto.RvwMttrExcelDTO;
-import com.takensoft.portal.rvwMttr.dto.RvwMttrPrgrsExcelDTO;
 
 import jakarta.servlet.http.HttpServletResponse;
 import java.util.List;
 
+/**
+ * @author takensoft
+ * @since 2024.04.09
+ * @modification
+ *     since    |    author    | description
+ *  2024.05.30  |    박정하     | cntnStatsExcelDownload 등록
+ *  2025.03.14  |    방선주     | 코드 리펙토링
+ *
+ * 엑셀 다운로드 서비스 인터페이스
+ */
+
 public interface ExcelService {
-    void ivstDscsnExcelDownload(HttpServletResponse response, IvstDscsnExcelDTO ivstDscsn) throws Exception;
-    void rvwMttrExcelDownload(HttpServletResponse response, RvwMttrExcelDTO rvwMttr, List<RvwMttrPrgrsExcelDTO> prgrsList) throws Exception;
-    void entInfoExcelDownload(HttpServletResponse response, EntInfoExcelDTO entInfo, List<BplcExcelDTO> bplcList) throws Exception;
+    /**
+     * @param response - HTTP 응답 객체
+     * @param cntnStats - 게시판 접속 통계 목록
+     * @param chart - 차트 명
+     * @return int - 등록 성공 여부
+     *
+     * 접속 통계 엑셀 다운로드
+     */
     void cntnStatsExcelDownload(HttpServletResponse response, List<CntnStatsExcelDTO> cntnStats, String chart);
-    void entInfoExcelDownloadAll(HttpServletResponse response, List<EntInfoExcelDTO> entInfoList) throws Exception;
 }
(파일 끝에 줄바꿈 문자 없음)
src/main/java/com/takensoft/common/excel/service/Impl/ExcelServiceImpl.java
--- src/main/java/com/takensoft/common/excel/service/Impl/ExcelServiceImpl.java
+++ src/main/java/com/takensoft/common/excel/service/Impl/ExcelServiceImpl.java
@@ -5,11 +5,6 @@
 import com.takensoft.common.excel.resource.ExcelRenderResourceFactory;
 import com.takensoft.common.excel.service.ExcelCreateService;
 import com.takensoft.common.excel.service.ExcelService;
-import com.takensoft.portal.entInfo.dto.BplcExcelDTO;
-import com.takensoft.portal.entInfo.dto.EntInfoExcelDTO;
-import com.takensoft.portal.ivstDscsn.dto.IvstDscsnExcelDTO;
-import com.takensoft.portal.rvwMttr.dto.RvwMttrExcelDTO;
-import com.takensoft.portal.rvwMttr.dto.RvwMttrPrgrsExcelDTO;
 import lombok.RequiredArgsConstructor;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Workbook;
@@ -34,94 +29,6 @@
         response.setHeader(HttpHeaders.CONTENT_DISPOSITION, String.format("attachment; filename=" + fileName + ".xlsx"));
         workbook.write(response.getOutputStream());
         workbook.close();
-    }
-
-    // 투자상담
-    @Override
-    public void ivstDscsnExcelDownload(HttpServletResponse response, IvstDscsnExcelDTO ivstDscsn) throws Exception {
-        // 기본 세팅
-        Workbook workbook = new SXSSFWorkbook();
-        Sheet sheet = workbook.createSheet();
-        int rowIndex = 0;
-
-        // 개별 설정
-        ExcelRenderResource mainResource = ExcelRenderResourceFactory.prepareRenderResource(IvstDscsnExcelDTO.class);
-        List<IvstDscsnExcelDTO> mainDataList = new ArrayList<>();
-        mainDataList.add(ivstDscsn);
-
-        // 엑셀 그리기
-        ExcelCreateService<IvstDscsnExcelDTO> mainExcel = new ExcelCreateService(workbook, sheet, mainDataList, mainDataList.getClass());
-        mainExcel.createVertical(mainResource, mainDataList, rowIndex);
-
-        // 엑셀 사이즈 지정
-        sheetSize(sheet, 2);
-
-        // 엑셀 파일 출력
-        writeExcel(response, workbook, mainResource);
-    }
-
-    // 검토사항
-    @Override
-    public void rvwMttrExcelDownload(HttpServletResponse response, RvwMttrExcelDTO rvwMttr, List<RvwMttrPrgrsExcelDTO> prgrsList) throws Exception {
-        // 기본 세팅
-        Workbook workbook = new SXSSFWorkbook();
-        Sheet sheet = workbook.createSheet();
-        int rowIndex = 0;
-
-        // 개별 설정
-        ExcelRenderResource mainResource = ExcelRenderResourceFactory.prepareRenderResource(RvwMttrExcelDTO.class);
-        List<RvwMttrExcelDTO> mainDataList = new ArrayList<>();
-        mainDataList.add(rvwMttr);
-
-        ExcelRenderResource prgrsResource = ExcelRenderResourceFactory.prepareRenderResource(RvwMttrPrgrsExcelDTO.class);
-
-        // 엑셀 그리기
-        ExcelCreateService<RvwMttrExcelDTO> mainExcel = new ExcelCreateService(workbook, sheet, mainDataList, mainDataList.getClass());
-        rowIndex = mainExcel.createCaption(rowIndex, "기본정보");
-        rowIndex = mainExcel.createVertical(mainResource, mainDataList, rowIndex);
-
-        rowIndex = mainExcel.createHr(rowIndex); // 구분선
-        rowIndex = mainExcel.createCaption(rowIndex, "진행단계 및 지원방안");
-        ExcelCreateService<RvwMttrPrgrsExcelDTO> prgrsExcel = new ExcelCreateService(workbook, sheet, prgrsList, prgrsList.getClass());
-        rowIndex = prgrsExcel.createVH(prgrsResource, prgrsList, rowIndex);
-
-        // 엑셀 사이즈 지정
-        sheetSize(sheet, 2);
-
-        // 엑셀 파일 출력
-        writeExcel(response, workbook, mainResource);
-    }
-
-    // 기업정보
-    @Override
-    public void entInfoExcelDownload(HttpServletResponse response, EntInfoExcelDTO entInfo, List<BplcExcelDTO> bplcList) throws Exception {
-        // 기본 세팅
-        Workbook workbook = new SXSSFWorkbook();
-        Sheet sheet = workbook.createSheet();
-        int rowIndex = 0;
-
-        // 개별 설정
-        ExcelRenderResource mainResource = ExcelRenderResourceFactory.prepareRenderResource(EntInfoExcelDTO.class);
-        List<EntInfoExcelDTO> mainDataList = new ArrayList<>();
-        mainDataList.add(entInfo);
-
-        ExcelRenderResource bplcResource = ExcelRenderResourceFactory.prepareRenderResource(BplcExcelDTO.class);
-
-        // 엑셀 그리기
-        ExcelCreateService<EntInfoExcelDTO> mainExcel = new ExcelCreateService(workbook, sheet, mainDataList, mainDataList.getClass());
-        rowIndex = mainExcel.createCaption(rowIndex, "기본정보");
-        rowIndex = mainExcel.createVerticalByEntInfo(mainResource, mainDataList, rowIndex);
-
-        rowIndex = mainExcel.createHr(rowIndex); // 구분선
-        rowIndex = mainExcel.createCaption(rowIndex, "주요사업장");
-        ExcelCreateService<BplcExcelDTO> bplcExcel = new ExcelCreateService(workbook, sheet, bplcList, bplcList.getClass());
-        bplcExcel.createVertical(bplcResource, bplcList, rowIndex);
-
-        // 엑셀 사이즈 지정
-        sheetSize(sheet, 2);
-
-        // 엑셀 파일 출력
-        writeExcel(response, workbook, mainResource);
     }
 
     // 통계관리
@@ -154,27 +61,7 @@
         }
     }
 
-    // 기업정보 전체 다운로드
-    public void entInfoExcelDownloadAll(HttpServletResponse response, List<EntInfoExcelDTO> mainDataList) throws Exception {
-        // 기본 세팅
-        Workbook workbook = new SXSSFWorkbook();
-        Sheet sheet = workbook.createSheet();
-        int rowIndex = 0;
 
-        // 개별 설정
-        ExcelRenderResource mainResource = ExcelRenderResourceFactory.prepareRenderResource(EntInfoExcelDTO.class);
-
-        // 엑셀 그리기
-        ExcelCreateService<EntInfoExcelDTO> mainExcel = new ExcelCreateService(workbook, sheet, mainDataList, mainDataList.getClass());
-        mainExcel.createByEntInfoAll(mainResource, mainDataList, rowIndex);
-
-        // 엑셀 사이즈 지정
-        int cellNumber = mainResource.getDataFieldNames().size();
-        sheetSize(sheet, cellNumber);
-
-        // 엑셀 파일 출력
-        writeExcel(response, workbook, mainResource);
-    }
 
     public void sheetSize(Sheet sheet, int cellNumber){
         ((SXSSFSheet)sheet).trackAllColumnsForAutoSizing();
src/main/java/com/takensoft/portal/entInfo/web/EntInfoController.java
--- src/main/java/com/takensoft/portal/entInfo/web/EntInfoController.java
+++ src/main/java/com/takensoft/portal/entInfo/web/EntInfoController.java
@@ -1,24 +1,15 @@
 package com.takensoft.portal.entInfo.web;
 
 import com.takensoft.common.excel.service.ExcelService;
-import com.takensoft.common.exception.IdDuplicationException;
 import com.takensoft.common.message.MessageCode;
-import com.takensoft.common.util.ResponseData;
 import com.takensoft.common.util.ResponseUtil;
-import com.takensoft.portal.entInfo.dto.BplcExcelDTO;
-import com.takensoft.portal.entInfo.dto.EntInfoExcelDTO;
 import com.takensoft.portal.entInfo.service.EntInfoService;
 import com.takensoft.portal.entInfo.vo.EntInfoVO;
 import lombok.RequiredArgsConstructor;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import jakarta.servlet.http.HttpServletResponse;
-import java.nio.charset.Charset;
 import java.util.*;
 /**
  * @author 박정하
@@ -153,32 +144,4 @@
         }
     }
 
-    /**
-     * @author 박정하
-     * @since 2024.03.25
-     * @param response, entInfo, bplcList
-     * @return
-     * @throws Exception
-     *
-     * 기업정보 엑셀 다운로드
-     */
-    @RequestMapping(path = "/excelDownload.json")
-    public void excelDownload(HttpServletResponse response, @RequestPart EntInfoExcelDTO entInfo, @RequestPart List<BplcExcelDTO> bplcList) throws Exception {
-        excelService.entInfoExcelDownload(response, entInfo, bplcList);
-    }
-
-    /**
-     * @author 박정하
-     * @since 2024.06.26
-     * @param response, params
-     * @return
-     * @throws Exception
-     *
-     * 기업정보 전체 엑셀 다운로드
-     */
-    @RequestMapping(path = "/excelDownloadAll.json")
-    public void excelDownloadAll(HttpServletResponse response, @RequestBody HashMap<String, String> params) throws Exception {
-        List<EntInfoExcelDTO> entInfoList = entInfoService.excelDownloadAll(params);
-        excelService.entInfoExcelDownloadAll(response, entInfoList);
-    }
 }
(파일 끝에 줄바꿈 문자 없음)
src/main/java/com/takensoft/portal/ivstDscsn/web/IvstDscsnController.java
--- src/main/java/com/takensoft/portal/ivstDscsn/web/IvstDscsnController.java
+++ src/main/java/com/takensoft/portal/ivstDscsn/web/IvstDscsnController.java
@@ -4,17 +4,14 @@
 import com.takensoft.common.message.MessageCode;
 import com.takensoft.common.util.ResponseData;
 import com.takensoft.common.util.ResponseUtil;
-import com.takensoft.portal.ivstDscsn.dto.IvstDscsnExcelDTO;
 import com.takensoft.portal.ivstDscsn.service.IvstDscsnService;
 import com.takensoft.portal.ivstDscsn.vo.IvstDscsnVO;
 import lombok.RequiredArgsConstructor;
 import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
-import jakarta.servlet.http.HttpServletResponse;
 import java.nio.charset.Charset;
 import java.util.*;
 /**
@@ -142,14 +139,4 @@
         }
     }
 
-    /**
-     * @author 박정하
-     * @since 2024.03.27
-     *
-     * 투자상담 엑셀 다운로드
-     */
-    @RequestMapping(path = "/excelDownload.json")
-    public void excelDownload(HttpServletResponse response, @RequestBody IvstDscsnExcelDTO ivstDscsn) throws Exception {
-        excelService.ivstDscsnExcelDownload(response, ivstDscsn);
-    }
 }
(파일 끝에 줄바꿈 문자 없음)
src/main/java/com/takensoft/portal/rvwMttr/web/RvwMttrController.java
--- src/main/java/com/takensoft/portal/rvwMttr/web/RvwMttrController.java
+++ src/main/java/com/takensoft/portal/rvwMttr/web/RvwMttrController.java
@@ -2,22 +2,15 @@
 
 import com.takensoft.common.excel.service.ExcelService;
 import com.takensoft.common.message.MessageCode;
-import com.takensoft.common.util.ResponseData;
 import com.takensoft.common.util.ResponseUtil;
-import com.takensoft.portal.rvwMttr.dto.RvwMttrExcelDTO;
-import com.takensoft.portal.rvwMttr.dto.RvwMttrPrgrsExcelDTO;
 import com.takensoft.portal.rvwMttr.service.RvwMttrService;
 import com.takensoft.portal.rvwMttr.vo.RvwMttrVO;
 import lombok.RequiredArgsConstructor;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
+
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import jakarta.servlet.http.HttpServletResponse;
-import java.nio.charset.Charset;
 import java.util.*;
 /**
  * @author 박정하
@@ -137,14 +130,4 @@
         }
     }
 
-    /**
-     * @author 박정하
-     * @since 2024.04.01
-     *
-     * 검토사항 엑셀 다운로드
-     */
-    @RequestMapping(path = "/excelDownload.file")
-    public void excelDownload(HttpServletResponse response, @RequestPart RvwMttrExcelDTO rvwMttr, @RequestPart List<RvwMttrPrgrsExcelDTO> prgrsList) throws Exception {
-        excelService.rvwMttrExcelDownload(response, rvwMttr, prgrsList);
-    }
 }
(파일 끝에 줄바꿈 문자 없음)
Add a comment
List