| | |
| | | } |
| | | |
| | | @Override |
| | | public List<OfficialInventoryDto> coalBlendingList() { |
| | | // 1. 查询基础库存数据 |
| | | List<OfficialInventory> officialInventories = officialInventoryMapper.selectList(null); |
| | | // 2. 收集所有需要查询的ID |
| | | Set<Long> coalIds = new HashSet<>(); |
| | | Set<Long> supplierIds = new HashSet<>(); |
| | | Set<Long> planIds = new HashSet<>(); |
| | | |
| | | officialInventories.forEach(inventory -> { |
| | | coalIds.add(inventory.getCoalId()); |
| | | supplierIds.add(inventory.getSupplierId()); |
| | | planIds.add(inventory.getCoalPlanId()); |
| | | }); |
| | | // 3. 批量查询关联数据 |
| | | Map<Long, CoalInfo> coalInfoMap = coalInfoMapper.selectByIds(coalIds).stream() |
| | | .collect(Collectors.toMap(CoalInfo::getId, Function.identity())); |
| | | |
| | | Map<Long, Supply> supplyMap = supplyMapper.selectByIds(supplierIds).stream() |
| | | .collect(Collectors.toMap(Supply::getId, Function.identity())); |
| | | |
| | | List<CoalValue> coalValues = coalValueMapper.selectList( |
| | | new LambdaQueryWrapper<CoalValue>().in(CoalValue::getPlanId, planIds)); |
| | | // 4. 组装DTO |
| | | return officialInventories.stream() |
| | | .map(inventory -> { |
| | | OfficialInventoryDto dto = new OfficialInventoryDto(); |
| | | BeanUtils.copyProperties(inventory, dto); |
| | | // 设置煤种信息 |
| | | CoalInfo coalInfo = coalInfoMap.get(inventory.getCoalId()); |
| | | Supply supply = supplyMap.get(inventory.getSupplierId()); |
| | | if (coalInfo != null && supply != null) { |
| | | dto.setSupplierCoal(supply.getSupplierName() + " - " + coalInfo.getCoal()); |
| | | } |
| | | // 设置煤质数据 |
| | | dto.setCoalValues(coalValues); |
| | | return dto; |
| | | }) |
| | | .collect(Collectors.toList()); |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, BigDecimal> selectOfficialAllInfo() { |
| | | // 1. 查询 official_inventory 表数据 |
| | | List<OfficialInventory> officialInventories = officialInventoryMapper.selectList(null); |