|
|
@@ -100,6 +100,44 @@ public class InsTaskImagesServiceImpl extends ServiceImpl<InsTaskImagesMapper, I
|
|
|
return HttpResult.ok(collect);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<InsTaskImagesBase64> findByQuoteNoToBase64(String quoteNo, String companyId) {
|
|
|
+ // 获取缓存中的影像信息
|
|
|
+ JSONObject uploadImage = insImagesUploadCacheComponents.isUploadImage(companyId);
|
|
|
+ List<InsUploadImagesDto> insUploadImagesDtos = baseMapper.getByQuoteNoToBase64List(quoteNo);
|
|
|
+ if (insUploadImagesDtos.isEmpty()) {
|
|
|
+ throw new SystemException("请检查影像是否上传");
|
|
|
+ }
|
|
|
+ // 使用 imagesId 去重
|
|
|
+ List<InsUploadImagesDto> deduplication = insUploadImagesDtos.stream().collect(
|
|
|
+ Collectors.collectingAndThen(
|
|
|
+ Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(InsUploadImagesDto::getImageId))),
|
|
|
+ ArrayList::new));
|
|
|
+
|
|
|
+ // 图片路劲转base64
|
|
|
+ Map<String, String> map = new HashMap<>();
|
|
|
+
|
|
|
+ for (InsUploadImagesDto target : deduplication) {
|
|
|
+ String base64B = Base64Utils.encodeToString(FileUtil.readBytes(target.getFilePath()));
|
|
|
+ // 文件id
|
|
|
+ map.put(target.getImageId(), base64B);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<InsTaskImagesBase64> collect = insUploadImagesDtos.stream()
|
|
|
+ // 过滤缓存中 存在的 imageId
|
|
|
+ .filter(x -> !x.getImageId().equals(uploadImage.get(x.getImageType())))
|
|
|
+ .map(x -> new InsTaskImagesBase64(x, map))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 核心逻辑是否是覆盖
|
|
|
+ if (!collect.isEmpty()) {
|
|
|
+ return insUploadImagesDtos.stream()
|
|
|
+ .map(x -> new InsTaskImagesBase64(x, map))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ return collect;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public List<InsTaskImagesBase64> findByOrderNo(String orderNo, String companyId, boolean b) {
|
|
|
|