From 5601de3381510357240da8e1e95bb2897e24d42c Mon Sep 17 00:00:00 2001 From: like <1025687351@qq.com> Date: Wed, 16 Apr 2025 17:10:20 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E5=96=8A=E8=AF=9D=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resource/api/RemoteFileService.java | 4 + .../resource/api/RemoteFileServiceMock.java | 9 ++ .../resource/dubbo/RemoteFileServiceImpl.java | 8 ++ dk-modules/sample/pom.xml | 6 +- .../controller/WaylineFileController.java | 26 ++++ .../wayline/mapper/IAudioFileMapper.java | 17 +++ .../wayline/model/entity/AudioFileEntity.java | 68 +++++++++ .../wayline/service/IAudioFileService.java | 21 +++ .../wayline/service/IWaylineFileService.java | 9 ++ .../service/impl/AudioFileServiceImpl.java | 68 +++++++++ .../service/impl/WaylineFileServiceImpl.java | 136 +++++++++++++++++- 11 files changed, 368 insertions(+), 4 deletions(-) create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAudioFileMapper.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AudioFileEntity.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAudioFileService.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AudioFileServiceImpl.java diff --git a/dk-api/api-resource/src/main/java/org/dromara/resource/api/RemoteFileService.java b/dk-api/api-resource/src/main/java/org/dromara/resource/api/RemoteFileService.java index 2204de6..d5a9e7e 100644 --- a/dk-api/api-resource/src/main/java/org/dromara/resource/api/RemoteFileService.java +++ b/dk-api/api-resource/src/main/java/org/dromara/resource/api/RemoteFileService.java @@ -3,6 +3,7 @@ package org.dromara.resource.api; import org.dromara.common.core.exception.ServiceException; import org.dromara.resource.api.domain.RemoteFile; +import java.util.Collection; import java.util.List; /** @@ -35,4 +36,7 @@ public interface RemoteFileService { * @return 列表 */ List selectByIds(String ossIds); + + Boolean remove(Collection ids, Boolean isValid) throws ServiceException; + } diff --git a/dk-api/api-resource/src/main/java/org/dromara/resource/api/RemoteFileServiceMock.java b/dk-api/api-resource/src/main/java/org/dromara/resource/api/RemoteFileServiceMock.java index 5ce7c5a..80dfe2d 100644 --- a/dk-api/api-resource/src/main/java/org/dromara/resource/api/RemoteFileServiceMock.java +++ b/dk-api/api-resource/src/main/java/org/dromara/resource/api/RemoteFileServiceMock.java @@ -1,9 +1,11 @@ package org.dromara.resource.api; import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.StringUtils; import org.dromara.resource.api.domain.RemoteFile; +import java.util.Collection; import java.util.List; /** @@ -50,4 +52,11 @@ public class RemoteFileServiceMock implements RemoteFileService { return List.of(); } + + @Override + public Boolean remove(Collection ids, Boolean isValid) throws ServiceException { + log.warn("服务调用异常 -> 降级处理"); + return null; + } + } diff --git a/dk-modules/resource/src/main/java/org/dromara/resource/dubbo/RemoteFileServiceImpl.java b/dk-modules/resource/src/main/java/org/dromara/resource/dubbo/RemoteFileServiceImpl.java index 96305d3..5ec4f09 100644 --- a/dk-modules/resource/src/main/java/org/dromara/resource/dubbo/RemoteFileServiceImpl.java +++ b/dk-modules/resource/src/main/java/org/dromara/resource/dubbo/RemoteFileServiceImpl.java @@ -18,6 +18,7 @@ import org.dromara.resource.service.ISysOssService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Collection; import java.util.List; /** @@ -96,4 +97,11 @@ public class RemoteFileServiceImpl implements RemoteFileService { return remoteFile; }).toList(); } + + @Override + public Boolean remove(Collection ids, Boolean isValid) throws ServiceException{ + sysOssService.deleteWithValidByIds(ids,isValid); + return null; + } + } diff --git a/dk-modules/sample/pom.xml b/dk-modules/sample/pom.xml index 7f3292f..ac6066c 100644 --- a/dk-modules/sample/pom.xml +++ b/dk-modules/sample/pom.xml @@ -131,7 +131,11 @@ aws-java-sdk-sts 1.12.261 - + + ws.schild + jave-core + 3.4.0 + org.dromara api-workflow diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineFileController.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineFileController.java index 4ae1ae6..fe5cd46 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineFileController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineFileController.java @@ -15,6 +15,7 @@ import org.dromara.common.sdk.cloudapi.wayline.api.IHttpWaylineService; import org.dromara.common.sdk.common.HttpResultResponse; import org.dromara.common.sdk.common.PaginationData; import org.dromara.sample.wayline.model.dto.WaylineFileDTO; +import org.dromara.sample.wayline.model.entity.AudioFileEntity; import org.dromara.sample.wayline.model.entity.WaylineFileEntity; import org.dromara.sample.wayline.service.IWaylineFileService; @@ -24,6 +25,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.io.File; import java.io.IOException; import java.net.URL; import java.sql.SQLException; @@ -197,4 +199,28 @@ public class WaylineFileController implements IHttpWaylineService { } return HttpResultResponse.error(); } + + + @PostMapping("${url.wayline.prefix}${url.wayline.version}/workspaces/{workspace_id}/waylines/file/audio/add") + @Operation(summary = "添加音频文件", description = "添加音频文件。") + public HttpResultResponse audioAdd(@PathVariable(name = "workspace_id") String workspaceId, MultipartFile file) { + if (Objects.isNull(file)) { + return HttpResultResponse.error("未收到文件。"); + } + return HttpResultResponse.success(waylineFileService.transformation(file, workspaceId)); + } + + @PostMapping("${url.wayline.prefix}${url.wayline.version}/workspaces/{workspace_id}/waylines/file/audio/{fileId}") + @Operation(summary = "删除音频文件", description = "删除音频文件。") + public HttpResultResponse audioDeleted(@PathVariable(name = "workspace_id") String workspaceId, @PathVariable(name = "fileId")String fileId) { + waylineFileService.audioDeleted(workspaceId,fileId); + return HttpResultResponse.success(); + } + + @GetMapping("${url.wayline.prefix}${url.wayline.version}/workspaces/{workspace_id}/waylines/file/audio/page") + @Operation(summary = "音频文件列表", description = "音频文件列表。") + public HttpResultResponse> getAudioPage(@RequestParam("pageNum") int pageNum, @RequestParam("pageSize") int pageSize, @PathVariable(name = "workspace_id") String workspaceId) { + PaginationData data = waylineFileService.getAudioPage(workspaceId, pageNum,pageSize); + return HttpResultResponse.success(data); + } } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAudioFileMapper.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAudioFileMapper.java new file mode 100644 index 0000000..f464f38 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAudioFileMapper.java @@ -0,0 +1,17 @@ +package org.dromara.sample.wayline.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.dromara.common.sdk.cloudapi.wayline.GetWaylineListRequest; +import org.dromara.sample.wayline.model.entity.AudioFileEntity; +import org.dromara.sample.wayline.model.entity.WaylineFileEntity; + +/** + * @author sean + * @version 0.3 + * @date 2021/12/22 + */ +public interface IAudioFileMapper extends BaseMapper { + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AudioFileEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AudioFileEntity.java new file mode 100644 index 0000000..b6383a1 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/AudioFileEntity.java @@ -0,0 +1,68 @@ +package org.dromara.sample.wayline.model.entity; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.Date; + +/** + * @author sean + * @version 0.3 + * @date 2021/12/22 + */ +@Data +@TableName("audio_file") +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class AudioFileEntity implements Serializable { + + @TableId(type = IdType.AUTO) + private Integer id; + + @TableField("file_id") + private String fileId; + + @TableField("file_name") + private String fileName; + + @TableField("old_name") + private String oldName; + + @TableField("file_path") + private String filePath; + + @TableField("sign") + private String sign; + + @TableField("workspace_id") + private String workspaceId; + + @TableField("fingerprint") + private String fingerprint; + + @TableField("tinny_fingerprint") + private String tinnyFingerprint; + + @TableField("object_key") + private String objectKey; + + @TableField("user_name") + private String username; + + @TableField(value = "create_time", fill = FieldFill.INSERT) + private Date createTime; + + @TableField("oss_id") + private Long ossId; + + @TableField("input_stream_base") + private String inputStreamBase; + + @TableField(exist = false) + private byte[] inputStream; +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAudioFileService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAudioFileService.java new file mode 100644 index 0000000..240fe91 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAudioFileService.java @@ -0,0 +1,21 @@ +package org.dromara.sample.wayline.service; + +import org.dromara.common.sdk.cloudapi.wayline.GetWaylineListRequest; +import org.dromara.common.sdk.cloudapi.wayline.GetWaylineListResponse; +import org.dromara.common.sdk.common.PaginationData; +import org.dromara.sample.wayline.model.dto.WaylineFileDTO; +import org.springframework.web.multipart.MultipartFile; + +import java.net.URL; +import java.sql.SQLException; +import java.util.List; +import java.util.Optional; + +/** + * @author sean + * @version 0.3 + * @date 2021/12/22 + */ +public interface IAudioFileService { + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineFileService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineFileService.java index 0c16986..13e4e30 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineFileService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineFileService.java @@ -4,8 +4,10 @@ import org.dromara.common.sdk.cloudapi.wayline.GetWaylineListRequest; import org.dromara.common.sdk.cloudapi.wayline.GetWaylineListResponse; import org.dromara.common.sdk.common.PaginationData; import org.dromara.sample.wayline.model.dto.WaylineFileDTO; +import org.dromara.sample.wayline.model.entity.AudioFileEntity; import org.springframework.web.multipart.MultipartFile; +import java.io.File; import java.net.URL; import java.sql.SQLException; import java.util.List; @@ -93,4 +95,11 @@ public interface IWaylineFileService { * @return */ PaginationData getWaylinesByParamNew(String workspaceId, GetWaylineListRequest param); + + AudioFileEntity transformation(MultipartFile file, String workspaceId); + + void audioDeleted(String workspaceId, String fileId); + + PaginationData getAudioPage(String workspaceId, int pageNum, int pageSize); + } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AudioFileServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AudioFileServiceImpl.java new file mode 100644 index 0000000..5a0ecab --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AudioFileServiceImpl.java @@ -0,0 +1,68 @@ +package org.dromara.sample.wayline.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.seata.common.util.CollectionUtils; +import org.apache.dubbo.config.annotation.DubboReference; +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.Node; +import org.dom4j.io.SAXReader; +import org.dromara.common.oss.core.OssClient; +import org.dromara.common.oss.entity.UploadResult; +import org.dromara.common.oss.factory.OssFactory; +import org.dromara.common.sdk.cloudapi.device.DeviceDomainEnum; +import org.dromara.common.sdk.cloudapi.device.DeviceEnum; +import org.dromara.common.sdk.cloudapi.device.DeviceSubTypeEnum; +import org.dromara.common.sdk.cloudapi.device.DeviceTypeEnum; +import org.dromara.common.sdk.cloudapi.wayline.GetWaylineListRequest; +import org.dromara.common.sdk.cloudapi.wayline.GetWaylineListResponse; +import org.dromara.common.sdk.cloudapi.wayline.WaylineTypeEnum; +import org.dromara.common.sdk.common.Pagination; +import org.dromara.common.sdk.common.PaginationData; +import org.dromara.resource.api.RemoteFileService; +import org.dromara.resource.api.domain.RemoteFile; +import org.dromara.sample.wayline.mapper.IWaylineFileMapper; +import org.dromara.sample.wayline.model.dto.KmzFileProperties; +import org.dromara.sample.wayline.model.dto.WaylineFileDTO; +import org.dromara.sample.wayline.model.entity.WaylineFileEntity; +import org.dromara.sample.wayline.service.IAudioFileService; +import org.dromara.sample.wayline.service.IWaylineFileService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.DigestUtils; +import org.springframework.util.StringUtils; +import org.springframework.web.multipart.MultipartFile; +import ws.schild.jave.Encoder; +import ws.schild.jave.MultimediaObject; +import ws.schild.jave.encode.AudioAttributes; +import ws.schild.jave.encode.EncodingAttributes; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.security.MessageDigest; +import java.sql.SQLException; +import java.util.*; +import java.util.stream.Collectors; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; + +import static org.dromara.sample.wayline.model.dto.KmzFileProperties.WAYLINE_FILE_SUFFIX; + +/** + * @author sean + * @version 0.3 + * @date 2021/12/22 + */ +@Service +@Transactional +public class AudioFileServiceImpl implements IAudioFileService { + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java index 2479134..2386b39 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java @@ -1,10 +1,14 @@ package org.dromara.sample.wayline.service.impl; +import cn.hutool.crypto.digest.MD5; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import io.seata.common.util.CollectionUtils; +import org.apache.dubbo.config.annotation.DubboReference; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Node; @@ -21,9 +25,13 @@ import org.dromara.common.sdk.cloudapi.wayline.GetWaylineListResponse; import org.dromara.common.sdk.cloudapi.wayline.WaylineTypeEnum; import org.dromara.common.sdk.common.Pagination; import org.dromara.common.sdk.common.PaginationData; +import org.dromara.resource.api.RemoteFileService; +import org.dromara.resource.api.domain.RemoteFile; +import org.dromara.sample.wayline.mapper.IAudioFileMapper; import org.dromara.sample.wayline.mapper.IWaylineFileMapper; import org.dromara.sample.wayline.model.dto.KmzFileProperties; import org.dromara.sample.wayline.model.dto.WaylineFileDTO; +import org.dromara.sample.wayline.model.entity.AudioFileEntity; import org.dromara.sample.wayline.model.entity.WaylineFileEntity; import org.dromara.sample.wayline.service.IWaylineFileService; import org.springframework.beans.factory.annotation.Autowired; @@ -32,12 +40,16 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.DigestUtils; import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; +import ws.schild.jave.Encoder; +import ws.schild.jave.MultimediaObject; +import ws.schild.jave.encode.AudioAttributes; +import ws.schild.jave.encode.EncodingAttributes; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; +import java.io.*; import java.net.URL; import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.security.MessageDigest; import java.sql.SQLException; import java.util.*; import java.util.stream.Collectors; @@ -58,6 +70,12 @@ public class WaylineFileServiceImpl implements IWaylineFileService { @Autowired private IWaylineFileMapper mapper; + @Autowired + private IAudioFileMapper audioFileMapper; + + @DubboReference + private RemoteFileService remoteFileService; + @Override public PaginationData getWaylinesByParam(String workspaceId, GetWaylineListRequest param) { // Paging Query @@ -239,6 +257,118 @@ public class WaylineFileServiceImpl implements IWaylineFileService { return new PaginationData<>(records, new Pagination(page.getCurrent(), page.getSize(), page.getTotal())); } + @Override + public AudioFileEntity transformation(MultipartFile multipartFile, String workspaceId) { + File file = new File(multipartFile.getOriginalFilename()); + AudioFileEntity audioFileEntity = new AudioFileEntity(); + RemoteFile upload = new RemoteFile(); + try { +// multipartFile.transferTo(file); + // 1. 获取项目根目录路径 + String projectRoot = System.getProperty("user.dir"); + + // 2. 创建目标文件对象 + file = new File(projectRoot + File.separator + multipartFile.getOriginalFilename()); + + // 3. 写入MP3文件(这里假设已有字节数据) + Files.write(file.toPath(), multipartFile.getBytes()); + + // 4. 这里使用文件(例如播放、处理等操作) + System.out.println("文件已保存至:" + file.getAbsolutePath()); + // TODO: 在此处添加实际使用文件的代码 + + } catch (IOException e) { + throw new RuntimeException("保存到本地失败"); + } + + try { + File target = new File(multipartFile.getOriginalFilename().replaceAll("\\.[^.]*$", "") +".opus"); + audioFileEntity.setOldName(multipartFile.getOriginalFilename()); + AudioAttributes audio = new AudioAttributes(); + audio.setCodec("libopus"); + audio.setBitRate(32_000); // 32kbps + audio.setChannels(2); + audio.setSamplingRate(48000); + EncodingAttributes attrs = new EncodingAttributes(); + attrs.setOutputFormat("opus"); + attrs.setAudioAttributes(audio); + + Encoder encoder = new Encoder(); + encoder.encode(new MultimediaObject(file), target, attrs); + System.out.println("转换成功"); + upload = remoteFileService.upload(target.getName(), target.getName(), multipartFile.getContentType(), Files.readAllBytes(target.toPath())); + //转md5 + MessageDigest md = MessageDigest.getInstance("MD5"); + try (FileInputStream fis = new FileInputStream(target)) { + byte[] buffer = new byte[8192]; // 缓冲区大小 + int bytesRead; + // 分块更新哈希值 + while ((bytesRead = fis.read(buffer)) != -1) { + md.update(buffer, 0, bytesRead); + } + } + // 转换为十六进制字符串 + byte[] digest = md.digest(); + StringBuilder sb = new StringBuilder(); + for (byte b : digest) { + sb.append(String.format("%02x", b & 0xff)); + } + String md5 = sb.toString(); + //转流 + audioFileEntity.setInputStream(Files.readAllBytes(target.toPath())); + //刪除臨時文件 + Files.delete(file.toPath()); + Files.delete(target.toPath()); + //插入文件数据库 + audioFileEntity.setFileId(UUID.randomUUID().toString()); + audioFileEntity.setFileName(upload.getOriginalName()); + audioFileEntity.setFilePath(upload.getUrl()); + audioFileEntity.setSign(md5); + audioFileEntity.setWorkspaceId(workspaceId); + audioFileEntity.setObjectKey(upload.getName()); + audioFileEntity.setOssId(upload.getOssId()); + if (audioFileEntity.getInputStream() != null){ + String base64Data = Base64.getEncoder().encodeToString(audioFileEntity.getInputStream()); + audioFileEntity.setInputStreamBase(base64Data); + } + audioFileMapper.insert(audioFileEntity); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("转换file失败"); + } + return audioFileEntity; + } + + @Override + public void audioDeleted(String workspaceId, String fileId) { + AudioFileEntity audioFileEntity = audioFileMapper.selectOne(new QueryWrapper().eq("workspace_id", workspaceId).eq("file_id", fileId)); + List list = new ArrayList<>(); + list.add(audioFileEntity.getOssId()); + remoteFileService.remove(list, true); + audioFileMapper.delete(new QueryWrapper().eq("workspace_id",workspaceId).eq("file_id",fileId)); + + } + + @Override + public PaginationData getAudioPage(String workspaceId, int pageNum, int pageSize) { + Page pageQuery = new Page<>(pageNum, pageSize); + Page page1 = audioFileMapper.selectPage( + pageQuery, + new QueryWrapper() + .eq("workspace_id", workspaceId)); + + // Wrap the results of a paging query into a custom paging object. + List records = page1.getRecords(); + for (AudioFileEntity audioFileEntity : records){ + if (io.seata.common.util.StringUtils.isNotBlank(audioFileEntity.getInputStreamBase())){ + byte[] data = Base64.getDecoder().decode(audioFileEntity.getInputStreamBase()); + audioFileEntity.setInputStream(data); + } + } + return new PaginationData<>(records, new Pagination(page1.getCurrent(), page1.getSize(), page1.getTotal())); + + } + private Optional validKmzFile(MultipartFile file) { String filename = file.getOriginalFilename(); if (Objects.nonNull(filename) && !filename.endsWith(WAYLINE_FILE_SUFFIX)) { From eea8f2bd63d536309880b5279bfec91a491417b0 Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Tue, 22 Apr 2025 09:32:09 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E6=AF=94=E5=AF=B9=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sample/wayline/mapper/IAiCompareMapper.java | 3 ++- .../wayline/service/impl/AiCompareServiceImpl.java | 12 ++++++------ .../src/main/resources/mapper/AiCompareMapper.xml | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareMapper.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareMapper.java index 09e0b1b..869aaa1 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareMapper.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IAiCompareMapper.java @@ -1,5 +1,6 @@ package org.dromara.sample.wayline.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; import org.dromara.sample.wayline.model.dto.AiCompareMediaFileDTO; import org.dromara.sample.wayline.model.entity.AiCompareEntity; @@ -11,5 +12,5 @@ import java.util.List; */ public interface IAiCompareMapper extends BaseMapper { - ListlistMediaFile(String jobId); + ListlistMediaFile(@Param("jobId") String jobId, @Param("compareId") Long compareId); } 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 eb66fac..9f5ffa7 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 @@ -138,7 +138,7 @@ public class AiCompareServiceImpl implements IAiCompareService { } } String topic = TopicConst.IMAGE +TopicConst.COMPARE; - List mediaFileDTOS = listMediaFile(aiCompareEntity.getJobId(),43200,false); + List mediaFileDTOS = listMediaFile(aiCompareEntity.getJobId(),aiCompareEntity.getId(),43200,false); mqttGatewayPublish.publish(topic, new CommonTopicRequest().setData(mediaFileDTOS),1); insertList.add(aiCompareEntity); } @@ -146,12 +146,12 @@ 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,Integer seconds ,boolean isIllegal){ - List mediaFileDTOList = aiCompareMapper.listMediaFile(jobId); + public List listMediaFile(String jobId,Long compareId,Integer seconds ,boolean isIllegal){ + List mediaFileDTOList = aiCompareMapper.listMediaFile(jobId,compareId); if(!mediaFileDTOList.isEmpty()){ mediaFileDTOList.stream().forEach(e->{ e.setFilePath(fileService.getObjectUrlOne(MinIOConstants.BUCKET_MEDIAFILE,e.getObjectKey(),seconds).toString()); - e.setMateFilePath(fileService.getObjectUrlOne(MinIOConstants.BUCKET_MEDIAFILE,e.getObjectKey(),seconds).toString()); + e.setMateFilePath(fileService.getObjectUrlOne(MinIOConstants.BUCKET_MEDIAFILE,e.getMateObjectKey(),seconds).toString()); if(isIllegal){ QueryWrapper queryWrapper = new QueryWrapper().eq("file_id", e.getFileId()); AiComparePlateEntity plateEntity = aiComparePlateMapper.selectOne(queryWrapper); @@ -176,7 +176,7 @@ public class AiCompareServiceImpl implements IAiCompareService { int i = aiCompareMapper.updateById(aiCompareEntity); AiCompareEntity compareEntity = aiCompareMapper.selectById(id); String topic = TopicConst.IMAGE +TopicConst.COMPARE; - List mediaFileDTOS = listMediaFile(compareEntity.getJobId(),43200,false); + List mediaFileDTOS = listMediaFile(compareEntity.getJobId(),compareEntity.getId(),43200,false); mqttGatewayPublish.publish(topic, new CommonTopicRequest().setData(mediaFileDTOS),1); return i>0; } @@ -189,7 +189,7 @@ public class AiCompareServiceImpl implements IAiCompareService { @Override public List queryById(Long id) { AiCompareEntity aiCompareEntity = aiCompareMapper.selectById(id); - return listMediaFile(aiCompareEntity.getJobId(),3600,true); + return listMediaFile(aiCompareEntity.getJobId(),aiCompareEntity.getId(),3600,true); } @Override public Boolean pictureFrame(MapobjectMap) { diff --git a/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml b/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml index 47f725b..84c237e 100644 --- a/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml +++ b/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml @@ -29,7 +29,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mf.file_index = mfi.file_index and mf.file_type='jpeg' and mfi.file_type='jpeg' JOIN ai_compare ai ON ai.template_id = mfi.job_id WHERE - mf.job_id = #{jobId} + mf.job_id = #{jobId} and ai.id=#{compareId} ORDER BY mf.file_index; From f6262ca8c164e25cc15bf172d33e71c39a2dac1f Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Tue, 22 Apr 2025 16:25:15 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=80=92=E5=8F=99=20=20=E3=80=82=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E9=A3=9E=E8=A1=8C=E6=9B=B4=E6=94=B9=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/AiCompareServiceImpl.java | 9 +++--- .../service/impl/SDKWaylineService.java | 29 ++++++++++++++++++- 2 files changed, 33 insertions(+), 5 deletions(-) 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 9f5ffa7..17879c1 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 @@ -87,7 +87,7 @@ public class AiCompareServiceImpl implements IAiCompareService { .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, - "create_time", params.get("beginTime"), params.get("endTime")); + "create_time", params.get("beginTime"), params.get("endTime")).orderByDesc("create_time"); return wrapper; } @Override @@ -96,7 +96,7 @@ public class AiCompareServiceImpl implements IAiCompareService { if(compareDTOList.isEmpty()){ throw new RuntimeException("未选择比对数据"); } - List insertList =new ArrayList<>(); +// List insertList =new ArrayList<>(); for (Map bo : compareDTOList) { Long queueId = bo.containsKey("queueId") ? Convert.toLong(bo.get("queueId")) : null; String waylineId = bo.containsKey("waylineId") ? Convert.toStr(bo.get("waylineId")) : null; @@ -137,12 +137,13 @@ public class AiCompareServiceImpl implements IAiCompareService { aiCompareEntity.setTemplateId(jobEntityList.get(0).getJobId()); } } + aiCompareMapper.insert(aiCompareEntity); String topic = TopicConst.IMAGE +TopicConst.COMPARE; List mediaFileDTOS = listMediaFile(aiCompareEntity.getJobId(),aiCompareEntity.getId(),43200,false); mqttGatewayPublish.publish(topic, new CommonTopicRequest().setData(mediaFileDTOS),1); - insertList.add(aiCompareEntity); +// insertList.add(aiCompareEntity); } - List resultList = aiCompareMapper.insertOrUpdate(insertList, 10); +// List resultList = aiCompareMapper.insertOrUpdate(insertList, 10); List list =compareDTOList.stream().map(e->Convert.toLong(e.get("queueId"))).collect(Collectors.toList()); return aiCompareQueueService.updateStatus(list,AiCompareStatusConstants.QUEUW_TYPE_1); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java index d97d9a9..8336524 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java @@ -1,5 +1,8 @@ package org.dromara.sample.wayline.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.dromara.common.core.constant.DeviceQrtzConstants; import org.dromara.common.sdk.cloudapi.wayline.*; import org.dromara.common.sdk.cloudapi.wayline.api.AbstractWaylineService; import org.dromara.common.sdk.mqtt.MqttReply; @@ -11,7 +14,9 @@ import org.dromara.common.sdk.mqtt.requests.TopicRequestsResponse; import org.dromara.common.websocket.dto.BizCodeEnum; import org.dromara.sample.common.error.CommonErrorEnum; import org.dromara.sample.component.mqtt.model.EventsReceiver; +import org.dromara.sample.manage.mapper.IDeviceQrtzFileMapper; import org.dromara.sample.manage.model.dto.DeviceDTO; +import org.dromara.sample.manage.model.entity.DeviceQrtzFileEntity; import org.dromara.sample.manage.model.enums.UserTypeEnum; import org.dromara.sample.manage.service.IDeviceRedisService; import org.dromara.sample.media.model.MediaFileCountDTO; @@ -31,7 +36,9 @@ import org.springframework.transaction.annotation.Transactional; import java.net.URL; import java.sql.SQLException; +import java.sql.Wrapper; import java.time.LocalDateTime; +import java.util.List; import java.util.Objects; import java.util.Optional; @@ -58,7 +65,8 @@ public class SDKWaylineService extends AbstractWaylineService { @Autowired private IWaylineFileService waylineFileService; - + @Autowired + private IDeviceQrtzFileMapper deviceQrtzFileMapper; @Autowired private IWebSocketMessageService webSocketMessageService; @@ -105,9 +113,28 @@ public class SDKWaylineService extends AbstractWaylineService { .jobId(response.getBid()).mediaCount(job.getMediaCount()).uploadedCount(0).fileId(job.getFileId()).build()); } + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(DeviceQrtzFileEntity::getWaylineId,job.getFileId()).eq(DeviceQrtzFileEntity::getStatus, DeviceQrtzConstants.QRTZ_FILE_STATUS_1).eq(DeviceQrtzFileEntity::getDeviceSn,job.getDockSn()); + List fileEntityList = deviceQrtzFileMapper.selectList(wrapper); if (FlighttaskStatusEnum.OK != statusEnum) { job.setCode(eventsReceiver.getResult().getCode()); job.setStatus(WaylineJobStatusEnum.FAILED.getVal()); + + //异常 + if(!fileEntityList.isEmpty()){ + fileEntityList.forEach(f->{ + f.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_0); + }); + deviceQrtzFileMapper.updateById(fileEntityList); + } + }else if(FlighttaskStatusEnum.OK == statusEnum){ + //正常 + if(!fileEntityList.isEmpty()){ + fileEntityList.forEach(f->{ + f.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_3); + }); + deviceQrtzFileMapper.updateById(fileEntityList); + } } waylineJobService.updateJob(job); waylineRedisService.delRunningWaylineJob(response.getGateway()); From 291ca90b466ab6d86643e246f8e7749225838c00 Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Tue, 22 Apr 2025 17:40:26 +0800 Subject: [PATCH 04/10] =?UTF-8?q?[feat]=201=E3=80=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/workflow/FlwCategoryMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dk-modules/workflow/src/main/resources/mapper/workflow/FlwCategoryMapper.xml b/dk-modules/workflow/src/main/resources/mapper/workflow/FlwCategoryMapper.xml index 95ae1de..b3875f5 100644 --- a/dk-modules/workflow/src/main/resources/mapper/workflow/FlwCategoryMapper.xml +++ b/dk-modules/workflow/src/main/resources/mapper/workflow/FlwCategoryMapper.xml @@ -9,7 +9,7 @@ From 915eeb7b80df38745d7bc83e4b208e9c4cf05231 Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Tue, 22 Apr 2025 17:49:30 +0800 Subject: [PATCH 05/10] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=E6=97=A0?= =?UTF-8?q?=E4=BA=BA=E6=9C=BA=E6=A8=A1=E5=9D=97bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dk-common/common-mybatis/src/main/resources/spy.properties | 3 ++- .../sample/manage/service/impl/DeviceQrtzServiceImpl.java | 1 + .../org/dromara/sample/wayline/model/dto/WaylineJobDTO.java | 1 + .../dromara/sample/wayline/model/entity/WaylineJobEntity.java | 3 +++ .../dromara/sample/wayline/model/param/CreateJobParam.java | 3 +++ .../wayline/service/impl/AiCompareQueueServiceImpl.java | 2 +- .../sample/wayline/service/impl/WaylineJobServiceImpl.java | 1 + dk-visual/nacos/src/main/resources/application.properties | 4 ++-- 8 files changed, 14 insertions(+), 4 deletions(-) diff --git a/dk-common/common-mybatis/src/main/resources/spy.properties b/dk-common/common-mybatis/src/main/resources/spy.properties index f3ed7d8..39df1f5 100644 --- a/dk-common/common-mybatis/src/main/resources/spy.properties +++ b/dk-common/common-mybatis/src/main/resources/spy.properties @@ -3,7 +3,8 @@ modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6 # 自定义日志打印 logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger #日志输出到控制台 -appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger +#??sql???? +#appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger # 使用日志系统记录 sql #appender=com.p6spy.engine.spy.appender.Slf4JLogger # 取消JDBC URL前缀 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 4d2c674..7b16934 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 @@ -311,6 +311,7 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService { CreateJobParam createJobParam = new CreateJobParam(); try { createJobParam.setName(deviceQrtzFileEntity.getWaylineName() + "" + currentDate.format(formatterS)); + createJobParam.setWaylineName(deviceQrtzFileEntity.getWaylineName()); createJobParam.setFileId(deviceQrtzFileEntity.getWaylineId()); createJobParam.setDockSn(device.getDeviceSn()); createJobParam.setWaylineType(WaylineTypeEnum.find(Integer.parseInt(waylineFileEntity.getTemplateTypes()))); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/WaylineJobDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/WaylineJobDTO.java index 48d1c48..9973b5a 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/WaylineJobDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/WaylineJobDTO.java @@ -29,6 +29,7 @@ public class WaylineJobDTO { private String fileId; private String fileName; + private String waylineName; private String dockSn; diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineJobEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineJobEntity.java index 88458c9..315eb97 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineJobEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineJobEntity.java @@ -32,6 +32,9 @@ public class WaylineJobEntity implements Serializable { @TableField("name") private String name; + @TableField("wayline_name") + private String waylineName; + @TableField("file_id") private String fileId; diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/param/CreateJobParam.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/param/CreateJobParam.java index adcfa01..55c7b29 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/param/CreateJobParam.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/param/CreateJobParam.java @@ -28,6 +28,9 @@ public class CreateJobParam { @Schema(description = "航线id") private String fileId; + @NotBlank + @Schema(description = "航线名称") + private String waylineName; @NotBlank @Schema(description = "机场sn") private String dockSn; diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java index 5994525..d887a4e 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java @@ -105,7 +105,7 @@ public class AiCompareQueueServiceImpl implements IAiCompareQueueService { if(waylineJob!=null){ AiCompareQueueEntity aiCompareQueueEntity = new AiCompareQueueEntity(); aiCompareQueueEntity.setWaylineId(waylineJob.getFileId()); - aiCompareQueueEntity.setWaylineName(waylineJob.getName()); + aiCompareQueueEntity.setWaylineName(waylineJob.getWaylineName()); aiCompareQueueEntity.setJobId(jobId); aiCompareQueueEntity.setJobName(waylineJob.getName()); Long selectCount = fileMapper.selectCount(Wrappers.lambdaQuery().eq(MediaFileEntity::getJobId, jobId).eq(MediaFileEntity::getFileType, "jpeg")); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java index cec52d3..23d1c98 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java @@ -90,6 +90,7 @@ public class WaylineJobServiceImpl implements IWaylineJobService { .name(param.getName()) .dockSn(param.getDockSn()) .fileId(param.getFileId()) + .waylineName(param.getWaylineName()) .username(username) .workspaceId(workspaceId) .jobId(StringUtils.hasText(param.getJobId())?param.getJobId():UUID.randomUUID().toString()) diff --git a/dk-visual/nacos/src/main/resources/application.properties b/dk-visual/nacos/src/main/resources/application.properties index 44fe8a3..972740f 100644 --- a/dk-visual/nacos/src/main/resources/application.properties +++ b/dk-visual/nacos/src/main/resources/application.properties @@ -40,9 +40,9 @@ spring.sql.init.platform=mysql db.num=1 ### Connect URL of DB: -db.url.0=jdbc:mysql://114.235.183.147:3306/dk_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true +db.url.0=jdbc:mysql://127.0.0.1:3306/dk_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true db.user.0=root -db.password.0=dkcy@yf +db.password.0=123456 ### the maximum retry times for push nacos.config.push.maxRetryTime=50 From bf22b8d6856d91b07cebf97390df58fa9669728b Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Tue, 22 Apr 2025 18:58:19 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=E6=97=A0?= =?UTF-8?q?=E4=BA=BA=E6=9C=BA=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/sample/wayline/service/impl/SDKWaylineService.java | 2 +- .../sample/wayline/service/impl/WaylineFileServiceImpl.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java index 8336524..07448b5 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java @@ -114,7 +114,7 @@ public class SDKWaylineService extends AbstractWaylineService { } LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(DeviceQrtzFileEntity::getWaylineId,job.getFileId()).eq(DeviceQrtzFileEntity::getStatus, DeviceQrtzConstants.QRTZ_FILE_STATUS_1).eq(DeviceQrtzFileEntity::getDeviceSn,job.getDockSn()); + wrapper.eq(DeviceQrtzFileEntity::getStatus, DeviceQrtzConstants.QRTZ_FILE_STATUS_1).eq(DeviceQrtzFileEntity::getDeviceSn,job.getDockSn()); List fileEntityList = deviceQrtzFileMapper.selectList(wrapper); if (FlighttaskStatusEnum.OK != statusEnum) { job.setCode(eventsReceiver.getResult().getCode()); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java index 2386b39..3cfea66 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.sample.wayline.service.impl; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.crypto.digest.MD5; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -99,7 +100,7 @@ public class WaylineFileServiceImpl implements IWaylineFileService { wrapper.eq(WaylineFileEntity::getDroneModelKey, type.getType()).or(); } }) - .and(param.getDeviceSn() != null, wrapper -> { + .and(ObjectUtil.isNotEmpty(param.getDeviceSn()), wrapper -> { wrapper.eq(WaylineFileEntity::getDeviceSn, param.getDeviceSn()).or(); }) .like(Objects.nonNull(param.getKey()), WaylineFileEntity::getName, param.getKey()) From 61cf5384a2a5cf8b3ca8e7de085eb23b5dd9bfca Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Tue, 22 Apr 2025 19:43:37 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E9=A3=9E=E8=A1=8C=E7=8A=B6=E6=80=81=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/sample/wayline/service/impl/SDKWaylineService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java index 07448b5..227a16e 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java @@ -114,7 +114,7 @@ public class SDKWaylineService extends AbstractWaylineService { } LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(DeviceQrtzFileEntity::getStatus, DeviceQrtzConstants.QRTZ_FILE_STATUS_1).eq(DeviceQrtzFileEntity::getDeviceSn,job.getDockSn()); + wrapper.eq(DeviceQrtzFileEntity::getStatus, DeviceQrtzConstants.QRTZ_FILE_STATUS_1).eq(DeviceQrtzFileEntity::getDeviceSn,response.getGateway()); List fileEntityList = deviceQrtzFileMapper.selectList(wrapper); if (FlighttaskStatusEnum.OK != statusEnum) { job.setCode(eventsReceiver.getResult().getCode()); From 810fb77e834d896cd7f5eff0ee22f6fbf3443849 Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Tue, 22 Apr 2025 20:01:17 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E7=8A=B6=E6=80=81=E4=BF=AE=E6=94=B9=EF=BC=8C=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1id=E5=92=8Cjob?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sample/wayline/service/impl/AiCompareQueueServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java index d887a4e..58f9153 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareQueueServiceImpl.java @@ -115,7 +115,7 @@ public class AiCompareQueueServiceImpl implements IAiCompareQueueService { flag= aiCompareQueueMapper.insert(aiCompareQueueEntity)>0; //去查询当前的航线是否是预约工单的是就更改完成 //remoteBusinessTaskService.updateTaskStatus(waylineJob.getFileId(), BusinessConstants.TASK_STATUS_3,null,null); - remoteBusinessTaskFeign.updateTaskStatus(waylineJob.getFileId(), BusinessConstants.TASK_STATUS_3, null, null); + remoteBusinessTaskFeign.updateTaskStatus(waylineJob.getFileId(), BusinessConstants.TASK_STATUS_3, jobId, waylineJob.getName()); } return flag; } From 674fe3b55990700fb2de7bcf0b2ca0144b5f122b Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Wed, 23 Apr 2025 09:09:30 +0800 Subject: [PATCH 09/10] =?UTF-8?q?[feat]=201=E3=80=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E9=A2=84=E8=AD=A6=E6=97=A0=E6=B3=95=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sample/wayline/controller/AiCompareController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 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 fac7729..4a8b119 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 @@ -184,8 +184,8 @@ public class AiCompareController extends BaseController { * * */ @SaCheckPermission("sample:compare:delAlertList") @DeleteMapping("/delAlertList") - public R delAlertList(Listids) { - return toAjax(aiCompareService.delAlertList(ids)); + public R delAlertList(Long ids) { + return toAjax(aiCompareService.delAlertList(List.of(ids))); } /** From 07edf1419915dcd06805570d3a0f8c2b18c5ad19 Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Wed, 23 Apr 2025 11:12:05 +0800 Subject: [PATCH 10/10] 1 --- .../sample/wayline/service/impl/SDKWaylineService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java index 227a16e..7fc2a21 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java @@ -125,7 +125,6 @@ public class SDKWaylineService extends AbstractWaylineService { fileEntityList.forEach(f->{ f.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_0); }); - deviceQrtzFileMapper.updateById(fileEntityList); } }else if(FlighttaskStatusEnum.OK == statusEnum){ //正常 @@ -133,13 +132,14 @@ public class SDKWaylineService extends AbstractWaylineService { fileEntityList.forEach(f->{ f.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_3); }); - deviceQrtzFileMapper.updateById(fileEntityList); } } waylineJobService.updateJob(job); waylineRedisService.delRunningWaylineJob(response.getGateway()); waylineRedisService.delPausedWaylineJob(response.getBid()); + deviceQrtzFileMapper.updateById(fileEntityList); } + webSocketMessageService.sendBatch(deviceOpt.get().getWorkspaceId(),UserTypeEnum.WEB.getVal(), BizCodeEnum.FLIGHT_TASK_PROGRESS.getCode(), eventsReceiver);