设备、任务、航线管理
parent
358658e845
commit
7f6526ca8a
|
|
@ -0,0 +1,192 @@
|
|||
using DocumentFormat.OpenXml.Drawing;
|
||||
using Infrastructure;
|
||||
using NetTopologySuite.Geometries;
|
||||
using NetTopologySuite;
|
||||
using OpenAuth.App.BaseApp.Base;
|
||||
using OpenAuth.App.Interface;
|
||||
using OpenAuth.Repository;
|
||||
using OpenAuth.Repository.Domain;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Yitter.IdGenerator;
|
||||
|
||||
namespace OpenAuth.App.ServiceApp
|
||||
{
|
||||
public class ManageApp : SqlSugarBaseApp<LasaDronePort, SugarDbContext>
|
||||
{
|
||||
public ManageApp(ISugarUnitOfWork<SugarDbContext> unitWork, ISimpleClient<LasaDronePort> repository, IAuth auth) : base(unitWork, repository, auth)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 分页获取所有数据
|
||||
/// </summary>
|
||||
/// <param name="pageIndex"></param>
|
||||
/// <param name="pageSize"></param>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Response<PageInfo<List<LasaDronePort>>>> GetPageList(int pageIndex, int pageSize, string key)
|
||||
{
|
||||
int totalCount = 0;
|
||||
PageModel pageModel = new PageModel()
|
||||
{
|
||||
PageIndex = pageIndex,
|
||||
PageSize = pageSize,
|
||||
TotalCount = totalCount
|
||||
};
|
||||
var list = await Repository.GetPageListAsync(it => it.Name.Contains(key), pageModel, it => it.UpdateTime, OrderByType.Desc);
|
||||
return new Response<PageInfo<List<LasaDronePort>>>
|
||||
{
|
||||
Result = new PageInfo<List<LasaDronePort>> { Items = list, Total = totalCount }
|
||||
};
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取无人机列表
|
||||
/// </summary>
|
||||
/// <param name="page"></param>
|
||||
/// <param name="limit"></param>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Response<PageInfo<List<LasaUav>>>> GetUavPageList(int page, int limit, string key)
|
||||
{
|
||||
RefAsync<int> totalCount = 0;
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
var list = await db.LasaUav.AsQueryable()
|
||||
.WhereIF(!string.IsNullOrEmpty(key), a => a.Name.Contains(key))
|
||||
.ToPageListAsync(page, limit, totalCount);
|
||||
return new Response<PageInfo<List<LasaUav>>>
|
||||
{
|
||||
Result = new PageInfo<List<LasaUav>> { Items = list, Total = totalCount }
|
||||
};
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取任务列表
|
||||
/// </summary>
|
||||
/// <param name="page"></param>
|
||||
/// <param name="limit"></param>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Response<PageInfo<List<LasaTask>>>> GetTaskPageList(int page, int limit, string key)
|
||||
{
|
||||
RefAsync<int> totalCount = 0;
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
var list = await db.LasaTask.AsQueryable()
|
||||
.WhereIF(!string.IsNullOrEmpty(key), a => a.TaskName.Contains(key))
|
||||
.ToPageListAsync(page, limit, totalCount);
|
||||
return new Response<PageInfo<List<LasaTask>>>
|
||||
{
|
||||
Result = new PageInfo<List<LasaTask>> { Items = list, Total = totalCount }
|
||||
};
|
||||
}
|
||||
}
|
||||
//添加任务
|
||||
public async Task<Response<bool>> AddTask(LasaTask task)
|
||||
{
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
task.Id = Guid.NewGuid().ToString();
|
||||
task.CreateId = _auth.GetCurrentUser().User.Id;
|
||||
task.CreateTime = DateTime.Now;
|
||||
var flag = await db.LasaTask.InsertAsync(task);
|
||||
if(db.Commit())
|
||||
return new Response<bool> { Result = true, Message = "添加成功" };
|
||||
else
|
||||
return new Response<bool> { Result = false, Message = "添加失败" };
|
||||
}
|
||||
}
|
||||
//编辑任务
|
||||
public async Task<Response<bool>> EditTask(LasaTask task)
|
||||
{
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
var flag = await db.LasaTask.UpdateAsync(task);
|
||||
if (db.Commit())
|
||||
return new Response<bool> { Result = true, Message = "编辑成功" };
|
||||
else
|
||||
return new Response<bool> { Result = false, Message = "编辑失败" };
|
||||
}
|
||||
}
|
||||
//删除任务
|
||||
public async Task<Response<bool>> DeleteTask(string id)
|
||||
{
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
var flag = await db.LasaTask.DeleteAsync(it => it.Id == id);
|
||||
if (db.Commit())
|
||||
return new Response<bool> { Result = true, Message = "删除成功" };
|
||||
else
|
||||
return new Response<bool> { Result = false, Message = "删除失败" };
|
||||
}
|
||||
}
|
||||
#region 航线管理
|
||||
/// <summary>
|
||||
/// 获取航线列表
|
||||
/// </summary>
|
||||
/// <param name="page"></param>
|
||||
/// <param name="limit"></param>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Response<PageInfo<List<LasaAirLine>>>> GetAirLinePageList(int page, int limit, string key)
|
||||
{
|
||||
RefAsync<int> totalCount = 0;
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
var list = await db.LasaAirLine.AsQueryable()
|
||||
.WhereIF(!string.IsNullOrEmpty(key), a => a.AirLineName.Contains(key))
|
||||
.ToPageListAsync(page, limit, totalCount);
|
||||
return new Response<PageInfo<List<LasaAirLine>>>
|
||||
{
|
||||
Result = new PageInfo<List<LasaAirLine>> { Items = list, Total = totalCount }
|
||||
};
|
||||
}
|
||||
}
|
||||
//添加航线
|
||||
public async Task<Response<bool>> AddAirLine(LasaAirLine lasaAirLine)
|
||||
{
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
lasaAirLine.Id = Guid.NewGuid().ToString();
|
||||
lasaAirLine.CreateId = _auth.GetCurrentUser().User.Id;
|
||||
lasaAirLine.CreateTime = DateTime.Now;
|
||||
var flag = await db.LasaAirLine.InsertAsync(lasaAirLine);
|
||||
if (db.Commit())
|
||||
return new Response<bool> { Result = true, Message = "添加成功" };
|
||||
else
|
||||
return new Response<bool> { Result = false, Message = "添加失败" };
|
||||
}
|
||||
}
|
||||
//编辑航线
|
||||
public async Task<Response<bool>> EditAirLine(LasaAirLine lasaAirLine)
|
||||
{
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
var flag = await db.LasaAirLine.UpdateAsync(lasaAirLine);
|
||||
if (db.Commit())
|
||||
return new Response<bool> { Result = true, Message = "编辑成功" };
|
||||
else
|
||||
return new Response<bool> { Result = false, Message = "编辑失败" };
|
||||
}
|
||||
}
|
||||
//删除航线
|
||||
public async Task<Response<bool>> DeleteAirLine(string id)
|
||||
{
|
||||
using (var db = UnitWork.CreateContext())
|
||||
{
|
||||
var flag = await db.LasaAirLine.DeleteAsync(it => it.Id == id);
|
||||
if (db.Commit())
|
||||
return new Response<bool> { Result = true, Message = "删除成功" };
|
||||
else
|
||||
return new Response<bool> { Result = false, Message = "删除失败" };
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenAuth.Repository.Domain
|
||||
{
|
||||
[SugarTable("lasa_airline")]
|
||||
public class LasaAirLine
|
||||
{
|
||||
public string Id { get; set; } // 主键
|
||||
public string AirLineName { get; set; } // 航线名称
|
||||
public string AirLineType { get; set; } // 航线类型
|
||||
public string UavId { get; set; } // 无人机 ID
|
||||
public string FlyToFirstPointMode { get; set; } // 飞向首航点模式
|
||||
public int SafeTakeoffAltitude { get; set; } // 安全起飞高度
|
||||
public int SafeTakeoffSpeed { get; set; } // 飞向首航点速度
|
||||
public double GlobalRouteSpeed { get; set; } // 全局航线速度
|
||||
public string TaskCompletionAction { get; set; } // 任务完成动作
|
||||
public string OutOfControlOption { get; set; } // 失控选项
|
||||
public string TypeOfOutOfControlAction { get; set; } // 失控动作类型
|
||||
public string GlobalWayPointType { get; set; } // 全局航点类型
|
||||
public string PTZControlMode { get; set; } // 云台控制模式
|
||||
public string AircraftYawAngleMode { get; set; } // 飞行器偏航角模式
|
||||
public DateTime? CreateTime { get; set; } // 创建时间
|
||||
public long CreateId { get; set; } // 创建人
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenAuth.Repository.Domain
|
||||
{
|
||||
[SugarTable("lasa_droneport")]
|
||||
public class LasaDronePort
|
||||
{
|
||||
public string Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string TypeId { get; set; }
|
||||
public string SerialNumber { get; set; }
|
||||
public string FirmwareVersion { get; set; }
|
||||
public int BindStatus { get; set; }
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
public long OrgId { get; set; }
|
||||
public string Sn { get; set; }
|
||||
public string DevicePicUrl { get; set; }
|
||||
public string Did { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenAuth.Repository.Domain
|
||||
{
|
||||
[SugarTable("lasa_task")]
|
||||
public class LasaTask
|
||||
{
|
||||
public string Id { get; set; }
|
||||
public string TaskName { get; set; }
|
||||
public string TaskType { get; set; }
|
||||
public string TaskDronePort { get; set; }
|
||||
public string TaskAirLine { get; set; }
|
||||
public int ReturnAltitude { get; set; }
|
||||
public string LossOfControlAction { get; set; }
|
||||
public string ContinuationMode { get; set; }
|
||||
public string AIInspection { get; set; }
|
||||
public long CreateId { get; set; }
|
||||
public DateTime? CreateTime { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OpenAuth.Repository.Domain
|
||||
{
|
||||
[SugarTable("lasa_uav")]
|
||||
public class LasaUav
|
||||
{
|
||||
public string Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string TypeId { get; set; }
|
||||
public string SerialNumber { get; set; }
|
||||
public string FirmwareVersion { get; set; }
|
||||
public int Status { get; set; }
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
public string Sn { get; set; }
|
||||
public string DevicePicUrl { get; set; }
|
||||
public string Did { get; set; }
|
||||
public string PId { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -31,7 +31,7 @@ namespace OpenAuth.Repository
|
|||
public SugarRepositiry<SysCodeRuleSeed> SysCodeRuleSeed { get; set; }
|
||||
public SugarRepositiry<DbCodeColumns> DbCodeColumns { get; set; }
|
||||
public SugarRepositiry<DataSource> DataSource { get; set; }
|
||||
|
||||
|
||||
|
||||
public SugarRepositiry<SysDataItemDetail> SysDataItemDetail { get; set; }
|
||||
public SugarRepositiry<FormSchemeInfo> SchemeInfo { get; set; }
|
||||
|
|
@ -58,5 +58,12 @@ namespace OpenAuth.Repository
|
|||
public SugarRepositiry<ExcelImport> ExcelImport { get; set; }
|
||||
public SugarRepositiry<ExcelImportFileds> ExcelImportFileds { get; set; }
|
||||
public SugarRepositiry<ImMsg> ImMsg { get; set; }
|
||||
|
||||
#region 管理
|
||||
public SugarRepositiry<LasaUav> LasaUav { get; set; }
|
||||
public SugarRepositiry<LasaDronePort> LasaDronePort { get; set; }
|
||||
public SugarRepositiry<LasaTask> LasaTask { get; set; }
|
||||
public SugarRepositiry<LasaAirLine> LasaAirLine { get; set; }
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,177 @@
|
|||
using Infrastructure;
|
||||
using Infrastructure.Extensions;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using OpenAuth.App.ServiceApp;
|
||||
using OpenAuth.Repository.Domain;
|
||||
|
||||
namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 后台管理模块
|
||||
/// </summary>
|
||||
[Route("api/[controller]/[action]")]
|
||||
[ApiController]
|
||||
public class ManageController : ControllerBase
|
||||
{
|
||||
private readonly ManageApp _app;
|
||||
public ManageController(ManageApp app)
|
||||
{
|
||||
_app = app;
|
||||
}
|
||||
#region 机场管理
|
||||
/// <summary>
|
||||
/// 获取机场列表
|
||||
/// </summary>
|
||||
/// <param name="page"></param>
|
||||
/// <param name="limit"></param>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<Response<PageInfo<List<LasaDronePort>>>> GetDataList(int page, int limit, string key)
|
||||
{
|
||||
var result = new Response<PageInfo<List<LasaDronePort>>>();
|
||||
try
|
||||
{
|
||||
result = await _app.GetPageList(page, limit, key);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.Code = 500;
|
||||
result.Message = ex.Message;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 无人机管理
|
||||
/// <summary>
|
||||
/// 获取无人机列表
|
||||
/// </summary>
|
||||
/// <param name="pageIndex"></param>
|
||||
/// <param name="pageSize"></param>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<Response<PageInfo<List<LasaUav>>>> GetUavPageList(int page, int limit, string key)
|
||||
{
|
||||
var result = new Response<PageInfo<List<LasaUav>>>();
|
||||
try
|
||||
{
|
||||
result = await _app.GetUavPageList(page, limit, key);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.Code = 500;
|
||||
result.Message = ex.Message;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 任务管理
|
||||
/// <summary>
|
||||
/// 获取任务列表
|
||||
/// </summary>
|
||||
/// <param name="page"></param>
|
||||
/// <param name="limit"></param>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<Response<PageInfo<List<LasaTask>>>> GetTaskPageList(int page, int limit, string key)
|
||||
{
|
||||
var result = new Response<PageInfo<List<LasaTask>>>();
|
||||
try
|
||||
{
|
||||
result = await _app.GetTaskPageList(page, limit, key);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.Code = 500;
|
||||
result.Message = ex.Message;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加任务
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<Response<bool>> AddTask(LasaTask info)
|
||||
{
|
||||
return await _app.AddTask(info);
|
||||
}
|
||||
/// <summary>
|
||||
/// 编辑任务
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<Response<bool>> EditTask(LasaTask info)
|
||||
{
|
||||
return await _app.EditTask(info);
|
||||
}
|
||||
/// <summary>
|
||||
/// 删除任务
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<Response<bool>> DeleteTask(string id)
|
||||
{
|
||||
return await _app.DeleteTask(id);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 航线管理
|
||||
/// <summary>
|
||||
/// 获取航线列表
|
||||
/// </summary>
|
||||
/// <param name="page"></param>
|
||||
/// <param name="limit"></param>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<Response<PageInfo<List<LasaAirLine>>>> GetAirLineList(int page, int limit, string key)
|
||||
{
|
||||
var result = new Response<PageInfo<List<LasaAirLine>>>();
|
||||
try
|
||||
{
|
||||
result = await _app.GetAirLinePageList(page, limit, key);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.Code = 500;
|
||||
result.Message = ex.Message;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加航线
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<Response<bool>> AddAirLine(LasaAirLine info)
|
||||
{
|
||||
return await _app.AddAirLine(info);
|
||||
}
|
||||
/// <summary>
|
||||
/// 编辑航线
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<Response<bool>> EdiAirLine(LasaAirLine info)
|
||||
{
|
||||
return await _app.EditAirLine(info);
|
||||
}
|
||||
/// <summary>
|
||||
/// 删除航线
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<Response<bool>> DeleteAirLine(string id)
|
||||
{
|
||||
return await _app.DeleteAirLine(id);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
@ -42,6 +42,7 @@
|
|||
<PackageReference Include="MiniProfiler.AspNetCore" Version="4.2.22" />
|
||||
<PackageReference Include="MiniProfiler.AspNetCore.Mvc" Version="4.2.22" />
|
||||
<PackageReference Include="MiniProfiler.Shared" Version="4.2.22" />
|
||||
<PackageReference Include="MQTTnet" Version="4.1.4.563" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
|
||||
<PackageReference Include="NPOI" Version="2.5.6" />
|
||||
<PackageReference Include="NUnit" Version="3.13.1" />
|
||||
|
|
|
|||
Loading…
Reference in New Issue