package com.ruoyi.business.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.basic.entity.Supply; import com.ruoyi.business.dto.EquipmentManagementDto; import com.ruoyi.business.dto.EquipmentUsageRecordDto; import com.ruoyi.business.entity.EquipmentManagement; import com.ruoyi.business.entity.EquipmentUsageRecord; import com.ruoyi.business.mapper.EquipmentManagementMapper; import com.ruoyi.business.mapper.EquipmentUsageRecordMapper; import com.ruoyi.business.service.EquipmentUsageRecordService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.utils.bean.BeanUtils; import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.function.Function; import java.util.stream.Collectors; /** *

* 设备使用记录表 服务实现类 *

* * @author ld * @since 2025-07-07 */ @Service @RequiredArgsConstructor public class EquipmentUsageRecordServiceImpl extends ServiceImpl implements EquipmentUsageRecordService { private final EquipmentUsageRecordMapper equipmentUsageRecordMapper; private final EquipmentManagementMapper equipmentManagementMapper; @Override public IPage selectUsageRecordList(Page page, EquipmentUsageRecordDto equipmentUsageRecordDto) { Page entityPage = equipmentUsageRecordMapper.selectPage(page, null); IPage dtoPage = new Page<>(); BeanUtils.copyProperties(entityPage, dtoPage); List eqIds = entityPage.getRecords().stream().map(EquipmentUsageRecord::getEquipmentId).toList(); //批量查询 Map equipmentManagementMap; if (!eqIds.isEmpty()) { List infos = equipmentManagementMapper.selectList(new LambdaQueryWrapper().in(EquipmentManagement::getId, eqIds)); equipmentManagementMap = infos.stream().collect(Collectors.toMap(EquipmentManagement::getId, Function.identity())); } else { equipmentManagementMap = new HashMap<>(); } //匹配数据 List dtoRecords = entityPage.getRecords().stream().map(entity -> { EquipmentUsageRecordDto dto = new EquipmentUsageRecordDto(); BeanUtils.copyProperties(entity, dto); EquipmentManagement equipment = equipmentManagementMap.get(entity.getEquipmentId()); if (equipment != null) { dto.setEquipmentNo(equipment.getEquipmentNo()); dto.setEquipmentName(equipment.getEquipmentName()); } return dto; }).toList(); dtoPage.setRecords(dtoRecords); return dtoPage; } @Override public int addOrEditUsageRecord(EquipmentUsageRecordDto equipmentUsageRecordDto) { EquipmentUsageRecord equipmentUsageRecord = new EquipmentUsageRecord(); BeanUtils.copyProperties(equipmentUsageRecordDto, equipmentUsageRecord); if (Objects.isNull(equipmentUsageRecordDto.getId())) { return equipmentUsageRecordMapper.insert(equipmentUsageRecord); } else { return equipmentUsageRecordMapper.updateById(equipmentUsageRecord); } } }