From cc7b680aa5b2a6ad599c394715bb4327de8670bf Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Tue, 25 Jun 2024 14:37:32 +0800
Subject: [PATCH] 调查取证手动航线更新图斑调查状态,新增媒体查询接口视频图片筛查,调整定时任务时间,新增航线任务错误代码识别
---
src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java | 36 ++++++++-
src/main/java/com/dji/sample/media/controller/FileController.java | 6 +
src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java | 53 ++++++++-----
src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java | 29 ++++--
src/main/java/com/dji/sample/wayline/util/ErrorCodeUtil.java | 51 ++++++++++++
src/main/java/com/dji/sample/media/service/IFileService.java | 2
src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java | 23 +++++
src/main/java/com/dji/sample/patches/utils/TimerUtil.java | 16 ++-
src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java | 6
src/main/java/com/dji/sample/wayline/model/dto/WaylineJobDTO.java | 2
src/main/java/com/dji/sample/wayline/service/IWaylineFileService.java | 1
11 files changed, 174 insertions(+), 51 deletions(-)
diff --git a/src/main/java/com/dji/sample/media/controller/FileController.java b/src/main/java/com/dji/sample/media/controller/FileController.java
index eff6ca0..4d0574c 100644
--- a/src/main/java/com/dji/sample/media/controller/FileController.java
+++ b/src/main/java/com/dji/sample/media/controller/FileController.java
@@ -81,9 +81,11 @@
@RequestParam(name = "photoEnd", required = false) Long updateEnd,
@RequestParam(name = "updateStart", required = false) Long photoStart,
@RequestParam(name = "updateEnd", required = false) Long photoEnd,
- @RequestParam(name = "jobName", required = false) String jobName) {
+ @RequestParam(name = "jobName", required = false) String jobName,
+ @RequestParam( required = false) String type
+ ) {
- return ResponseResult.success(fileService.MediaQuery(page, pageSize, updateStart, updateEnd, photoStart, photoEnd, jobName,workspaceId));
+ return ResponseResult.success(fileService.MediaQuery(page, pageSize, updateStart, updateEnd, photoStart, photoEnd, jobName,workspaceId,type));
}
diff --git a/src/main/java/com/dji/sample/media/service/IFileService.java b/src/main/java/com/dji/sample/media/service/IFileService.java
index 5cc4242..d46c437 100644
--- a/src/main/java/com/dji/sample/media/service/IFileService.java
+++ b/src/main/java/com/dji/sample/media/service/IFileService.java
@@ -63,7 +63,7 @@
*/
List<MediaFileDTO> getAllFilesByWorkspaceId(String workspaceId);
- PaginationData<MediaFileEntity> MediaQuery(Integer page, Integer pageSize, Long updateStart, Long updateEnd, Long photoStart, Long photoEnd, String jobName,String worksapceId);
+ PaginationData<MediaFileEntity> MediaQuery(Integer page, Integer pageSize, Long updateStart, Long updateEnd, Long photoStart, Long photoEnd, String jobName,String worksapceId,String isVedio);
/**
* 获取图斑图片集合
* @param dkbh
diff --git a/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java b/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java
index f69292b..500c5da 100644
--- a/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java
+++ b/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java
@@ -25,6 +25,7 @@
import com.dji.sample.territory.pojo.TerritoryConfigPojo;
import com.dji.sample.territory.service.impl.TbFjServiceImpl;
import com.dji.sample.territory.utils.WaterMarkUtil;
+import com.dji.sample.wayline.service.IWaylineFileService;
import com.dji.sample.wayline.service.IWaylineJobService;
import com.drew.imaging.ImageProcessingException;
import io.minio.MinioClient;
@@ -68,6 +69,8 @@
private TerritoryConfigPojo territoryConfigPojo;
@Autowired
private IWaylineJobService waylineJobService;
+ @Autowired
+ private IWaylineFileService waylineFileService;
private Optional<MediaFileEntity> getMediaByFingerprint(String workspaceId, String fingerprint) {
MediaFileEntity fileEntity = mapper.selectOne(new LambdaQueryWrapper<MediaFileEntity>()
@@ -93,6 +96,7 @@
MediaFileEntity fileEntity = this.fileUploadConvertToEntity(file);
fileEntity.setWorkspaceId(workspaceId);
fileEntity.setFileId(UUID.randomUUID().toString());
+ updateInvestigate(file.getExt().getFlightId());
return mapper.insert(fileEntity);
}
@@ -158,7 +162,7 @@
}
@Override
- public PaginationData<MediaFileEntity> MediaQuery(Integer page, Integer pageSize, Long updateStart, Long updateEnd, Long photoStart, Long photoEnd, String jobName, String workspaceId) {
+ public PaginationData<MediaFileEntity> MediaQuery(Integer page, Integer pageSize, Long updateStart, Long updateEnd, Long photoStart, Long photoEnd, String jobName, String workspaceId,String type) {
// 创建分页对象
Page<MediaFileEntity> pageObj = new Page<>(page, pageSize);
@@ -177,10 +181,17 @@
}
if (jobName != null && !jobName.isEmpty()) {
- List<String> jobIds = waylineJobService.getJobId(jobName);
+ List<String> jobIds = waylineJobService.getJobIds(jobName);
queryWrapper.in(MediaFileEntity::getJobId, jobIds);
}
-
+ if (type != null && !type.isEmpty()) {
+ if ("图片".equals(type)) {
+ queryWrapper.likeLeft(MediaFileEntity::getFileName, ".jpeg");
+ } else if ("视频".equals(type)) {
+ queryWrapper.likeLeft(MediaFileEntity::getFileName, ".mp4");
+ }
+ }
+ queryWrapper.orderByDesc(MediaFileEntity::getCreateTime);
// 执行分页查询
Page<MediaFileEntity> resultPage = mapper.selectPage(pageObj, queryWrapper);
@@ -192,13 +203,30 @@
String taskNameResult = waylineJobService.getName(mediaFile.getJobId());
mediaFile.setJobName(taskNameResult);
})
- .collect(Collectors.toList());
+ .collect(Collectors.toList()
+ );
// 返回分页数据
return new PaginationData<>(records, new Pagination(resultPage));
}
+ public void updateInvestigate(String jobId){
+ String waylineId=waylineJobService.getWaylineId(jobId);
+ String patchesId=waylineFileService.getPatchesId(waylineId);
+ if (patchesId==null){
+ return;
+ }
+ List<Long> ids = Arrays.stream(patchesId.split(","))
+ .map(Long::parseLong)
+ .collect(Collectors.toList());
+ LambdaUpdateWrapper<LotInfo> updateWrapper = new LambdaUpdateWrapper<>();
+ updateWrapper.in(LotInfo::getId, ids)
+ .set(LotInfo::getInvestigate, 1);
+ patchesMapper.update(null, updateWrapper);
+ }
+
+
@Override
public List<MediaFileEntity> listMediaFileEntity(String workspaceId, String jobId) {
return mapper.selectList(new LambdaQueryWrapper<MediaFileEntity>()
diff --git a/src/main/java/com/dji/sample/patches/utils/TimerUtil.java b/src/main/java/com/dji/sample/patches/utils/TimerUtil.java
index 4230895..9509d05 100644
--- a/src/main/java/com/dji/sample/patches/utils/TimerUtil.java
+++ b/src/main/java/com/dji/sample/patches/utils/TimerUtil.java
@@ -24,6 +24,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.http.*;
+import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -114,7 +115,7 @@
String times = convertTimestampToFormattedString(time);
sendPostWithParameters(waylineName, waylineFile.getWaylineId(), times, lists1, listOfLists);
updatePatchesStatu(list);
- time = addOneHourToTimestamp(time,1,30);
+ time = addOneHourToTimestamp(time, 1, 30);
}
}
@@ -157,7 +158,8 @@
@Scheduled(cron = "0 0 0 * * ?")
public void mytask5() throws IOException {
- Long time = getCurrentTimestampPlus8Hours(10);
+ Long time = getCurrentTimestampPlus8Hours(9);
+ time = addOneHourToTimestamp(time, 0, 50);
List<List<Long>> listOfLists = new ArrayList<>();
List<Long> sublist = new ArrayList<>();
sublist.add(time); // 添加整数值
@@ -170,7 +172,8 @@
@Scheduled(cron = "0 0 0 * * ?")
public void mytask6() throws IOException {
- Long time = getCurrentTimestampPlus8Hours(11);
+ Long time = getCurrentTimestampPlus8Hours(9);
+ time = addOneHourToTimestamp(time, 1, 40);
List<List<Long>> listOfLists = new ArrayList<>();
List<Long> sublist = new ArrayList<>();
sublist.add(time); // 添加整数值
@@ -183,7 +186,8 @@
@Scheduled(cron = "0 0 0 * * ?")
public void mytask7() throws IOException {
- Long time = getCurrentTimestampPlus8Hours(13);
+ Long time = getCurrentTimestampPlus8Hours(9);
+ time = addOneHourToTimestamp(time, 2, 50);
List<List<Long>> listOfLists = new ArrayList<>();
List<Long> sublist = new ArrayList<>();
sublist.add(time); // 添加整数值
@@ -412,7 +416,7 @@
// 发送请求
ResponseEntity<String> response = restTemplate.exchange(
- "https://jxlandcloud.org.cn/landCloudWork/artifact/media/upload.action",
+ "http://39.98.49.177:8083/landCloudWork/artifact/media/upload.action",
// "http://localhost:6789/territory/tbdkjbxx/upload",
HttpMethod.POST,
requestEntity,
@@ -586,7 +590,7 @@
return timestamp / 1000;
}
- public static Long addOneHourToTimestamp(Long timestampInSeconds,long hours,long min) {
+ public static Long addOneHourToTimestamp(Long timestampInSeconds, long hours, long min) {
// 将输入的秒级时间戳转换为Instant对象
Instant instant = Instant.ofEpochSecond(timestampInSeconds);
diff --git a/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java b/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java
index 5d9fdf8..d587c29 100644
--- a/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java
+++ b/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java
@@ -13,6 +13,7 @@
import com.dji.sample.wayline.model.param.*;
import com.dji.sample.wayline.service.IWaylineJobService;
import com.dji.sample.wayline.service.impl.WaylineJobServiceImpl;
+import com.dji.sample.wayline.util.ErrorCodeUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -78,13 +79,14 @@
/**
* 断点任务
+ *
* @return
*/
@PostMapping("/{workspace_id}/breakpoint-tasks")
@SysLogAnnotation(operModul = "计划库", operType = "断点续飞", operDesc = "创建航路任务(重复定时和连续执行)")
public ResponseResult breakPointJob(HttpServletRequest request, @Valid @RequestBody BreakPointJobParam param,
@PathVariable(name = "workspace_id") String workspaceId) throws SQLException {
- Optional<WaylineJobDTO> waylineJobDTO = waylineJobService.getJobByJobId(workspaceId, param.getJobId(),param.isBreakPoint());
+ Optional<WaylineJobDTO> waylineJobDTO = waylineJobService.getJobByJobId(workspaceId, param.getJobId(), param.isBreakPoint());
return waylineJobService.publishOneFlightTask(waylineJobDTO.get());
}
@@ -108,23 +110,24 @@
@GetMapping("/{workspace_id}/jobs-dp")
@SysLogAnnotation(operModul = "计划库", operType = "查询", operDesc = "分页查询")
public ResponseResult<PaginationData<WaylineJobDTO>> getJobsByState(@RequestParam(defaultValue = "1") Long page,
- @RequestParam(name = "page_size", defaultValue = "10") Long pageSize,
- @PathVariable(name = "workspace_id") String workspaceId,
- @RequestParam(name = "order", defaultValue = "") String order,
- WaylineJobQueryParam waylineJobQueryParam) {
- PaginationData<WaylineJobDTO> data = waylineJobService.getJobsByWorkspaceIdNew(workspaceId, page, pageSize, waylineJobQueryParam,order);
+ @RequestParam(name = "page_size", defaultValue = "10") Long pageSize,
+ @PathVariable(name = "workspace_id") String workspaceId,
+ @RequestParam(name = "order", defaultValue = "") String order,
+ WaylineJobQueryParam waylineJobQueryParam) {
+ PaginationData<WaylineJobDTO> data = waylineJobService.getJobsByWorkspaceIdNew(workspaceId, page, pageSize, waylineJobQueryParam, order);
return ResponseResult.success(data);
}
/**
* 子查询
+ *
* @param workspaceId
* @return
*/
@GetMapping("/{workspace_id}/getChildrenJobs")
@SysLogAnnotation(operModul = "计划库", operType = "查询", operDesc = "分页查询")
public ResponseResult<List<WaylineJobDTO>> getChildrenJobs(
- @PathVariable(name = "workspace_id") String workspaceId, WaylineJobQueryParam waylineJobQueryParam) {
+ @PathVariable(name = "workspace_id") String workspaceId, WaylineJobQueryParam waylineJobQueryParam) {
List<WaylineJobDTO> data = waylineJobService.getChildrenJobs(workspaceId, waylineJobQueryParam);
return ResponseResult.success(data);
}
@@ -143,6 +146,10 @@
return ResponseResult.success(waylineJobEntity);
}
+ @GetMapping("/code")
+ public ResponseResult errotCode(@RequestParam Integer code) {
+ return ResponseResult.success(ErrorCodeUtil.codeToReason(code));
+ }
/**
* 发送命令取消作业。
@@ -188,9 +195,9 @@
* 统计飞行次数
*/
@PostMapping("/{workspace_id}/patrol_statistics")
- public ResponseResult<WaylineJobCountDTO> patrolStatistics(@PathVariable(name = "workspace_id") String workspaceId,String queryTime,String deviceSn) {
+ public ResponseResult<WaylineJobCountDTO> patrolStatistics(@PathVariable(name = "workspace_id") String workspaceId, String queryTime, String deviceSn) {
- WaylineJobCountDTO waylineJobCountDTO = waylineJobService.patrolStatistics(workspaceId,queryTime,deviceSn);
+ WaylineJobCountDTO waylineJobCountDTO = waylineJobService.patrolStatistics(workspaceId, queryTime, deviceSn);
return ResponseResult.success(waylineJobCountDTO);
}
@@ -218,7 +225,7 @@
*/
@PostMapping("/{sn}/jobs/{device_sn}/flyByArea")
@SysLogAnnotation(operModul = "根据区域飞行", operType = "根据区域飞行", operDesc = "根据区域飞行")
- public ResponseResult flyByArea(@PathVariable(name = "sn") String sn, @RequestBody FlyAreaParam flyAreaParam,@PathVariable(name = "device_sn")String deviceSn)throws Exception {
- return waylineJobService.flyByArea(sn, flyAreaParam,deviceSn);
+ public ResponseResult flyByArea(@PathVariable(name = "sn") String sn, @RequestBody FlyAreaParam flyAreaParam, @PathVariable(name = "device_sn") String deviceSn) throws Exception {
+ return waylineJobService.flyByArea(sn, flyAreaParam, deviceSn);
}
}
diff --git a/src/main/java/com/dji/sample/wayline/model/dto/WaylineJobDTO.java b/src/main/java/com/dji/sample/wayline/model/dto/WaylineJobDTO.java
index d9aee0a..9044fba 100644
--- a/src/main/java/com/dji/sample/wayline/model/dto/WaylineJobDTO.java
+++ b/src/main/java/com/dji/sample/wayline/model/dto/WaylineJobDTO.java
@@ -74,4 +74,6 @@
private WaylineJobBreakPointEntity waylineJobBreakPointEntity;
private Boolean breakPoint;
+
+ private String reason;
}
diff --git a/src/main/java/com/dji/sample/wayline/service/IWaylineFileService.java b/src/main/java/com/dji/sample/wayline/service/IWaylineFileService.java
index 671f5cf..6077384 100644
--- a/src/main/java/com/dji/sample/wayline/service/IWaylineFileService.java
+++ b/src/main/java/com/dji/sample/wayline/service/IWaylineFileService.java
@@ -27,6 +27,7 @@
*/
PaginationData<WaylineFileDTO> getWaylinesByParam(String workspaceId, WaylineQueryParam param);
+ String getPatchesId(String waylineId);
/**
* Query the information of this wayline file according to the wayline file id.
* @param workspaceId
diff --git a/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java b/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
index cce52f0..e5e3d14 100644
--- a/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
+++ b/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
@@ -42,7 +42,7 @@
* @return
*/
Optional<WaylineJobDTO> createWaylineJobByParent(String workspaceId, String parentId);
-
+ String getWaylineId(String jobId);
/**
* Issue wayline mission to the dock.
* 向机场发出航线任务
@@ -163,7 +163,7 @@
* @param param
*/
void updateJobStatus(String workspaceId, String jobId, UpdateJobParam param);
-
+ List<String> getJobNamesByPartialName(String partialJobName);
/**
* Query the wayline execution status of the dock.
* @param dockSn
@@ -171,7 +171,7 @@
*/
WaylineJobStatusEnum getWaylineState(String dockSn);
String getName(String jobId);
- List<String> getJobId(String jobName);
+ List<String> getJobIds(String jobNames);
/**
* 获取最新的航线任务
diff --git a/src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java b/src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java
index 60e8331..8efa814 100644
--- a/src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java
+++ b/src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java
@@ -64,10 +64,10 @@
new LambdaQueryWrapper<WaylineFileEntity>()
.eq(WaylineFileEntity::getWorkspaceId, workspaceId)
.eq(param.isFavorited(), WaylineFileEntity::getFavorited, param.isFavorited())
- .and(param.getTemplateType() != null, wrapper -> {
- for (Integer type : param.getTemplateType()) {
- wrapper.like(WaylineFileEntity::getTemplateTypes, type).or();
- }
+ .and(param.getTemplateType() != null, wrapper -> {
+ for (Integer type : param.getTemplateType()) {
+ wrapper.like(WaylineFileEntity::getTemplateTypes, type).or();
+ }
})
// There is a risk of SQL injection
.last(StringUtils.hasText(param.getOrderBy()), " order by " + param.getOrderBy()));
@@ -82,13 +82,20 @@
}
@Override
+ public String getPatchesId(String waylineId) {
+ WaylineFileEntity entity = mapper.selectOne(new LambdaQueryWrapper<WaylineFileEntity>()
+ .eq(WaylineFileEntity::getWaylineId, waylineId));
+ return entity.getPatchesId();
+ }
+
+ @Override
public Optional<WaylineFileDTO> getWaylineByWaylineId(String workspaceId, String waylineId) {
return Optional.ofNullable(
this.entityConvertToDTO(
mapper.selectOne(
new LambdaQueryWrapper<WaylineFileEntity>()
- .eq(WaylineFileEntity::getWorkspaceId, workspaceId)
- .eq(WaylineFileEntity::getWaylineId, waylineId))));
+ .eq(WaylineFileEntity::getWorkspaceId, workspaceId)
+ .eq(WaylineFileEntity::getWaylineId, waylineId))));
}
@Override
@@ -160,8 +167,8 @@
@Override
public List<String> getDuplicateNames(String workspaceId, List<String> names) {
return mapper.selectList(new LambdaQueryWrapper<WaylineFileEntity>()
- .eq(WaylineFileEntity::getWorkspaceId, workspaceId)
- .in(WaylineFileEntity::getName, names))
+ .eq(WaylineFileEntity::getWorkspaceId, workspaceId)
+ .in(WaylineFileEntity::getName, names))
.stream()
.map(WaylineFileEntity::getName)
.collect(Collectors.toList());
@@ -175,8 +182,8 @@
}
WaylineFileDTO wayline = waylineOpt.get();
boolean isDel = mapper.delete(new LambdaUpdateWrapper<WaylineFileEntity>()
- .eq(WaylineFileEntity::getWorkspaceId, workspaceId)
- .eq(WaylineFileEntity::getWaylineId, waylineId))
+ .eq(WaylineFileEntity::getWorkspaceId, workspaceId)
+ .eq(WaylineFileEntity::getWaylineId, waylineId))
> 0;
if (!isDel) {
return false;
@@ -185,7 +192,7 @@
}
@Override
- public void importKmzFile(MultipartFile file, String workspaceId, String creator,String patchesId) {
+ public void importKmzFile(MultipartFile file, String workspaceId, String creator, String patchesId) {
Optional<WaylineFileDTO> waylineFileOpt = validKmzFile(file);
if (waylineFileOpt.isEmpty()) {
throw new RuntimeException("文件格式错误");
@@ -197,7 +204,7 @@
waylineFile.setUsername(creator);
ossService.putObject(OssConfiguration.bucket, waylineFile.getObjectKey(), file.getInputStream());
- this.saveWaylineFiles(workspaceId, waylineFile,patchesId);
+ this.saveWaylineFiles(workspaceId, waylineFile, patchesId);
} catch (IOException e) {
e.printStackTrace();
}
@@ -205,7 +212,7 @@
@Override
public WaylineFileDTO importKmzFileBack(MultipartFile file, String workspaceId, String creator) {
- WaylineFileDTO waylineFile=null;
+ WaylineFileDTO waylineFile = null;
Optional<WaylineFileDTO> waylineFileOpt = validKmzFile(file);
if (waylineFileOpt.isEmpty()) {
throw new RuntimeException("文件格式错误");
@@ -227,18 +234,18 @@
@Override
public WaylineFileEntity selectByName(String name) {
- return mapper.selectOne(new LambdaQueryWrapper<WaylineFileEntity>().eq(WaylineFileEntity::getName,name));
+ return mapper.selectOne(new LambdaQueryWrapper<WaylineFileEntity>().eq(WaylineFileEntity::getName, name));
}
@Override
- public List<WaylineListDTO> waylineList(String workspaceId,String droneName) {
+ public List<WaylineListDTO> waylineList(String workspaceId, String droneName) {
LambdaQueryChainWrapper<WaylineFileEntity> wrapper =
new LambdaQueryChainWrapper<>(mapper).eq(WaylineFileEntity::getWorkspaceId, workspaceId);
- if (StringUtils.hasText(droneName)){
- wrapper.like(WaylineFileEntity::getName,droneName);
+ if (StringUtils.hasText(droneName)) {
+ wrapper.like(WaylineFileEntity::getName, droneName);
}
- return wrapper.list().stream().map(r -> WaylineListDTO.builder().waylineFileId(r.getWaylineId()).name(r.getName()).build())
+ return wrapper.list().stream().map(r -> WaylineListDTO.builder().waylineFileId(r.getWaylineId()).name(r.getName()).build())
.collect(Collectors.toList());
}
@@ -282,7 +289,7 @@
return Optional.of(WaylineFileDTO.builder()
.droneModelKey(String.format("%s-%s-%s", DeviceDomainEnum.SUB_DEVICE.getVal(), type, subType))
- .payloadModelKeys(List.of(String.format("%s-%s-%s",DeviceDomainEnum.PAYLOAD.getVal(), payloadType, payloadSubType)))
+ .payloadModelKeys(List.of(String.format("%s-%s-%s", DeviceDomainEnum.PAYLOAD.getVal(), payloadType, payloadSubType)))
// .objectKey(OssConfiguration.objectDirPrefix + File.separator + filename)
.objectKey(OssConfiguration.objectDirPrefix + "/" + filename)
.name(filename.substring(0, filename.lastIndexOf(WAYLINE_FILE_SUFFIX)))
@@ -296,8 +303,10 @@
}
return Optional.empty();
}
+
/**
* Convert database entity objects into wayline data transfer object.
+ *
* @param entity
* @return
*/
@@ -326,6 +335,7 @@
/**
* Convert the received wayline object into a database entity object.
+ *
* @param file
* @return
*/
@@ -350,9 +360,10 @@
return builder.build();
}
+
@Override
public int updateWayline(WaylineFileEntity entity) {
- return mapper.update(entity,new LambdaQueryWrapper<WaylineFileEntity>()
- .eq(WaylineFileEntity::getWaylineId,entity.getWaylineId()));
+ return mapper.update(entity, new LambdaQueryWrapper<WaylineFileEntity>()
+ .eq(WaylineFileEntity::getWaylineId, entity.getWaylineId()));
}
}
diff --git a/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java b/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
index 9e22c2e..589c259 100644
--- a/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
+++ b/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
@@ -49,6 +49,7 @@
import com.dji.sample.wayline.service.IWaylineJobBreakPointService;
import com.dji.sample.wayline.service.IWaylineJobService;
import com.dji.sample.wayline.service.IWaylineRedisService;
+import com.dji.sample.wayline.util.ErrorCodeUtil;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
@@ -165,6 +166,11 @@
jobEntity.setParentId(parentId);
return this.insertWaylineJob(jobEntity);
+ }
+ @Override
+ public String getWaylineId(String jobId){
+ WaylineJobEntity waylineJob=mapper.selectOne(new LambdaQueryWrapper<WaylineJobEntity>().select(WaylineJobEntity::getFileId).eq(WaylineJobEntity::getJobId,jobId));
+ return waylineJob.getFileId();
}
/**
@@ -736,6 +742,15 @@
}
+ @Override
+ public List<String> getJobNamesByPartialName(String partialJobName) {
+ LambdaQueryWrapper<WaylineJobEntity> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.like(WaylineJobEntity::getName, partialJobName);
+ return mapper.selectList(queryWrapper).stream()
+ .map(WaylineJobEntity::getName)
+ .collect(Collectors.toList());
+ }
+
public WaylineJobStatusEnum getWaylineState(String dockSn) {
Optional<DeviceDTO> dockOpt = deviceRedisService.getDeviceOnline(dockSn);
if (dockOpt.isEmpty() || !StringUtils.hasText(dockOpt.get().getChildDeviceSn())) {
@@ -772,14 +787,16 @@
}
@Override
- public List<String> getJobId(String jobName) {
+ public List<String> getJobIds(String jobNames) {
+ List<String> names = getJobNamesByPartialName(jobNames);
+ // 使用 LambdaQueryWrapper 进行查询
List<Object> jobIdList = mapper.selectObjs(
new LambdaQueryWrapper<WaylineJobEntity>()
.select(WaylineJobEntity::getJobId)
- .eq(WaylineJobEntity::getName, jobName)
+ .in(WaylineJobEntity::getName, names) // 使用 IN 子句
);
-// 将 Object 类型的 jobId 转换为 String 类型,并放入 List<String> 中
+ // 将 Object 类型的 jobId 转换为 String 类型,并放入 List<String> 中
List<String> jobIdStringList = new ArrayList<>();
for (Object jobIdObj : jobIdList) {
jobIdStringList.add(String.valueOf(jobIdObj));
diff --git a/src/main/java/com/dji/sample/wayline/util/ErrorCodeUtil.java b/src/main/java/com/dji/sample/wayline/util/ErrorCodeUtil.java
new file mode 100644
index 0000000..6f9cdb5
--- /dev/null
+++ b/src/main/java/com/dji/sample/wayline/util/ErrorCodeUtil.java
@@ -0,0 +1,51 @@
+package com.dji.sample.wayline.util;
+
+import cn.hutool.core.io.resource.ResourceUtil;
+import com.alibaba.fastjson.JSONObject;
+
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+public class ErrorCodeUtil {
+ private static Map DistrictCode = new HashMap();
+ static {
+ try {
+ String result = ResourceUtil.readUtf8Str("classpath:errorCode.json");
+ DistrictCode = JSONObject.parseObject(result, Map.class);
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ public static boolean isChinese(String str) {
+ return str.matches("[\\u4E00-\\u9FFF]+");
+ }
+ public static String codeToReason(Integer name1) {
+ if (Objects.equals(name1, 0)){
+ return null;
+ }
+ String name=name1.toString();
+ boolean bs = isChinese(name);
+ if (!bs) {
+ return codeToName(name);
+ }
+ Map<String, Object> jsonObject = new HashMap<>(DistrictCode);
+ for (Map.Entry<String, Object> entry : jsonObject.entrySet()) {
+ if (entry.getValue().equals(name)) {
+ return entry.getKey();
+ }
+ }
+ return null;
+ }
+ public static String codeToName(String code) {
+ if (!DistrictCode.containsKey(code)) {
+ return null;
+ }
+ return DistrictCode.get(code).toString();
+ }
+
+ public static void main(String[] args) {
+ System.out.println(codeToReason(315002));
+ }
+}
--
Gitblit v1.9.3