From fbc53e77f994f15c3ebcd4fa07dfd23671c0ce26 Mon Sep 17 00:00:00 2001
From: lishenao <3065849776@qq.com>
Date: 星期五, 04 七月 2025 16:04:51 +0800
Subject: [PATCH] 入库管理,出库管理,库存管理后端接口修改
---
src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java | 127 ++++++++++--------------------------------
1 files changed, 31 insertions(+), 96 deletions(-)
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 371dad2..6ad5d02 100644
--- a/src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java
+++ b/src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java
@@ -14,6 +14,7 @@
import com.ruoyi.inventory.mapper.StockInMapper;
import com.ruoyi.inventory.pojo.StockManagement;
import com.ruoyi.inventory.service.StockInService;
+import com.ruoyi.purchase.dto.ProductRecordDto;
import com.ruoyi.purchase.dto.PurchaseLedgerDto;
import com.ruoyi.purchase.mapper.ProductRecordMapper;
import com.ruoyi.purchase.pojo.ProductRecord;
@@ -46,41 +47,30 @@
@Override
@Transactional(rollbackFor = Exception.class)
public void saveStockin(StockIn stockIn) {
-//闇�瑕佸厛鍒ゆ柇浜у搧璁板綍琛ㄤ腑鏄惁鏈夎浜у搧
- ProductRecord productRecord = productRecordMapper.selectById(stockIn.getProductRecordid());
- if (productRecord == null) {
- throw new RuntimeException("浜у搧璁板綍琛ㄤ腑娌℃湁璇ヤ骇鍝�");
- }
-// 闇�瑕佸厛鍒ゆ柇渚涘簲鍟嗚〃涓槸鍚︽湁璇ヤ緵搴斿晢
- 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());
+//闇�瑕佸厛鍒ゆ柇閲囪喘璁板綍琛ㄤ腑鏄惁鏈夎浜у搧鐨勯噰璐褰�
+// 鏍规嵁浜у搧id鏌ヨ閲囪喘璁板綍琛�
+ ProductRecordDto productRecordDto = productRecordMapper.selectProductRecordById(stockIn.getProductrecordId());
+ if (productRecordDto != null) {
+// 娣诲姞鍏ュ簱璁板綍鍜屽簱瀛樼鐞嗚褰�
+ stockIn.setInboundTime(new Date());
+// 鑷姩鐢熸垚鎵规鐮�
+ String batchCode = "RK" + System.currentTimeMillis();
+ 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.setBoundTime(new Date());
+ stockManagement.setInboundBatch(stockIn.getInboundBatch());
stockManagement.setUserId(stockIn.getUserId());
+ stockManagement.setSupplierId(productRecordDto.getSupplierId());
+ stockManagement.setBoundTime(stockIn.getInboundTime());
stockManagementMapper.insert(stockManagement);
+ }else {
+ throw new RuntimeException("閲囪喘璁板綍琛ㄤ腑娌℃湁璇ヤ骇鍝佺殑閲囪喘璁板綍");
}
-// 濡傛灉鏈夎浜у搧锛岄渶瑕佸厛鏇存柊搴撳瓨绠$悊琛�
- 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鑾峰彇搴撳瓨鍏ュ簱淇℃伅
@@ -88,75 +78,20 @@
StockIn stockIn = stockInMapper.selectById(id);
return stockIn;
}
+
@Override
@Transactional(rollbackFor = Exception.class)
- public boolean updateStockIn(StockIn stockIn) {
- // 1. 鍙傛暟鏍¢獙
- if (stockIn == null || stockIn.getId() == null) {
- throw new IllegalArgumentException("鍏ュ簱璁板綍ID涓嶈兘涓虹┖");
+ public void updateStockIn(StockIn stockIn) {
+// 闇�瑕佸厛鍒ゆ柇閲囪喘璁板綍琛ㄤ腑鏄惁鏈夎浜у搧鐨勯噰璐褰�
+ LambdaQueryWrapper<ProductRecord> queryWrapper1 = new LambdaQueryWrapper<>();
+ queryWrapper1.eq(ProductRecord::getId, stockIn.getProductrecordId());
+ ProductRecord productRecord = productRecordMapper.selectOne(queryWrapper1);
+ if (productRecord!= null) {
+ stockIn.setInboundTime(stockIn.getInboundTime());
+ stockInMapper.updateById(stockIn);
+ } else {
+ throw new RuntimeException("閲囪喘璁板綍琛ㄤ腑娌℃湁璇ヤ骇鍝佺殑閲囪喘璁板綍");
}
-
- // 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("渚涘簲鍟嗕笉瀛樺湪锛孖D: " + stockIn.getSupplierId());
- }
-
- // 4. 纭畾鏈�缁堜娇鐢ㄧ殑鍚処D鍊�
- 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;
}
--
Gitblit v1.9.3