From 5c1a58d067512df6099f9cc95f577c9991128163 Mon Sep 17 00:00:00 2001 From: lishenao <3065849776@qq.com> Date: 星期一, 30 六月 2025 15:16:09 +0800 Subject: [PATCH] 入库管理,出库管理,库存管理后端接口 --- src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java | 117 ++++ src/main/java/com/ruoyi/inventory/excel/StockInExcelDto.java | 35 + src/main/resources/mapper/inventory/StockManagementMapper.xml | 149 ++--- src/main/java/com/ruoyi/inventory/dto/StockManagementDto.java | 36 + src/main/java/com/ruoyi/inventory/mapper/StockManagementMapper.java | 24 src/main/java/com/ruoyi/inventory/service/impl/StockOutServiceImpl.java | 79 ++ src/main/resources/mapper/inventory/StockOutMapper.xml | 168 ++---- src/main/java/com/ruoyi/inventory/mapper/StockOutMapper.java | 22 src/main/java/com/ruoyi/inventory/dto/StockinDto.java | 52 ++ src/main/java/com/ruoyi/inventory/pojo/StockOut.java | 29 src/main/java/com/ruoyi/inventory/excel/StockManagementExcelDto.java | 39 + src/main/java/com/ruoyi/inventory/excel/StockOutExcelDto.java | 33 + src/main/java/com/ruoyi/inventory/service/impl/StockManagementServiceImpl.java | 49 + src/main/java/com/ruoyi/inventory/mapper/StockInMapper.java | 23 src/main/java/com/ruoyi/inventory/service/StockManagementService.java | 18 src/main/java/com/ruoyi/inventory/controller/StockInController.java | 74 +- src/main/java/com/ruoyi/inventory/service/StockInService.java | 21 src/main/java/com/ruoyi/inventory/dto/StockoutDto.java | 38 + src/main/resources/mapper/inventory/StockInMapper.xml | 220 ++++---- src/main/java/com/ruoyi/inventory/pojo/StockManagement.java | 35 src/main/java/com/ruoyi/inventory/service/StockOutService.java | 16 src/main/java/com/ruoyi/inventory/controller/StockManagementController.java | 64 +- src/main/java/com/ruoyi/inventory/pojo/StockIn.java | 49 - src/main/java/com/ruoyi/inventory/controller/StockOutController.java | 61 +- 24 files changed, 903 insertions(+), 548 deletions(-) diff --git a/src/main/java/com/ruoyi/inventory/controller/StockInController.java b/src/main/java/com/ruoyi/inventory/controller/StockInController.java index 3f01298..b205053 100644 --- a/src/main/java/com/ruoyi/inventory/controller/StockInController.java +++ b/src/main/java/com/ruoyi/inventory/controller/StockInController.java @@ -1,64 +1,66 @@ package com.ruoyi.inventory.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.basic.pojo.Customer; +import com.ruoyi.basic.pojo.SupplierManage; import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.framework.aspectj.lang.annotation.Log; +import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.inventory.dto.StockinDto; +import com.ruoyi.inventory.excel.StockInExcelDto; import com.ruoyi.inventory.service.StockInService; import com.ruoyi.inventory.pojo.StockIn; +import com.ruoyi.purchase.dto.PurchaseLedgerDto; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; +import java.util.Date; import java.util.List; @RestController @RequestMapping("/stockin") -public class StockInController extends BaseController { +public class StockInController{ @Autowired private StockInService stockInService; - @PostMapping("/add")// 鏂板鍏ュ簱璁板綍 - public AjaxResult addStockIn(@RequestBody StockIn stockIn) { - int i = stockInService.addStockIn(stockIn); - if(i>0){ - return success(); - } - return error(); + @GetMapping("/listPage") + public AjaxResult listPage(Page page, StockinDto stockinDto) { + return AjaxResult.success(stockInService.selectStockInPage(page,stockinDto)); } - @GetMapping("/list")// 鍒楀嚭鎵�鏈夊叆搴撹褰� - public AjaxResult listStockIns() { - List<StockIn> stockIns = stockInService.listStockIns(); - return success(stockIns); + + @PostMapping("/add") + public AjaxResult add(@RequestBody StockIn stockIn) { + stockInService.saveStockin(stockIn); + return AjaxResult.success(); } + @GetMapping("/{id}")// 鏍规嵁ID鑾峰彇鍏ュ簱璁板綍 public AjaxResult getStockInById(@PathVariable Long id) { StockIn stockIn = stockInService.getStockInById(id); - return success(stockIn); + return AjaxResult.success(stockIn); } @PutMapping("/update")// 鏇存柊鍏ュ簱璁板綍 public AjaxResult updateStockIn(@RequestBody StockIn stockIn) { - int i = stockInService.updateStockIn(stockIn); - if(i>0){ - return success(); - } - return error(); - } - @DeleteMapping("/delete/{id}")// 鍒犻櫎鍏ュ簱璁板綍 - public AjaxResult deleteStockIn(@PathVariable Long id) { - int i = stockInService.deleteStockIn(id); - if(i>0){ - return success(); - } - return error(); - } -// @Log(title = "宀椾綅绠$悊", businessType = BusinessType.EXPORT) -// @PreAuthorize("@ss.hasPermi('system:post:export')") - @GetMapping("/export")// 瀵煎嚭鍏ュ簱鏁版嵁 - public AjaxResult exportStockInData() { - List<StockIn> stockIns = stockInService.listStockIns(); - ExcelUtil<StockIn> util = new ExcelUtil<StockIn>(StockIn.class); - util.exportExcel(stockIns, "搴撳瓨鍏ュ簱淇℃伅"); - return success(); + stockInService.updateStockIn(stockIn); + return AjaxResult.success(); } - + @DeleteMapping("/del") + public AjaxResult delStockin(@RequestBody List<Integer> ids) { + if(CollectionUtils.isEmpty(ids)){ + return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�"); + } + stockInService.delStockin(ids); + return AjaxResult.success(); + } +//瀵煎嚭 + @Log(title = "鍏ュ簱妗f", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, StockinDto stockinDto) { + stockInService.stockinExport(response, stockinDto); + } } diff --git a/src/main/java/com/ruoyi/inventory/controller/StockManagementController.java b/src/main/java/com/ruoyi/inventory/controller/StockManagementController.java index c8084e2..3a38b4f 100644 --- a/src/main/java/com/ruoyi/inventory/controller/StockManagementController.java +++ b/src/main/java/com/ruoyi/inventory/controller/StockManagementController.java @@ -1,11 +1,17 @@ package com.ruoyi.inventory.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.basic.dto.SupplierManageDto; import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.inventory.dto.StockManagementDto; +import com.ruoyi.inventory.dto.StockoutDto; import com.ruoyi.inventory.pojo.StockManagement; import com.ruoyi.inventory.service.StockManagementService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import java.util.List; import static com.ruoyi.framework.web.domain.AjaxResult.error; @@ -16,39 +22,29 @@ public class StockManagementController { @Autowired private StockManagementService stockManagementService; - @RequestMapping("/list")// 鍒楀嚭鎵�鏈夊嚭搴撹褰� - public AjaxResult listStockOuts() { - List<StockManagement> stockManagements = stockManagementService.getStockManagements(); - return success(stockManagements); - } - @GetMapping("/{id}")// 鏍规嵁ID鑾峰彇鍑哄簱璁板綍 - public AjaxResult getStockOutById(@PathVariable Long id) { - StockManagement stockManagement = stockManagementService.getStockManagementById(id); - return success(stockManagement); - } - @PostMapping("add")// 鏂板鍑哄簱璁板綍 - public AjaxResult addStockOut(@RequestBody StockManagement stockManagement) { - int i = stockManagementService.addStockManagement(stockManagement); - if(i>0){ - return success(); - } - return error(); - } - @PutMapping("/update")// 鏇存柊鍑哄簱璁板綍 - public AjaxResult updateStockOut(@RequestBody StockManagement stockManagement) { - int i = stockManagementService.updateStockManagement(stockManagement); - if(i>0){ - return success(); - } - return error(); - } - @DeleteMapping("/delete/{id}")// 鍒犻櫎鍑哄簱璁板綍 - public AjaxResult deleteStockOut(@PathVariable Long id) { - int i = stockManagementService.deleteStockManagement(id); - if(i>0){ - return success(); - } - return error(); - } +// 鏇存柊搴撳瓨 + @PutMapping("/update") + public AjaxResult updateStockManagement(@RequestBody StockManagement stockManagement) { + stockManagementService.updateStockManagement(stockManagement); + return AjaxResult.success(); + } + @DeleteMapping("/del") + public AjaxResult delStockManage(@RequestBody List<Integer> ids) { + if(CollectionUtils.isEmpty(ids)){ + return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�"); + } + stockManagementService.delStockManage(ids); + return AjaxResult.success(); + } +// 鍒嗛〉鏌ヨ + @GetMapping("/page") + public AjaxResult getStockManagementPage(Page page, StockManagementDto stockManagementdto) { + return success(stockManagementService.selectStockManagePage(page, stockManagementdto)); + } +// 瀵煎嚭 + @PostMapping("/export") + public void stockmanageExport(HttpServletResponse response, StockManagementDto stockManagementDto) { + stockManagementService.stockManageExport(response, stockManagementDto); + } } diff --git a/src/main/java/com/ruoyi/inventory/controller/StockOutController.java b/src/main/java/com/ruoyi/inventory/controller/StockOutController.java index d0457fd..d201d66 100644 --- a/src/main/java/com/ruoyi/inventory/controller/StockOutController.java +++ b/src/main/java/com/ruoyi/inventory/controller/StockOutController.java @@ -1,13 +1,20 @@ package com.ruoyi.inventory.controller; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.inventory.dto.StockManagementDto; +import com.ruoyi.inventory.dto.StockoutDto; import com.ruoyi.inventory.mapper.StockManagementMapper; +import com.ruoyi.inventory.pojo.StockIn; import com.ruoyi.inventory.pojo.StockOut; import com.ruoyi.inventory.service.StockOutService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -19,38 +26,38 @@ @Autowired private StockManagementMapper stockManagementMapper; - @RequestMapping("/add") - public AjaxResult addStockOut(StockOut stockOut) { - int i = stockOutService.addStockOut(stockOut); - if(i>0){ - return success(); - } - return error(); + @PostMapping("/add") + public AjaxResult add(@RequestBody StockOut stockout) { + stockOutService.saveStockout(stockout); + return AjaxResult.success(); } - @RequestMapping("/list") - public AjaxResult listStockOuts() { - List<StockOut> stockOuts = stockOutService.getStockOuts(); - return success(stockOuts); - } + @RequestMapping("/{id}") public AjaxResult getStockOutById(@PathVariable Long id) { - StockOut stockOut = stockOutService.getStockOutById(id); - return success(stockOut); + return success(stockOutService.getStockOutById(id)); } - @RequestMapping("/update") - public AjaxResult updateStockOut(@RequestBody StockOut stockOut) { - int i = stockOutService.updateStockOut(stockOut); - if(i>0){ - return success(); - } - return error(); + @PutMapping("/update")// 鏇存柊鍏ュ簱璁板綍 + public AjaxResult updateStockout(@RequestBody StockOut stockOut) { + stockOutService.updateStockOut(stockOut); + return AjaxResult.success(); } - @RequestMapping("/delete/{id}") - public AjaxResult deleteStockOut(Long id) { - int i = stockOutService.deleteStockOut(id); - if(i>0){ - return success(); + @RequestMapping("/page") + public AjaxResult getStockOutPage(Page page, StockoutDto stockOutdto) { + IPage<StockoutDto> stockOutPage = stockOutService.selectStockOutPage(page, stockOutdto); + return success(stockOutPage); + } +// 瀵煎嚭 + @PostMapping("/export") + public void stockoutExport(HttpServletResponse response, StockoutDto stockoutDto) { + stockOutService.stockoutExport(response, stockoutDto); + } + + @DeleteMapping("/del") + public AjaxResult delStockOut(@RequestBody List<Integer> ids) { + if(CollectionUtils.isEmpty(ids)){ + return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�"); } - return error(); + stockOutService.delStockOut(ids); + return AjaxResult.success(); } } diff --git a/src/main/java/com/ruoyi/inventory/dto/StockManagementDto.java b/src/main/java/com/ruoyi/inventory/dto/StockManagementDto.java new file mode 100644 index 0000000..b92308b --- /dev/null +++ b/src/main/java/com/ruoyi/inventory/dto/StockManagementDto.java @@ -0,0 +1,36 @@ +package com.ruoyi.inventory.dto; + +import com.ruoyi.inventory.pojo.StockManagement; +import lombok.Data; + +import java.math.BigDecimal; +@Data +public class StockManagementDto extends StockManagement { + + private String supplierName; + private String productCategory; + private String unit; + /** + * 鍚◣鍗曚环 + */ + private BigDecimal taxInclusiveUnitPrice; + + /** + * 鍚◣鎬讳环 + */ + private BigDecimal taxInclusiveTotalPrice; + + /** + * 绋庣巼 + */ + private BigDecimal taxRate; + + /** + * 涓嶅惈绋庢�讳环 + */ + private BigDecimal taxExclusiveTotalPrice; + /** + * 瑙勬牸鍨嬪彿 + */ + private String specificationModel; +} diff --git a/src/main/java/com/ruoyi/inventory/dto/StockinDto.java b/src/main/java/com/ruoyi/inventory/dto/StockinDto.java new file mode 100644 index 0000000..c325f5e --- /dev/null +++ b/src/main/java/com/ruoyi/inventory/dto/StockinDto.java @@ -0,0 +1,52 @@ +package com.ruoyi.inventory.dto; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.inventory.pojo.StockIn; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +@Data +public class StockinDto extends StockIn{ + + @ApiModelProperty(value = "浜у搧澶х被") + private String productCategory; + + /** + * 瑙勬牸鍨嬪彿 + */ + @ApiModelProperty(value = "瑙勬牸鍨嬪彿") + private String specificationModel; + @ApiModelProperty(value = "鍗曚綅") + private String unit; + /** + * 鍚◣鍗曚环 + */ + private BigDecimal taxInclusiveUnitPrice; + + /** + * 鍚◣鎬讳环 + */ + private BigDecimal taxInclusiveTotalPrice; + + /** + * 绋庣巼 + */ + private BigDecimal taxRate; + + /** + * 涓嶅惈绋庢�讳环 + */ + private BigDecimal taxExclusiveTotalPrice; + @ApiModelProperty(value = "渚涘簲鍟嗗悕绉�") + private String supplierName; + @TableField(exist = false) + private Date startTime; + @TableField(exist = false) + private Date endTime; +} diff --git a/src/main/java/com/ruoyi/inventory/dto/StockoutDto.java b/src/main/java/com/ruoyi/inventory/dto/StockoutDto.java new file mode 100644 index 0000000..c3605b8 --- /dev/null +++ b/src/main/java/com/ruoyi/inventory/dto/StockoutDto.java @@ -0,0 +1,38 @@ +package com.ruoyi.inventory.dto; + +import com.ruoyi.inventory.pojo.StockOut; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +@Data +public class StockoutDto extends StockOut { + + private String supplierName; + private String unit; + private String productCategory; + /** + * 鍚◣鍗曚环 + */ + private BigDecimal taxInclusiveUnitPrice; + + /** + * 鍚◣鎬讳环 + */ + private BigDecimal taxInclusiveTotalPrice; + + /** + * 绋庣巼 + */ + private BigDecimal taxRate; + + /** + * 涓嶅惈绋庢�讳环 + */ + private BigDecimal taxExclusiveTotalPrice; + + /** + * 瑙勬牸鍨嬪彿 + */ + private String specificationModel; +} diff --git a/src/main/java/com/ruoyi/inventory/excel/StockInExcelDto.java b/src/main/java/com/ruoyi/inventory/excel/StockInExcelDto.java new file mode 100644 index 0000000..7680b0a --- /dev/null +++ b/src/main/java/com/ruoyi/inventory/excel/StockInExcelDto.java @@ -0,0 +1,35 @@ +package com.ruoyi.inventory.excel; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.ruoyi.framework.aspectj.lang.annotation.Excel; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class StockInExcelDto { + @Excel(name = "鍏ュ簱鏃堕棿") + private String inboundTime; + @Excel(name = "鍏ュ簱鎵规") + private String inboundBatch; + @Excel(name = "渚涘簲鍟嗗悕绉�") + private String supplierName; + @Excel(name = "浜у搧澶х被") + private String productCategory; + @Excel(name = "瑙勬牸鍨嬪彿") + private String specificationModel; + @Excel(name = "鍗曚綅") + private String unit; + @Excel(name = "鍏ュ簱鏁伴噺") + private Integer inboundQuantity; + @Excel(name = "鍚◣鍗曚环") + private BigDecimal taxInclusiveUnitPrice; + @Excel(name = "鍚◣鎬讳环") + private BigDecimal taxInclusiveTotal; + @Excel(name = "涓嶅惈绋庢�讳环") + private BigDecimal taxExclusiveTotal; + @Excel(name = "绋庣巼") + private BigDecimal taxRate; + @Excel(name = "鍏ュ簱浜�") + private String inboundPerson; +} diff --git a/src/main/java/com/ruoyi/inventory/excel/StockManagementExcelDto.java b/src/main/java/com/ruoyi/inventory/excel/StockManagementExcelDto.java new file mode 100644 index 0000000..73f77ce --- /dev/null +++ b/src/main/java/com/ruoyi/inventory/excel/StockManagementExcelDto.java @@ -0,0 +1,39 @@ +package com.ruoyi.inventory.excel; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.framework.aspectj.lang.annotation.Excel; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +@Data +public class StockManagementExcelDto { + @Excel(name = "搴撳瓨鏃ユ湡") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date boundTime; + @Excel(name = "鍏ュ簱鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date inboundTime; + @Excel(name = "渚涘簲鍟嗗悕绉�") + private String supplierName; + @Excel(name = "浜у搧澶х被") + private String productCategory; + @Excel(name = "瑙勬牸鍨嬪彿") + private String specificationModel; + @Excel(name = "鍗曚綅") + private String unit; + @Excel(name = "搴撳瓨鏁伴噺") + private Integer stockQuantity; + @Excel(name = "鍚◣鍗曚环") + private BigDecimal taxInclusiveUnitPrice; + @Excel(name = "鍚◣鎬讳环") + private BigDecimal taxInclusiveTotal; + @Excel(name = "涓嶅惈绋庢�讳环") + private BigDecimal taxExclusiveTotal; + @Excel(name = "绋庣巼") + private BigDecimal taxRate; + @Excel(name = "鍏ュ簱浜�") + private String inboundPerson; +} diff --git a/src/main/java/com/ruoyi/inventory/excel/StockOutExcelDto.java b/src/main/java/com/ruoyi/inventory/excel/StockOutExcelDto.java new file mode 100644 index 0000000..f62d765 --- /dev/null +++ b/src/main/java/com/ruoyi/inventory/excel/StockOutExcelDto.java @@ -0,0 +1,33 @@ +package com.ruoyi.inventory.excel; + +import com.ruoyi.framework.aspectj.lang.annotation.Excel; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class StockOutExcelDto { + @Excel(name = "鍑哄簱鏃堕棿") + private String inboundTime; + @Excel(name = "鍑哄簱鎵规") + private String inboundBatch; + @Excel(name = "浜у搧澶х被") + private String productCategory; + @Excel(name = "瑙勬牸鍨嬪彿") + private String specificationModel; + @Excel(name = "鍗曚綅") + private String unit; + @Excel(name = "鍑哄簱鏁伴噺") + private Integer inboundQuantity; + @Excel(name = "鍚◣鍗曚环") + private BigDecimal taxInclusiveUnitPrice; + @Excel(name = "鍚◣鎬讳环") + private BigDecimal taxInclusiveTotal; + @Excel(name = "涓嶅惈绋庢�讳环") + private BigDecimal taxExclusiveTotal; + @Excel(name = "绋庣巼") + private BigDecimal taxRate; + @Excel(name = "鍑哄簱浜�") + private String outboundPerson; + +} diff --git a/src/main/java/com/ruoyi/inventory/mapper/StockInMapper.java b/src/main/java/com/ruoyi/inventory/mapper/StockInMapper.java index 0412c6e..16b3abd 100644 --- a/src/main/java/com/ruoyi/inventory/mapper/StockInMapper.java +++ b/src/main/java/com/ruoyi/inventory/mapper/StockInMapper.java @@ -1,7 +1,16 @@ package com.ruoyi.inventory.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.basic.excel.SupplierManageExcelDto; +import com.ruoyi.inventory.dto.StockinDto; +import com.ruoyi.inventory.excel.StockInExcelDto; import com.ruoyi.inventory.pojo.StockIn; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** @@ -10,16 +19,10 @@ * @createDate 2025-06-23 18:11:59 * @Entity inventory.domain.StockIn */ -public interface StockInMapper { +@Mapper +public interface StockInMapper extends BaseMapper<StockIn> { - int deleteByPrimaryKey(Long id); - - int insertSelective(StockIn record); - - StockIn selectByPrimaryKey(Long id); - - int updateByPrimaryKeySelective(StockIn record); - - List<StockIn> selectList(); + IPage<StockIn> selectStockInWithProductInfo(Page page, @Param("stockinDto") StockinDto stockinDto); + List<StockInExcelDto> stockinExportList(@Param("stockinDto") StockinDto stockinDto); } diff --git a/src/main/java/com/ruoyi/inventory/mapper/StockManagementMapper.java b/src/main/java/com/ruoyi/inventory/mapper/StockManagementMapper.java index 0d55981..96b76ad 100644 --- a/src/main/java/com/ruoyi/inventory/mapper/StockManagementMapper.java +++ b/src/main/java/com/ruoyi/inventory/mapper/StockManagementMapper.java @@ -1,8 +1,19 @@ package com.ruoyi.inventory.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.basic.dto.SupplierManageDto; +import com.ruoyi.basic.excel.SupplierManageExcelDto; +import com.ruoyi.inventory.dto.StockManagementDto; +import com.ruoyi.inventory.dto.StockinDto; +import com.ruoyi.inventory.excel.StockManagementExcelDto; import com.ruoyi.inventory.pojo.StockManagement; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** @@ -11,15 +22,10 @@ * @createDate 2025-06-23 18:11:59 * @Entity inventory.domain.StockManagement */ -public interface StockManagementMapper { - List<StockManagement> selectAll(); - int deleteByPrimaryKey(Long id); +@Mapper +public interface StockManagementMapper extends BaseMapper<StockManagement> { - int insertSelective(StockManagement record); - - StockManagement selectByPrimaryKey(Long id); - - int updateByPrimaryKeySelective(StockManagement record); - + IPage<StockManagement> selectStockManagementBypage(Page page, @Param("stockManagementDto") StockManagementDto stockManagementDto); + List<StockManagementExcelDto> stockManageExportList(@Param("stockManagementDto") StockManagementDto stockManagementDto); } diff --git a/src/main/java/com/ruoyi/inventory/mapper/StockOutMapper.java b/src/main/java/com/ruoyi/inventory/mapper/StockOutMapper.java index 91449de..93d55ae 100644 --- a/src/main/java/com/ruoyi/inventory/mapper/StockOutMapper.java +++ b/src/main/java/com/ruoyi/inventory/mapper/StockOutMapper.java @@ -1,7 +1,16 @@ package com.ruoyi.inventory.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.basic.dto.SupplierManageDto; +import com.ruoyi.basic.excel.SupplierManageExcelDto; +import com.ruoyi.inventory.dto.StockoutDto; +import com.ruoyi.inventory.excel.StockOutExcelDto; import com.ruoyi.inventory.pojo.StockOut; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -11,16 +20,11 @@ * @createDate 2025-06-23 18:11:59 * @Entity inventory.domain.StockOut */ -public interface StockOutMapper { +@Mapper +public interface StockOutMapper extends BaseMapper<StockOut> { - int deleteByPrimaryKey(Long id); - - List<StockOut> selectAll(); - int insertSelective(StockOut record); - - StockOut selectByPrimaryKey(Long id); - - int updateByPrimaryKeySelective(StockOut record); + IPage<StockoutDto> selectStockOutBypage(Page page,@Param("stockOutdto") StockoutDto stockOutdto); + List<StockOutExcelDto> stockoutExportList(@Param("stockOutdto") StockoutDto stockOutdto); } diff --git a/src/main/java/com/ruoyi/inventory/pojo/StockIn.java b/src/main/java/com/ruoyi/inventory/pojo/StockIn.java index d28cd2e..886682d 100644 --- a/src/main/java/com/ruoyi/inventory/pojo/StockIn.java +++ b/src/main/java/com/ruoyi/inventory/pojo/StockIn.java @@ -1,31 +1,36 @@ package com.ruoyi.inventory.pojo; - import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; -import java.util.List; - +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; + +import javax.validation.constraints.NotNull; /** * * @TableName stock_in */ @Data -public class StockIn implements Serializable { +@TableName("stock_in") +public class StockIn{ /** * 鍏ュ簱璁板綍ID */ + @TableId(type = IdType.AUTO) private Integer id; /** * 浜у搧id */ - private Integer productId; + private Long productId; /** * 鍏ュ簱鏃堕棿 */ + @JsonFormat(pattern = "yyyy-MM-dd") private Date inboundTime; /** @@ -34,40 +39,30 @@ private String inboundBatch; /** - * 渚涘簲鍟嗗悕绉� + * 渚涘簲鍟唅d */ - private String supplierName; - + private Long supplierId; /** * 鍏ュ簱鏁伴噺 */ private Integer inboundQuantity; - /** - * 鍚◣鍗曚环 - */ - private BigDecimal taxInclusivePrice; - /** - * 鍚◣鎬讳环 - */ - private BigDecimal taxInclusiveTotal; - - /** - * 绋庣巼 - */ - private BigDecimal taxRate; - - /** - * 涓嶅惈绋庢�讳环 - */ - private BigDecimal taxExclusiveTotal; /** * 鍏ュ簱浜� */ private String inboundPerson; +// tenant_id + /** + * 绉熸埛ID + */ + @ApiModelProperty(value = "绉熸埛ID") + @TableField(fill = FieldFill.INSERT) + private Long tenantId; + private static final long serialVersionUID = 1L; - private List<StockProduct> stockProducts; +// private List<StockProduct> stockProducts; + } \ No newline at end of file diff --git a/src/main/java/com/ruoyi/inventory/pojo/StockManagement.java b/src/main/java/com/ruoyi/inventory/pojo/StockManagement.java index 640fe57..0a25c1c 100644 --- a/src/main/java/com/ruoyi/inventory/pojo/StockManagement.java +++ b/src/main/java/com/ruoyi/inventory/pojo/StockManagement.java @@ -2,6 +2,12 @@ import java.io.Serializable; import java.math.BigDecimal; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; /** @@ -9,7 +15,8 @@ * @TableName stock_management */ @Data -public class StockManagement implements Serializable { +@TableName("stock_management") +public class StockManagement{ /** * 搴撳瓨璁板綍ID */ @@ -18,37 +25,27 @@ /** * 浜у搧id */ - private Integer productId; + private Long productId; /** * 褰撳墠搴撳瓨閲� */ private Integer stockQuantity; - /** - * 鍚◣鍗曚环 - */ - private BigDecimal taxInclusivePrice; - /** - * 鍚◣鎬讳环 - */ - private BigDecimal taxInclusiveTotal; + private Long supplierId; - /** - * 绋庣巼 - */ - private BigDecimal taxRate; - - /** - * 涓嶅惈绋庢�讳环 - */ - private BigDecimal taxExclusiveTotal; + @JsonFormat(pattern = "yyyy-MM-dd") + private Date boundTime; + @JsonFormat(pattern = "yyyy-MM-dd") + private Date inboundTime; /** * 鍏ュ簱浜� */ private String inboundPerson; + @TableField(fill = FieldFill.INSERT) + private Long tenantId; private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/src/main/java/com/ruoyi/inventory/pojo/StockOut.java b/src/main/java/com/ruoyi/inventory/pojo/StockOut.java index acb735b..d3a90a1 100644 --- a/src/main/java/com/ruoyi/inventory/pojo/StockOut.java +++ b/src/main/java/com/ruoyi/inventory/pojo/StockOut.java @@ -3,6 +3,10 @@ import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; /** @@ -10,6 +14,7 @@ * @TableName stock_out */ @Data +@TableName("stock_out") public class StockOut implements Serializable { /** * 鍑哄簱璁板綍ID @@ -19,7 +24,7 @@ /** * 浜у搧id */ - private Integer productId; + private Long productId; /** * 鍑哄簱鏃堕棿 @@ -34,37 +39,21 @@ /** * 渚涘簲鍟嗗悕绉� */ - private String supplierName; + private Long supplierId; /** * 鍏ュ簱鏁伴噺 */ private Integer inboundQuantity; - /** - * 鍚◣鍗曚环 - */ - private BigDecimal taxInclusivePrice; - /** - * 鍚◣鎬讳环 - */ - private BigDecimal taxInclusiveTotal; - - /** - * 绋庣巼 - */ - private BigDecimal taxRate; - - /** - * 涓嶅惈绋庢�讳环 - */ - private BigDecimal taxExclusiveTotal; /** * 鍑哄簱浜� */ private String inboundPerson; + @TableField(fill = FieldFill.INSERT) + private Long tenantId; private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/src/main/java/com/ruoyi/inventory/service/StockInService.java b/src/main/java/com/ruoyi/inventory/service/StockInService.java index 7b7f7a9..3229280 100644 --- a/src/main/java/com/ruoyi/inventory/service/StockInService.java +++ b/src/main/java/com/ruoyi/inventory/service/StockInService.java @@ -1,21 +1,28 @@ package com.ruoyi.inventory.service; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.inventory.dto.StockinDto; import com.ruoyi.inventory.pojo.StockIn; +import javax.servlet.http.HttpServletResponse; +import java.util.Date; import java.util.List; -public interface StockInService { - int addStockIn(StockIn stockIn); - - List<StockIn> listStockIns(); +public interface StockInService extends IService<StockIn> { + void saveStockin(StockIn stockIn); StockIn getStockInById(Long id); int updateStockIn(StockIn stockIn); - int deleteStockIn(Long id); - - + int delStockin(List<Integer> ids); +// PageInfo<StockinProcuct> getStockInPage(Integer pageNum, Integer pageSize, StockInQueryDTO query); + IPage<StockIn> selectStockInPage(Page page, StockinDto stockinDto); + void stockinExport(HttpServletResponse response, StockinDto stockinDto); } diff --git a/src/main/java/com/ruoyi/inventory/service/StockManagementService.java b/src/main/java/com/ruoyi/inventory/service/StockManagementService.java index 6f8fe06..1f8bbdc 100644 --- a/src/main/java/com/ruoyi/inventory/service/StockManagementService.java +++ b/src/main/java/com/ruoyi/inventory/service/StockManagementService.java @@ -1,14 +1,22 @@ package com.ruoyi.inventory.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.basic.dto.SupplierManageDto; +import com.ruoyi.inventory.dto.StockManagementDto; +import com.ruoyi.inventory.dto.StockinDto; import com.ruoyi.inventory.pojo.StockManagement; +import javax.servlet.http.HttpServletResponse; import java.util.List; -public interface StockManagementService { - List<StockManagement> getStockManagements(); - StockManagement getStockManagementById(Long id); - int addStockManagement(StockManagement stockManagement); +public interface StockManagementService extends IService<StockManagement> { + int updateStockManagement(StockManagement stockManagement); - int deleteStockManagement(Long id); + int delStockManage(List<Integer> ids); + IPage<StockManagement> selectStockManagePage(Page page, StockManagementDto stockManagementdto); + void stockManageExport(HttpServletResponse response, StockManagementDto stockManagementdto); + } diff --git a/src/main/java/com/ruoyi/inventory/service/StockOutService.java b/src/main/java/com/ruoyi/inventory/service/StockOutService.java index 9be4b97..cd8700c 100644 --- a/src/main/java/com/ruoyi/inventory/service/StockOutService.java +++ b/src/main/java/com/ruoyi/inventory/service/StockOutService.java @@ -1,13 +1,23 @@ package com.ruoyi.inventory.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.basic.dto.SupplierManageDto; +import com.ruoyi.inventory.dto.StockinDto; +import com.ruoyi.inventory.dto.StockoutDto; +import com.ruoyi.inventory.pojo.StockIn; import com.ruoyi.inventory.pojo.StockOut; +import javax.servlet.http.HttpServletResponse; import java.util.List; public interface StockOutService { - List<StockOut> getStockOuts(); + int delStockOut(List<Integer> ids); + StockOut getStockOutById(Long id); - int addStockOut(StockOut stockOut); + void saveStockout(StockOut stockout); int updateStockOut(StockOut stockOut); - int deleteStockOut(Long id); + IPage<StockoutDto> selectStockOutPage(Page page, StockoutDto stockoutDto); + void stockoutExport(HttpServletResponse response, StockoutDto stockoutDto); + } diff --git a/src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java b/src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java index c215d2a..8c035f8 100644 --- a/src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java +++ b/src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java @@ -1,45 +1,128 @@ package com.ruoyi.inventory.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.inventory.dto.StockinDto; +import com.ruoyi.inventory.excel.StockInExcelDto; +import com.ruoyi.inventory.mapper.StockManagementMapper; import com.ruoyi.inventory.pojo.StockIn; import com.ruoyi.inventory.mapper.StockInMapper; +import com.ruoyi.inventory.pojo.StockManagement; import com.ruoyi.inventory.service.StockInService; +import com.ruoyi.purchase.dto.PurchaseLedgerDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.Date; import java.util.List; + @Service -public class StockInServiceImpl implements StockInService { +public class StockInServiceImpl extends ServiceImpl<StockInMapper,StockIn> implements StockInService { @Autowired private StockInMapper stockInMapper; + @Autowired + private StockManagementMapper stockManagementMapper; - @Override//娣诲姞搴撳瓨鍏ュ簱淇℃伅 - public int addStockIn(StockIn stockIn) { - int i = stockInMapper.insertSelective(stockIn); - return i; + +// 鏂板鏂规硶 + /** + * 鏂板搴撳瓨鍏ュ簱淇℃伅 + * @param stockIn + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void saveStockin(StockIn stockIn) { + stockInMapper.insert(stockIn); + StockManagement stockManagement = new StockManagement(); +// 杩涜鍒ゆ柇鏄惁瀛樺湪鐩稿悓鐨勪骇鍝乮d鍜屼緵搴斿晢id + LambdaQueryWrapper<StockManagement> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(StockManagement::getProductId, stockIn.getProductId()); + queryWrapper.eq(StockManagement::getSupplierId, stockIn.getSupplierId()); + StockManagement stockManagement1 = stockManagementMapper.selectOne(queryWrapper); + if (stockManagement1!= null) { + stockManagement1.setStockQuantity(stockManagement1.getStockQuantity() + stockIn.getInboundQuantity()); + stockManagement1.setInboundTime(stockIn.getInboundTime()); + stockManagement1.setBoundTime(new Date()); + stockManagement1.setInboundPerson(stockIn.getInboundPerson()); + System.out.println(stockManagement1+"22"); + stockManagementMapper.updateById(stockManagement1); } - - @Override//鍒楀嚭鎵�鏈夊簱瀛樺叆搴撲俊鎭� - public List<StockIn> listStockIns() { - List<StockIn> stockIns = stockInMapper.selectList(); - return stockIns; + else { + stockManagement.setProductId(stockIn.getProductId()); + stockManagement.setStockQuantity(stockIn.getInboundQuantity()); + stockManagement.setBoundTime(stockIn.getInboundTime()); + stockManagement.setStockQuantity(stockIn.getInboundQuantity()); + stockManagement.setInboundPerson(stockIn.getInboundPerson()); + stockManagement.setSupplierId(stockIn.getSupplierId()); + stockManagement.setTenantId(stockIn.getTenantId()); + stockManagement.setBoundTime(new Date()); + stockManagementMapper.insert(stockManagement); + } } @Override//鏍规嵁id鑾峰彇搴撳瓨鍏ュ簱淇℃伅 public StockIn getStockInById(Long id) { - StockIn stockIn = stockInMapper.selectByPrimaryKey(id); + StockIn stockIn = stockInMapper.selectById(id); return stockIn; } @Override//鏇存柊搴撳瓨鍏ュ簱淇℃伅 + @Transactional(rollbackFor = Exception.class) public int updateStockIn(StockIn stockIn) { - int i = stockInMapper.updateByPrimaryKeySelective(stockIn); - return i; + StockIn stockIn1 = stockInMapper.selectById(stockIn.getId()); +// 杩涜鍒ゆ柇鏄惁瀛樺湪鐩稿悓鐨勪骇鍝乮d鍜屼緵搴斿晢id + LambdaQueryWrapper<StockManagement> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(StockManagement::getProductId, stockIn.getProductId()); + queryWrapper.eq(StockManagement::getSupplierId, stockIn.getSupplierId()); + StockManagement stockManagement1 = stockManagementMapper.selectOne(queryWrapper); + if (stockManagement1!= null) { + stockManagement1.setStockQuantity(stockManagement1.getStockQuantity() - stockIn1.getInboundQuantity() + stockIn.getInboundQuantity()); + stockManagement1.setInboundTime(stockIn.getInboundTime()); + stockManagement1.setBoundTime(new Date()); + stockManagement1.setInboundPerson(stockIn.getInboundPerson()); + System.out.println(stockManagement1 + "22"); + stockManagementMapper.updateById(stockManagement1); + } else { + StockManagement stockManagement = new StockManagement(); + stockManagement.setProductId(stockIn.getProductId()); + stockManagement.setStockQuantity(stockIn.getInboundQuantity()); + stockManagement.setBoundTime(stockIn.getInboundTime()); + stockManagement.setStockQuantity(stockIn.getInboundQuantity()); + stockManagement.setInboundPerson(stockIn.getInboundPerson()); + stockManagement.setSupplierId(stockIn.getSupplierId()); + stockManagement.setTenantId(stockIn.getTenantId()); + stockManagement.setBoundTime(new Date()); + System.out.println(stockManagement + "33"); + stockManagementMapper.insert(stockManagement); + } + return stockInMapper.updateById(stockIn); } - @Override//鍒犻櫎搴撳瓨鍏ュ簱淇℃伅 - public int deleteStockIn(Long id) { - int i = stockInMapper.deleteByPrimaryKey(id); - return i; + @Override + public int delStockin(List<Integer> ids) { + LambdaQueryWrapper<StockIn> delWrapper = new LambdaQueryWrapper<>(); + delWrapper.in(StockIn::getId, ids); + return stockInMapper.delete(delWrapper); } + @Override + public IPage<StockIn> selectStockInPage(Page page, StockinDto stockinDto) { + System.out.println(stockinDto); + IPage<StockIn> stockinDtoIPage = stockInMapper.selectStockInWithProductInfo(page, stockinDto); + System.out.println(stockinDtoIPage.getRecords()); + return stockInMapper.selectStockInWithProductInfo(page, stockinDto); + } + + @Override + public void stockinExport(HttpServletResponse response, StockinDto stockinDto) { + List<StockInExcelDto> stockInExcelDtoList = stockInMapper.stockinExportList(stockinDto); + ExcelUtil<StockInExcelDto> util = new ExcelUtil<StockInExcelDto>(StockInExcelDto.class); + util.exportExcel(response, stockInExcelDtoList, "渚涘簲鍟嗗鍑�"); + } } diff --git a/src/main/java/com/ruoyi/inventory/service/impl/StockManagementServiceImpl.java b/src/main/java/com/ruoyi/inventory/service/impl/StockManagementServiceImpl.java index 1c5d1e2..18a48dd 100644 --- a/src/main/java/com/ruoyi/inventory/service/impl/StockManagementServiceImpl.java +++ b/src/main/java/com/ruoyi/inventory/service/impl/StockManagementServiceImpl.java @@ -1,45 +1,46 @@ package com.ruoyi.inventory.service.impl; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.basic.excel.SupplierManageExcelDto; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.inventory.dto.StockManagementDto; +import com.ruoyi.inventory.excel.StockManagementExcelDto; import com.ruoyi.inventory.mapper.StockManagementMapper; import com.ruoyi.inventory.pojo.StockManagement; import com.ruoyi.inventory.service.StockManagementService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; import java.util.List; @Service -public class StockManagementServiceImpl implements StockManagementService { +public class StockManagementServiceImpl extends ServiceImpl<StockManagementMapper,StockManagement> implements StockManagementService { @Autowired private StockManagementMapper stockManagementMapper; @Override - public List<StockManagement> getStockManagements() { - List<StockManagement> stockManagements = stockManagementMapper.selectAll(); - return stockManagements; - } - - @Override - public StockManagement getStockManagementById(Long id) { - StockManagement stockManagement = stockManagementMapper.selectByPrimaryKey(id); - return stockManagement; - } - - @Override - public int addStockManagement(StockManagement stockManagement) { - int i = stockManagementMapper.insertSelective(stockManagement); - return i; - } - - @Override public int updateStockManagement(StockManagement stockManagement) { - int i = stockManagementMapper.updateByPrimaryKeySelective(stockManagement); - return i; + return stockManagementMapper.updateById(stockManagement); } @Override - public int deleteStockManagement(Long id) { - int i = stockManagementMapper.deleteByPrimaryKey(id); - return i; + public int delStockManage(List<Integer> ids) { + return stockManagementMapper.deleteBatchIds(ids); + } + + + @Override + public IPage<StockManagement> selectStockManagePage(Page page, StockManagementDto stockManagementdto) { + return stockManagementMapper.selectStockManagementBypage(page, stockManagementdto); + } + + @Override + public void stockManageExport(HttpServletResponse response, StockManagementDto stockManagementdto) { + List<StockManagementExcelDto> stockManageList = stockManagementMapper.stockManageExportList(stockManagementdto); + ExcelUtil<StockManagementExcelDto> util = new ExcelUtil<StockManagementExcelDto>(StockManagementExcelDto.class); + util.exportExcel(response, stockManageList, "搴撳瓨瀵煎嚭"); } } diff --git a/src/main/java/com/ruoyi/inventory/service/impl/StockOutServiceImpl.java b/src/main/java/com/ruoyi/inventory/service/impl/StockOutServiceImpl.java index ff084b9..e7dfd58 100644 --- a/src/main/java/com/ruoyi/inventory/service/impl/StockOutServiceImpl.java +++ b/src/main/java/com/ruoyi/inventory/service/impl/StockOutServiceImpl.java @@ -1,46 +1,101 @@ package com.ruoyi.inventory.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.basic.excel.SupplierManageExcelDto; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.inventory.dto.StockoutDto; +import com.ruoyi.inventory.excel.StockOutExcelDto; +import com.ruoyi.inventory.mapper.StockManagementMapper; import com.ruoyi.inventory.mapper.StockOutMapper; +import com.ruoyi.inventory.pojo.StockManagement; import com.ruoyi.inventory.pojo.StockOut; import com.ruoyi.inventory.service.StockOutService; import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.servlet.http.HttpServletResponse; +import java.util.Date; import java.util.List; @Service public class StockOutServiceImpl implements StockOutService { @Autowired private StockOutMapper stockOutMapper; + @Autowired + private StockManagementMapper stockManagementMapper; + + @Override - public List<StockOut> getStockOuts() { - List<StockOut> stockOuts = stockOutMapper.selectAll(); - return stockOuts; + public int delStockOut(List<Integer> ids) { + return stockOutMapper.deleteBatchIds(ids); } @Override public StockOut getStockOutById(Long id) { - StockOut stockOut = stockOutMapper.selectByPrimaryKey(id); + StockOut stockOut = stockOutMapper.selectById(id); return stockOut; } @Override - public int addStockOut(StockOut stockOut) { - int i = stockOutMapper.insertSelective(stockOut); - return i; + @Transactional(rollbackFor = Exception.class) + public void saveStockout(StockOut stockOut) { +// 杩涜鍒ゆ柇鏄惁瀛樺湪鐩稿悓鐨勪骇鍝乮d鍜屼緵搴斿晢id + LambdaQueryWrapper<StockManagement> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(StockManagement::getProductId, stockOut.getProductId()); + queryWrapper.eq(StockManagement::getSupplierId, stockOut.getSupplierId()); + StockManagement stockManagement1 = stockManagementMapper.selectOne(queryWrapper); + if (stockManagement1!= null) { +// 鍒ゆ柇搴撳瓨鏁伴噺鏄惁澶т簬鍑哄簱鏁伴噺 + if (stockManagement1.getStockQuantity() < stockOut.getInboundQuantity()) { + throw new RuntimeException("搴撳瓨鏁伴噺涓嶈冻"); + } + stockOutMapper.insert(stockOut); + stockManagement1.setStockQuantity(stockManagement1.getStockQuantity() - stockOut.getInboundQuantity()); + stockManagement1.setInboundTime(new Date()); + stockManagementMapper.updateById(stockManagement1); + } + else { + throw new RuntimeException("搴撳瓨涓嶅瓨鍦�"); + } } @Override public int updateStockOut(StockOut stockOut) { - int i = stockOutMapper.updateByPrimaryKeySelective(stockOut); - return i; +// 闇�瑕佽繘琛屽垽鏂湪搴撳瓨涓槸鍚﹀瓨鍦ㄨ浜у搧锛屽鏋滃瓨鍦紝灏辫繘琛屼慨鏀癸紝鍚﹀垯灏辨姏鍑哄紓甯� + StockOut stockOut1 = stockOutMapper.selectById(stockOut.getId()); + LambdaQueryWrapper<StockManagement> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(StockManagement::getProductId, stockOut.getProductId()); + StockManagement stockManagement1 = stockManagementMapper.selectOne(queryWrapper); + if (stockManagement1!= null) { +// 鍒ゆ柇搴撳瓨鏁伴噺鏄惁澶т簬鍑哄簱鏁伴噺 + if (stockManagement1.getStockQuantity()+stockOut1.getInboundQuantity() < stockOut.getInboundQuantity()) { + throw new RuntimeException("搴撳瓨鏁伴噺涓嶈冻"); + } + stockManagement1.setStockQuantity(stockManagement1.getStockQuantity() + stockOut1.getInboundQuantity() - stockOut.getInboundQuantity()); + stockManagement1.setInboundTime(stockOut.getInboundTime()); + stockManagement1.setBoundTime(new Date()); + System.out.println(stockManagement1 + "22"); + stockManagementMapper.updateById(stockManagement1); + } else { + throw new RuntimeException("搴撳瓨涓嶅瓨鍦�"); + } + return stockOutMapper.updateById(stockOut); } @Override - public int deleteStockOut(Long id) { - int i = stockOutMapper.deleteByPrimaryKey(id); - return i; + public IPage<StockoutDto> selectStockOutPage(Page page, StockoutDto stockoutDto) { + return stockOutMapper.selectStockOutBypage(page, stockoutDto); + } + + @Override + public void stockoutExport(HttpServletResponse response, StockoutDto stockoutDto) { + List<StockOutExcelDto> stockoutList = stockOutMapper.stockoutExportList(stockoutDto); + ExcelUtil<StockOutExcelDto> util = new ExcelUtil<StockOutExcelDto>(StockOutExcelDto.class); + util.exportExcel(response, stockoutList, "渚涘簲鍟嗗鍑�"); } } diff --git a/src/main/resources/mapper/inventory/StockInMapper.xml b/src/main/resources/mapper/inventory/StockInMapper.xml index 223d083..fca267e 100644 --- a/src/main/resources/mapper/inventory/StockInMapper.xml +++ b/src/main/resources/mapper/inventory/StockInMapper.xml @@ -4,119 +4,123 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.inventory.mapper.StockInMapper"> - <resultMap id="BaseResultMap" type="com.ruoyi.inventory.pojo.StockIn"> - <id property="id" column="id" jdbcType="INTEGER"/> - <result property="productId" column="product_id" jdbcType="INTEGER"/> - <result property="inboundTime" column="inbound_time" jdbcType="TIMESTAMP"/> - <result property="inboundBatch" column="inbound_batch" jdbcType="VARCHAR"/> - <result property="supplierName" column="supplier_name" jdbcType="VARCHAR"/> - <result property="inboundQuantity" column="inbound_quantity" jdbcType="INTEGER"/> - <result property="taxInclusivePrice" column="tax_inclusive_price" jdbcType="DECIMAL"/> - <result property="taxInclusiveTotal" column="tax_inclusive_total" jdbcType="DECIMAL"/> - <result property="taxRate" column="tax_rate" jdbcType="DECIMAL"/> - <result property="taxExclusiveTotal" column="tax_exclusive_total" jdbcType="DECIMAL"/> - <result property="inboundPerson" column="inbound_person" jdbcType="VARCHAR"/> - <collection property="stockProducts" ofType="com.ruoyi.inventory.pojo.StockProduct" - select="com.ruoyi.inventory.mapper.StockProductMapper.selectByPrimaryKey" column="productId"> - <id property="id" column="productId" jdbcType="INTEGER"/> - </collection> - </resultMap> - <sql id="Base_Column_List"> - id,product_id,inbound_time, - inbound_batch,supplier_name,inbound_quantity, - tax_inclusive_price,tax_inclusive_total,tax_rate, - tax_exclusive_total,inbound_person - </sql> +<!-- <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultType="com.ruoyi.inventory.dto.StockinDto">--> +<!-- SELECT--> +<!-- T1.id,--> +<!-- T1.product_id,--> +<!-- T1.inbound_time,--> +<!-- T1.inbound_batch,--> +<!-- T1.supplier_id,--> +<!-- T1.inbound_quantity,--> +<!-- T1.tax_inclusive_price,--> +<!-- T1.tax_inclusive_total,--> +<!-- T1.tax_rate,--> +<!-- T1.tax_exclusive_total,--> +<!-- T1.inbound_person,--> +<!-- T1.tenant_id,--> +<!-- T2.product_category,--> +<!-- T2.specification_model,--> +<!-- T3.supplier_name--> +<!-- FROM--> +<!-- stock_in T1--> +<!-- INNER JOIN--> +<!-- product_record T2--> +<!-- ON--> +<!-- T1.product_id = T2.product_id--> +<!-- INNER JOIN--> +<!-- supplier_manage T3--> +<!-- ON--> +<!-- T1.supplier_id = T3.id--> +<!-- where T1.id = #{id,jdbcType=INTEGER}--> +<!-- </select>--> - <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> - select - <include refid="Base_Column_List" /> - from stock_in - where id = #{id,jdbcType=INTEGER} - </select> - <select id="selectList" resultType="com.ruoyi.inventory.pojo.StockIn"> - select - <include refid="Base_Column_List" /> - from stock_in - </select> - <select id="selectListByPage" resultType="com.ruoyi.inventory.pojo.StockIn"> - select - <include refid="Base_Column_List" /> - from stock_in - limit #{pageNum},#{pageSize} + + <select id="selectStockInWithProductInfo" resultType="com.ruoyi.inventory.dto.StockinDto"> + SELECT + T1.id, + T1.product_id, + T1.inbound_time, + T1.inbound_batch, + T1.supplier_id, + T1.inbound_quantity, + T2.tax_inclusive_unit_price, + T2.tax_inclusive_total_price, + T2.tax_rate, + T2.tax_exclusive_total_price, + T1.inbound_person, + T1.tenant_id, + T2.product_category, + T2.specification_model, + T2.unit, + T3.supplier_name + FROM + stock_in T1 + INNER JOIN + product_record T2 + ON + T1.product_id = T2.product_id + INNER JOIN + supplier_manage T3 + ON + T1.supplier_id = T3.id + <where> + <if test="stockinDto.supplierName != null and stockinDto.supplierName != ''"> + AND T3.supplier_name LIKE CONCAT('%', #{stockinDto.supplierName}, '%') + </if> + <if test="stockinDto.startTime != null and stockinDto.startTime != ''"> + AND T1.inbound_time >= #{stockinDto.startTime} + </if> + <if test="stockinDto.endTime != null and stockinDto.endTime != ''"> + AND T1.inbound_time <= #{stockinDto.endTime} + </if> + </where> + ORDER BY T1.inbound_time DESC </select> - <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> - delete from stock_in - where id = #{id,jdbcType=INTEGER} - </delete> + <select id="stockinExportList" resultType="com.ruoyi.inventory.excel.StockInExcelDto"> + SELECT + T1.id, + T1.product_id, + T1.inbound_time, + T1.inbound_batch, + T1.supplier_id, + T1.inbound_quantity, + T2.tax_inclusive_unit_price, + T2.tax_inclusive_total_price, + T2.tax_rate, + T2.tax_exclusive_total_price, + T1.inbound_person, + T1.tenant_id, + T2.product_category, + T2.specification_model, + T2.unit, + T3.supplier_name + FROM + stock_in T1 + INNER JOIN + product_record T2 + ON + T1.product_id = T2.product_id + INNER JOIN + supplier_manage T3 + ON + T1.supplier_id = T3.id + <where> + <if test="stockinDto.supplierName != null and stockinDto.supplierName != ''"> + AND T3.supplier_name LIKE CONCAT('%', #{stockinDto.supplierName}, '%') + </if> + <if test="stockinDto.startTime != null and stockinDto.startTime != ''"> + AND T1.inbound_time >= #{stockinDto.startTime} + </if> + <if test="stockinDto.endTime != null and stockinDto.endTime != ''"> + AND T1.inbound_time <= #{stockinDto.endTime} + </if> + </where> + ORDER BY T1.inbound_time DESC + </select> - <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.ruoyi.inventory.pojo.StockIn" useGeneratedKeys="true"> - insert into stock_in - <trim prefix="(" suffix=")" suffixOverrides=","> - <if test="id != null">id,</if> - <if test="productId != null">product_id,</if> - <if test="inboundTime != null">inbound_time,</if> - <if test="inboundBatch != null">inbound_batch,</if> - <if test="supplierName != null">supplier_name,</if> - <if test="inboundQuantity != null">inbound_quantity,</if> - <if test="taxInclusivePrice != null">tax_inclusive_price,</if> - <if test="taxInclusiveTotal != null">tax_inclusive_total,</if> - <if test="taxRate != null">tax_rate,</if> - <if test="taxExclusiveTotal != null">tax_exclusive_total,</if> - <if test="inboundPerson != null">inbound_person,</if> - </trim> - <trim prefix="values (" suffix=")" suffixOverrides=","> - <if test="id != null">#{id,jdbcType=INTEGER},</if> - <if test="productId != null">#{productId,jdbcType=INTEGER},</if> - <if test="inboundTime != null">#{inboundTime,jdbcType=TIMESTAMP},</if> - <if test="inboundBatch != null">#{inboundBatch,jdbcType=VARCHAR},</if> - <if test="supplierName != null">#{supplierName,jdbcType=VARCHAR},</if> - <if test="inboundQuantity != null">#{inboundQuantity,jdbcType=INTEGER},</if> - <if test="taxInclusivePrice != null">#{taxInclusivePrice,jdbcType=DECIMAL},</if> - <if test="taxInclusiveTotal != null">#{taxInclusiveTotal,jdbcType=DECIMAL},</if> - <if test="taxRate != null">#{taxRate,jdbcType=DECIMAL},</if> - <if test="taxExclusiveTotal != null">#{taxExclusiveTotal,jdbcType=DECIMAL},</if> - <if test="inboundPerson != null">#{inboundPerson,jdbcType=VARCHAR},</if> - </trim> - </insert> - <update id="updateByPrimaryKeySelective" parameterType="com.ruoyi.inventory.pojo.StockIn"> - update stock_in - <set> - <if test="productId != null"> - product_id = #{productId,jdbcType=INTEGER}, - </if> - <if test="inboundTime != null"> - inbound_time = #{inboundTime,jdbcType=TIMESTAMP}, - </if> - <if test="inboundBatch != null"> - inbound_batch = #{inboundBatch,jdbcType=VARCHAR}, - </if> - <if test="supplierName != null"> - supplier_name = #{supplierName,jdbcType=VARCHAR}, - </if> - <if test="inboundQuantity != null"> - inbound_quantity = #{inboundQuantity,jdbcType=INTEGER}, - </if> - <if test="taxInclusivePrice != null"> - tax_inclusive_price = #{taxInclusivePrice,jdbcType=DECIMAL}, - </if> - <if test="taxInclusiveTotal != null"> - tax_inclusive_total = #{taxInclusiveTotal,jdbcType=DECIMAL}, - </if> - <if test="taxRate != null"> - tax_rate = #{taxRate,jdbcType=DECIMAL}, - </if> - <if test="taxExclusiveTotal != null"> - tax_exclusive_total = #{taxExclusiveTotal,jdbcType=DECIMAL}, - </if> - <if test="inboundPerson != null"> - inbound_person = #{inboundPerson,jdbcType=VARCHAR}, - </if> - </set> - where id = #{id,jdbcType=INTEGER} - </update> + </mapper> diff --git a/src/main/resources/mapper/inventory/StockManagementMapper.xml b/src/main/resources/mapper/inventory/StockManagementMapper.xml index f46d1e2..a1f6ef4 100644 --- a/src/main/resources/mapper/inventory/StockManagementMapper.xml +++ b/src/main/resources/mapper/inventory/StockManagementMapper.xml @@ -4,89 +4,76 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.inventory.mapper.StockManagementMapper"> - <resultMap id="BaseResultMap" type="com.ruoyi.inventory.pojo.StockManagement"> - <id property="id" column="id" jdbcType="INTEGER"/> - <result property="productId" column="product_id" jdbcType="INTEGER"/> - <result property="stockQuantity" column="stock_quantity" jdbcType="INTEGER"/> - <result property="taxInclusivePrice" column="tax_inclusive_price" jdbcType="DECIMAL"/> - <result property="taxInclusiveTotal" column="tax_inclusive_total" jdbcType="DECIMAL"/> - <result property="taxRate" column="tax_rate" jdbcType="DECIMAL"/> - <result property="taxExclusiveTotal" column="tax_exclusive_total" jdbcType="DECIMAL"/> - <result property="inboundPerson" column="inbound_person" jdbcType="VARCHAR"/> - </resultMap> - - <sql id="Base_Column_List"> - id,product_id,stock_quantity, - tax_inclusive_price,tax_inclusive_total,tax_rate, - tax_exclusive_total,inbound_person - </sql> - - <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> - select - <include refid="Base_Column_List" /> - from stock_management - where id = #{id,jdbcType=INTEGER} - </select> - <select id="selectAll" resultType="com.ruoyi.inventory.pojo.StockManagement"> - select - <include refid="Base_Column_List" /> - from stock_management +<!-- 鏍规嵁渚涘簲鍟嗘ā绯婃悳绱�--> + <select id="selectStockManagementBypage" resultType="com.ruoyi.inventory.dto.StockManagementDto"> + SELECT + T2.unit, + T2.product_category, + T2.specification_model, + T3.supplier_name, + T1.id, + T1.product_id, + T1.stock_quantity, + T2.tax_inclusive_unit_price, + T2.tax_inclusive_total_price, + T2.tax_rate, + T2.tax_exclusive_total_price, + T1.inbound_person, + T1.supplier_id, + T1.tenant_id, + T1.bound_time, + T1.inbound_time + FROM + stock_management T1 + INNER JOIN + product_record T2 + ON + T1.product_id = T2.product_id + INNER JOIN + supplier_manage T3 + ON + T1.supplier_id = T3.id + <where> + <if test="stockManagementDto.supplierName != null and stockManagementDto.supplierName != ''"> + AND T3.supplier_name LIKE CONCAT('%', #{stockManagementDto.supplierName}, '%') + </if> + </where> </select> - <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> - delete from stock_management - where id = #{id,jdbcType=INTEGER} - </delete> + <select id="stockManageExportList" resultType="com.ruoyi.inventory.excel.StockManagementExcelDto"> + SELECT + T2.unit, + T2.product_category, + T2.specification_model, + T3.supplier_name, + T1.id, + T1.product_id, + T1.stock_quantity, + T2.tax_inclusive_unit_price, + T2.tax_inclusive_total_price, + T2.tax_rate, + T2.tax_exclusive_total_price, + T1.inbound_person, + T1.supplier_id, + T1.tenant_id, + T1.bound_time, + T1.inbound_time + FROM + stock_management T1 + INNER JOIN + product_record T2 + ON + T1.product_id = T2.product_id + INNER JOIN + supplier_manage T3 + ON + T1.supplier_id = T3.id + <where> + <if test="stockManagementDto.supplierName != null and stockManagementDto.supplierName != ''"> + AND T3.supplier_name LIKE CONCAT('%', #{stockManagementDto.supplierName}, '%') + </if> + </where> + </select> - <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.ruoyi.inventory.pojo.StockManagement" useGeneratedKeys="true"> - insert into stock_management - <trim prefix="(" suffix=")" suffixOverrides=","> - <if test="id != null">id,</if> - <if test="productId != null">product_id,</if> - <if test="stockQuantity != null">stock_quantity,</if> - <if test="taxInclusivePrice != null">tax_inclusive_price,</if> - <if test="taxInclusiveTotal != null">tax_inclusive_total,</if> - <if test="taxRate != null">tax_rate,</if> - <if test="taxExclusiveTotal != null">tax_exclusive_total,</if> - <if test="inboundPerson != null">inbound_person,</if> - </trim> - <trim prefix="values (" suffix=")" suffixOverrides=","> - <if test="id != null">#{id,jdbcType=INTEGER},</if> - <if test="productId != null">#{productId,jdbcType=INTEGER},</if> - <if test="stockQuantity != null">#{stockQuantity,jdbcType=INTEGER},</if> - <if test="taxInclusivePrice != null">#{taxInclusivePrice,jdbcType=DECIMAL},</if> - <if test="taxInclusiveTotal != null">#{taxInclusiveTotal,jdbcType=DECIMAL},</if> - <if test="taxRate != null">#{taxRate,jdbcType=DECIMAL},</if> - <if test="taxExclusiveTotal != null">#{taxExclusiveTotal,jdbcType=DECIMAL},</if> - <if test="inboundPerson != null">#{inboundPerson,jdbcType=VARCHAR},</if> - </trim> - </insert> - <update id="updateByPrimaryKeySelective" parameterType="com.ruoyi.inventory.pojo.StockManagement"> - update stock_management - <set> - <if test="productId != null"> - product_id = #{productId,jdbcType=INTEGER}, - </if> - <if test="stockQuantity != null"> - stock_quantity = #{stockQuantity,jdbcType=INTEGER}, - </if> - <if test="taxInclusivePrice != null"> - tax_inclusive_price = #{taxInclusivePrice,jdbcType=DECIMAL}, - </if> - <if test="taxInclusiveTotal != null"> - tax_inclusive_total = #{taxInclusiveTotal,jdbcType=DECIMAL}, - </if> - <if test="taxRate != null"> - tax_rate = #{taxRate,jdbcType=DECIMAL}, - </if> - <if test="taxExclusiveTotal != null"> - tax_exclusive_total = #{taxExclusiveTotal,jdbcType=DECIMAL}, - </if> - <if test="inboundPerson != null"> - inbound_person = #{inboundPerson,jdbcType=VARCHAR}, - </if> - </set> - where id = #{id,jdbcType=INTEGER} - </update> </mapper> diff --git a/src/main/resources/mapper/inventory/StockOutMapper.xml b/src/main/resources/mapper/inventory/StockOutMapper.xml index 5569d99..a551498 100644 --- a/src/main/resources/mapper/inventory/StockOutMapper.xml +++ b/src/main/resources/mapper/inventory/StockOutMapper.xml @@ -4,108 +4,76 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.inventory.mapper.StockOutMapper"> - <resultMap id="BaseResultMap" type="com.ruoyi.inventory.pojo.StockOut"> - <id property="id" column="id" jdbcType="INTEGER"/> - <result property="productId" column="product_id" jdbcType="INTEGER"/> - <result property="inboundTime" column="inbound_time" jdbcType="TIMESTAMP"/> - <result property="inboundBatch" column="inbound_batch" jdbcType="VARCHAR"/> - <result property="supplierName" column="supplier_name" jdbcType="VARCHAR"/> - <result property="inboundQuantity" column="inbound_quantity" jdbcType="INTEGER"/> - <result property="taxInclusivePrice" column="tax_inclusive_price" jdbcType="DECIMAL"/> - <result property="taxInclusiveTotal" column="tax_inclusive_total" jdbcType="DECIMAL"/> - <result property="taxRate" column="tax_rate" jdbcType="DECIMAL"/> - <result property="taxExclusiveTotal" column="tax_exclusive_total" jdbcType="DECIMAL"/> - <result property="inboundPerson" column="inbound_person" jdbcType="VARCHAR"/> - </resultMap> - - <sql id="Base_Column_List"> - id,product_id,inbound_time, - inbound_batch,supplier_name,inbound_quantity, - tax_inclusive_price,tax_inclusive_total,tax_rate, - tax_exclusive_total,inbound_person - </sql> - - <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> - select - <include refid="Base_Column_List" /> - from stock_out - where id = #{id,jdbcType=INTEGER} + <select id="selectStockOutBypage" resultType="com.ruoyi.inventory.dto.StockoutDto"> + SELECT + T1.id, + T1.product_id, + T1.inbound_time, + T1.inbound_batch, + T1.supplier_id, + T1.inbound_quantity, + T2.tax_inclusive_unit_price, + T2.tax_inclusive_total_price, + T2.tax_rate, + T2.tax_exclusive_total_price, + T1.inbound_person, + T1.tenant_id, + T2.product_category, + T2.specification_model, + T2.unit, + T3.supplier_name + FROM + stock_out T1 + INNER JOIN + product_record T2 + ON + T1.product_id = T2.product_id + INNER JOIN + supplier_manage T3 + ON + T1.supplier_id = T3.id + <where> + <if test="stockOutdto.supplierName != null and stockOutdto.supplierName != ''"> + AND T3.supplier_name LIKE CONCAT('%', #{stockOutdto.supplierName}, '%') + </if> + </where> + ORDER BY T1.inbound_time DESC </select> - <select id="selectAll" resultType="com.ruoyi.inventory.pojo.StockOut"> - select - <include refid="Base_Column_List" /> - from stock_out + <select id="stockoutExportList" resultType="com.ruoyi.inventory.excel.StockOutExcelDto"> + SELECT + T1.id, + T1.product_id, + T1.inbound_time, + T1.inbound_batch, + T1.supplier_id, + T1.inbound_quantity, + T2.tax_inclusive_unit_price, + T2.tax_inclusive_total_price, + T2.tax_rate, + T2.tax_exclusive_total_price, + T1.inbound_person, + T1.tenant_id, + T2.product_category, + T2.specification_model, + T2.unit, + T3.supplier_name + FROM + stock_out T1 + INNER JOIN + product_record T2 + ON + T1.product_id = T2.product_id + INNER JOIN + supplier_manage T3 + ON + T1.supplier_id = T3.id + <where> + <if test="stockOutdto.supplierName != null and stockOutdto.supplierName != ''"> + AND T3.supplier_name LIKE CONCAT('%', #{stockOutdto.supplierName}, '%') + </if> + </where> + ORDER BY T1.inbound_time DESC </select> - <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> - delete from stock_out - where id = #{id,jdbcType=INTEGER} - </delete> - - <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.ruoyi.inventory.pojo.StockOut" useGeneratedKeys="true"> - insert into stock_out - <trim prefix="(" suffix=")" suffixOverrides=","> - <if test="id != null">id,</if> - <if test="productId != null">product_id,</if> - <if test="inboundTime != null">inbound_time,</if> - <if test="inboundBatch != null">inbound_batch,</if> - <if test="supplierName != null">supplier_name,</if> - <if test="inboundQuantity != null">inbound_quantity,</if> - <if test="taxInclusivePrice != null">tax_inclusive_price,</if> - <if test="taxInclusiveTotal != null">tax_inclusive_total,</if> - <if test="taxRate != null">tax_rate,</if> - <if test="taxExclusiveTotal != null">tax_exclusive_total,</if> - <if test="inboundPerson != null">inbound_person,</if> - </trim> - <trim prefix="values (" suffix=")" suffixOverrides=","> - <if test="id != null">#{id,jdbcType=INTEGER},</if> - <if test="productId != null">#{productId,jdbcType=INTEGER},</if> - <if test="inboundTime != null">#{inboundTime,jdbcType=TIMESTAMP},</if> - <if test="inboundBatch != null">#{inboundBatch,jdbcType=VARCHAR},</if> - <if test="supplierName != null">#{supplierName,jdbcType=VARCHAR},</if> - <if test="inboundQuantity != null">#{inboundQuantity,jdbcType=INTEGER},</if> - <if test="taxInclusivePrice != null">#{taxInclusivePrice,jdbcType=DECIMAL},</if> - <if test="taxInclusiveTotal != null">#{taxInclusiveTotal,jdbcType=DECIMAL},</if> - <if test="taxRate != null">#{taxRate,jdbcType=DECIMAL},</if> - <if test="taxExclusiveTotal != null">#{taxExclusiveTotal,jdbcType=DECIMAL},</if> - <if test="inboundPerson != null">#{inboundPerson,jdbcType=VARCHAR},</if> - </trim> - </insert> - <update id="updateByPrimaryKeySelective" parameterType="com.ruoyi.inventory.pojo.StockOut"> - update stock_out - <set> - <if test="productId != null"> - product_id = #{productId,jdbcType=INTEGER}, - </if> - <if test="inboundTime != null"> - inbound_time = #{inboundTime,jdbcType=TIMESTAMP}, - </if> - <if test="inboundBatch != null"> - inbound_batch = #{inboundBatch,jdbcType=VARCHAR}, - </if> - <if test="supplierName != null"> - supplier_name = #{supplierName,jdbcType=VARCHAR}, - </if> - <if test="inboundQuantity != null"> - inbound_quantity = #{inboundQuantity,jdbcType=INTEGER}, - </if> - <if test="taxInclusivePrice != null"> - tax_inclusive_price = #{taxInclusivePrice,jdbcType=DECIMAL}, - </if> - <if test="taxInclusiveTotal != null"> - tax_inclusive_total = #{taxInclusiveTotal,jdbcType=DECIMAL}, - </if> - <if test="taxRate != null"> - tax_rate = #{taxRate,jdbcType=DECIMAL}, - </if> - <if test="taxExclusiveTotal != null"> - tax_exclusive_total = #{taxExclusiveTotal,jdbcType=DECIMAL}, - </if> - <if test="inboundPerson != null"> - inbound_person = #{inboundPerson,jdbcType=VARCHAR}, - </if> - </set> - where id = #{id,jdbcType=INTEGER} - </update> </mapper> -- Gitblit v1.9.3