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..175c151a 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,59 @@ 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 fileRecordMap = new HashMap<>(); + if (!allImageIds.isEmpty()) { + List fileRecords = fileUploadRecordService.lambdaQuery() + .in(FileUploadRecord::getId, allImageIds) + .list(); + fileRecordMap = fileRecords.stream() + .collect(Collectors.toMap(FileUploadRecord::getId, r -> r, (a, b) -> a)); + } + // 构建返回列表 - Map finalMap = deliveryItemMap; + Map finalDeliveryItemMap = deliveryItemMap; + Map finalFileRecordMap = fileRecordMap; 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转换为FileDetailVO列表 String imageStr = r.getInspectionItemImage(); - if (imageStr != null && !imageStr.isEmpty()) { - vo.setInspectionItemImage(Arrays.stream(imageStr.split(",")) + if (StrUtil.isNotBlank(imageStr)) { + List imageDetails = Arrays.stream(imageStr.split(",")) .map(String::trim) - .filter(s -> !s.isEmpty()) - .collect(Collectors.toList())); + .filter(StrUtil::isNotBlank) + .map(Long::valueOf) + .map(finalFileRecordMap::get) + .filter(Objects::nonNull) + .map(file -> { + QmsPdiTaskRecordDetailVO.FileDetailVO fileVO = new QmsPdiTaskRecordDetailVO.FileDetailVO(); + fileVO.setId(file.getId()); + fileVO.setFileName(file.getFileName()); + fileVO.setFileType(file.getFileType()); + fileVO.setUrl(file.getUrl()); + return fileVO; + }) + .collect(Collectors.toList()); + vo.setInspectionItemImage(imageDetails); } else { vo.setInspectionItemImage(List.of()); } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordDetailVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordDetailVO.java index 0f93a154..317198e1 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordDetailVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsPdiTaskRecordDetailVO.java @@ -128,8 +128,8 @@ public class QmsPdiTaskRecordDetailVO { private String checklist; /** - * 现场图片/视频URL列表 + * 现场图片/视频详情列表 */ - private List inspectionItemImage; + private List inspectionItemImage; } }