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