|
|
|
@ -422,13 +422,44 @@ namespace OpenAuth.App.ServiceApp
|
|
|
|
|
return new Response<bool> { Result = false, Message = "任务不存在" };
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (task.CompletedTime != null) // 定时任务
|
|
|
|
|
if (task.CompletedTime != null) // 已完成任务(无论成功失败)
|
|
|
|
|
{
|
|
|
|
|
return new Response<bool> { Result = false, Message = "已完成任务禁止删除" };
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
using (var db = UnitWork.CreateContext())
|
|
|
|
|
{
|
|
|
|
|
// todo 如果任务已经开始取消任务
|
|
|
|
|
if (task.Status.Equals(1))
|
|
|
|
|
{
|
|
|
|
|
var flightId = task.FlightId;
|
|
|
|
|
if (!string.IsNullOrEmpty(flightId))
|
|
|
|
|
{
|
|
|
|
|
var dronePort = await Repository.ChangeRepository<SugarRepositiry<LasaDronePort>>()
|
|
|
|
|
.GetByIdAsync(task.TaskDronePort);
|
|
|
|
|
if (dronePort == null)
|
|
|
|
|
{
|
|
|
|
|
throw new Exception("指定机场不存在");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var serialNo = dronePort.Sn;
|
|
|
|
|
// 取消任务
|
|
|
|
|
var cancelTaskTopic = $"thing/product/{serialNo}/services";
|
|
|
|
|
var cancelTaskRequest = new TopicServicesRequest<object>()
|
|
|
|
|
{
|
|
|
|
|
method = "flighttask_undo",
|
|
|
|
|
tid = Guid.NewGuid().ToString(),
|
|
|
|
|
bid = Guid.NewGuid().ToString(),
|
|
|
|
|
timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds(),
|
|
|
|
|
data = new
|
|
|
|
|
{
|
|
|
|
|
flight_ids = new[] { task.FlightId }
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
await _mqttClientManager.PublishAsync(cancelTaskTopic,
|
|
|
|
|
JsonConvert.SerializeObject(cancelTaskRequest));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var flag = await db.LasaTask.DeleteAsync(it => it.Id == id);
|
|
|
|
|
var taskId = task.Id;
|
|
|
|
|
var mediaFileList = await db.LasaMediaFile.AsQueryable()
|
|
|
|
|