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));
}
@GetMapping("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);
}
}