省对接任务接口

main
洁 任 2 months ago
parent e752edd5e7
commit 8d23234401

@ -12,6 +12,10 @@ using Microsoft.Extensions.Configuration;
using OpenAuth.App.ServiceApp.DroneDocking.Request;
using DocumentFormat.OpenXml.Office.CustomUI;
using DocumentFormat.OpenXml.EMMA;
using OpenAuth.App.ServiceApp.DroneDocking.Response;
using DocumentFormat.OpenXml.Math;
using static Microsoft.Extensions.Logging.EventSource.LoggingEventSource;
using DocumentFormat.OpenXml.Drawing.Charts;
namespace OpenAuth.App.ServiceApp.DroneDocking
@ -768,5 +772,93 @@ namespace OpenAuth.App.ServiceApp.DroneDocking
return null; // 未找到
}
//获取省对接任务信息
public async Task<Response<PageInfo<List<DroneDockRes>>>> GetDroneDockInfos(string keyWord, int page, int limit)
{
RefAsync<int> totalCount = 0;
var info = await base.Repository.AsQueryable()
.WhereIF(!string.IsNullOrEmpty(keyWord), t => t.taskname.Contains(keyWord))
.Select(t=>new DroneDockRes
{
id= t.id,
bizidname= t.bizidname,
taskname= t.taskname,
createtime= t.createtime,
state= t.state,
datacode= t.datacode,
deviceid= t.deviceid,
taskid= t.taskid,
tasklist=SqlFunc.Subqueryable<DroneDocktaskdetail>().Where(r=>r.id==t.taskid).ToList()
})
.ToPageListAsync(page, limit, totalCount);
return new Response<PageInfo<List<DroneDockRes>>>
{
Result = new PageInfo<List<DroneDockRes>>
{
Items = info,
Total = totalCount
}
};
}
//获取飞行数据
public async Task<Response<DroneDockflightRes>> GetDroneDockflightInfos(string taskid)
{
DroneDockflightRes res=new DroneDockflightRes();
var detailinfo=await Repository.ChangeRepository<SugarRepositiry<DroneDocktaskdetail>>()
.AsQueryable()
.Where(r=>r.flighttaskid==taskid)
.ToListAsync();
if (detailinfo.Count > 0)
{
var taskId= detailinfo[0].taskid;
var taskinfo = await Repository.AsQueryable().Where(r => r.id == taskId).FirstAsync();
var flighttaskinfo= await Repository.ChangeRepository<SugarRepositiry<LasaTask>>()
.AsQueryable()
.Where(r => r.FlightId == taskid)
.FirstAsync();
if (taskinfo != null)
{
res.bizidname = taskinfo.bizidname;
res.taskname = taskinfo.taskname;
}
res.tasklist = detailinfo;
if(flighttaskinfo != null)
{
res.taskExecuteTime =Convert.ToDateTime(flighttaskinfo.ExecuteTime).ToString("yyyy-MM-dd HH:mm:ss");
res.waylineName=flighttaskinfo.TaskAirLineName;
res.flightTaskType=flighttaskinfo.TaskType;
switch (flighttaskinfo.Status)
{
case 0:
res.flightTaskState = 1;
break;
case 1:
res.flightTaskState = 2;
break;
case 2:
res.flightTaskState = 3;
break;
case 5:
res.flightTaskState = 0;
break;
case null: //交集
res.flightTaskState = 4;
break;
}
}
}
return new Response<DroneDockflightRes>
{
Result = res
};
}
}
}

@ -53,4 +53,43 @@ namespace OpenAuth.App.ServiceApp.DroneDocking.Response
public DateTime? createtime { get; set; }
public List<DroneDocktaskdetail> tasklist { get; set; }
}
public class DroneDockflightRes
{
/// <summary>
/// Desc:业务类型,用于标识数据来源
/// Default:
/// Nullable:False
/// </summary>
public string bizidname { get; set; }
/// <summary>
/// Desc:下发任务名称
/// Default:
/// Nullable:True
/// </summary>
public string taskname { get; set; }
/// <summary>
/// Desc:任务开始执行时间yyyy-MM-ddHH:mm:ss
/// Default:
/// Nullable:True
/// </summary>
public string taskExecuteTime { get; set; }
/// <summary>
/// Desc:数据类型, 用于后续成果上传获取上传路径
/// Default:
/// Nullable:False
/// </summary>
public string waylineName { get; set; }
/// <summary>
/// 0 计划执行 1 指点飞行
/// </summary>
public int flightTaskType { get; set; }
//0 执行成功 1 待执行 2 执行中 3 执行失败 4 其他错误
public int flightTaskState { get; set; }
public List<DroneDocktaskdetail> tasklist { get; set; }
}
}

@ -5,7 +5,9 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using OpenAuth.App.ServiceApp.DroneDocking;
using OpenAuth.App.ServiceApp.DroneDocking.Request;
using OpenAuth.App.ServiceApp.DroneDocking.Response;
using OpenAuth.App.ServiceApp.Response;
using OpenAuth.Repository.Domain;
using System.Text;
namespace OpenAuth.WebApi.Controllers.ServiceControllers
@ -437,5 +439,33 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
return result;
}
}
/// <summary>
/// 获取省对接任务列表
/// </summary>
/// <param name="keyWord">名称筛选</param>
/// <param name="page"></param>
/// <param name="limit"></param>
/// <returns></returns>
[HttpGet]
[AllowAnonymous]
public async Task<Response<PageInfo<List<DroneDockRes>>>> GetDroneDockInfos(string keyWord, int page, int limit)
{
return await _app.GetDroneDockInfos(keyWord, page, limit);
}
/// <summary>
/// 前端任务获取
/// </summary>
/// <param name="taskid">执行任务id</param>
/// <returns></returns>
[HttpGet]
[AllowAnonymous]
public async Task<Response<DroneDockflightRes>> GetDroneDockflightInfos(string taskid)
{
return await _app.GetDroneDockflightInfos(taskid);
}
}
}

Loading…
Cancel
Save