Merge remote-tracking branch '惠信/qms/develop' into qms/develop

This commit is contained in:
曹鹏飞 2026-05-09 09:32:07 +08:00
commit c636e24ae3
2 changed files with 43 additions and 9 deletions

View File

@ -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<Long> 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<Long, FileUploadRecord> fileRecordMap = new HashMap<>();
if (!allImageIds.isEmpty()) {
List<FileUploadRecord> fileRecords = fileUploadRecordService.lambdaQuery()
.in(FileUploadRecord::getId, allImageIds)
.list();
fileRecordMap = fileRecords.stream()
.collect(Collectors.toMap(FileUploadRecord::getId, r -> r, (a, b) -> a));
}
// 构建返回列表
Map<Long, QmsPdiDetectionRulesDeliveryItem> finalMap = deliveryItemMap;
Map<Long, QmsPdiDetectionRulesDeliveryItem> finalDeliveryItemMap = deliveryItemMap;
Map<Long, FileUploadRecord> finalFileRecordMap = fileRecordMap;
List<QmsPdiTaskRecordDetailVO.DeliveryItemDetailVO> 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<QmsPdiTaskRecordDetailVO.FileDetailVO> 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());
}

View File

@ -128,8 +128,8 @@ public class QmsPdiTaskRecordDetailVO {
private String checklist;
/**
* 现场图片/视频URL列表
* 现场图片/视频详情列表
*/
private List<String> inspectionItemImage;
private List<FileDetailVO> inspectionItemImage;
}
}