From 4fedbed9949c6160dcfa216d6660bd3c625f7bce Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 25 六月 2025 11:49:55 +0800
Subject: [PATCH] 优化

---
 main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java |   41 ++++++++++++++++++++++++++++++++---------
 1 files changed, 32 insertions(+), 9 deletions(-)

diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java
index bcf7e46..a38e13b 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java
@@ -7,8 +7,10 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.basic.entity.CoalField;
+import com.ruoyi.basic.entity.CoalInfo;
 import com.ruoyi.basic.entity.CoalValue;
 import com.ruoyi.basic.mapper.CoalFieldMapper;
+import com.ruoyi.basic.mapper.CoalInfoMapper;
 import com.ruoyi.basic.mapper.CoalValueMapper;
 import com.ruoyi.business.dto.PendingInventoryDto;
 import com.ruoyi.business.entity.OfficialInventory;
@@ -26,6 +28,7 @@
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -47,6 +50,8 @@
     private final CoalValueMapper coalValueMapper;
 
     private final CoalFieldMapper coalFieldMapper;
+
+    private final CoalInfoMapper coalInfoMapper;
 
     private final InputInventoryRecordService inputInventoryRecordService;
 
@@ -71,19 +76,42 @@
                 .map(PendingInventory::getId)
                 .collect(Collectors.toList());
 
-        // 5. 鎵归噺鏌ヨ鍏宠仈鐨勬寮忓簱瀛樹俊鎭�
+        // 5. 鎵归噺鏌ヨ鍏宠仈鐨勭叅鐐俊鎭拰姝e紡搴撳瓨淇℃伅
+        List<Long> coalIds = pendingInventoryPage.getRecords().stream()
+                .map(PendingInventory::getCoalId)
+                .distinct()
+                .collect(Collectors.toList());
+
+        // 鎵归噺鏌ヨCoalInfo
+        Map<Long, CoalInfo> coalInfoMap;
+        if (!coalIds.isEmpty()) {
+            List<CoalInfo> coalInfos = coalInfoMapper.selectList(new LambdaQueryWrapper<CoalInfo>().in(CoalInfo::getId, coalIds));
+            coalInfoMap = coalInfos.stream().collect(Collectors.toMap(CoalInfo::getId, Function.identity()));
+        } else {
+            coalInfoMap = new HashMap<>();
+        }
+
+        // 鎵归噺鏌ヨ姝e紡搴撳瓨淇℃伅
         Map<Long, Long> pendingToOfficialMap = getOfficialInventoryMap(pendingIds);
 
-        // 6. 浣跨敤MyBatis-Plus鐨刢onvert鏂规硶杞崲DTO
+        // 6. 杞崲DTO骞惰缃浉鍏冲瓧娈�
         return pendingInventoryPage.convert(record -> {
             PendingInventoryDto dto = new PendingInventoryDto();
             BeanUtils.copyProperties(record, dto);
 
+            // 璁剧疆Coal淇℃伅
+            CoalInfo coalInfo = coalInfoMap.get(record.getCoalId());
+            if (coalInfo != null) {
+                dto.setCoal(coalInfo.getCoal());
+            }
+
             // 浠庨鍔犺浇鐨凪ap涓幏鍙杘fficialId
             dto.setOfficialId(pendingToOfficialMap.getOrDefault(record.getId(), null));
+
             return dto;
         });
     }
+
 
     // 鎵归噺鑾峰彇寰呭鐞嗗簱瀛樹笌姝e紡搴撳瓨鐨勬槧灏勫叧绯�
     private Map<Long, Long> getOfficialInventoryMap(List<Long> pendingIds) {
@@ -168,6 +196,7 @@
                 coalValue.setCoalValue(value);
                 coalValue.setFields(key);
                 coalValue.setFieldName(fieldName);
+                coalValue.setType(String.valueOf(1));
                 i = coalValueMapper.insert(coalValue);
             }
         }
@@ -192,7 +221,7 @@
                 officialInventory.setPendingId(pendingInventoryDto.getPId());
                 officialInventory.setInventoryQuantity(quantity);
                 officialInventoryMapper.insert(officialInventory);
-            }else {
+            } else {
                 OfficialInventory officialInventory = officialInventoryMapper.selectById(pendingInventoryDto.getOfficialId());
                 officialInventory.setInventoryQuantity(quantity.add(officialInventory.getInventoryQuantity()));
                 officialInventoryMapper.updateById(officialInventory);
@@ -200,10 +229,4 @@
         }
         return i;
     }
-
-    // 澶勭悊鏄庣粏鍜屽簱瀛樻暟閲�
-    private int handeInventoryQuantity(PendingInventoryDto pendingInventoryDto) {
-        inputInventoryRecordService.insertInputInventoryRecord(pendingInventoryDto, null, pendingInventoryDto.getInventoryQuantity());
-        return inventorySummaryService.updateInventory(pendingInventoryDto, null);
-    };
 }

--
Gitblit v1.9.3