diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiInspectionResultsControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiInspectionResultsControllerService.java index 97b45dc0..207e4049 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiInspectionResultsControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiInspectionResultsControllerService.java @@ -1,5 +1,6 @@ package com.nflg.qms.admin.service; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.wms.common.constant.STATE; import com.nflg.wms.common.exception.NflgException; @@ -516,26 +517,51 @@ public class QmsPdiInspectionResultsControllerService { .collect(Collectors.toMap(QmsPdiDetectionRulesDeliveryItem::getId, di -> di, (a, b) -> a)); } + // 收集所有图片ID + Set allImageIds = results.stream() + .map(QmsPdiInspectionResults::getInspectionItemImage) + .filter(StrUtil::isNotBlank) + .flatMap(imageStr -> Arrays.stream(imageStr.split(","))) + .filter(StrUtil::isNotBlank) + .map(String::trim) + .map(Long::valueOf) + .collect(Collectors.toSet()); + + // 批量查询图片文件信息 + Map imageUrlMap = new HashMap<>(); + if (!allImageIds.isEmpty()) { + List fileRecords = fileUploadRecordService.lambdaQuery() + .in(FileUploadRecord::getId, allImageIds) + .list(); + imageUrlMap = fileRecords.stream() + .collect(Collectors.toMap(FileUploadRecord::getId, FileUploadRecord::getUrl, (a, b) -> a)); + } + // 构建返回列表 - Map finalMap = deliveryItemMap; + Map finalDeliveryItemMap = deliveryItemMap; + Map finalImageUrlMap = imageUrlMap; List detailList = new ArrayList<>(); for (QmsPdiInspectionResults r : results) { QmsPdiTaskRecordDetailVO.DeliveryItemDetailVO vo = new QmsPdiTaskRecordDetailVO.DeliveryItemDetailVO(); vo.setDeliveryItemId(r.getInspectionItemId()); // checklist 从 delivery_item 获取 - QmsPdiDetectionRulesDeliveryItem di = finalMap.get(r.getInspectionItemId()); + QmsPdiDetectionRulesDeliveryItem di = finalDeliveryItemMap.get(r.getInspectionItemId()); if (di != null) { vo.setChecklist(di.getChecklist()); } - // inspectionItemImage 按逗号拆分,直接返回URL列表 + // inspectionItemImage 按逗号拆分,将ID转换为URL String imageStr = r.getInspectionItemImage(); - if (imageStr != null && !imageStr.isEmpty()) { - vo.setInspectionItemImage(Arrays.stream(imageStr.split(",")) + if (StrUtil.isNotBlank(imageStr)) { + List imageUrls = Arrays.stream(imageStr.split(",")) .map(String::trim) - .filter(s -> !s.isEmpty()) - .collect(Collectors.toList())); + .filter(StrUtil::isNotBlank) + .map(Long::valueOf) + .map(finalImageUrlMap::get) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + vo.setInspectionItemImage(imageUrls); } else { vo.setInspectionItemImage(List.of()); }