diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiStatusItemControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiStatusItemControllerService.java index 05d2d433..847d80aa 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiStatusItemControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiStatusItemControllerService.java @@ -205,6 +205,7 @@ public class QmsPdiStatusItemControllerService { */ public void export(HttpServletResponse response, List ids, Long detectionRulesId, List status) throws IOException { List data = statusItemMapper.listForExport(ids, detectionRulesId, status); + fillExportInspectionImageUrl(data); // 根据状态列表生成文件名 StringBuilder statusName = new StringBuilder("PDI"); @@ -225,6 +226,48 @@ public class QmsPdiStatusItemControllerService { .writeTo(response.getOutputStream()); } + private void fillExportInspectionImageUrl(List data) { + if (CollectionUtil.isEmpty(data)) { + return; + } + + Set fileIds = data.stream() + .map(QmsPdiStatusItemExportDTO::getInspectionImage) + .filter(StrUtil::isNotBlank) + .map(String::trim) + .map(this::parseFileId) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + + Map fileUrlMap = new HashMap<>(); + if (CollectionUtil.isNotEmpty(fileIds)) { + fileUrlMap = fileUploadRecordService.listByIds(fileIds).stream() + .filter(record -> record != null && StrUtil.isNotBlank(record.getUrl())) + .collect(Collectors.toMap(FileUploadRecord::getId, FileUploadRecord::getUrl, (a, b) -> a)); + } + + for (QmsPdiStatusItemExportDTO dto : data) { + String inspectionImage = StrUtil.trim(dto.getInspectionImage()); + Long fileId = parseFileId(inspectionImage); + if (StrUtil.isBlank(inspectionImage)) { + dto.setInspectionImage(""); + } else if (fileId != null) { + dto.setInspectionImage(StrUtil.blankToDefault(fileUrlMap.get(fileId), "")); + } + } + } + + private Long parseFileId(String value) { + if (StrUtil.isBlank(value)) { + return null; + } + try { + return Long.valueOf(value.trim()); + } catch (NumberFormatException e) { + return null; + } + } + // ========================= 下载导入模板 ========================= /**