|
|
@ -12,6 +12,7 @@ import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.apache.ibatis.executor.BatchResult; |
|
|
|
import org.dromara.common.core.constant.AiCompareStatusConstants; |
|
|
|
|
|
|
|
import org.dromara.common.core.constant.BusinessConstants; |
|
|
|
import org.dromara.common.core.utils.StringUtils; |
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery; |
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|
|
@ -19,15 +20,19 @@ import org.dromara.common.satoken.utils.LoginHelper; |
|
|
|
import org.dromara.common.sdk.mqtt.CommonTopicRequest; |
|
|
|
import org.dromara.common.sdk.mqtt.MqttGatewayPublish; |
|
|
|
import org.dromara.common.sdk.mqtt.TopicConst; |
|
|
|
import org.dromara.sample.media.constant.MinIOConstants; |
|
|
|
import org.dromara.sample.media.mapper.IFileMapper; |
|
|
|
import org.dromara.sample.media.model.MediaFileEntity; |
|
|
|
import org.dromara.sample.media.service.IFileService; |
|
|
|
import org.dromara.sample.media.service.IMediaService; |
|
|
|
import org.dromara.sample.wayline.mapper.IAiCompareMapper; |
|
|
|
import org.dromara.sample.wayline.mapper.IAiComparePlateMapper; |
|
|
|
import org.dromara.sample.wayline.mapper.IWaylineJobMapper; |
|
|
|
import org.dromara.sample.wayline.model.dto.AiCompareDTO; |
|
|
|
import org.dromara.sample.wayline.model.dto.AiCompareMediaFileDTO; |
|
|
|
import org.dromara.sample.wayline.model.dto.FrameDTO; |
|
|
|
import org.dromara.sample.wayline.model.entity.AiCompareEntity; |
|
|
|
import org.dromara.sample.wayline.model.entity.AiComparePlateEntity; |
|
|
|
import org.dromara.sample.wayline.model.entity.AiCompareQueueEntity; |
|
|
|
import org.dromara.sample.wayline.model.entity.WaylineJobEntity; |
|
|
|
import org.dromara.sample.wayline.service.IAiCompareQueueService; |
|
|
@ -56,6 +61,7 @@ public class AiCompareServiceImpl implements IAiCompareService { |
|
|
|
private final IWaylineJobMapper waylineJobMapper; |
|
|
|
private final IFileService fileService; |
|
|
|
private final MqttGatewayPublish mqttGatewayPublish; |
|
|
|
private final IAiComparePlateMapper aiComparePlateMapper; |
|
|
|
@Override |
|
|
|
public TableDataInfo<AiCompareEntity> queryPageList(AiCompareDTO bo, PageQuery pageQuery) { |
|
|
|
return TableDataInfo.build(aiCompareMapper.selectPage(pageQuery.build(),this.buildAiCompareDTOQueryWrapper(bo))); |
|
|
@ -120,7 +126,7 @@ public class AiCompareServiceImpl implements IAiCompareService { |
|
|
|
} |
|
|
|
} |
|
|
|
String topic = TopicConst.IMAGE +TopicConst.COMPARE; |
|
|
|
List<AiCompareMediaFileDTO> mediaFileDTOS = listMediaFile(aiCompareEntity.getJobId()); |
|
|
|
List<AiCompareMediaFileDTO> mediaFileDTOS = listMediaFile(aiCompareEntity.getJobId(),43200,false); |
|
|
|
mqttGatewayPublish.publish(topic, new CommonTopicRequest().setData(mediaFileDTOS),1); |
|
|
|
insertList.add(aiCompareEntity); |
|
|
|
} |
|
|
@ -128,12 +134,17 @@ public class AiCompareServiceImpl implements IAiCompareService { |
|
|
|
List<Long> list =compareDTOList.stream().map(e->Convert.toLong(e.get("queueId"))).collect(Collectors.toList()); |
|
|
|
return aiCompareQueueService.updateStatus(list,AiCompareStatusConstants.QUEUW_TYPE_1); |
|
|
|
} |
|
|
|
public List<AiCompareMediaFileDTO> listMediaFile(String jobId){ |
|
|
|
public List<AiCompareMediaFileDTO> listMediaFile(String jobId,Integer seconds ,boolean isIllegal){ |
|
|
|
List<AiCompareMediaFileDTO> mediaFileDTOList = aiCompareMapper.listMediaFile(jobId); |
|
|
|
if(!mediaFileDTOList.isEmpty()){ |
|
|
|
mediaFileDTOList.stream().forEach(e->{ |
|
|
|
e.setFilePath(fileService.getObjectUrl(e.getWorkspaceId(),e.getFileId()).toString()); |
|
|
|
e.setMateFilePath(fileService.getObjectUrl(e.getMateWorkspaceId(),e.getMateFileId()).toString()); |
|
|
|
e.setFilePath(fileService.getObjectUrlOne(MinIOConstants.BUCKET_MEDIAFILE,e.getObjectKey(),seconds).toString()); |
|
|
|
e.setMateFilePath(fileService.getObjectUrlOne(MinIOConstants.BUCKET_MEDIAFILE,e.getObjectKey(),seconds).toString()); |
|
|
|
if(isIllegal){ |
|
|
|
QueryWrapper<AiComparePlateEntity> queryWrapper = new QueryWrapper<AiComparePlateEntity>().eq("file_id", e.getFileId()); |
|
|
|
AiComparePlateEntity plateEntity = aiComparePlateMapper.selectOne(queryWrapper); |
|
|
|
e.setPatternUrl(fileService.getObjectUrlOne(MinIOConstants.BUCKET_PATTERN,plateEntity.getPatternName(),seconds).toString()); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
return mediaFileDTOList; |
|
|
@ -149,10 +160,11 @@ public class AiCompareServiceImpl implements IAiCompareService { |
|
|
|
if(StrUtil.isNotEmpty(templateId)){ |
|
|
|
aiCompareEntity.setTemplateId(templateId); |
|
|
|
} |
|
|
|
aiCompareEntity.setStatus(AiCompareStatusConstants.COMPARE_STATUS_1); |
|
|
|
int i = aiCompareMapper.updateById(aiCompareEntity); |
|
|
|
AiCompareEntity compareEntity = aiCompareMapper.selectById(id); |
|
|
|
String topic = TopicConst.IMAGE +TopicConst.COMPARE; |
|
|
|
List<AiCompareMediaFileDTO> mediaFileDTOS = listMediaFile(compareEntity.getJobId()); |
|
|
|
List<AiCompareMediaFileDTO> mediaFileDTOS = listMediaFile(compareEntity.getJobId(),43200,false); |
|
|
|
mqttGatewayPublish.publish(topic, new CommonTopicRequest().setData(mediaFileDTOS),1); |
|
|
|
return i>0; |
|
|
|
} |
|
|
@ -165,13 +177,21 @@ public class AiCompareServiceImpl implements IAiCompareService { |
|
|
|
@Override |
|
|
|
public List<AiCompareMediaFileDTO> queryById(Long id) { |
|
|
|
AiCompareEntity aiCompareEntity = aiCompareMapper.selectById(id); |
|
|
|
List<AiCompareMediaFileDTO> mediaFileDTOList = aiCompareMapper.listMediaFile(aiCompareEntity.getJobId()); |
|
|
|
return mediaFileDTOList; |
|
|
|
return listMediaFile(aiCompareEntity.getJobId(),3600,true); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public Boolean pictureFrame(Map<String, Object> compare) { |
|
|
|
public Boolean pictureFrame(FrameDTO frameDTO) { |
|
|
|
if(!frameDTO.getFrameList().isEmpty()){ |
|
|
|
throw new RuntimeException("未获取到违建数据"); |
|
|
|
} |
|
|
|
String topic = TopicConst.IMAGE +TopicConst.FRAME; |
|
|
|
List<AiCompareMediaFileDTO> mediaFileDTOS = listMediaFile(frameDTO.getJobId(),3600,false); |
|
|
|
mqttGatewayPublish.publish(topic,new CommonTopicRequest().setData(mediaFileDTOS),1); |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public Boolean expose(Map<String, Object> map) { |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|