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/in/InController.java b/src/main/java/com/no1/wms/in/InController.java index 80e3f58..21976aa 100644 --- a/src/main/java/com/no1/wms/in/InController.java +++ b/src/main/java/com/no1/wms/in/InController.java @@ -1,6 +1,7 @@ package com.no1.wms.in; import java.util.List; +import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -10,6 +11,12 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.servlet.ModelAndView; + +import com.no1.wms.price.PriceDto; +import com.no1.wms.product.ProductDto; +import com.no1.wms.product.ProductService; +import com.no1.wms.stock.StockService; @Controller @RequestMapping("/in") @@ -17,6 +24,10 @@ public class InController { @Autowired InService inService; + @Autowired + ProductService productService; + @Autowired + StockService stockservice; @GetMapping("/list") //@ResponseBody @@ -59,6 +70,112 @@ public class InController { return "in/create"; } + /* + * + @PostMapping("/create_process") + @ResponseBody + public boolean createProcess(PriceDto dto) { + int i = inService.createProcess(dto); + if (i == 1) { + return true; + } else { + return false; + } + } + + */ + + + + + + + + + + + + + //모달화면 + @PostMapping("/show_modal_product") + public ModelAndView productShowModal(@RequestParam(name = "searchn", defaultValue = "0") int searchn, + @RequestParam(name = "search", defaultValue = "") String search, + @RequestParam(name = "p", defaultValue = "1") int page, ModelAndView m, String name) { + int count = productService.count(searchn, search); + + int perPage = 10; // 한 페이지에 보일 글의 개수 + int startRow = (page - 1) * perPage; + + List dto = productService.productList(searchn, search, startRow ,perPage); + + m.addObject("list", dto); + m.addObject("start", startRow + 1); + + int pageNum = 5;//보여질 페이지 번호 수 + int totalPages = count / perPage + (count % perPage > 0 ? 1 : 0); // 전체 페이지 수 + + int begin = (page - 1) / pageNum * pageNum + 1; + int end = begin + pageNum - 1; + if (end > totalPages) { + end = totalPages; + } + + m.addObject("searchn",searchn); + m.addObject("search",search); + m.addObject("begin", begin); + m.addObject("end", end); + m.addObject("pageNum", pageNum); + m.addObject("totalPages", totalPages); + m.addObject("p" , page); + m.setViewName(name); + return m; + } + + @PostMapping("/show_modal_warehouse") + public ModelAndView warehouseShowModal(@RequestParam(name = "searchn", defaultValue = "0") int searchn, + @RequestParam(name = "search", defaultValue = "") String search, + @RequestParam(name = "p", defaultValue = "1") int page, + @RequestParam String name, ModelAndView mav){ + + int perPage = 9; // 한 페이지에 보일 글의 갯수 + int startRow = (page - 1) * perPage; + + List> list = null; + int count = 0; + + list = stockservice.warehousesSelect(searchn, search, startRow, perPage); + count = stockservice.warehouseCount(searchn, search); + + + mav.addObject("list", list); + + mav.addObject("start", startRow + 1); + + int pageNum = 5;//보여질 페이지 번호 수 + int totalPages = count / perPage + (count % perPage > 0 ? 1 : 0); // 전체 페이지 수 + + int begin = (page - 1) / pageNum * pageNum + 1; + int end = begin + pageNum - 1; + if (end > totalPages) { + end = totalPages; + } + mav.addObject("searchn", searchn); + mav.addObject("search", search); + mav.addObject("begin", begin); + mav.addObject("end", end); + mav.addObject("pageNum", pageNum); + mav.addObject("totalPages", totalPages); + mav.addObject("p" , page); + + mav.setViewName(name); + return mav; + } + + + + + + } 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, diff --git a/src/main/java/com/no1/wms/stock/StockController.java b/src/main/java/com/no1/wms/stock/StockController.java index 147b145..facdd24 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") @@ -166,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; // 한 페이지에 보일 글의 갯수 @@ -187,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); @@ -221,4 +227,26 @@ public class StockController { //테스트 return mav; } + + + // 리스트 다운로드 + @GetMapping("/stock/downloadExcelList") + public void downlodeExcelList(HttpServletResponse response) { + List> dto = service.selectAll(); + String excelFileName = "재고 파일"; + String sheetName = "재고"; + String[] columnName = {"제품명","카테고리","창고","재고수"}; + excelDownlodeUtils.downloadStockExcelFile(excelFileName, response, sheetName, columnName, dto); + + }; + + //서식 다운로드 + @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/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..2dbe496 100644 --- a/src/main/java/com/no1/wms/stock/StockService.java +++ b/src/main/java/com/no1/wms/stock/StockService.java @@ -121,27 +121,33 @@ 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); } + 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/InMapper.xml b/src/main/resources/mappers/InMapper.xml index 6453cc8..fbc9a7d 100644 --- a/src/main/resources/mappers/InMapper.xml +++ b/src/main/resources/mappers/InMapper.xml @@ -69,40 +69,7 @@ - - - + diff --git a/src/main/resources/mappers/StockMapper.xml b/src/main/resources/mappers/StockMapper.xml index 1daf620..fc5c071 100644 --- a/src/main/resources/mappers/StockMapper.xml +++ b/src/main/resources/mappers/StockMapper.xml @@ -5,6 +5,15 @@ + + @@ -122,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} @@ -137,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/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 @@
- + +
+ 회사명 + +
+ +
+ 분류 + +
+ +
+ 거래처 + +
+ +
가격
-

제품 상세페이지

+

제품 가격 상세페이지

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 7dc840b..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,7 +98,8 @@
ms-excel - + +