lishenao
13 小时以前 6bbac4845106ca8648900b1d9af758c84275ffee
批量添加入库的方法
已修改4个文件
57 ■■■■■ 文件已修改
src/main/java/com/ruoyi/inventory/controller/StockInController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/inventory/service/StockInService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/inventory/service/impl/StockManagementServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/inventory/controller/StockInController.java
@@ -46,6 +46,11 @@
        stockInService.saveStockin(stockIn);
        return AjaxResult.success();
    }
    @PostMapping("/addstockinList")
    public AjaxResult addstockinList(@RequestBody List<StockIn> stockInList) {
        stockInService.addstockin(stockInList);
        return AjaxResult.success();
    }
    @GetMapping("/{id}")// 根据ID获取入库记录
    public AjaxResult getStockInById(@PathVariable Long id) {
@@ -72,4 +77,9 @@
    public void export(HttpServletResponse response, StockinDto stockinDto) {
        stockInService.stockinExport(response, stockinDto);
    }
    @PostMapping("/batchSave")
    public AjaxResult batchSaveStockin(@RequestBody List<StockIn> stockInList) {
        stockInService.batchSaveStockin(stockInList);
        return AjaxResult.success();
    }
}
src/main/java/com/ruoyi/inventory/service/StockInService.java
@@ -25,4 +25,6 @@
//    PageInfo<StockinProcuct> getStockInPage(Integer pageNum, Integer pageSize, StockInQueryDTO query);
    IPage<StockIn> selectStockInPage(Page page, StockinDto stockinDto);
    void stockinExport(HttpServletResponse response, StockinDto stockinDto);
    int addstockin (List<StockIn> stockIns);
    void batchSaveStockin(List<StockIn> stockInList);
}
src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java
@@ -46,6 +46,7 @@
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
//
    public void saveStockin(StockIn stockIn) {
//需要先判断采购记录表中是否有该产品的采购记录
//        根据产品id查询采购记录表
@@ -57,6 +58,7 @@
            String batchCode = "RK" + System.currentTimeMillis();
            stockIn.setInboundBatch(batchCode);
            stockIn.setSupplierId(productRecordDto.getSupplierId());
            stockInMapper.insert(stockIn);
//          在库存管理表中添加库存管理记录
            StockManagement stockManagement = new StockManagement();
@@ -70,6 +72,39 @@
            stockManagementMapper.insert(stockManagement);
        }else {
            throw new RuntimeException("采购记录表中没有该产品的采购记录");
        }
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void batchSaveStockin(List<StockIn> stockInList) {
        if (stockInList == null || stockInList.isEmpty()) {
            throw new RuntimeException("入库列表不能为空");
        }
        Date currentTime = new Date();
        for (StockIn stockIn : stockInList) {
            // 根据产品id查询采购记录表
            ProductRecordDto productRecordDto = productRecordMapper.selectProductRecordById(stockIn.getProductrecordId());
            if (productRecordDto == null) {
                throw new RuntimeException("采购记录表中没有产品ID为" + stockIn.getProductrecordId() + "的采购记录");
            }
            // 设置入库时间和批次码
            stockIn.setInboundTime(currentTime);
            String batchCode = "RK" + System.currentTimeMillis() + "-" + stockIn.getProductrecordId();
            stockIn.setInboundBatch(batchCode);
            stockIn.setSupplierId(productRecordDto.getSupplierId());
            // 添加入库记录
            stockInMapper.insert(stockIn);
            // 在库存管理表中添加库存管理记录
            StockManagement stockManagement = new StockManagement();
            stockManagement.setProductrecordId(productRecordDto.getId());
            stockManagement.setStockQuantity(stockIn.getInboundQuantity());
            stockManagement.setInboundTime(stockIn.getInboundTime());
            stockManagement.setInboundBatch(stockIn.getInboundBatch());
            stockManagement.setUserId(stockIn.getUserId());
            stockManagement.setSupplierId(productRecordDto.getSupplierId());
            stockManagement.setBoundTime(stockIn.getInboundTime());
            stockManagementMapper.insert(stockManagement);
        }
    }
@@ -116,4 +151,12 @@
        ExcelUtil<StockInExcelDto> util = new ExcelUtil<StockInExcelDto>(StockInExcelDto.class);
        util.exportExcel(response, stockInExcelDtoList, "供应商导出");
    }
    @Override
    public int addstockin(List<StockIn> stockIns) {
        for (StockIn stockIn : stockIns) {
            saveStockin(stockIn);
        }
        return 1;
    }
}
src/main/java/com/ruoyi/inventory/service/impl/StockManagementServiceImpl.java
@@ -19,6 +19,7 @@
import com.ruoyi.purchase.pojo.ProductRecord;
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;
@@ -61,6 +62,7 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int stockout(StockManagement stockManagement) {
//        在前端其实就穿了3个数,数量,出库人,时间,只需要进行判断,库存数量是否足够即可,有三种情况
        StockOut stockOut = new StockOut();