|
|
@ -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,20 @@ 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.AiComparePlateDTO; |
|
|
|
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 +62,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))); |
|
|
@ -65,7 +72,7 @@ public class AiCompareServiceImpl implements IAiCompareService { |
|
|
|
QueryWrapper<AiCompareEntity> wrapper = Wrappers.query(); |
|
|
|
wrapper |
|
|
|
.eq(StringUtils.isNotEmpty(bo.getStatus()), "status",bo.getStatus()) |
|
|
|
.eq(ObjectUtil.isNotEmpty(bo.getCreateBy()), "create_by",bo.getCreateBy()) |
|
|
|
.eq(ObjectUtil.isNotEmpty(bo.getCreateId()), "create_by",bo.getCreateId()) |
|
|
|
.like(StringUtils.isNotBlank(bo.getDeptName()), "lower(dept_name)", StringUtils.lowerCase(bo.getDeptName())) |
|
|
|
.like(StringUtils.isNotBlank(bo.getJobName()), "lower(job_name)", StringUtils.lowerCase(bo.getJobName())) |
|
|
|
.between(params.get("beginTime") != null && params.get("endTime") != null, |
|
|
@ -97,7 +104,7 @@ public class AiCompareServiceImpl implements IAiCompareService { |
|
|
|
aiCompareEntity.setJobId(serviceInfo.getJobId()); |
|
|
|
aiCompareEntity.setJobName(serviceInfo.getJobName()); |
|
|
|
aiCompareEntity.setTotalNum(serviceInfo.getPictureNumber()); |
|
|
|
aiCompareEntity.setCreateBy(loginUser.getUserId()); |
|
|
|
aiCompareEntity.setCreateId(loginUser.getUserId()); |
|
|
|
aiCompareEntity.setNickName(loginUser.getNickname()); |
|
|
|
aiCompareEntity.setDeptName(loginUser.getDeptName()); |
|
|
|
aiCompareEntity.setCreateDept(loginUser.getDeptId()); |
|
|
@ -120,7 +127,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 +135,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 +161,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,15 +178,43 @@ 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; |
|
|
|
|
|
|
|
mqttGatewayPublish.publish(topic,new CommonTopicRequest().setData(frameDTO),1); |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public Boolean expose(List<Map<String,Object>> mapList) { |
|
|
|
if(!mapList.isEmpty()){ |
|
|
|
List<AiComparePlateDTO> plateDTOS = Convert.toList(AiComparePlateDTO.class, mapList); |
|
|
|
plateDTOS.parallelStream().forEach(e-> { |
|
|
|
AiComparePlateEntity plateEntity = new AiComparePlateEntity(); |
|
|
|
plateEntity.setFileId(e.getFileId()); |
|
|
|
plateEntity.setPatternName(e.getPatternName()); |
|
|
|
aiComparePlateMapper.delete(new QueryWrapper<AiComparePlateEntity>().eq("file_id", e.getFileId())); |
|
|
|
aiComparePlateMapper.insert(plateEntity); |
|
|
|
}); |
|
|
|
Long compareId = plateDTOS.get(0).getCompareId(); |
|
|
|
AiCompareEntity compareEntity = aiCompareMapper.selectById(compareId); |
|
|
|
compareEntity.setStatus(AiCompareStatusConstants.COMPARE_STATUS_2); |
|
|
|
compareEntity.setIllegalNum(plateDTOS.size()); |
|
|
|
aiCompareMapper.updateById(compareEntity); |
|
|
|
} |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public Boolean alert(List<Map<String, Object>> mapList) { |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|