diff --git a/src/main/java/com/huaheng/pc/config/material/service/MaterialService.java b/src/main/java/com/huaheng/pc/config/material/service/MaterialService.java
index 3a0f255..b016c70 100644
--- a/src/main/java/com/huaheng/pc/config/material/service/MaterialService.java
+++ b/src/main/java/com/huaheng/pc/config/material/service/MaterialService.java
@@ -8,8 +8,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.huaheng.pc.config.material.domain.bo.MaterialComputeVariableBO;
 import com.huaheng.pc.inventory.inventoryTransaction.domain.InventoryTransaction;
 
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 public interface MaterialService extends IService<Material> {
 
diff --git a/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java b/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java
index b109e91..bfd5032 100644
--- a/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/inventory/inventoryDetail/service/InventoryDetailServiceImpl.java
@@ -34,11 +34,14 @@ import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.huaheng.pc.inventory.inventoryDetail.mapper.InventoryDetailMapper;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.lang.reflect.InvocationTargetException;
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 @Service
 public class InventoryDetailServiceImpl extends ServiceImpl<InventoryDetailMapper, InventoryDetail> implements InventoryDetailService {
@@ -279,59 +282,66 @@ public class InventoryDetailServiceImpl extends ServiceImpl<InventoryDetailMappe
     public List<InventoryDetail> expiringInventoryHandle(List<InventoryDetail> inventoryDetails, String expiring) {
         // 获取库存呆滞时间配置
         int days = Integer.parseInt(configService.getKey(QuantityConstant.DEAD_TIME));
-        int days_batch = Integer.parseInt(configService.getKey(QuantityConstant.DEAD_TIME_BATCH));
-        int days_flammable = Integer.parseInt(configService.getKey(QuantityConstant.DEAD_TIME_FLAMMABLE));
+        int daysBatch = Integer.parseInt(configService.getKey(QuantityConstant.DEAD_TIME_BATCH));
+        int daysFlammable = Integer.parseInt(configService.getKey(QuantityConstant.DEAD_TIME_FLAMMABLE));
+
         // 如果 inventoryDetails 为空,直接返回空列表
-        if (inventoryDetails == null || inventoryDetails.isEmpty()) {
+        if (CollectionUtils.isEmpty(inventoryDetails)) {
             return Collections.emptyList();
         }
-        // 初始化返回的库存列表
-        List<InventoryDetail> returnInventory = new ArrayList<>();
-        // 初始化呆滞库存和非呆滞库存列表
-        List<InventoryDetail> expiringInventory = new ArrayList<>();
-        List<InventoryDetail> noExpiringInventory = new ArrayList<>();
-
-        // 遍历库存明细
-        for (InventoryDetail inventoryDetail : inventoryDetails) {
+
+        // 获取所有物料编码
+        Set<String> materialCodes = inventoryDetails.stream()
+                .map(InventoryDetail::getMaterialCode)
+                .collect(Collectors.toSet());
+
+        // 批量查询物料信息
+        List<Material> materials = getMaterialsByCodes(materialCodes);
+
+        // 创建物料编码和物料对象的映射关系
+        Map<String, Material> materialMap = new HashMap<>();
+        for (Material material : materials) {
+            materialMap.put(material.getCode(), material);
+        }
+
+        return inventoryDetails.stream().collect(Collectors.partitioningBy(inventoryDetail -> {
             // 计算库存的更新时间和当前时间之间的差距
             long difference = DateUtils.difference(DateUtils.getNowDate(), inventoryDetail.getLastUpdated());
-            Material material = materialService.getMaterialByCode(inventoryDetail.getMaterialCode());
+
+            // 从 Map 中获取物料信息
+            Material material = materialMap.get(inventoryDetail.getMaterialCode());
+            if (material == null) {
+                return false;
+            }
 
             int materialDays = days;
-            if (StringUtils.isNotEmpty(material.getIsFlammable()) && material.getIsFlammable().equals("是")) {
-                materialDays = Math.min(materialDays, days_flammable);
-            } else if (StringUtils.isNotEmpty(material.getIsBatch()) && material.getIsBatch().equals("是")) {
-                materialDays = Math.min(materialDays, days_batch);
+            if (Objects.equals(material.getIsFlammable(), "是")) {
+                materialDays = Math.min(materialDays, daysFlammable);
+            } else if (Objects.equals(material.getIsBatch(), "是")) {
+                materialDays = Math.min(materialDays, daysBatch);
             }
+
             // 计算呆滞时长
             int differenceDay = DateUtils.secondToDays(difference);
             int num = differenceDay - materialDays;
-            // 根据呆滞时长将库存明细添加到相应列表
+
+            // 判断是否为呆滞库存
             if (num > 0) {
                 inventoryDetail.setDeadTime(num + "天");
-                expiringInventory.add(inventoryDetail);
-            } else {
-                noExpiringInventory.add(inventoryDetail);
+                return true;
             }
-        }
-
+            return false;
+        })).getOrDefault(expiring.equals("1"), Collections.emptyList());
+    }
 
-        switch (expiring) {
-            //呆滞库存
-            case "1":
-                returnInventory.addAll(expiringInventory);
-                break;
-            case "2":
-                //未呆滞库存
-                returnInventory.addAll(noExpiringInventory);
-                break;
-            default:
-                //全部库存
-                returnInventory.addAll(expiringInventory);
-                returnInventory.addAll(noExpiringInventory);
-                break;
+    public List<Material> getMaterialsByCodes(Set<String> materialCodes) {
+        if (CollectionUtils.isEmpty(materialCodes)) {
+            return Collections.emptyList();
         }
-        return returnInventory;
+        //in 方法进行批量查询
+        LambdaQueryWrapper<Material> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(Material::getCode, materialCodes);
+        return materialService.list(queryWrapper);
     }
 
     @Override