大图合并进度
This commit is contained in:
@ -0,0 +1,27 @@
|
|||||||
|
package org.dromara.drone.domain.bo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lilemy
|
||||||
|
* @date 2025-11-17 19:59
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DroDroneBigPictureProgressVo {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 进度
|
||||||
|
*/
|
||||||
|
private BigDecimal progress;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 状态
|
||||||
|
*/
|
||||||
|
private String status;
|
||||||
|
}
|
||||||
@ -10,6 +10,7 @@ import org.dromara.drone.domain.DroDroneBigPicture;
|
|||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -92,4 +93,9 @@ public class DroDroneBigPictureVo implements Serializable {
|
|||||||
@ExcelProperty(value = "备注")
|
@ExcelProperty(value = "备注")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 进度
|
||||||
|
*/
|
||||||
|
private BigDecimal progress;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
|||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.drone.domain.DroDroneBigPicture;
|
import org.dromara.drone.domain.DroDroneBigPicture;
|
||||||
import org.dromara.drone.domain.bo.DroDroneBigPictureBo;
|
import org.dromara.drone.domain.bo.DroDroneBigPictureBo;
|
||||||
|
import org.dromara.drone.domain.bo.DroDroneBigPictureProgressVo;
|
||||||
import org.dromara.drone.domain.vo.DroDroneBigPictureVo;
|
import org.dromara.drone.domain.vo.DroDroneBigPictureVo;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -81,12 +82,12 @@ public interface IDroDroneBigPictureService extends IService<DroDroneBigPicture>
|
|||||||
*
|
*
|
||||||
* @param picture 大图信息
|
* @param picture 大图信息
|
||||||
*/
|
*/
|
||||||
String isSynthesisCompleted(DroDroneBigPicture picture);
|
DroDroneBigPictureProgressVo isSynthesisCompleted(DroDroneBigPicture picture);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否合成完成
|
* 是否合成完成
|
||||||
*
|
*
|
||||||
* @param pictureVo 大图信息
|
* @param pictureVo 大图信息
|
||||||
*/
|
*/
|
||||||
String isSynthesisCompleted(DroDroneBigPictureVo pictureVo);
|
DroDroneBigPictureProgressVo isSynthesisCompleted(DroDroneBigPictureVo pictureVo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
|||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.drone.domain.DroDroneBigPicture;
|
import org.dromara.drone.domain.DroDroneBigPicture;
|
||||||
import org.dromara.drone.domain.bo.DroDroneBigPictureBo;
|
import org.dromara.drone.domain.bo.DroDroneBigPictureBo;
|
||||||
|
import org.dromara.drone.domain.bo.DroDroneBigPictureProgressVo;
|
||||||
import org.dromara.drone.domain.vo.DroDroneBigPictureVo;
|
import org.dromara.drone.domain.vo.DroDroneBigPictureVo;
|
||||||
import org.dromara.drone.mapper.DroDroneBigPictureMapper;
|
import org.dromara.drone.mapper.DroDroneBigPictureMapper;
|
||||||
import org.dromara.drone.service.IDroDroneBigPictureService;
|
import org.dromara.drone.service.IDroDroneBigPictureService;
|
||||||
@ -61,11 +62,13 @@ public class DroDroneBigPictureServiceImpl extends ServiceImpl<DroDroneBigPictur
|
|||||||
public DroDroneBigPictureVo queryById(Long id) {
|
public DroDroneBigPictureVo queryById(Long id) {
|
||||||
DroDroneBigPictureVo pictureVo = baseMapper.selectVoById(id);
|
DroDroneBigPictureVo pictureVo = baseMapper.selectVoById(id);
|
||||||
if (pictureVo != null) {
|
if (pictureVo != null) {
|
||||||
String synthesisCompleted = null;
|
|
||||||
try {
|
try {
|
||||||
synthesisCompleted = this.isSynthesisCompleted(pictureVo);
|
DroDroneBigPictureProgressVo progressVo = this.isSynthesisCompleted(pictureVo);
|
||||||
if (StringUtils.isNotBlank(synthesisCompleted)) {
|
if (progressVo != null) {
|
||||||
pictureVo.setStatus(synthesisCompleted);
|
if (StringUtils.isNotBlank(progressVo.getStatus())) {
|
||||||
|
pictureVo.setStatus(progressVo.getStatus());
|
||||||
|
}
|
||||||
|
pictureVo.setProgress(progressVo.getProgress().multiply(new BigDecimal("100")));
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("查询图片合成进度异常", e);
|
log.error("查询图片合成进度异常", e);
|
||||||
@ -90,9 +93,12 @@ public class DroDroneBigPictureServiceImpl extends ServiceImpl<DroDroneBigPictur
|
|||||||
// 处理数据,判断合成中的图片是否完成合成
|
// 处理数据,判断合成中的图片是否完成合成
|
||||||
for (DroDroneBigPictureVo pictureVo : records) {
|
for (DroDroneBigPictureVo pictureVo : records) {
|
||||||
try {
|
try {
|
||||||
String synthesisCompleted = this.isSynthesisCompleted(pictureVo);
|
DroDroneBigPictureProgressVo progressVo = this.isSynthesisCompleted(pictureVo);
|
||||||
if (StringUtils.isNotBlank(synthesisCompleted)) {
|
if (progressVo != null) {
|
||||||
pictureVo.setStatus(synthesisCompleted);
|
if (StringUtils.isNotBlank(progressVo.getStatus())) {
|
||||||
|
pictureVo.setStatus(progressVo.getStatus());
|
||||||
|
}
|
||||||
|
pictureVo.setProgress(progressVo.getProgress().multiply(new BigDecimal("100")));
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
pictureVo.setStatus("4");
|
pictureVo.setStatus("4");
|
||||||
@ -230,26 +236,33 @@ public class DroDroneBigPictureServiceImpl extends ServiceImpl<DroDroneBigPictur
|
|||||||
* @param picture 大图信息
|
* @param picture 大图信息
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String isSynthesisCompleted(DroDroneBigPicture picture) {
|
public DroDroneBigPictureProgressVo isSynthesisCompleted(DroDroneBigPicture picture) {
|
||||||
|
DroDroneBigPictureProgressVo vo = new DroDroneBigPictureProgressVo();
|
||||||
String newStatus = "";
|
String newStatus = "";
|
||||||
|
vo.setProgress(BigDecimal.ZERO);
|
||||||
|
vo.setStatus(newStatus);
|
||||||
String status = picture.getStatus();
|
String status = picture.getStatus();
|
||||||
String taskId = picture.getTaskId();
|
String taskId = picture.getTaskId();
|
||||||
|
if (status.equals("3") || status.equals("7") || status.equals("5") || status.equals("6")) {
|
||||||
|
vo.setProgress(BigDecimal.ONE);
|
||||||
|
}
|
||||||
if (taskId == null) {
|
if (taskId == null) {
|
||||||
return newStatus;
|
return vo;
|
||||||
}
|
}
|
||||||
if (!status.equals("2")) {
|
if (!status.equals("2")) {
|
||||||
return newStatus;
|
return vo;
|
||||||
}
|
}
|
||||||
DroneImgMergeProgressVo progress = droneManager.getImgMergeProgress(taskId);
|
DroneImgMergeProgressVo imgMergeProgress = droneManager.getImgMergeProgress(taskId);
|
||||||
if (progress == null) {
|
if (imgMergeProgress == null) {
|
||||||
return newStatus;
|
return vo;
|
||||||
}
|
}
|
||||||
BigDecimal msg = progress.getMsg();
|
vo.setProgress(imgMergeProgress.getMsg());
|
||||||
|
BigDecimal msg = imgMergeProgress.getMsg();
|
||||||
if (msg != null && msg.compareTo(BigDecimal.ONE) == 0) {
|
if (msg != null && msg.compareTo(BigDecimal.ONE) == 0) {
|
||||||
newStatus = "3";
|
newStatus = "3";
|
||||||
picture.setStatus(newStatus);
|
picture.setStatus(newStatus);
|
||||||
} else if (msg != null && msg.compareTo(BigDecimal.ZERO) >= 0 && msg.compareTo(BigDecimal.ONE) < 0) {
|
} else if (msg != null && msg.compareTo(BigDecimal.ZERO) >= 0 && msg.compareTo(BigDecimal.ONE) < 0) {
|
||||||
return newStatus;
|
return vo;
|
||||||
} else {
|
} else {
|
||||||
newStatus = "4";
|
newStatus = "4";
|
||||||
picture.setStatus(newStatus);
|
picture.setStatus(newStatus);
|
||||||
@ -259,7 +272,7 @@ public class DroDroneBigPictureServiceImpl extends ServiceImpl<DroDroneBigPictur
|
|||||||
if (!b) {
|
if (!b) {
|
||||||
log.error("修改无人机大图信息状态失败");
|
log.error("修改无人机大图信息状态失败");
|
||||||
}
|
}
|
||||||
return newStatus;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -268,7 +281,7 @@ public class DroDroneBigPictureServiceImpl extends ServiceImpl<DroDroneBigPictur
|
|||||||
* @param pictureVo 大图信息
|
* @param pictureVo 大图信息
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String isSynthesisCompleted(DroDroneBigPictureVo pictureVo) {
|
public DroDroneBigPictureProgressVo isSynthesisCompleted(DroDroneBigPictureVo pictureVo) {
|
||||||
DroDroneBigPicture picture = new DroDroneBigPicture();
|
DroDroneBigPicture picture = new DroDroneBigPicture();
|
||||||
BeanUtils.copyProperties(pictureVo, picture);
|
BeanUtils.copyProperties(pictureVo, picture);
|
||||||
return this.isSynthesisCompleted(picture);
|
return this.isSynthesisCompleted(picture);
|
||||||
|
|||||||
Reference in New Issue
Block a user