src/main/java/com/ruoyi/inventory/controller/StockManagementController.java
@@ -47,4 +47,8 @@ public void stockmanageExport(HttpServletResponse response, StockManagementDto stockManagementDto) { stockManagementService.stockManageExport(response, stockManagementDto); } @RequestMapping("/stockout") public AjaxResult stockout(@RequestBody StockManagement stockManagement) { return success(stockManagementService.stockout(stockManagement)); } } src/main/java/com/ruoyi/inventory/controller/StockOutController.java
@@ -8,6 +8,7 @@ import com.ruoyi.inventory.dto.StockoutDto; import com.ruoyi.inventory.mapper.StockManagementMapper; import com.ruoyi.inventory.pojo.StockIn; import com.ruoyi.inventory.pojo.StockManagement; import com.ruoyi.inventory.pojo.StockOut; import com.ruoyi.inventory.service.StockOutService; import org.springframework.beans.factory.annotation.Autowired; @@ -60,4 +61,5 @@ stockOutService.delStockOut(ids); return AjaxResult.success(); } } src/main/java/com/ruoyi/inventory/dto/StockManagementDto.java
@@ -33,4 +33,8 @@ * 规格型号 */ private String specificationModel; /** * 入库人 */ private String nickname; } src/main/java/com/ruoyi/inventory/dto/StockinDto.java
@@ -13,6 +13,10 @@ import java.util.Date; @Data public class StockinDto extends StockIn{ /** * 入库人 */ private String nickname; @ApiModelProperty(value = "产品大类") private String productCategory; @@ -45,8 +49,4 @@ private BigDecimal taxExclusiveTotalPrice; @ApiModelProperty(value = "供应商名称") private String supplierName; @TableField(exist = false) private Date startTime; @TableField(exist = false) private Date endTime; } src/main/java/com/ruoyi/inventory/dto/StockoutDto.java
@@ -35,4 +35,8 @@ * 规格型号 */ private String specificationModel; /** * 入库人 */ private String nickname; } src/main/java/com/ruoyi/inventory/excel/StockInExcelDto.java
@@ -31,5 +31,5 @@ @Excel(name = "税率") private BigDecimal taxRate; @Excel(name = "入库人") private String inboundPerson; private String nickname; } src/main/java/com/ruoyi/inventory/excel/StockManagementExcelDto.java
@@ -35,5 +35,5 @@ @Excel(name = "税率") private BigDecimal taxRate; @Excel(name = "入库人") private String inboundPerson; private String nickname; } src/main/java/com/ruoyi/inventory/excel/StockOutExcelDto.java
@@ -8,7 +8,7 @@ @Data public class StockOutExcelDto { @Excel(name = "出库时间") private String inboundTime; private String outboundTime; @Excel(name = "出库批次") private String inboundBatch; @Excel(name = "产品大类") @@ -28,6 +28,6 @@ @Excel(name = "税率") private BigDecimal taxRate; @Excel(name = "出库人") private String outboundPerson; private String nickname; } src/main/java/com/ruoyi/inventory/pojo/StockIn.java
@@ -25,7 +25,7 @@ /** * 产品id */ private Long productId; private Integer productRecordid; /** * 入库时间 @@ -41,7 +41,7 @@ /** * 供应商id */ private Long supplierId; private Integer supplierId; /** * 入库数量 */ @@ -52,7 +52,7 @@ /** * 入库人 */ private String inboundPerson; private Long userId; // tenant_id /** * 租户ID src/main/java/com/ruoyi/inventory/pojo/StockManagement.java
@@ -25,15 +25,15 @@ /** * 产品id */ private Long productId; private Integer productRecordid; /** * 当前库存量 */ private Integer stockQuantity; private Long supplierId; private String inboundBatch; private Integer supplierId; @JsonFormat(pattern = "yyyy-MM-dd") private Date boundTime; @@ -43,7 +43,7 @@ /** * 入库人 */ private String inboundPerson; private Long userId; @TableField(fill = FieldFill.INSERT) private Long tenantId; src/main/java/com/ruoyi/inventory/pojo/StockOut.java
@@ -24,7 +24,7 @@ /** * 产品id */ private Long productId; private Integer productRecordid; /** * 出库时间 @@ -39,7 +39,7 @@ /** * 供应商名称 */ private Long supplierId; private Integer supplierId; /** * 入库数量 @@ -51,7 +51,8 @@ /** * 出库人 */ private String inboundPerson; private Long userId; private Integer stockmanageId; @TableField(fill = FieldFill.INSERT) private Long tenantId; src/main/java/com/ruoyi/inventory/service/StockInService.java
@@ -19,7 +19,7 @@ StockIn getStockInById(Long id); int updateStockIn(StockIn stockIn); boolean updateStockIn(StockIn stockIn); int delStockin(List<Integer> ids); // PageInfo<StockinProcuct> getStockInPage(Integer pageNum, Integer pageSize, StockInQueryDTO query); src/main/java/com/ruoyi/inventory/service/StockManagementService.java
@@ -3,9 +3,7 @@ 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; @@ -18,5 +16,6 @@ int delStockManage(List<Integer> ids); IPage<StockManagement> selectStockManagePage(Page page, StockManagementDto stockManagementdto); void stockManageExport(HttpServletResponse response, StockManagementDto stockManagementdto); int stockout(StockManagement stockManagement); int addStockManage(StockManagement stockManagement); } src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java
@@ -4,6 +4,8 @@ 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.mapper.SupplierManageMapper; import com.ruoyi.basic.pojo.SupplierManage; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.inventory.dto.StockinDto; import com.ruoyi.inventory.excel.StockInExcelDto; @@ -13,6 +15,8 @@ import com.ruoyi.inventory.pojo.StockManagement; import com.ruoyi.inventory.service.StockInService; import com.ruoyi.purchase.dto.PurchaseLedgerDto; import com.ruoyi.purchase.mapper.ProductRecordMapper; import com.ruoyi.purchase.pojo.ProductRecord; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -28,6 +32,10 @@ private StockInMapper stockInMapper; @Autowired private StockManagementMapper stockManagementMapper; @Autowired private ProductRecordMapper productRecordMapper; @Autowired private SupplierManageMapper supplierManageMapper; // 新增方法 @@ -38,32 +46,41 @@ @Override @Transactional(rollbackFor = Exception.class) public void saveStockin(StockIn stockIn) { stockInMapper.insert(stockIn); StockManagement stockManagement = new StockManagement(); // 进行判断是否存在相同的产品id和供应商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); //需要先判断产品记录表中是否有该产品 ProductRecord productRecord = productRecordMapper.selectById(stockIn.getProductRecordid()); if (productRecord == null) { throw new RuntimeException("产品记录表中没有该产品"); } else { stockManagement.setProductId(stockIn.getProductId()); stockManagement.setStockQuantity(stockIn.getInboundQuantity()); stockManagement.setBoundTime(stockIn.getInboundTime()); stockManagement.setStockQuantity(stockIn.getInboundQuantity()); stockManagement.setInboundPerson(stockIn.getInboundPerson()); // 需要先判断供应商表中是否有该供应商 SupplierManage supplierManage = supplierManageMapper.selectById(stockIn.getSupplierId()); if (supplierManage == null) { throw new RuntimeException("供应商表中没有该供应商"); } // 需要先判断库存管理表中是否有该产品 LambdaQueryWrapper<StockManagement> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(StockManagement::getProductRecordid, stockIn.getProductRecordid()); queryWrapper.eq(StockManagement::getSupplierId, stockIn.getSupplierId()); queryWrapper.eq(StockManagement::getUserId, stockIn.getUserId()); StockManagement stockManagement = stockManagementMapper.selectOne(queryWrapper); if (stockManagement == null) { // 如果没有该产品,需要先新增库存管理表 stockManagement = new StockManagement(); stockManagement.setProductRecordid(stockIn.getProductRecordid()); stockManagement.setSupplierId(stockIn.getSupplierId()); stockManagement.setTenantId(stockIn.getTenantId()); stockManagement.setStockQuantity(stockIn.getInboundQuantity()); stockManagement.setInboundTime(stockIn.getInboundTime()); stockManagement.setBoundTime(new Date()); stockManagement.setUserId(stockIn.getUserId()); stockManagementMapper.insert(stockManagement); } // 如果有该产品,需要先更新库存管理表 stockManagement.setStockQuantity(stockManagement.getStockQuantity() + stockIn.getInboundQuantity()); stockManagement.setInboundTime(stockIn.getInboundTime()); stockManagement.setBoundTime(new Date()); stockManagement.setUserId(stockIn.getUserId()); stockManagementMapper.updateById(stockManagement); // 需要先新增库存入库表 stockInMapper.insert(stockIn); } @Override//根据id获取库存入库信息 @@ -71,39 +88,78 @@ StockIn stockIn = stockInMapper.selectById(id); return stockIn; } @Override//更新库存入库信息 @Override @Transactional(rollbackFor = Exception.class) public int updateStockIn(StockIn stockIn) { StockIn stockIn1 = stockInMapper.selectById(stockIn.getId()); // 进行判断是否存在相同的产品id和供应商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); public boolean updateStockIn(StockIn stockIn) { // 1. 参数校验 if (stockIn == null || stockIn.getId() == null) { throw new IllegalArgumentException("入库记录ID不能为空"); } return stockInMapper.updateById(stockIn); // 2. 获取原始记录 StockIn original = stockInMapper.selectById(stockIn.getId()); if (original == null) { throw new RuntimeException("要修改的入库记录不存在,ID: " + stockIn.getId()); } // 3. 检查关联数据 // 3.1 检查产品 if (stockIn.getProductRecordid() != null && productRecordMapper.selectById(stockIn.getProductRecordid()) == null) { throw new RuntimeException("产品记录不存在,ID: " + stockIn.getProductRecordid()); } // 3.2 检查供应商 if (stockIn.getSupplierId() != null && supplierManageMapper.selectById(stockIn.getSupplierId()) == null) { throw new RuntimeException("供应商不存在,ID: " + stockIn.getSupplierId()); } // 4. 确定最终使用的各ID值 Integer finalProductId = stockIn.getProductRecordid() != null ? stockIn.getProductRecordid() : original.getProductRecordid(); Integer finalSupplierId = stockIn.getSupplierId() != null ? stockIn.getSupplierId() : original.getSupplierId(); Long finalUserId = stockIn.getUserId() != null ? stockIn.getUserId() : original.getUserId(); // 5. 处理库存记录(确保存在对应记录) LambdaQueryWrapper<StockManagement> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(StockManagement::getProductRecordid, finalProductId) .eq(StockManagement::getSupplierId, finalSupplierId) .eq(StockManagement::getUserId, finalUserId); StockManagement stock = stockManagementMapper.selectOne(wrapper); // 计算数量变化(如果有修改) Integer quantityChange = stockIn.getInboundQuantity() != null ? stockIn.getInboundQuantity() - original.getInboundQuantity() : 0; if (stock == null) { // 5.1 不存在则创建新记录 stock = new StockManagement(); stock.setProductRecordid(finalProductId); stock.setSupplierId(finalSupplierId); stock.setUserId(finalUserId); // 初始库存 = 原始库存 + 变化量(考虑修改后的值) stock.setStockQuantity(original.getInboundQuantity() + quantityChange); stockManagementMapper.insert(stock); } else if (quantityChange != 0) { // 5.2 存在且数量有变化则更新 stock.setStockQuantity(stock.getStockQuantity() + quantityChange); stockManagementMapper.updateById(stock); } // 6. 更新入库记录 int updateResult = stockInMapper.updateById(stockIn); if (updateResult <= 0) { throw new RuntimeException("入库记录更新失败"); } return updateResult > 0; } @Override public int delStockin(List<Integer> ids) { LambdaQueryWrapper<StockIn> delWrapper = new LambdaQueryWrapper<>(); src/main/java/com/ruoyi/inventory/service/impl/StockManagementServiceImpl.java
@@ -1,15 +1,21 @@ 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.basic.excel.SupplierManageExcelDto; import com.ruoyi.basic.mapper.SupplierManageMapper; import com.ruoyi.basic.pojo.SupplierManage; 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.mapper.StockOutMapper; import com.ruoyi.inventory.pojo.StockManagement; import com.ruoyi.inventory.pojo.StockOut; import com.ruoyi.inventory.service.StockManagementService; import com.ruoyi.purchase.mapper.ProductRecordMapper; import com.ruoyi.purchase.pojo.ProductRecord; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -20,6 +26,14 @@ public class StockManagementServiceImpl extends ServiceImpl<StockManagementMapper,StockManagement> implements StockManagementService { @Autowired private StockManagementMapper stockManagementMapper; @Autowired private StockOutMapper stockOutMapper; @Autowired private ProductRecordMapper productRecordMapper; @Autowired private SupplierManageMapper supplierManageMapper; @Override public int updateStockManagement(StockManagement stockManagement) { @@ -43,4 +57,54 @@ ExcelUtil<StockManagementExcelDto> util = new ExcelUtil<StockManagementExcelDto>(StockManagementExcelDto.class); util.exportExcel(response, stockManageList, "库存导出"); } @Override public int stockout(StockManagement stockManagement) { // 需要进行判断,库存数量是否足够 StockManagement stockManagement1 = stockManagementMapper.selectById(stockManagement.getId()); if (stockManagement1.getStockQuantity() < stockManagement.getStockQuantity()) { throw new RuntimeException("库存数量不足"); }else if (stockManagement1.getStockQuantity().equals(stockManagement.getStockQuantity())){ // 减去的数量要在出库记录表中加一条数据 StockOut stockOut = new StockOut(); stockOut.setInboundQuantity(stockManagement.getStockQuantity()); stockOut.setProductRecordid(stockManagement1.getProductRecordid()); stockOut.setSupplierId(stockManagement1.getSupplierId()); stockOut.setUserId(stockManagement.getUserId()); stockOut.setInboundTime(stockManagement1.getBoundTime()); stockOutMapper.insert(stockOut); return stockManagementMapper.deleteById(stockManagement.getId()); } else { stockManagement1.setStockQuantity(stockManagement1.getStockQuantity() - stockManagement.getStockQuantity()); StockOut stockOut = new StockOut(); stockOut.setInboundQuantity(stockManagement.getStockQuantity()); stockOut.setProductRecordid(stockManagement1.getProductRecordid()); stockOut.setSupplierId(stockManagement1.getSupplierId()); stockOut.setUserId(stockManagement.getUserId()); stockOut.setInboundTime(stockManagement1.getBoundTime()); stockOutMapper.insert(stockOut); return stockManagementMapper.updateById(stockManagement1); } } // 添加库存方法 @Override public int addStockManage(StockManagement stockManagement) { // 需要进行判断 LambdaQueryWrapper<ProductRecord> queryWrapper1 = new LambdaQueryWrapper<>(); queryWrapper1.eq(ProductRecord::getProductId, stockManagement.getProductRecordid()); ProductRecord productRecord = productRecordMapper.selectOne(queryWrapper1); if (productRecord == null) { throw new RuntimeException("产品不存在"); } LambdaQueryWrapper<SupplierManage> queryWrapper2 = new LambdaQueryWrapper<>(); queryWrapper2.eq(SupplierManage::getId, stockManagement.getSupplierId()); SupplierManage supplierManage = supplierManageMapper.selectOne(queryWrapper2); System.out.println(supplierManage+"11"); if (supplierManage == null) { throw new RuntimeException("供应商不存在"); } return stockManagementMapper.insert(stockManagement); } } src/main/java/com/ruoyi/inventory/service/impl/StockOutServiceImpl.java
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.basic.excel.SupplierManageExcelDto; import com.ruoyi.basic.mapper.SupplierManageMapper; import com.ruoyi.basic.pojo.SupplierManage; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.inventory.dto.StockoutDto; import com.ruoyi.inventory.excel.StockOutExcelDto; @@ -13,6 +15,8 @@ import com.ruoyi.inventory.pojo.StockOut; import com.ruoyi.inventory.service.StockOutService; import com.ruoyi.purchase.mapper.ProductRecordMapper; import com.ruoyi.purchase.pojo.ProductRecord; import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -28,6 +32,10 @@ private StockOutMapper stockOutMapper; @Autowired private StockManagementMapper stockManagementMapper; @Autowired private ProductRecordMapper productRecordMapper; @Autowired private SupplierManageMapper supplierManageMapper; @Override @@ -44,47 +52,56 @@ @Override @Transactional(rollbackFor = Exception.class) public void saveStockout(StockOut stockOut) { // 进行判断是否存在相同的产品id和供应商id // 进行判断是否存在相同的产品id和供应商id,要判断product_id在表product_record中是否存在,因为stock_out表中的product_id是product_record表中的product_id关联的 LambdaQueryWrapper<ProductRecord> queryWrapper1 = new LambdaQueryWrapper<>(); queryWrapper1.eq(ProductRecord::getProductId, stockOut.getProductRecordid()); ProductRecord productRecord = productRecordMapper.selectOne(queryWrapper1); if (productRecord == null) { throw new RuntimeException("产品不存在"); } LambdaQueryWrapper<SupplierManage> queryWrapper2 = new LambdaQueryWrapper<>(); queryWrapper2.eq(SupplierManage::getId, stockOut.getSupplierId()); SupplierManage supplierManage = supplierManageMapper.selectOne(queryWrapper2); if (supplierManage == null) { throw new RuntimeException("供应商不存在"); } LambdaQueryWrapper<StockManagement> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(StockManagement::getProductId, stockOut.getProductId()); queryWrapper.eq(StockManagement::getProductRecordid, stockOut.getProductRecordid()); queryWrapper.eq(StockManagement::getSupplierId, stockOut.getSupplierId()); StockManagement stockManagement1 = stockManagementMapper.selectOne(queryWrapper); if (stockManagement1!= null) { // 判断库存数量是否大于出库数量 if (stockManagement1.getStockQuantity() < stockOut.getInboundQuantity()) { throw new RuntimeException("库存数量不足"); } StockManagement stockManagement = stockManagementMapper.selectOne(queryWrapper); if (stockManagement != null) { stockOut.setStockmanageId(stockManagement.getId()); stockOutMapper.insert(stockOut); stockManagement1.setStockQuantity(stockManagement1.getStockQuantity() - stockOut.getInboundQuantity()); stockManagement1.setInboundTime(new Date()); stockManagementMapper.updateById(stockManagement1); } else { throw new RuntimeException("库存不存在"); }else { throw new RuntimeException("库存中不存在该产品和供应商"); } } @Override public int updateStockOut(StockOut stockOut) { // 需要进行判断在库存中是否存在该产品,如果存在,就进行修改,否则就抛出异常 StockOut stockOut1 = stockOutMapper.selectById(stockOut.getId()); // 修改的时候要判断是否存在相同的产品id和供应商id LambdaQueryWrapper<ProductRecord> queryWrapper1 = new LambdaQueryWrapper<>(); queryWrapper1.eq(ProductRecord::getProductId, stockOut.getProductRecordid()); ProductRecord productRecord = productRecordMapper.selectOne(queryWrapper1); if (productRecord == null) { throw new RuntimeException("产品不存在"); } LambdaQueryWrapper<SupplierManage> queryWrapper2 = new LambdaQueryWrapper<>(); queryWrapper2.eq(SupplierManage::getId, stockOut.getSupplierId()); SupplierManage supplierManage = supplierManageMapper.selectOne(queryWrapper2); if (supplierManage == null) { throw new RuntimeException("供应商不存在"); } 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("库存不存在"); } queryWrapper.eq(StockManagement::getProductRecordid, stockOut.getProductRecordid()); queryWrapper.eq(StockManagement::getSupplierId, stockOut.getSupplierId()); StockManagement stockManagement = stockManagementMapper.selectOne(queryWrapper); if (stockManagement != null) { stockOut.setStockmanageId(stockManagement.getId()); return stockOutMapper.updateById(stockOut); }else { throw new RuntimeException("库存中不存在该产品和供应商"); } } @Override @@ -98,4 +115,5 @@ ExcelUtil<StockOutExcelDto> util = new ExcelUtil<StockOutExcelDto>(StockOutExcelDto.class); util.exportExcel(response, stockoutList, "供应商导出"); } } src/main/resources/mapper/inventory/StockInMapper.xml
@@ -39,7 +39,7 @@ <select id="selectStockInWithProductInfo" resultType="com.ruoyi.inventory.dto.StockinDto"> SELECT T1.id, T1.product_id, T1.product_recordid, T1.inbound_time, T1.inbound_batch, T1.supplier_id, @@ -48,31 +48,29 @@ T2.tax_inclusive_total_price, T2.tax_rate, T2.tax_exclusive_total_price, T1.inbound_person, T1.user_id, T1.tenant_id, T2.product_category, T2.specification_model, T2.unit, T3.supplier_name T3.supplier_name, T4.nick_name FROM stock_in T1 INNER JOIN product_record T2 ON T1.product_id = T2.product_id T1.product_recordid = T2.id INNER JOIN supplier_manage T3 ON T1.supplier_id = T3.id INNER JOIN sys_user T4 ON T1.user_id = T4.user_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 @@ -81,7 +79,7 @@ <select id="stockinExportList" resultType="com.ruoyi.inventory.excel.StockInExcelDto"> SELECT T1.id, T1.product_id, T1.product_recordid, T1.inbound_time, T1.inbound_batch, T1.supplier_id, @@ -90,22 +88,26 @@ T2.tax_inclusive_total_price, T2.tax_rate, T2.tax_exclusive_total_price, T1.inbound_person, T1.user_id, T1.tenant_id, T2.product_category, T2.specification_model, T2.unit, T3.supplier_name T3.supplier_name, T4.nick_name FROM stock_in T1 INNER JOIN product_record T2 ON T1.product_id = T2.product_id T1.product_recordid = T2.id INNER JOIN supplier_manage T3 ON T1.supplier_id = T3.id INNER JOIN sys_user T4 ON T1.user_id = T4.user_id <where> <if test="stockinDto.supplierName != null and stockinDto.supplierName != ''"> AND T3.supplier_name LIKE CONCAT('%', #{stockinDto.supplierName}, '%') src/main/resources/mapper/inventory/StockManagementMapper.xml
@@ -12,27 +12,33 @@ T2.specification_model, T3.supplier_name, T1.id, T1.product_id, T1.product_recordid, 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.user_id, T1.supplier_id, T1.tenant_id, T1.bound_time, T1.inbound_time T1.inbound_time, T4.nick_name, T1.inbound_batch FROM stock_management T1 INNER JOIN product_record T2 ON T1.product_id = T2.product_id T1.product_recordid = T2.id INNER JOIN supplier_manage T3 ON T1.supplier_id = T3.id INNER JOIN sys_user T4 ON T1.user_id = T4.user_id <where> <if test="stockManagementDto.supplierName != null and stockManagementDto.supplierName != ''"> AND T3.supplier_name LIKE CONCAT('%', #{stockManagementDto.supplierName}, '%') @@ -47,27 +53,33 @@ T2.specification_model, T3.supplier_name, T1.id, T1.product_id, T1.product_recordid, 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.user_id, T1.supplier_id, T1.tenant_id, T1.bound_time, T1.inbound_time T1.inbound_time, T4.nick_name, T1.inbound_batch FROM stock_management T1 INNER JOIN product_record T2 ON T1.product_id = T2.product_id T1.product_recordid = T2.id INNER JOIN supplier_manage T3 ON T1.supplier_id = T3.id INNER JOIN sys_user T4 ON T1.user_id = T4.user_id <where> <if test="stockManagementDto.supplierName != null and stockManagementDto.supplierName != ''"> AND T3.supplier_name LIKE CONCAT('%', #{stockManagementDto.supplierName}, '%') src/main/resources/mapper/inventory/StockOutMapper.xml
@@ -7,7 +7,7 @@ <select id="selectStockOutBypage" resultType="com.ruoyi.inventory.dto.StockoutDto"> SELECT T1.id, T1.product_id, T1.product_recordid, T1.inbound_time, T1.inbound_batch, T1.supplier_id, @@ -16,22 +16,27 @@ T2.tax_inclusive_total_price, T2.tax_rate, T2.tax_exclusive_total_price, T1.inbound_person, T1.user_id, T1.tenant_id, T2.product_category, T2.specification_model, T2.unit, T3.supplier_name T3.supplier_name, T4.nick_name FROM stock_out T1 INNER JOIN product_record T2 ON T1.product_id = T2.product_id T1.product_recordid = T2.id INNER JOIN supplier_manage T3 ON T1.supplier_id = T3.id INNER JOIN sys_user T4 ON T1.user_id = T4.user_id <where> <if test="stockOutdto.supplierName != null and stockOutdto.supplierName != ''"> AND T3.supplier_name LIKE CONCAT('%', #{stockOutdto.supplierName}, '%') @@ -42,7 +47,7 @@ <select id="stockoutExportList" resultType="com.ruoyi.inventory.excel.StockOutExcelDto"> SELECT T1.id, T1.product_id, T1.productrecord_id, T1.inbound_time, T1.inbound_batch, T1.supplier_id, @@ -51,22 +56,27 @@ T2.tax_inclusive_total_price, T2.tax_rate, T2.tax_exclusive_total_price, T1.inbound_person, T1.user_id, T1.tenant_id, T2.product_category, T2.specification_model, T2.unit, T3.supplier_name T3.supplier_name, T4.nick_name FROM stock_out T1 INNER JOIN product_record T2 ON T1.product_id = T2.product_id T1.productrecord_id = T2.id INNER JOIN supplier_manage T3 ON T1.supplier_id = T3.id INNER JOIN sys_user T4 ON T1.user_id = T4.user_id <where> <if test="stockOutdto.supplierName != null and stockOutdto.supplierName != ''"> AND T3.supplier_name LIKE CONCAT('%', #{stockOutdto.supplierName}, '%')