|
@ -1,5 +1,6 @@ |
|
|
package org.dromara.sample.media.service.impl; |
|
|
package org.dromara.sample.media.service.impl; |
|
|
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
import org.dromara.common.sdk.cloudapi.media.*; |
|
|
import org.dromara.common.sdk.cloudapi.media.*; |
|
|
import org.dromara.common.sdk.cloudapi.media.api.AbstractMediaService; |
|
|
import org.dromara.common.sdk.cloudapi.media.api.AbstractMediaService; |
|
|
import org.dromara.common.sdk.mqtt.MqttReply; |
|
|
import org.dromara.common.sdk.mqtt.MqttReply; |
|
@ -15,6 +16,7 @@ import org.dromara.sample.media.model.MediaFileDTO; |
|
|
import org.dromara.sample.media.service.IFileService; |
|
|
import org.dromara.sample.media.service.IFileService; |
|
|
import org.dromara.sample.media.service.IMediaRedisService; |
|
|
import org.dromara.sample.media.service.IMediaRedisService; |
|
|
import org.dromara.sample.media.service.IMediaService; |
|
|
import org.dromara.sample.media.service.IMediaService; |
|
|
|
|
|
import org.dromara.sample.wayline.model.entity.WaylineFileEntity; |
|
|
import org.dromara.sample.wayline.service.IAiCompareQueueService; |
|
|
import org.dromara.sample.wayline.service.IAiCompareQueueService; |
|
|
import org.dromara.sample.wayline.service.IWaylineJobService; |
|
|
import org.dromara.sample.wayline.service.IWaylineJobService; |
|
|
import com.fasterxml.jackson.databind.ObjectMapper; |
|
|
import com.fasterxml.jackson.databind.ObjectMapper; |
|
@ -107,6 +109,7 @@ public class MediaServiceImpl extends AbstractMediaService implements IMediaServ |
|
|
if (deviceOpt.isEmpty() |
|
|
if (deviceOpt.isEmpty() |
|
|
|| (Objects.nonNull(mediaFileCount) && request.getBid().equals(mediaFileCount.getBid()) |
|
|
|| (Objects.nonNull(mediaFileCount) && request.getBid().equals(mediaFileCount.getBid()) |
|
|
&& request.getTid().equals(mediaFileCount.getTid()))) { |
|
|
&& request.getTid().equals(mediaFileCount.getTid()))) { |
|
|
|
|
|
WaylineFileEntity waylineFileEntity = waylineFileMapper.selectOne(new LambdaQueryWrapper<WaylineFileEntity>().eq(WaylineFileEntity::getWaylineId, deviceQrtzFileEntity.getWaylineId())); |
|
|
return new TopicEventsResponse<MqttReply>().setData(MqttReply.success()); |
|
|
return new TopicEventsResponse<MqttReply>().setData(MqttReply.success()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -168,6 +171,7 @@ public class MediaServiceImpl extends AbstractMediaService implements IMediaServ |
|
|
|
|
|
|
|
|
private void notifyUploadedCount(MediaFileCountDTO mediaFileCount, TopicEventsRequest<FileUploadCallback> request, String jobId, DeviceDTO dock) { |
|
|
private void notifyUploadedCount(MediaFileCountDTO mediaFileCount, TopicEventsRequest<FileUploadCallback> request, String jobId, DeviceDTO dock) { |
|
|
// Do not notify when files that do not belong to the route are uploaded.
|
|
|
// Do not notify when files that do not belong to the route are uploaded.
|
|
|
|
|
|
//不通知不属于路由的文件被上传。
|
|
|
if (Objects.isNull(mediaFileCount)) { |
|
|
if (Objects.isNull(mediaFileCount)) { |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
@ -176,19 +180,21 @@ public class MediaServiceImpl extends AbstractMediaService implements IMediaServ |
|
|
mediaFileCount.setUploadedCount(mediaFileCount.getUploadedCount() + 1); |
|
|
mediaFileCount.setUploadedCount(mediaFileCount.getUploadedCount() + 1); |
|
|
|
|
|
|
|
|
// After all the files of the job are uploaded, delete the media file key.
|
|
|
// After all the files of the job are uploaded, delete the media file key.
|
|
|
|
|
|
//在上传完作业的所有文件后,删除媒体文件键。
|
|
|
if (mediaFileCount.getUploadedCount() >= mediaFileCount.getMediaCount()) { |
|
|
if (mediaFileCount.getUploadedCount() >= mediaFileCount.getMediaCount()) { |
|
|
mediaRedisService.delMediaCount(request.getGateway(), jobId); |
|
|
mediaRedisService.delMediaCount(request.getGateway(), jobId); |
|
|
|
|
|
|
|
|
// After uploading, delete the key with the highest priority.
|
|
|
// After uploading, delete the key with the highest priority.
|
|
|
|
|
|
//上传后,删除优先级最高的键。
|
|
|
MediaFileCountDTO fileCount = mediaRedisService.getMediaHighestPriority(request.getGateway()); |
|
|
MediaFileCountDTO fileCount = mediaRedisService.getMediaHighestPriority(request.getGateway()); |
|
|
if (Objects.nonNull(fileCount) && jobId.equals(fileCount.getJobId())) { |
|
|
if (Objects.nonNull(fileCount) && jobId.equals(fileCount.getJobId())) { |
|
|
mediaRedisService.delMediaHighestPriority(request.getGateway()); |
|
|
mediaRedisService.delMediaHighestPriority(request.getGateway()); |
|
|
} |
|
|
} |
|
|
|
|
|
aiCompareQueueService.addWaylineJobToQueue(jobId); |
|
|
} else { |
|
|
} else { |
|
|
mediaRedisService.setMediaCount(request.getGateway(), jobId, mediaFileCount); |
|
|
mediaRedisService.setMediaCount(request.getGateway(), jobId, mediaFileCount); |
|
|
} |
|
|
} |
|
|
//11
|
|
|
|
|
|
aiCompareQueueService.addWaylineJobToQueue(jobId); |
|
|
|
|
|
webSocketMessageService.sendBatch(dock.getWorkspaceId(), UserTypeEnum.WEB.getVal(), |
|
|
webSocketMessageService.sendBatch(dock.getWorkspaceId(), UserTypeEnum.WEB.getVal(), |
|
|
BizCodeEnum.FILE_UPLOAD_CALLBACK.getCode(), mediaFileCount); |
|
|
BizCodeEnum.FILE_UPLOAD_CALLBACK.getCode(), mediaFileCount); |
|
|
} |
|
|
} |
|
|