From 6093d33f5009e70e45546a49fbfc4cda2ddfee26 Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Fri, 28 Mar 2025 17:31:38 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/common/sdk/mqtt/TopicConst.java | 1 - .../sample/media/constant/MinIOConstants.java | 23 +++++++++ .../sample/media/service/IFileService.java | 7 +++ .../media/service/impl/FileServiceImpl.java | 6 +++ .../controller/AiCompareController.java | 22 +++++++-- .../wayline/mapper/IAiComparePlateMapper.java | 12 +++++ .../wayline/model/dto/AiCompareDTO.java | 2 + .../model/dto/AiCompareMediaFileDTO.java | 6 ++- .../wayline/model/dto/AiComparePlateDTO.java | 34 ++++++++++++++ .../sample/wayline/model/dto/FrameDTO.java | 47 +++++++++++++++++++ .../model/entity/AiComparePlateEntity.java | 31 ++++++++++++ .../wayline/service/IAiCompareService.java | 5 +- .../service/impl/AiCompareServiceImpl.java | 38 +++++++++++---- .../main/resources/mapper/AiCompareMapper.xml | 7 ++- pom.xml | 2 +- 15 files changed, 219 insertions(+), 24 deletions(-) create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/media/constant/MinIOConstants.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiComparePlateMapper.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiComparePlateDTO.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/FrameDTO.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiComparePlateEntity.java diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/TopicConst.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/TopicConst.java index c89a4d6..cef713b 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/TopicConst.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/mqtt/TopicConst.java @@ -44,7 +44,6 @@ public class TopicConst { // 比对 public static final String COMPARE = "compare"; - //画框 public static final String FRAME = "frame"; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/constant/MinIOConstants.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/constant/MinIOConstants.java new file mode 100644 index 0000000..91d8b98 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/constant/MinIOConstants.java @@ -0,0 +1,23 @@ +package org.dromara.sample.media.constant; + +/** + * @auther yq + * @data 2025/3/28 + */ +public interface MinIOConstants { + + + //桶名称 无人机图片 + String BUCKET_MEDIAFILE = "mediafile"; + + //桶名称 默认数据 + String BUCKET_MINIO = "minio"; + + //桶名称 航线文件 + String BUCKET_WAYLINEFILE = "waylinefile"; + + //桶名称 预警文件 + String BUCKET_ALERT = "alert"; + //桶名称 图斑 + String BUCKET_PATTERN = "pattern"; +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java index df29c68..dead30b 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java @@ -73,4 +73,11 @@ public interface IFileService { */ PaginationData getMediaFilesPaginationByJobId(String workspaceId, long page, long pageSize,String JobId); + + /** + * 算法专用 + */ + URL getObjectUrlOne(String bucket,String pathUrl,Integer seconds); + + } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java index b37e442..524fa2b 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java @@ -143,6 +143,12 @@ public class FileServiceImpl implements IFileService { return new PaginationData(records, new Pagination(pageData.getCurrent(), pageData.getSize(), pageData.getTotal())); } + @Override + public URL getObjectUrlOne(String bucket,String pathUrl,Integer seconds) { + OssClient storage = OssFactory.instance(bucket); + return storage.getPrivateUrlURL(pathUrl,seconds); + } + /** * Convert the received file object into a database entity object. * @param file diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java index e845892..2d12af7 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java @@ -16,6 +16,7 @@ import org.dromara.common.web.core.BaseController; import org.dromara.sample.wayline.model.dto.AiCompareDTO; import org.dromara.sample.wayline.model.dto.AiCompareMediaFileDTO; import org.dromara.sample.wayline.model.dto.AiCompareQueueDTO; +import org.dromara.sample.wayline.model.dto.FrameDTO; import org.dromara.sample.wayline.model.entity.AiCompareEntity; import org.dromara.sample.wayline.model.entity.AiCompareQueueEntity; import org.dromara.sample.wayline.model.entity.WaylineJobEntity; @@ -74,7 +75,7 @@ public class AiCompareController extends BaseController { } /** - * 对比编辑 + * 对比编辑详情 * @param id 主键 */ @SaCheckPermission("sample:compare:query") @@ -119,13 +120,24 @@ public class AiCompareController extends BaseController { /** - * 画框 提交 + * 画框 + * 参数:jobId */ @SaCheckPermission("sample:compare:add") - @Log(title = "算法比对", businessType = BusinessType.INSERT) + @Log(title = "预警画框", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping("/pictureFrame") - public R pictureFrame(@Validated(AddGroup.class) @RequestBody Map compare) { - return toAjax(aiCompareService.pictureFrame(compare)); + public R pictureFrame(@RequestBody FrameDTO frameDTO) { + return toAjax(aiCompareService.pictureFrame(frameDTO)); + } + + /** + * 算法预警生成 + */ + @Log(title = "算法预警生成", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/expose") + public R pictureFrame(@RequestBody Map map) { + return toAjax(aiCompareService.expose(map)); } } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiComparePlateMapper.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiComparePlateMapper.java new file mode 100644 index 0000000..be4f769 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiComparePlateMapper.java @@ -0,0 +1,12 @@ +package org.dromara.sample.wayline.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.dromara.sample.wayline.model.entity.AiComparePlateEntity; + +/** + * @auther yq + * @data 2025/3/28 + */ +public interface IAiComparePlateMapper extends BaseMapper { + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java index 358f608..4232c42 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java @@ -17,6 +17,7 @@ import java.io.Serial; import java.io.Serializable; import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -121,4 +122,5 @@ public class AiCompareDTO implements Serializable { @JsonInclude(JsonInclude.Include.NON_EMPTY) private Map params = new HashMap<>(); + } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareMediaFileDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareMediaFileDTO.java index 0b9761e..a515216 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareMediaFileDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareMediaFileDTO.java @@ -35,7 +35,7 @@ public class AiCompareMediaFileDTO { @Schema(description = "文件所属的工作区") private String workspaceId; - + private String objectKey; private Date createTime; private String jobId; @@ -47,6 +47,8 @@ public class AiCompareMediaFileDTO { @Schema(description = "模板图url") private String mateFilePath; + @Schema(description = "模板图") + private String mateObjectKey; @Schema(description = "模板拍照时间") private Date mateFileDate; @@ -56,5 +58,5 @@ public class AiCompareMediaFileDTO { private Integer mateFileIndex; @Schema(description = "算法图班") - private Integer patternUrl; + private String patternUrl; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiComparePlateDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiComparePlateDTO.java new file mode 100644 index 0000000..2a00f8f --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiComparePlateDTO.java @@ -0,0 +1,34 @@ +package org.dromara.sample.wayline.model.dto; + +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.sample.wayline.model.entity.AiCompareEntity; +import org.dromara.sample.wayline.model.entity.AiComparePlateEntity; + +/** + * @auther yq + * @data 2025/3/28 + */ + +@Data +@EqualsAndHashCode() +@AutoMapper(target = AiComparePlateEntity.class, reverseConvertGenerate = false) +public class AiComparePlateDTO{ + + private Long id; + /** + * 任务id + * */ + private String jobId; + + /** + * 图片id + * */ + private String fileId; + + /** + * 图斑地址 + * */ + private String patternName; +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/FrameDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/FrameDTO.java new file mode 100644 index 0000000..908171f --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/FrameDTO.java @@ -0,0 +1,47 @@ +package org.dromara.sample.wayline.model.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; +import java.util.Map; + +/** + * @auther yq + * @data 2025/3/28 + */ +@Data +@EqualsAndHashCode() +public class FrameDTO { + + + /** + * 比对列表主键id + */ + + private Long compareId; + + /** + * 图片id + * */ + + private String fileId; + + /** + * jobId + */ + + private String jobId; + /** + * + * 像素坐标集合 + * */ + private List> frameList; + + + /** + * 图片地址 + */ + + private String fileUrl; +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiComparePlateEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiComparePlateEntity.java new file mode 100644 index 0000000..7265301 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiComparePlateEntity.java @@ -0,0 +1,31 @@ +package org.dromara.sample.wayline.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @auther yq + * @data 2025/3/28 + */ + +@Data +@EqualsAndHashCode() +@TableName("ai_compare_plate") +public class AiComparePlateEntity { + + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 图片id + * */ + private String fileId; + + /** + * 图斑地址 + * */ + private String patternName; +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java index 9c08aef..cc87f8e 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java @@ -4,6 +4,7 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; 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 java.util.List; @@ -24,6 +25,6 @@ public interface IAiCompareService { AiCompareEntity getInfo(Long id); List queryById(Long id); - Boolean pictureFrame(Map compare); - + Boolean pictureFrame(FrameDTO frameDTO); + Boolean expose(Map map); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java index 37dd8e1..8761a46 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java @@ -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 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 mediaFileDTOS = listMediaFile(aiCompareEntity.getJobId()); + List 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 list =compareDTOList.stream().map(e->Convert.toLong(e.get("queueId"))).collect(Collectors.toList()); return aiCompareQueueService.updateStatus(list,AiCompareStatusConstants.QUEUW_TYPE_1); } - public List listMediaFile(String jobId){ + public List listMediaFile(String jobId,Integer seconds ,boolean isIllegal){ List 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 queryWrapper = new QueryWrapper().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 mediaFileDTOS = listMediaFile(compareEntity.getJobId()); + List 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 queryById(Long id) { AiCompareEntity aiCompareEntity = aiCompareMapper.selectById(id); - List mediaFileDTOList = aiCompareMapper.listMediaFile(aiCompareEntity.getJobId()); - return mediaFileDTOList; + return listMediaFile(aiCompareEntity.getJobId(),3600,true); } - @Override - public Boolean pictureFrame(Map compare) { + public Boolean pictureFrame(FrameDTO frameDTO) { + if(!frameDTO.getFrameList().isEmpty()){ + throw new RuntimeException("未获取到违建数据"); + } + String topic = TopicConst.IMAGE +TopicConst.FRAME; + List mediaFileDTOS = listMediaFile(frameDTO.getJobId(),3600,false); + mqttGatewayPublish.publish(topic,new CommonTopicRequest().setData(mediaFileDTOS),1); + return true; + } + @Override + public Boolean expose(Map map) { return true; } diff --git a/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml b/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml index 3b7b48d..3bb9880 100644 --- a/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml +++ b/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml @@ -12,13 +12,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT mf.file_index, mf.file_id, - mf.workspace_id, mf.file_name, - mf.file_path, + mf.object_key, + mf.job_id, mfi.file_id as mateFileId, mfi.file_name as mateFileName, - mfi.workspace_id AS mateWorkspaceId, - mfi.file_path AS mateFilePath, + mfi.object_key AS mateObjectKey, mfi.file_index AS mateFileIndex, mfi.create_time AS mateFileDate FROM diff --git a/pom.xml b/pom.xml index e2c75c9..63a9d40 100644 --- a/pom.xml +++ b/pom.xml @@ -85,7 +85,7 @@ dev - wuyuan + dev 127.0.0.1:8848 DEFAULT_GROUP DEFAULT_GROUP From 1d7d00682aff2ba0e93149bb23ad7582dd5e63bc Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Fri, 28 Mar 2025 20:32:42 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=E6=AF=94?= =?UTF-8?q?=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sample/manage/service/impl/DeviceQrtzServiceImpl.java | 3 ++- .../dromara/sample/wayline/controller/AiCompareController.java | 2 ++ .../sample/wayline/service/impl/AiCompareServiceImpl.java | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java index 4a8dee0..146e5e0 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.business.api.RemoteBusinessTaskService; import org.dromara.common.core.constant.BusinessConstants; import org.dromara.common.core.constant.DeviceQrtzConstants; @@ -65,7 +66,7 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService { private IWaylineFileMapper waylineFileMapper; @Autowired private IFlightTaskService flightTaskService; - @Autowired + @DubboReference private RemoteBusinessTaskService remoteBusinessTaskService; @Override public TableDataInfo listManageDeviceQrtz(Page page, DeviceQrtzDTO deviceQrtzDTO) { diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java index 2d12af7..10a93fa 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java @@ -140,4 +140,6 @@ public class AiCompareController extends BaseController { public R pictureFrame(@RequestBody Map map) { return toAjax(aiCompareService.expose(map)); } + + } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java index 8761a46..cbde958 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java @@ -192,6 +192,9 @@ public class AiCompareServiceImpl implements IAiCompareService { @Override public Boolean expose(Map map) { + if(!map.isEmpty()){ + + } return true; } From 9d2795f41002c8ee8924d60a9890271589d31fb0 Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Fri, 28 Mar 2025 22:30:39 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AiCompareController.java | 6 ++--- .../wayline/model/dto/AiCompareDTO.java | 11 +------- .../model/dto/AiCompareMediaFileDTO.java | 1 + .../wayline/model/dto/AiComparePlateDTO.java | 4 +++ .../wayline/model/entity/AiCompareEntity.java | 27 +++++++++++++++---- .../wayline/service/IAiCompareService.java | 2 +- .../service/impl/AiCompareServiceImpl.java | 23 ++++++++++++---- .../main/resources/mapper/AiCompareMapper.xml | 1 + 8 files changed, 50 insertions(+), 25 deletions(-) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java index 10a93fa..f711d0d 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java @@ -134,11 +134,9 @@ public class AiCompareController extends BaseController { /** * 算法预警生成 */ - @Log(title = "算法预警生成", businessType = BusinessType.INSERT) - @RepeatSubmit() @PostMapping("/expose") - public R pictureFrame(@RequestBody Map map) { - return toAjax(aiCompareService.expose(map)); + public R expose(@RequestBody List> mapList) { + return toAjax(aiCompareService.expose(mapList)); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java index 4232c42..a45a158 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java @@ -95,7 +95,7 @@ public class AiCompareDTO implements Serializable { * 创建者 */ - private Long createBy; + private Long createId; /** *用户昵称 * */ @@ -105,16 +105,7 @@ public class AiCompareDTO implements Serializable { */ private Date createTime; - /** - * 更新者 - */ - - private Long updateBy; - /** - * 更新时间 - */ - private Date updateTime; /** * 请求参数 diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareMediaFileDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareMediaFileDTO.java index a515216..ca4ee70 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareMediaFileDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareMediaFileDTO.java @@ -27,6 +27,7 @@ public class AiCompareMediaFileDTO { /**上云文件id*/ private String fileId; + private Long compareId; @Schema(description = "文件名") private String fileName; diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiComparePlateDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiComparePlateDTO.java index 2a00f8f..7ff06c1 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiComparePlateDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiComparePlateDTO.java @@ -17,6 +17,10 @@ import org.dromara.sample.wayline.model.entity.AiComparePlateEntity; public class AiComparePlateDTO{ private Long id; + /** + * 比对id + * */ + private Long compareId; /** * 任务id * */ diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareEntity.java index 563351a..d848863 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AiCompareEntity.java @@ -1,11 +1,10 @@ package org.dromara.sample.wayline.model.entity; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import lombok.*; import org.dromara.common.mybatis.core.domain.BaseEntity; +import java.util.Date; /** @@ -13,9 +12,8 @@ import org.dromara.common.mybatis.core.domain.BaseEntity; * @data 2025/3/21 */ @Data -@EqualsAndHashCode(callSuper = true) @TableName("ai_compare") -public class AiCompareEntity extends BaseEntity { +public class AiCompareEntity { @TableId(type = IdType.AUTO) private Long id; @@ -64,6 +62,25 @@ public class AiCompareEntity extends BaseEntity { * 任务id * */ private String jobId; + /** + * 创建部门 + */ + + private Long createDept; + + /** + * 创建者 + */ + + private Long createId; + + /** + * 创建时间 + */ + + private Date createTime; + + } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java index cc87f8e..b33c4be 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java @@ -26,5 +26,5 @@ public interface IAiCompareService { List queryById(Long id); Boolean pictureFrame(FrameDTO frameDTO); - Boolean expose(Map map); + Boolean expose(List> mapList); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java index cbde958..23069c3 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java @@ -30,6 +30,7 @@ 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; @@ -71,7 +72,7 @@ public class AiCompareServiceImpl implements IAiCompareService { QueryWrapper 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, @@ -103,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()); @@ -191,9 +192,21 @@ public class AiCompareServiceImpl implements IAiCompareService { } @Override - public Boolean expose(Map map) { - if(!map.isEmpty()){ - + public Boolean expose(List> mapList) { + if(!mapList.isEmpty()){ + List 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().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; } diff --git a/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml b/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml index 3bb9880..47f725b 100644 --- a/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml +++ b/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml @@ -10,6 +10,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"