From 74a29854bb8ff92d2ff2fcb55fa5028609ec6a33 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 14 七月 2026 15:26:47 +0800
Subject: [PATCH] 采购删除导致审批报错+发货台账导入关联销售台账+生成出库记录

---
 src/main/java/com/ruoyi/sales/controller/WeighingRecordController.java |   35 +++++++++++++++++++++++++++++++----
 1 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/controller/WeighingRecordController.java b/src/main/java/com/ruoyi/sales/controller/WeighingRecordController.java
index 9fd3351..9b47705 100644
--- a/src/main/java/com/ruoyi/sales/controller/WeighingRecordController.java
+++ b/src/main/java/com/ruoyi/sales/controller/WeighingRecordController.java
@@ -16,11 +16,14 @@
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
+import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.ArrayList;
 import java.util.List;
+
+import static com.ruoyi.framework.datasource.DynamicDataSourceContextHolder.log;
 
 /**
  * 杩囩璁板綍锛堢鍗曞彴璐︼級Controller
@@ -74,11 +77,15 @@
             // 鍘婚噸妫�鏌�
             List<WeighingRecord> newRecordList = new ArrayList<>();
             int duplicateCount = 0;
+            int matchedCount = 0;
+            int unmatchedCount = 0;
 
             for (WeighingRecord record : weighingRecordList) {
                 LambdaQueryWrapper<WeighingRecord> wrapper = new LambdaQueryWrapper<>();
                 wrapper.eq(WeighingRecord::getSerialNo, record.getSerialNo());
-
+                if (ObjectUtils.isEmpty(record.getSpecification())) {
+                    record.setSpecification("/");
+                }
                 long count = weighingRecordService.count(wrapper);
                 if (count == 0) {
                     newRecordList.add(record);
@@ -91,13 +98,33 @@
                 return R.fail("鎵�鏈夋暟鎹兘宸插瓨鍦紝鍏�" + duplicateCount + "鏉¢噸澶嶆暟鎹�");
             }
 
-            // 鎵归噺鎻掑叆鏂版暟鎹�
-            weighingRecordService.saveBatch(newRecordList);
+            // 鎵归噺鎻掑叆鏂版暟鎹苟鎵ц鍑哄簱鎿嶄綔
+            for (WeighingRecord record : newRecordList) {
+                // 鍏堜繚瀛樼鍗曡褰曪紝鑾峰彇ID
+                weighingRecordService.save(record);
 
-            String message = String.format("瀵煎叆鎴愬姛锛�%d鏉★紝璺宠繃閲嶅锛�%d鏉�", newRecordList.size(), duplicateCount);
+
+                // 鏍规嵁瀹㈡埛銆佷骇鍝佸悕绉般�佽鏍煎尮閰嶉攢鍞彴璐﹀苟鍑哄簱
+                Long productId = weighingRecordService.matchAndOutStock(
+                        record.getReceiveUnit(),      // 鏀惰揣鍗曚綅=瀹㈡埛
+                        record.getGoodsName(),        // 璐у悕=浜у搧鍚嶇О
+                        record.getSpecification(),    // 瑙勬牸鍨嬪彿
+                        record.getNetWeight(),       // 鍑�閲�=鏁伴噺
+                        record.getId()               // 纾呭崟ID浣滀负鍏宠仈璁板綍ID
+                );
+                if (productId != null) {
+                    matchedCount++;
+                } else {
+                    unmatchedCount++;
+                }
+            }
+
+            String message = String.format("瀵煎叆鎴愬姛锛�%d鏉★紝璺宠繃閲嶅锛�%d鏉★紝鍖归厤鍑哄簱锛�%d鏉★紝鏈尮閰嶏細%d鏉�",
+                    newRecordList.size(), duplicateCount, matchedCount, unmatchedCount);
             return R.ok(message);
 
         } catch (Exception e) {
+            log.error("纾呭崟瀵煎叆澶辫触锛歿}", e.getMessage());
             return R.fail("瀵煎叆澶辫触锛�" + e.getMessage());
         }
     }

--
Gitblit v1.9.3