package com.ruoyi.stock.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.enums.StockQualifiedRecordTypeEnum; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.compensationperformance.pojo.CompensationPerformance; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.domain.R; import com.ruoyi.stock.dto.StockInventoryDto; import com.ruoyi.stock.execl.StockInventoryExportData; import com.ruoyi.stock.service.StockInventoryService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; /** *

* 库存表 前端控制器 *

* * @author 芯导软件(江苏)有限公司 * @since 2026-01-21 04:16:36 */ @RestController @RequestMapping("/stockInventory") @Api(tags = "库存表") public class StockInventoryController { @Autowired private StockInventoryService stockInventoryService; @GetMapping("/pagestockInventory") @ApiOperation("分页查询库存") public R pagestockInventory(Page page, StockInventoryDto stockInventoryDto) { IPage stockInventoryDtoIPage = stockInventoryService.pagestockInventory(page, stockInventoryDto); return R.ok(stockInventoryDtoIPage); } @PostMapping("/addstockInventory") @ApiOperation("新增库存") public R addstockInventory(@RequestBody StockInventoryDto stockInventoryDto) { stockInventoryDto.setRecordType(String.valueOf(StockQualifiedRecordTypeEnum.CUSTOMIZATION_STOCK_IN.getCode())); stockInventoryDto.setRecordId(0L); return R.ok(stockInventoryService.addstockInventory(stockInventoryDto)); } @PostMapping("/subtractStockInventory") @ApiOperation("扣减库存") public R subtractStockInventory(@RequestBody StockInventoryDto stockInventoryDto) { stockInventoryDto.setRecordType(String.valueOf(StockQualifiedRecordTypeEnum.CUSTOMIZATION_STOCK_OUT.getCode())); stockInventoryDto.setRecordId(0L); return R.ok(stockInventoryService.subtractStockInventory(stockInventoryDto)); } @PostMapping("importStockInventory") @ApiOperation("导入库存") public R importStockInventory(MultipartFile file) { return stockInventoryService.importStockInventory(file); } @Log(title = "下载库存导入模板", businessType = BusinessType.EXPORT) @PostMapping("/downloadStockInventory") public void downloadStockInventory(HttpServletResponse response) { List list = new ArrayList<>(); ExcelUtil util = new ExcelUtil<>(StockInventoryExportData.class); util.exportExcel(response, list, "库存模板"); } @PostMapping("/exportStockInventory") @ApiOperation("导出库存") public void exportStockInventory(HttpServletResponse response, StockInventoryDto stockInventoryDto) { stockInventoryService.exportStockInventory(response, stockInventoryDto); } @GetMapping("stockInventoryPage") @ApiOperation("库存报表查询") public R stockInventoryPage(Page page, StockInventoryDto stockInventoryDto) { return R.ok(stockInventoryService.stockInventoryPage(stockInventoryDto,page)); } @GetMapping("stockInAndOutRecord") @ApiOperation("统计各个产品的入库和出库记录") public R stockInAndOutRecord(StockInventoryDto stockInventoryDto,Page page) { return R.ok(stockInventoryService.stockInAndOutRecord(stockInventoryDto,page)); } }