|
@@ -11,6 +11,7 @@ import com.platform.api.response.LicensePlateValidateResponse;
|
|
|
import com.platform.service.ValidateLicensePlateService;
|
|
import com.platform.service.ValidateLicensePlateService;
|
|
|
import com.platform.service.WeighbridgeRecordService;
|
|
import com.platform.service.WeighbridgeRecordService;
|
|
|
import com.platform.utils.FileUtils;
|
|
import com.platform.utils.FileUtils;
|
|
|
|
|
+import jakarta.annotation.Resource;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
@@ -44,6 +45,9 @@ public class WeighbridgeRecordManage {
|
|
|
@Qualifier("taskExecutor")
|
|
@Qualifier("taskExecutor")
|
|
|
private final TaskExecutor taskExecutor;
|
|
private final TaskExecutor taskExecutor;
|
|
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private UploadService uploadService;
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 处理地磅过磅数据上报
|
|
* 处理地磅过磅数据上报
|
|
|
* @param request 地磅上报请求参数
|
|
* @param request 地磅上报请求参数
|
|
@@ -106,7 +110,7 @@ public class WeighbridgeRecordManage {
|
|
|
log.error("读取图片文件失败,车牌号: {}", request.getLicensePlate(), e);
|
|
log.error("读取图片文件失败,车牌号: {}", request.getLicensePlate(), e);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- processImageFilesAsync(imageBytesList, request.getLicensePlate())
|
|
|
|
|
|
|
+ uploadService.processImageFilesAsync(imageBytesList, request.getLicensePlate())
|
|
|
.thenAccept(photoUrls -> {
|
|
.thenAccept(photoUrls -> {
|
|
|
log.info("图片上传完成,车牌号: {},照片数量: {}", request.getLicensePlate(),
|
|
log.info("图片上传完成,车牌号: {},照片数量: {}", request.getLicensePlate(),
|
|
|
photoUrls != null ? photoUrls.split(",").length : 0);
|
|
photoUrls != null ? photoUrls.split(",").length : 0);
|
|
@@ -159,38 +163,6 @@ public class WeighbridgeRecordManage {
|
|
|
return record;
|
|
return record;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /**
|
|
|
|
|
- * 异步处理图片文件上传(真正的并行上传)
|
|
|
|
|
- * 为每个图片创建独立的异步任务,实现并行上传
|
|
|
|
|
- */
|
|
|
|
|
- @Async("taskExecutor")
|
|
|
|
|
- public CompletableFuture<String> processImageFilesAsync(List<byte[]> imageBytesList, String licensePlate) {
|
|
|
|
|
- List<String> resultList = new ArrayList<>();
|
|
|
|
|
- for (byte[] imageBytes : imageBytesList) {
|
|
|
|
|
- String ossUrl = null;
|
|
|
|
|
- try {
|
|
|
|
|
- // 将字节数组包装成MultipartFile进行上传
|
|
|
|
|
- String filename = "image" + System.currentTimeMillis() + ".jpg";
|
|
|
|
|
- MultipartFile multipartFile = new CustomMockMultipartFile(
|
|
|
|
|
- filename,
|
|
|
|
|
- filename,
|
|
|
|
|
- "image/jpeg",
|
|
|
|
|
- imageBytes
|
|
|
|
|
- );
|
|
|
|
|
- ossUrl = FileUtils.uploadFile(multipartFile);
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- log.error("上传文件异常,车牌号: {}", licensePlate, e);
|
|
|
|
|
- throw new IotException(ErrorCodeEnum.SYSTEM_ERROR, "上传文件异常");
|
|
|
|
|
- }
|
|
|
|
|
- if (StringUtils.isNotBlank(ossUrl)) {
|
|
|
|
|
- resultList.add(ossUrl);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- return CompletableFuture.completedFuture(String.join(",", resultList));
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
/**
|
|
/**
|
|
|
* 异步更新图片URL
|
|
* 异步更新图片URL
|
|
|
*/
|
|
*/
|