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