From 2656ae9bce8544d81da66c07aaede5386d6fbebb Mon Sep 17 00:00:00 2001 From: liding <756868258@qq.com> Date: 星期五, 25 七月 2025 15:41:01 +0800 Subject: [PATCH] 1.序列化问题 2.设备领用逻辑优化 --- main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentUsageDetailServiceImpl.java | 113 ++++++++++++++++++++++++++------------------------------ 1 files changed, 53 insertions(+), 60 deletions(-) diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentUsageDetailServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentUsageDetailServiceImpl.java index cb19b1a..3f0025b 100644 --- a/main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentUsageDetailServiceImpl.java +++ b/main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentUsageDetailServiceImpl.java @@ -1,9 +1,7 @@ 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.business.dto.EquipmentManagementDto; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.business.dto.EquipmentUsageDetailDto; import com.ruoyi.business.entity.EquipmentManagement; import com.ruoyi.business.entity.EquipmentUsageDetail; @@ -11,14 +9,11 @@ import com.ruoyi.business.mapper.EquipmentManagementMapper; import com.ruoyi.business.mapper.EquipmentUsageDetailMapper; import com.ruoyi.business.mapper.EquipmentUsageRecordMapper; -import com.ruoyi.business.service.EquipmentManagementService; import com.ruoyi.business.service.EquipmentUsageDetailService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.business.service.EquipmentUsageRecordService; import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.bean.BeanUtils; -import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; import java.util.Collections; import java.util.HashMap; @@ -47,72 +42,70 @@ @Override - public IPage<EquipmentUsageDetailDto> selectEquipmentUsageDetailList(Page<EquipmentUsageDetail> page,EquipmentUsageDetailDto equipmentUsageDetailDto) { - // 蹇呴』浼犻�抲sageId鍙傛暟 + public List<EquipmentUsageDetailDto> selectEquipmentUsageDetailList(EquipmentUsageDetailDto equipmentUsageDetailDto) { + // 蹇呴』浼犻�� usageId 鍙傛暟 if (equipmentUsageDetailDto.getUsageId() == null) { throw new BaseException("璇烽�夋嫨浣跨敤璁板綍"); } + + // 鏌ヨ鏄庣粏鍒楄〃锛堜笉鍒嗛〉锛� LambdaQueryWrapper<EquipmentUsageDetail> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(EquipmentUsageDetail::getUsageId, equipmentUsageDetailDto.getUsageId()); + List<EquipmentUsageDetail> details = equipmentUsageDetailMapper.selectList(queryWrapper); - Page<EquipmentUsageDetail> entityPage = equipmentUsageDetailMapper.selectPage(page, queryWrapper); - IPage<EquipmentUsageDetailDto> dtoPage = new Page<>(); - BeanUtils.copyProperties(entityPage, dtoPage); - // 鍏堣幏鍙栦富琛ㄨ褰� - List<Long> usageIds = entityPage.getRecords().stream() + // 濡傛灉娌℃湁鏁版嵁锛岀洿鎺ヨ繑鍥炵┖鍒楄〃 + if (details.isEmpty()) { + return Collections.emptyList(); + } + + // 鑾峰彇鎵�鏈夊叧鑱旂殑 usageId + List<Long> usageIds = details.stream() .map(EquipmentUsageDetail::getUsageId) .distinct() .collect(Collectors.toList()); - if (!usageIds.isEmpty()) { - // 鏌ヨ鍏宠仈鐨勪娇鐢ㄨ褰� - List<EquipmentUsageRecord> usageRecords = equipmentUsageRecordMapper.selectList( - new LambdaQueryWrapper<EquipmentUsageRecord>() - .in(EquipmentUsageRecord::getId, usageIds) - ); + // 鏌ヨ鍏宠仈鐨勪娇鐢ㄨ褰� + List<EquipmentUsageRecord> usageRecords = equipmentUsageRecordMapper.selectList( + new LambdaQueryWrapper<EquipmentUsageRecord>() + .in(EquipmentUsageRecord::getId, usageIds) + ); - // 鑾峰彇鎵�鏈夎澶嘔D - List<Long> equipmentIds = usageRecords.stream() - .map(EquipmentUsageRecord::getEquipmentId) - .distinct() - .collect(Collectors.toList()); + // 鑾峰彇鎵�鏈夎澶嘔D + List<Long> equipmentIds = usageRecords.stream() + .map(EquipmentUsageRecord::getEquipmentId) + .distinct() + .collect(Collectors.toList()); - // 鏌ヨ璁惧淇℃伅 - Map<Long, EquipmentManagement> equipmentMap; - if (!equipmentIds.isEmpty()) { - equipmentMap = equipmentManagementMapper.selectList( - new LambdaQueryWrapper<EquipmentManagement>() - .in(EquipmentManagement::getId, equipmentIds) - ).stream().collect(Collectors.toMap(EquipmentManagement::getId, Function.identity())); - } else { - equipmentMap = new HashMap<>(); + // 鏌ヨ璁惧淇℃伅 + Map<Long, EquipmentManagement> equipmentMap; + if (!equipmentIds.isEmpty()) { + equipmentMap = equipmentManagementMapper.selectList( + new LambdaQueryWrapper<EquipmentManagement>() + .in(EquipmentManagement::getId, equipmentIds) + ).stream().collect(Collectors.toMap(EquipmentManagement::getId, Function.identity())); + } else { + equipmentMap = new HashMap<>(); + } + + // 鏋勫缓 usageId 鈫� equipmentId 鐨勬槧灏� + Map<Long, Long> usageIdToEquipmentIdMap = usageRecords.stream() + .collect(Collectors.toMap(EquipmentUsageRecord::getId, EquipmentUsageRecord::getEquipmentId)); + + // 杞崲涓� DTO 骞跺~鍏呰澶囦俊鎭� + return details.stream().map(detail -> { + EquipmentUsageDetailDto detailDto = new EquipmentUsageDetailDto(); + BeanUtils.copyProperties(detail, detailDto); + + // 鑾峰彇鍏宠仈鐨勮澶囦俊鎭� + Long equipmentId = usageIdToEquipmentIdMap.get(detail.getUsageId()); + if (equipmentId != null && equipmentMap.containsKey(equipmentId)) { + EquipmentManagement equipment = equipmentMap.get(equipmentId); + detailDto.setEquipmentNo(equipment.getEquipmentNo()); + detailDto.setEquipmentName(equipment.getEquipmentName()); + detailDto.setSpecification(equipment.getSpecification()); } - // 鏋勫缓浣跨敤璁板綍ID鍒拌澶嘔D鐨勬槧灏� - Map<Long, Long> usageIdToEquipmentIdMap = usageRecords.stream() - .collect(Collectors.toMap(EquipmentUsageRecord::getId, EquipmentUsageRecord::getEquipmentId)); - - // 杞崲DTO骞跺~鍏呰澶囦俊鎭� - List<EquipmentUsageDetailDto> dtoList = entityPage.getRecords().stream().map(detail -> { - EquipmentUsageDetailDto detailDto = new EquipmentUsageDetailDto(); - BeanUtils.copyProperties(detail, detailDto); - - // 鑾峰彇鍏宠仈鐨勮澶嘔D - Long equipmentId = usageIdToEquipmentIdMap.get(detail.getUsageId()); - if (equipmentId != null && equipmentMap.containsKey(equipmentId)) { - EquipmentManagement equipment = equipmentMap.get(equipmentId); - detailDto.setEquipmentNo(equipment.getEquipmentNo()); - detailDto.setEquipmentName(equipment.getEquipmentName()); - detailDto.setSpecification(equipment.getSpecification()); - } - - return detailDto; - }).collect(Collectors.toList()); - - dtoPage.setRecords(dtoList); - } else { - dtoPage.setRecords(Collections.emptyList()); - } - return dtoPage; + return detailDto; + }).collect(Collectors.toList()); } } -- Gitblit v1.9.3