From 49e1bc66ebaf696ebd3fc3ed33d65c8795fd3cde Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 01 七月 2025 18:05:12 +0800
Subject: [PATCH] 1.巡检定时任务 2.设备管理 3.文档查询
---
main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 58 insertions(+), 2 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 af85197..412e7bb 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;
@@ -18,14 +20,17 @@
import com.ruoyi.business.service.InputInventoryRecordService;
import com.ruoyi.business.service.InventorySummaryService;
import com.ruoyi.business.service.PendingInventoryService;
+import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.system.mapper.SysUserMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*;
+import java.util.function.Function;
import java.util.stream.Collectors;
/**
@@ -47,6 +52,10 @@
private final CoalValueMapper coalValueMapper;
private final CoalFieldMapper coalFieldMapper;
+
+ private final CoalInfoMapper coalInfoMapper;
+
+ private final SysUserMapper sysUserMapper;
private final InputInventoryRecordService inputInventoryRecordService;
@@ -71,19 +80,62 @@
.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<>();
+ }
+
+ // 5. 鎵归噺鏌ヨ鐧昏浜篿d
+ List<Long> registrantIds = pendingInventoryPage.getRecords().stream()
+ .map(PendingInventory::getRegistrantId)
+ .distinct()
+ .toList();
+ // 鎵归噺鏌ヨ鐧昏浜�
+ Map<Long, SysUser> sysUserMap;
+ if (!registrantIds.isEmpty()) {
+ List<SysUser> sysUsers = sysUserMapper.selectList(registrantIds);
+ sysUserMap = sysUsers.stream().collect(Collectors.toMap(SysUser::getUserId, Function.identity()));
+ } else {
+ sysUserMap = 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());
+ }
+
+ // 璁剧疆鐧昏浜�
+ SysUser sysUser = sysUserMap.get(record.getRegistrantId());
+ if (sysUser != null) {
+ dto.setRegistrant(sysUser.getNickName());
+ }
+
// 浠庨鍔犺浇鐨凪ap涓幏鍙杘fficialId
dto.setOfficialId(pendingToOfficialMap.getOrDefault(record.getId(), null));
+
return dto;
});
}
+
// 鎵归噺鑾峰彇寰呭鐞嗗簱瀛樹笌姝e紡搴撳瓨鐨勬槧灏勫叧绯�
private Map<Long, Long> getOfficialInventoryMap(List<Long> pendingIds) {
@@ -181,6 +233,7 @@
BigDecimal left = pendingInventory.getInventoryQuantity().subtract(quantity);
if (left.compareTo(BigDecimal.ZERO) > 0) {
pendingInventory.setInventoryQuantity(left);
+ pendingInventory.setCoalPlanId(pendingInventoryDto.getCoalPlanId());
pendingInventoryMapper.updateById(pendingInventory);
} else {
pendingInventoryMapper.deleteById(pendingInventoryDto.getPId());
@@ -190,8 +243,11 @@
OfficialInventory officialInventory = new OfficialInventory();
BeanUtils.copyProperties(pendingInventory, officialInventory);
officialInventory.setId(null);
+ officialInventory.setCoalPlanId(pendingInventoryDto.getCoalPlanId());
officialInventory.setPendingId(pendingInventoryDto.getPId());
officialInventory.setInventoryQuantity(quantity);
+ officialInventory.setRegistrantId(1L);
+ officialInventory.setSupplierId(pendingInventoryDto.getSupplierId());
officialInventoryMapper.insert(officialInventory);
} else {
OfficialInventory officialInventory = officialInventoryMapper.selectById(pendingInventoryDto.getOfficialId());
--
Gitblit v1.9.3