From 211b87f775899d965be142e3a89d70fc96a24ea4 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期一, 30 三月 2026 09:50:06 +0800
Subject: [PATCH] fix(production): 修复产品结构遍历时空对象导致的异常
---
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
index dc66033..4c21a55 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -44,6 +44,7 @@
import oshi.driver.mac.net.NetStat;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
@@ -196,15 +197,20 @@
}
for (ProductStructureDto productStructureDto : productStructureDtos) {
ProductModel productModel1 = productModelMapper.selectById(productStructureDto.getProductModelId());
+ if(productModel1 == null){
+ continue;
+ }
Product product = productMapper.selectById(productModel1.getProductId());
// 鍒ゆ柇鏄惁涓烘渶鍚庝竴閬撳伐搴� 鎴栬�呬负绗竴閬撳伐搴�
- BigDecimal needQuantity = dto.getQuantity().divide(productStructureDto.getUnitQuantity(), 2, BigDecimal.ROUND_HALF_UP);
+ BigDecimal needQuantity = BigDecimal.ZERO;
+
+ if(BigDecimal.ZERO.equals(productStructureDto.getUnitQuantity())){
+ needQuantity = dto.getQuantity().divide(productStructureDto.getUnitQuantity(), 2, RoundingMode.HALF_UP);
+ }
if (lastProcessIds.contains(productStructureDto.getId()) || firstProcessIds.contains(productStructureDto.getId())) {
needQuantity = dto.getQuantity().multiply(productStructureDto.getUnitQuantity());
}
-
-
// 鏌ヨ浜у搧搴撳瓨
BigDecimal stockQuantity = stockUtils.getStockQuantity(productModel1.getId()).get("stockQuantity");
if (!(stockQuantity.compareTo(BigDecimal.ZERO) > 0)) {
--
Gitblit v1.9.3