From 31e23deb9ae71263fb59fcd82c26b22c9cdfc3d4 Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期六, 14 六月 2025 15:51:14 +0800
Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/zd-after

---
 main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java |   77 +++++++++++++++++++++++++++++++-------
 1 files changed, 62 insertions(+), 15 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 784b846..35c3e91 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
@@ -23,10 +23,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -50,10 +47,56 @@
     private final CoalFieldMapper coalFieldMapper;
 
     @Override
-    public IPage<PendingInventory> selectPendingInventoryList(Page page, PendingInventoryDto pendingInventoryDto) {
+    public IPage<PendingInventoryDto> selectPendingInventoryList(Page page, PendingInventoryDto pendingInventoryDto) {
+        // 1. 鏋勫缓涓绘煡璇�
         LambdaQueryWrapper<PendingInventory> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.orderByDesc(PendingInventory::getCreateTime);
-        return pendingInventoryMapper.selectPage(page, queryWrapper);
+
+        // 2. 鎵ц涓昏〃鍒嗛〉鏌ヨ
+        IPage<PendingInventory> pendingInventoryPage = pendingInventoryMapper.selectPage(page, queryWrapper);
+
+        // 3. 鏃犳暟鎹揩閫熻繑鍥�
+        if (CollectionUtils.isEmpty(pendingInventoryPage.getRecords())) {
+            return new Page<>(page.getCurrent(), page.getSize(), pendingInventoryPage.getTotal());
+        }
+
+        // 4. 鎻愬彇鎵�鏈夊緟澶勭悊搴撳瓨ID
+        List<Long> pendingIds = pendingInventoryPage.getRecords().stream()
+                .map(PendingInventory::getId)
+                .collect(Collectors.toList());
+
+        // 5. 鎵归噺鏌ヨ鍏宠仈鐨勬寮忓簱瀛樹俊鎭�
+        Map<Long, Long> pendingToOfficialMap = getOfficialInventoryMap(pendingIds);
+
+        // 6. 浣跨敤MyBatis-Plus鐨刢onvert鏂规硶杞崲DTO
+        return pendingInventoryPage.convert(record -> {
+            PendingInventoryDto dto = new PendingInventoryDto();
+            BeanUtils.copyProperties(record, dto);
+
+            // 浠庨鍔犺浇鐨凪ap涓幏鍙杘fficialId
+            dto.setOfficialId(pendingToOfficialMap.getOrDefault(record.getId(), null));
+            return dto;
+        });
+    }
+
+    // 鎵归噺鑾峰彇寰呭鐞嗗簱瀛樹笌姝e紡搴撳瓨鐨勬槧灏勫叧绯�
+    private Map<Long, Long> getOfficialInventoryMap(List<Long> pendingIds) {
+        if (CollectionUtils.isEmpty(pendingIds)) {
+            return Collections.emptyMap();
+        }
+
+        // 鏌ヨ鍏宠仈鐨勬寮忓簱瀛樻暟鎹�
+        LambdaQueryWrapper<OfficialInventory> wrapper = new LambdaQueryWrapper<>();
+        wrapper.select(OfficialInventory::getId, OfficialInventory::getPendingId)
+                .in(OfficialInventory::getPendingId, pendingIds);
+
+        return officialInventoryMapper.selectList(wrapper)
+                .stream()
+                .collect(Collectors.toMap(
+                        OfficialInventory::getPendingId,
+                        OfficialInventory::getId,
+                        (existing, replacement) -> existing // 濡傛灉鏈夐噸澶嶏紝淇濈暀绗竴涓�
+                ));
     }
 
     @Override
@@ -135,15 +178,19 @@
             } else {
                 pendingInventoryMapper.deleteById(pendingInventoryDto.getPId());
             }
-            officialInventoryMapper.delete(new LambdaQueryWrapper<OfficialInventory>().eq(OfficialInventory::getPendingId, pendingInventoryDto.getPId()));
-
-
-            OfficialInventory officialInventory = new OfficialInventory();
-            BeanUtils.copyProperties(pendingInventory, officialInventory);
-            officialInventory.setId(null);
-            officialInventory.setPendingId(pendingInventoryDto.getPId());
-            officialInventory.setInventoryQuantity(quantity);
-            officialInventoryMapper.insert(officialInventory);
+            //姝e紡搴�
+            if (pendingInventoryDto.getOfficialId() == null) {
+                OfficialInventory officialInventory = new OfficialInventory();
+                BeanUtils.copyProperties(pendingInventory, officialInventory);
+                officialInventory.setId(null);
+                officialInventory.setPendingId(pendingInventoryDto.getPId());
+                officialInventory.setInventoryQuantity(quantity);
+                officialInventoryMapper.insert(officialInventory);
+            }else {
+                OfficialInventory officialInventory = officialInventoryMapper.selectById(pendingInventoryDto.getOfficialId());
+                officialInventory.setInventoryQuantity(quantity.add(officialInventory.getInventoryQuantity()));
+                officialInventoryMapper.updateById(officialInventory);
+            }
         }
         return i;
     }

--
Gitblit v1.9.3