liding
14 小时以前 4fedbed9949c6160dcfa216d6660bd3c625f7bce
main-business/src/main/java/com/ruoyi/business/service/impl/OfficialInventoryServiceImpl.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.OfficialInventoryDto;
import com.ruoyi.business.entity.OfficialInventory;
@@ -23,6 +25,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@@ -42,6 +45,8 @@
    private final CoalValueMapper coalValueMapper;
    private final CoalFieldMapper coalFieldMapper;
    private final CoalInfoMapper coalInfoMapper;
    @Override
@@ -63,6 +68,21 @@
                .map(CoalField::getFields)
                .distinct()
                .collect(Collectors.toList());
        //查询煤种ids
        List<Long> coalIds = entityPage.getRecords().stream()
                .map(OfficialInventory::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<>();
        }
        //  遍历每条记录,进行转换并填充 fields
        for (OfficialInventory entity : entityPage.getRecords()) {
@@ -97,6 +117,12 @@
                fields.add(fieldMap);
            }
            // 设置Coal信息
            CoalInfo coalInfo = coalInfoMap.get(entity.getCoalId());
            if (coalInfo != null) {
                dto.setCoal(coalInfo.getCoal());
            }
            // 设置到 DTO 中
            dto.setFields(fields);
            dtoList.add(dto);
@@ -120,6 +146,8 @@
                .map(OI -> {
                    OfficialInventoryVo vo = new OfficialInventoryVo();
                    BeanUtils.copyProperties(OI, vo);
                    CoalInfo coalInfo = coalInfoMapper.selectById(OI.getCoalId());
                    vo.setCoal(coalInfo.getCoal());
                    return vo;
                })
                .collect(Collectors.toList());