From cf6fd84181e9325a63c325d1d97207b8e8147c8b Mon Sep 17 00:00:00 2001 From: sungsu Date: Thu, 4 Jan 2024 18:24:46 +0900 Subject: [PATCH] add stockController --- .../com/no1/wms/stock/StockController.java | 46 ++++++++++++++++--- src/main/java/com/no1/wms/stock/StockDto.java | 4 +- .../java/com/no1/wms/stock/StockMapper.java | 11 +++++ .../java/com/no1/wms/stock/StockService.java | 36 +++++++++++++-- src/main/resources/mappers/StockMapper.xml | 41 ++++++++++++++--- 5 files changed, 119 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/no1/wms/stock/StockController.java b/src/main/java/com/no1/wms/stock/StockController.java index 6ba005d..22cdded 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 java.util.List; +import java.util.UUID; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -8,9 +9,12 @@ import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import com.no1.wms.stock.StockDto; + @Controller public class StockController { @@ -19,24 +23,52 @@ public class StockController { // 재고 리스트 출력 @GetMapping("stock/list") - public String list(@RequestParam(name = "p", defaultValue = "1")int p, Model m) { + public String list(@RequestParam(name = "searchn", defaultValue = "0") int searchn, + @RequestParam(name = "search", defaultValue = "") String search, + @RequestParam(name = "p", defaultValue = "1") int page, Model m) { + int count = service.count(searchn, search); - + int perPage = 10; // 한 페이지에 보일 글의 갯수 + int startRow = (page - 1) * perPage; //스톡서비스로 재고 리스트 출력 메서트 작성 - List dto = service.stockList(p); + List dto = service.stockList(searchn, search, perPage); m.addAttribute("list", dto); + + int pageNum = 4;//보여질 페이지 번호 수 + 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.addAttribute("begin", begin); + m.addAttribute("end", end); + m.addAttribute("pageNum", pageNum); + m.addAttribute("totalPages", totalPages); + return "stock/list"; } // 재고 상세페이지 @PostMapping("stock/read/{id}") - @ResponseBody - public String read(@PathVariable String id, Model m) { + public String read(@PathVariable UUID id, Model m) { //스톡서비스로 재고 상세페이지 출력 메서드 작성 - - return "stock/read/{id}"; + StockDto dto = service.stockOne(id); + m.addAttribute("dto", dto); + return "stock/read/"; } + + + // 수정 - 폼 +// @GetMapping("/stock/update/{id}") +// public String update(@PathVariable UUID id, Model m) { +// StockDto dto = service.updateStock(id); +// m.addAttribute("dto", dto); +// return "stock/update"; +// } + } diff --git a/src/main/java/com/no1/wms/stock/StockDto.java b/src/main/java/com/no1/wms/stock/StockDto.java index 12c9905..4a4fcd2 100644 --- a/src/main/java/com/no1/wms/stock/StockDto.java +++ b/src/main/java/com/no1/wms/stock/StockDto.java @@ -1,11 +1,13 @@ package com.no1.wms.stock; +import java.util.UUID; + import lombok.Data; @Data public class StockDto { - private int id; + private UUID id; private int warehouse_id; private int product_id; private int quantity; diff --git a/src/main/java/com/no1/wms/stock/StockMapper.java b/src/main/java/com/no1/wms/stock/StockMapper.java index 8440168..d30c6f9 100644 --- a/src/main/java/com/no1/wms/stock/StockMapper.java +++ b/src/main/java/com/no1/wms/stock/StockMapper.java @@ -2,12 +2,23 @@ package com.no1.wms.stock; import java.util.List; import java.util.Map; +import java.util.UUID; import org.apache.ibatis.annotations.Mapper; + @Mapper public interface StockMapper { + int count(Map m);//검색 글 갯수 + List stockList(Map m); + int updateStock(StockDto dto); + + int createStock(StockDto dto); + + StockDto stockOne(UUID id); + + } diff --git a/src/main/java/com/no1/wms/stock/StockService.java b/src/main/java/com/no1/wms/stock/StockService.java index 155b74d..5ed1032 100644 --- a/src/main/java/com/no1/wms/stock/StockService.java +++ b/src/main/java/com/no1/wms/stock/StockService.java @@ -4,6 +4,7 @@ import java.io.Console; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.UUID; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -13,18 +14,43 @@ public class StockService { @Autowired StockMapper mapper; - public List stockList(int p){ + public int count(int searchn, String search) { + System.out.println(searchn+search); + Map m = new HashMap(); + m.put("searchn",searchn); + m.put("search", search); + return mapper.count(m); + } + + + public List stockList(int searchn, String search, int start){ - int start = 0; - int end = 0; + System.out.println(searchn+search); - Map m = new HashMap(); + Map m = new HashMap(); + m.put("searchn",searchn); + m.put("search", search); m.put("start", start); - m.put("end", end); + m.put("count", 10); return mapper.stockList(m); + } + + public StockDto stockOne(UUID id) { + return mapper.stockOne(id); + } + + + public int createStock(StockDto dto) { + return mapper.createStock(dto); + } + + + public int updateStock(StockDto dto) { + return mapper.updateStock(dto); + } } diff --git a/src/main/resources/mappers/StockMapper.xml b/src/main/resources/mappers/StockMapper.xml index 685ef72..d1ec809 100644 --- a/src/main/resources/mappers/StockMapper.xml +++ b/src/main/resources/mappers/StockMapper.xml @@ -5,18 +5,47 @@ - + select count(*) from wms.stock left join wms.warehouse on wms.stock.warehouse_id = wms.warehouse.id left join wms.product on wms.stock.product_id = wms.product.id - name like ('%',#{search},'%') - content like concat('%',#{search},'%') + activation = 1 and warehouse.name like concat('%',#{search},'%') + activation = 1 and product.name like concat('%',#{search},'%') - order by id desc limit #{start}, #{count} + order by id desc limit #{start}, #{perPage} - + + + + + + + update stock + set quantity = #{dto.quantity} + where id = #{dto.id} + + + + + + + insert into stock (id, quantity, activation) + values (#{dto.id}, #{dto.quantity}, 1) + + \ No newline at end of file