From 98de984f58060482bffaf177c6beaff22832070f Mon Sep 17 00:00:00 2001 From: sungsu Date: Fri, 19 Jan 2024 09:54:32 +0900 Subject: [PATCH 1/8] #update --- .../com/no1/wms/excel/ExcelDownlodeUtils.java | 71 ++++++++++++++++-- .../com/no1/wms/stock/StockController.java | 26 +++++++ .../java/com/no1/wms/stock/StockMapper.java | 1 + .../java/com/no1/wms/stock/StockService.java | 4 + .../com/no1/wms/vendor/VendorController.java | 4 +- src/main/resources/mappers/StockMapper.xml | 9 +++ src/main/webapp/WEB-INF/views/stock/list.jsp | 12 ++- src/main/webapp/WEB-INF/views/vendor/list.jsp | 8 ++ .../excelform/카테고리 데이터 입력 서식.xlsx | Bin 7485 -> 9032 bytes 9 files changed, 125 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/no1/wms/excel/ExcelDownlodeUtils.java b/src/main/java/com/no1/wms/excel/ExcelDownlodeUtils.java index f22072c..1bc8a64 100644 --- a/src/main/java/com/no1/wms/excel/ExcelDownlodeUtils.java +++ b/src/main/java/com/no1/wms/excel/ExcelDownlodeUtils.java @@ -8,6 +8,7 @@ import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.List; +import java.util.Map; import javax.servlet.http.HttpServletResponse; @@ -186,10 +187,68 @@ public class ExcelDownlodeUtils { } - - - - - - + + public void downloadStockExcelFile(String excelFileName, HttpServletResponse response, + String sheetName, String[] columnName, List> dto) { + String fileName = ""; + try { + fileName = new String((excelFileName + ".xlsx").getBytes("utf-8"), "iso-8859-1"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + response.setContentType("ms-vnd/excel"); + response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\";"); + + Workbook workbook = new XSSFWorkbook(); + Sheet sheet = workbook.createSheet(sheetName); + + Row row = null; + Cell cell = null; + int rowNum = 0; + + row = sheet.createRow(rowNum); + for( int i = 0; i <= columnName.length -1; i++ ) { + cell = row.createCell(i); + cell.setCellValue(columnName[i]); + } + rowNum += 1; + + //수정부분 + makeStockBody(dto,row,sheet,cell,rowNum); + + try { + workbook.write(response.getOutputStream()); + workbook.close(); + } catch (IOException e) { + e.printStackTrace(); + } + + + } + + public void makeStockBody(List> listdto, Row row, Sheet sheet, + Cell cell, int rowNum) { + // + for (int i = 0; i < listdto.size(); i++) { + row = sheet.createRow(rowNum++); + Map dto = listdto.get(i); + cell = row.createCell(0); + cell.setCellValue((String) dto.get("productName")); + cell = row.createCell(1); + cell.setCellValue((String) dto.get("cls_nm_4")); + cell = row.createCell(2); + cell.setCellValue((String) dto.get("warehouseName")); + cell = row.createCell(3); + cell.setCellValue((String) dto.get("quantity")); + + } + } + + + + + + + + } diff --git a/src/main/java/com/no1/wms/stock/StockController.java b/src/main/java/com/no1/wms/stock/StockController.java index 147b145..30a23cc 100644 --- a/src/main/java/com/no1/wms/stock/StockController.java +++ b/src/main/java/com/no1/wms/stock/StockController.java @@ -1,6 +1,7 @@ package com.no1.wms.stock; +import com.no1.wms.excel.ExcelDownlodeUtils; import com.no1.wms.vendor.VendorDto; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -9,6 +10,8 @@ import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.List; import java.util.Map; @@ -19,6 +22,9 @@ public class StockController { @Autowired StockService service; + + @Autowired + ExcelDownlodeUtils excelDownlodeUtils; // 탭 1 재고 리스트 출력 @GetMapping("/list") @@ -221,4 +227,24 @@ public class StockController { //테스트 return mav; } + // 엑셀다운로드테스트 + @GetMapping("/stock/downlodeExcelList") + public void downlodeExcelList(HttpServletResponse response) { + List> dto = service.selectAll(); + String excelFileName = "재고 파일"; + String sheetName = "재고"; + String[] columnName = {"제품명","카테고리","창고","재고수"}; + excelDownlodeUtils.downloadStockExcelFile(excelFileName, response, sheetName, columnName, dto); + + }; + + //서식 다운로드 + @GetMapping("/vendor/downlodeVendorForm") + public void downlodeVendorForm (HttpServletResponse response) throws IOException { + String vendorFormName = "재고 데이터 입력 서식.xlsx"; + excelDownlodeUtils.downlodeExcelForm(response, vendorFormName); + }; } + + + diff --git a/src/main/java/com/no1/wms/stock/StockMapper.java b/src/main/java/com/no1/wms/stock/StockMapper.java index 79d8476..1fa0ad7 100644 --- a/src/main/java/com/no1/wms/stock/StockMapper.java +++ b/src/main/java/com/no1/wms/stock/StockMapper.java @@ -8,6 +8,7 @@ import java.util.Map; @Mapper public interface StockMapper { + List> selectAll(); int count(Map m);//검색 글 갯수 diff --git a/src/main/java/com/no1/wms/stock/StockService.java b/src/main/java/com/no1/wms/stock/StockService.java index 03ef0ed..c8d349b 100644 --- a/src/main/java/com/no1/wms/stock/StockService.java +++ b/src/main/java/com/no1/wms/stock/StockService.java @@ -142,6 +142,10 @@ public class StockService { return mapper.warehouseCount(m); } + public List> selectAll() { + return mapper.selectAll(); + } + } diff --git a/src/main/java/com/no1/wms/vendor/VendorController.java b/src/main/java/com/no1/wms/vendor/VendorController.java index 4aed0a9..0f53f17 100644 --- a/src/main/java/com/no1/wms/vendor/VendorController.java +++ b/src/main/java/com/no1/wms/vendor/VendorController.java @@ -130,8 +130,8 @@ public class VendorController { } // 엑셀다운로드테스트 - @GetMapping("/vendor/downloadTest") - public void downloadExcelTest(HttpServletResponse response) { + @GetMapping("/vendor/downlodeExcelList") + public void downlodeExcelList(HttpServletResponse response) { List dto = service.selectAll(); String excelFileName = "거래처 파일"; String sheetName = "거래처"; diff --git a/src/main/resources/mappers/StockMapper.xml b/src/main/resources/mappers/StockMapper.xml index 1daf620..c30f1a4 100644 --- a/src/main/resources/mappers/StockMapper.xml +++ b/src/main/resources/mappers/StockMapper.xml @@ -5,6 +5,15 @@ + + - - - + diff --git a/src/main/webapp/WEB-INF/views/in/create.jsp b/src/main/webapp/WEB-INF/views/in/create.jsp index 31b7e19..f5339d9 100644 --- a/src/main/webapp/WEB-INF/views/in/create.jsp +++ b/src/main/webapp/WEB-INF/views/in/create.jsp @@ -1,5 +1,6 @@ <%@ page contentType="text/html; charset=UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> @@ -22,25 +23,84 @@
- +
제품명 + style="background-color:#FF5E5E;" type="button" onclick="showSearchModal_product('제품 검색','product')" >검색
- +
- 가격 - + 회사명 + +
+ +
+ 분류 + +
+ +
+ 거래처 + +
+ + + + + + +
+ 수량 + +
+ +
+ 창고명 + + + +
+
+ 주소 + +
+ +
+ 용적 + +
+ +
+ 잔여 용량 + +
+ + + + + +
+ 입고날짜 + + +
+ +
@@ -49,7 +109,7 @@
- +
@@ -58,8 +118,107 @@
diff --git a/src/main/webapp/WEB-INF/views/in/list.jsp b/src/main/webapp/WEB-INF/views/in/list.jsp index e33654e..b692e47 100644 --- a/src/main/webapp/WEB-INF/views/in/list.jsp +++ b/src/main/webapp/WEB-INF/views/in/list.jsp @@ -48,6 +48,7 @@ 가격 수량 입고예정그룹번호 + 창고이름 입고날짜 담당자 @@ -59,7 +60,13 @@ ${dto.productDto.name } ${dto.latest_price } ${dto.quantity } - ${dto.planInDto.viewGroupNumber } + + ${dto.planInDto.viewGroupNumber} + + + + + ${dto.warehouseDto.name } ${dto.accountDto.name } diff --git a/src/main/webapp/WEB-INF/views/modal/product.jsp b/src/main/webapp/WEB-INF/views/modal/product.jsp index 7ae22a1..23146c3 100644 --- a/src/main/webapp/WEB-INF/views/modal/product.jsp +++ b/src/main/webapp/WEB-INF/views/modal/product.jsp @@ -8,9 +8,16 @@ const $tag = $(tag); const tid = $tag.data('tid'); const name = $tag.data('tname'); + const company_name = $tag.data('tcompany_name'); + const cls_nm_4 = $tag.data('tcls_nm_4'); + const vendor_name = $tag.data('tvendor_name'); + $("#productName").val(name); $("#product_id").val(tid); + $("#company_name").val(company_name); + $("#cls_Nm_4").val(cls_nm_4); + $("#vendor_name").val(vendor_name); hideSearchModal(); }//onSelect @@ -119,7 +126,7 @@ ${dto.accountDto.name } - + diff --git a/src/main/webapp/WEB-INF/views/price/create.jsp b/src/main/webapp/WEB-INF/views/price/create.jsp index c39690d..7f34cfd 100644 --- a/src/main/webapp/WEB-INF/views/price/create.jsp +++ b/src/main/webapp/WEB-INF/views/price/create.jsp @@ -38,7 +38,23 @@
- + +
+ 회사명 + +
+ +
+ 분류 + +
+ +
+ 거래처 + +
+ +
가격
-

