From 7805d58c947de9b7374a49c125dd90e3575176b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EB=8C=80=ED=99=98?= Date: Fri, 22 May 2026 14:39:25 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A3=BC=EB=AC=B8=EA=B4=80=EB=A6=AC=20>=20?= =?UTF-8?q?=EC=A0=84=EC=B2=B4=EC=A3=BC=EB=AC=B8=EC=A1=B0=ED=9A=8C=20>=20?= =?UTF-8?q?=EB=B0=9C=EC=A3=BC=EC=84=9C=20=EC=97=91=EC=85=80=20=EB=8B=A4?= =?UTF-8?q?=EC=9A=B4=EB=A1=9C=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gcone/ordr/ordr/mapper/BOOrdrMapper.java | 7 + .../ordr/ordr/service/BOOrdrService.java | 9 ++ .../controller/OrdrmngrController.java | 134 ++++++++++++++++++ .../mapper/gcone/ordr/ordr/BOOrdrMapper.xml | 119 ++++++++++++++++ .../mngr/ordr/ordrmngr/AllOrdrListInqireR.jsp | 30 ++++ 5 files changed, 299 insertions(+) diff --git a/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/mapper/BOOrdrMapper.java b/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/mapper/BOOrdrMapper.java index f014c552..d82d5b78 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/mapper/BOOrdrMapper.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/mapper/BOOrdrMapper.java @@ -238,6 +238,13 @@ public interface BOOrdrMapper { * @return List */ public List selectExcelListByOrder(BOOrdrSrchVO ordrSrchVO); + + /** + * 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문 목록 조회 > 엑셀다운로드 발주서 + * @param ordrSrchVO + * @return List + */ + public List selectExcelListPurchOrder(BOOrdrSrchVO ordrSrchVO); /* #################################### 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문 목록 조회 종료 #################################### */ diff --git a/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/service/BOOrdrService.java b/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/service/BOOrdrService.java index cce19af3..2729c8af 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/service/BOOrdrService.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/service/BOOrdrService.java @@ -682,6 +682,15 @@ public class BOOrdrService{ return mapper.selectExcelListByOrder(ordrSrchVO); } + /** + * 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문 목록 조회 > 엑셀다운로드 발주서 + * @param ordrSrchVO + * @return List + */ + public List selectExcelListPurchOrder(BOOrdrSrchVO ordrSrchVO) { + return mapper.selectExcelListPurchOrder(ordrSrchVO); + } + /** * 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문 목록 조회 > 주문내역서 정보 조회 * @param ordrVO diff --git a/src/main/java/com/wb/domainserver/domain/mngr/ordr/ordrmngr/controller/OrdrmngrController.java b/src/main/java/com/wb/domainserver/domain/mngr/ordr/ordrmngr/controller/OrdrmngrController.java index 320da5b7..53873a75 100644 --- a/src/main/java/com/wb/domainserver/domain/mngr/ordr/ordrmngr/controller/OrdrmngrController.java +++ b/src/main/java/com/wb/domainserver/domain/mngr/ordr/ordrmngr/controller/OrdrmngrController.java @@ -48,6 +48,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import java.io.IOException; import java.math.BigInteger; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; /** @@ -622,6 +626,136 @@ public class OrdrmngrController { } } + /** + * 발주서 엑셀다운로드 + * @param response + * @param ordrSrchVO + * @return ResponseEntity + */ + @Policy(AuthPolicy.PUBLIC) + @RequestMapping(value="/selectExcelPoDwldListInqire") + public void selectPurchOrderExcelList(HttpServletResponse response, BOOrdrSrchVO ordrSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + ordrSrchVO.setSopmalCd(authSopmalCd); + + //엑셀 항목별 제목에 출력될 내용 설정 + LinkedHashMap headerMap = new LinkedHashMap(); + List headerValues = List.of( + "날짜", + "업체코드", + "업체명", + "업체TEL", + "업체주소", + "특별통관업체명", + "특별통관번호", + "주문번호", + "용도구분", + "수취인", + "수취인TEL", + "수취인HP", + "개인통관고유부호", + "우편번호", + "주소", + "나머지주소", + "메모", + "고객 구입사이트", + "무게", + "포장개수", + "HS CODE", + "상거래유형", + "내용물", + "Unit Value", + "상품개수", + "Value", + "Brand", + "사전식품신고 종류", + "제조국", + "제조회사명", + "중문상품명", + "Shipper 구입사이트", + "판매중개업체명", + "판매중개업체 등록부호", + "구매(배송)대행업체명", + "구매(배송)대행업체 등록부호", + "해외판매자명", + "해외판매자 등록부호", + "사이트 주문번호" + ); + for (int i = 0; i < headerValues.size(); i++) { + headerMap.put(String.format("item%02d", i + 1), headerValues.get(i)); + } + + //엑셀 항목에 출력될 내용 설정 + List resultList = service.selectExcelListPurchOrder(ordrSrchVO); + List> excelList = new ArrayList<>(); + if (resultList != null) { + for (int i = 0; i < resultList.size(); i++) { + HashMap dataMap = new HashMap<>(); +// int cellInt = 1; // 셀 타입 = 숫자 + List dataValues = Arrays.asList( + resultList.get(i).get("ordrRceptDt"), + resultList.get(i).get("entrpsCd"), + resultList.get(i).get("entrpsNm"), + resultList.get(i).get("entrpsTel"), + resultList.get(i).get("entrpsAdres"), + resultList.get(i).get("spclCstmclerEntrps"), + resultList.get(i).get("spclCstmclerCd"), + resultList.get(i).get("ordrInnb"), + resultList.get(i).get("purpsDv"), + resultList.get(i).get("recpntNm"), + resultList.get(i).get("recpntMbtlnb"), + resultList.get(i).get("recpntHp"), + resultList.get(i).get("cstmclerCd"), + resultList.get(i).get("dlvylcZip"), + resultList.get(i).get("dlvylcRnmLnbAdres"), + resultList.get(i).get("dlvylcAdresDtl"), + resultList.get(i).get("dlvyMssageCn"), + resultList.get(i).get("cstmrPurchsSite"), + resultList.get(i).get("realWt"), + resultList.get(i).get("packageCnt"), + resultList.get(i).get("hscode"), + resultList.get(i).get("cmmrcTy"), + resultList.get(i).get("cn"), + resultList.get(i).get("unitValue"), + resultList.get(i).get("ordrQy"), + resultList.get(i).get("value"), + resultList.get(i).get("brand"), + resultList.get(i).get("preFoodDcl"), + resultList.get(i).get("provdNation"), + resultList.get(i).get("provdCmpnyNm"), + resultList.get(i).get("chnlngGoodsNm"), + resultList.get(i).get("shipperPurchsSite"), + resultList.get(i).get("sleAgntEntrpsNm"), + resultList.get(i).get("sleAgntEntrpsRegistCd"), + resultList.get(i).get("purchsDlvyAgencyNm"), + resultList.get(i).get("purchsDlvyAgencyRegistCd"), + resultList.get(i).get("ovseaSelerNm"), + resultList.get(i).get("ovseaSelerRegistCd"), + resultList.get(i).get("siteOrdrInnb") + ); + + for (int j = 0; j < dataValues.size(); j++) { + dataMap.put(String.format("item%02d", j + 1), dataValues.get(j)); + } + excelList.add(dataMap); + } + } + + /******************************************************************/ + try { + //엑셀생성 및 다운로드 + LocalDateTime now = LocalDateTime.now(); + String excelFileName = "발주서_"; + + excelFileName += String.format("%s~%s", ordrSrchVO.getSrchStartDate(), ordrSrchVO.getSrchEndDate()); // 엑셀 다운로드 파일명 + + String encodedFileName = URLEncoder.encode(excelFileName, StandardCharsets.UTF_8.toString()).replaceAll("\\+", "%20"); + ExcelDownloadUtil.createExcel(encodedFileName, headerMap, excelList, response); + } catch (IOException ioe) { + log.error("엑셀다운로드 중 오류가 발생하였습니다.", ioe); + throw new WnbtRestException("엑셀다운로드 중 오류가 발생하였습니다."); + } + } + /** * 주문내역서 팝업 화면 이동 * @param model diff --git a/src/main/resources/mybatis/xml/mapper/gcone/ordr/ordr/BOOrdrMapper.xml b/src/main/resources/mybatis/xml/mapper/gcone/ordr/ordr/BOOrdrMapper.xml index bdb8e586..23417572 100644 --- a/src/main/resources/mybatis/xml/mapper/gcone/ordr/ordr/BOOrdrMapper.xml +++ b/src/main/resources/mybatis/xml/mapper/gcone/ordr/ordr/BOOrdrMapper.xml @@ -1401,6 +1401,125 @@ GROUP BY A.ORDR_INNB ) EXCEL + + +