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