제품 상세페이지

+

제품 가격 상세페이지

From 7ccfcdd8995809bf8913549838738a1d9caffc14 Mon Sep 17 00:00:00 2001 From: Kana Date: Fri, 19 Jan 2024 15:01:18 +0900 Subject: [PATCH 4/8] test --- src/main/java/com/no1/wms/price/PriceController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/no1/wms/price/PriceController.java b/src/main/java/com/no1/wms/price/PriceController.java index 84d6467..09512bd 100644 --- a/src/main/java/com/no1/wms/price/PriceController.java +++ b/src/main/java/com/no1/wms/price/PriceController.java @@ -28,7 +28,7 @@ public class PriceController { PriceService priceService; @Autowired ProductService productService; - + @GetMapping("/list") public String list(@RequestParam(name = "searchn", defaultValue = "0") int searchn, @RequestParam(name = "search", defaultValue = "") String search, From 288839b964d54257c9c310fc8808957ba2959dc4 Mon Sep 17 00:00:00 2001 From: "1457rk@gamil.com" Date: Fri, 19 Jan 2024 15:16:37 +0900 Subject: [PATCH 5/8] test1 --- src/main/java/com/no1/wms/price/PriceController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/no1/wms/price/PriceController.java b/src/main/java/com/no1/wms/price/PriceController.java index 09512bd..84d6467 100644 --- a/src/main/java/com/no1/wms/price/PriceController.java +++ b/src/main/java/com/no1/wms/price/PriceController.java @@ -28,7 +28,7 @@ public class PriceController { PriceService priceService; @Autowired ProductService productService; - + @GetMapping("/list") public String list(@RequestParam(name = "searchn", defaultValue = "0") int searchn, @RequestParam(name = "search", defaultValue = "") String search, From 3c90de652abe17c299fa448514d665d038f229aa Mon Sep 17 00:00:00 2001 From: 1457rk Date: Fri, 19 Jan 2024 15:19:54 +0900 Subject: [PATCH 6/8] test3 --- src/main/java/com/no1/wms/price/PriceController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/no1/wms/price/PriceController.java b/src/main/java/com/no1/wms/price/PriceController.java index 84d6467..09512bd 100644 --- a/src/main/java/com/no1/wms/price/PriceController.java +++ b/src/main/java/com/no1/wms/price/PriceController.java @@ -28,7 +28,7 @@ public class PriceController { PriceService priceService; @Autowired ProductService productService; - + @GetMapping("/list") public String list(@RequestParam(name = "searchn", defaultValue = "0") int searchn, @RequestParam(name = "search", defaultValue = "") String search, From 58a6166d2110b250207992201b573b46038d934b Mon Sep 17 00:00:00 2001 From: sungsu Date: Fri, 19 Jan 2024 16:02:36 +0900 Subject: [PATCH 7/8] =?UTF-8?q?#=EC=88=98=EC=A0=95=20stock/create.jsp=20st?= =?UTF-8?q?ock/list.jsp=20stock/read.jsp=20stock/update.jsp=20WarehouseCon?= =?UTF-8?q?troller.java=20WarehouseMapper.xml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/no1/wms/stock/StockController.java | 20 ++++++++++--------- .../java/com/no1/wms/stock/StockService.java | 6 ++++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/no1/wms/stock/StockController.java b/src/main/java/com/no1/wms/stock/StockController.java index 30a23cc..facdd24 100644 --- a/src/main/java/com/no1/wms/stock/StockController.java +++ b/src/main/java/com/no1/wms/stock/StockController.java @@ -172,7 +172,7 @@ public class StockController { @PostMapping("/show_modal") public ModelAndView showModal(@RequestParam(name = "searchn", defaultValue = "0") int searchn, @RequestParam(name = "search", defaultValue = "") String search, - @RequestParam(name = "p", defaultValue = "1") int page, + @RequestParam(name = "p", defaultValue = "1") int page, String product_id, @RequestParam String name, ModelAndView mav){ int perPage = 5; // 한 페이지에 보일 글의 갯수 @@ -193,8 +193,8 @@ public class StockController { list = service.productSelect(searchn, search, startRow, perPage); count = service.productCount(searchn, search); }else if(name.equals("warehouse_capacity_currentCapacity")) { - list = service.warehousesSelect(searchn, search, startRow, perPage); - count = service.warehouseCount(searchn, search); + list = service.warehousesSelect(searchn, search, startRow, perPage ,product_id); + count = service.warehouseCount(searchn, search ,product_id); } mav.addObject("list", list); @@ -227,8 +227,10 @@ public class StockController { //테스트 return mav; } - // 엑셀다운로드테스트 - @GetMapping("/stock/downlodeExcelList") + + + // 리스트 다운로드 + @GetMapping("/stock/downloadExcelList") public void downlodeExcelList(HttpServletResponse response) { List> dto = service.selectAll(); String excelFileName = "재고 파일"; @@ -239,10 +241,10 @@ public class StockController { }; //서식 다운로드 - @GetMapping("/vendor/downlodeVendorForm") - public void downlodeVendorForm (HttpServletResponse response) throws IOException { - String vendorFormName = "재고 데이터 입력 서식.xlsx"; - excelDownlodeUtils.downlodeExcelForm(response, vendorFormName); + @GetMapping("/stock/downloadStockForm") + public void downlodeStockForm (HttpServletResponse response) throws IOException { + String stockFormName = "재고 데이터 입력 서식.xlsx"; + excelDownlodeUtils.downlodeExcelForm(response, stockFormName); }; } diff --git a/src/main/java/com/no1/wms/stock/StockService.java b/src/main/java/com/no1/wms/stock/StockService.java index c8d349b..2dbe496 100644 --- a/src/main/java/com/no1/wms/stock/StockService.java +++ b/src/main/java/com/no1/wms/stock/StockService.java @@ -121,24 +121,26 @@ public class StockService { return mapper.productCount(m); } - public List> warehousesSelect(int searchn, String search, int start, int perPage){ + public List> warehousesSelect(int searchn, String search, int start, int perPage, String product_id){ Map m = new HashMap(); m.put("searchn", searchn); m.put("search", search); m.put("start", start); m.put("perPage", perPage); + m.put("product_id", product_id); List> warehouseresult = mapper.warehouseSelect(m); return warehouseresult; } - public int warehouseCount(int searchn, String search) { + public int warehouseCount(int searchn, String search, String product_id) { Map m = new HashMap(); m.put("searchn",searchn); m.put("search", search); + m.put("product_id", product_id); return mapper.warehouseCount(m); } From c09b676be64ade5e70e0524a1f607400c81c0c9e Mon Sep 17 00:00:00 2001 From: sungsu Date: Fri, 19 Jan 2024 16:29:47 +0900 Subject: [PATCH 8/8] =?UTF-8?q?#=EC=88=98=EC=A0=95=20stock/create.jsp=20st?= =?UTF-8?q?ock/list.jsp=20stock/read.jsp=20stock/update.jsp=20WarehouseCon?= =?UTF-8?q?troller.java=20WarehouseMapper.xml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/mappers/StockMapper.xml | 26 +++++++++---------- .../webapp/WEB-INF/views/stock/create.jsp | 22 +++++++++++++++- src/main/webapp/WEB-INF/views/stock/list.jsp | 19 +++++++++++--- .../webapp/WEB-INF/views/stock/update.jsp | 4 +-- 4 files changed, 51 insertions(+), 20 deletions(-) diff --git a/src/main/resources/mappers/StockMapper.xml b/src/main/resources/mappers/StockMapper.xml index c30f1a4..fc5c071 100644 --- a/src/main/resources/mappers/StockMapper.xml +++ b/src/main/resources/mappers/StockMapper.xml @@ -6,7 +6,7 @@ @@ -131,9 +131,9 @@ - s.id IS NULL and w.activation = 1 and w.name like concat('%',#{search},'%') - s.id IS NULL and w.activation = 1 and address like concat('%',#{search},'%') - s.id IS NULL and w.activation = 1 and capacity like concat('%',#{search},'%') + (s.product_id is null or s.product_id <> #{product_id}) and w.activation = 1 and w.name like concat('%',#{search},'%') + (s.product_id is null or s.product_id <> #{product_id}) and w.activation = 1 and address like concat('%',#{search},'%') + (s.product_id is null or s.product_id <> #{product_id}) and w.activation = 1 and capacity like concat('%',#{search},'%') order by w.name desc limit #{start}, #{perPage} @@ -146,9 +146,9 @@ - s.id IS NULL and w.activation = 1 and w.name like concat('%',#{search},'%') - s.id IS NULL and w.activation = 1 and address like concat('%',#{search},'%') - s.id IS NULL and w.activation = 1 and capacity like concat('%',#{search},'%') + (s.product_id is null or s.product_id <> #{product_id}) and w.activation = 1 and w.name like concat('%',#{search},'%') + (s.product_id is null or s.product_id <> #{product_id}) and w.activation = 1 and address like concat('%',#{search},'%') + (s.product_id is null or s.product_id <> #{product_id}) and w.activation = 1 and capacity like concat('%',#{search},'%') diff --git a/src/main/webapp/WEB-INF/views/stock/create.jsp b/src/main/webapp/WEB-INF/views/stock/create.jsp index 84baacf..dda9e15 100644 --- a/src/main/webapp/WEB-INF/views/stock/create.jsp +++ b/src/main/webapp/WEB-INF/views/stock/create.jsp @@ -39,7 +39,7 @@ 창고 - +
@@ -102,6 +102,26 @@ }); } + function showSearchModals2(title, val){ + $("#searchModalLabel").text(title); + const data = { name : val}; + var product_id = $("#product_id").val(); + + $.ajax({ + type : 'post', // 타입 (get, post, put 등등) + url : '/stock/show_modal', // 요청할 서버url + dataType : 'html', // 데이터 타입 (html, xml, json, text 등등) + data : product_id,data, + success : function(result) { // 결과 성공 콜백함수 + $("#search_modal_body").html(result); + searchModalBootStrap.show(); + }, + error : function(request, status, error) { + alert(error) + } + }); + } + $(document).ready(function () { diff --git a/src/main/webapp/WEB-INF/views/stock/list.jsp b/src/main/webapp/WEB-INF/views/stock/list.jsp index 6b0c1dc..cd8c958 100644 --- a/src/main/webapp/WEB-INF/views/stock/list.jsp +++ b/src/main/webapp/WEB-INF/views/stock/list.jsp @@ -76,6 +76,7 @@ 제품명 카테고리 재고수 + 창고 @@ -85,6 +86,7 @@ ${dto.productName } ${dto.cls_nm_4 } ${dto.quantity} + ${dto.warehouseName} @@ -96,6 +98,7 @@
ms-excel +
@@ -192,6 +195,7 @@
ms-excel +
@@ -241,16 +245,23 @@ $(document).ready(function () { - - $("#downlodeExcelList,downlodeExcelList2").on("click",function(){ + $("#downlodeStockForm,downlodeStockForm2").on("click",function(){ var form = document.createElement("form"); - form.action = "/vendor/downlodeExcelList"; + form.action = "/stock/downloadStockForm"; form.method = "GET"; document.body.appendChild(form); form.submit(); }); - //POST방식으로 create폼화면 출력 + $("#downlodeExcelList,downlodeExcelList2").on("click",function(){ + var form = document.createElement("form"); + form.action = "/stock/downloadExcelList"; + form.method = "GET"; + document.body.appendChild(form); + form.submit(); + }); + + //POST방식으로 create폼화면 출력 //탭 1 생성 버튼 $("#createButton").on("click", function () { var form = document.createElement("form"); diff --git a/src/main/webapp/WEB-INF/views/stock/update.jsp b/src/main/webapp/WEB-INF/views/stock/update.jsp index a9982ff..321b97e 100644 --- a/src/main/webapp/WEB-INF/views/stock/update.jsp +++ b/src/main/webapp/WEB-INF/views/stock/update.jsp @@ -142,9 +142,9 @@ return false; } - if (quantity > remainingcapacity) { + if (quantityAdjustment > remainingcapacity) { alert("적재 할 재고량이 재고량 한도를 넘을 수 없습니다."); - $("#quantity").focus(); + $("#quantityAdjustment").focus(); return false; }