|
|
|
@ -1,9 +1,12 @@
|
|
|
|
|
using Infrastructure;
|
|
|
|
|
using DocumentFormat.OpenXml.Wordprocessing;
|
|
|
|
|
using Infrastructure;
|
|
|
|
|
using OpenAuth.App.BaseApp.Base;
|
|
|
|
|
using OpenAuth.App.Interface;
|
|
|
|
|
using OpenAuth.App.ServiceApp.Request;
|
|
|
|
|
using OpenAuth.App.ServiceApp.Response;
|
|
|
|
|
using OpenAuth.Repository;
|
|
|
|
|
using OpenAuth.Repository.Domain;
|
|
|
|
|
using OpenAuth.WebApi.CloudSdk;
|
|
|
|
|
using SqlSugar;
|
|
|
|
|
|
|
|
|
|
namespace OpenAuth.App.ServiceApp
|
|
|
|
@ -57,6 +60,7 @@ namespace OpenAuth.App.ServiceApp
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取任务列表
|
|
|
|
|
/// </summary>
|
|
|
|
@ -187,15 +191,27 @@ namespace OpenAuth.App.ServiceApp
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="key"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public async Task<Response<List<LasaWorkspace>>> GetWorkspaceList(string key)
|
|
|
|
|
public async Task<Response<List<dynamic>>> GetWorkspaceList(string key)
|
|
|
|
|
{
|
|
|
|
|
RefAsync<int> totalCount = 0;
|
|
|
|
|
using (var db = UnitWork.CreateContext())
|
|
|
|
|
{
|
|
|
|
|
var list = await db.LasaWorkspace.AsQueryable()
|
|
|
|
|
.WhereIF(!string.IsNullOrEmpty(key), a => a.WorkspaceName.Contains(key))
|
|
|
|
|
.LeftJoin<SysUser>((a,u)=>a.CreateId==u.Id)
|
|
|
|
|
.Select<dynamic>((a, u) => new
|
|
|
|
|
{
|
|
|
|
|
a.Id,
|
|
|
|
|
a.WorkspaceName,
|
|
|
|
|
a.WorkspaceDesc,
|
|
|
|
|
a.Sate,
|
|
|
|
|
a.CreateTime,
|
|
|
|
|
a.CreateId,
|
|
|
|
|
u.Account,
|
|
|
|
|
u.Name
|
|
|
|
|
})
|
|
|
|
|
.ToListAsync();
|
|
|
|
|
return new Response<List<LasaWorkspace>>
|
|
|
|
|
return new Response<List<dynamic>>
|
|
|
|
|
{
|
|
|
|
|
Result = list
|
|
|
|
|
};
|
|
|
|
@ -228,6 +244,13 @@ namespace OpenAuth.App.ServiceApp
|
|
|
|
|
sd.UserId = item;
|
|
|
|
|
users.Add(sd);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach (var item in info.Lockfly)
|
|
|
|
|
{
|
|
|
|
|
item.Id = Guid.NewGuid().ToString();
|
|
|
|
|
item.WorkSpaceId= lasaWorkspace.Id;
|
|
|
|
|
await db.LasaSpaceLockFly.InsertAsync(item);
|
|
|
|
|
}
|
|
|
|
|
await db.LasaWorkspace.InsertAsync(lasaWorkspace);
|
|
|
|
|
await db.LasaSpaceDevice.InsertRangeAsync(devices);
|
|
|
|
|
await db.LasaSpaceUser.InsertRangeAsync(users);
|
|
|
|
@ -261,6 +284,20 @@ namespace OpenAuth.App.ServiceApp
|
|
|
|
|
sd.UserId = item;
|
|
|
|
|
users.Add(sd);
|
|
|
|
|
}
|
|
|
|
|
foreach (var item in info.Lockfly)
|
|
|
|
|
{
|
|
|
|
|
if (!string.IsNullOrEmpty(item.Id))
|
|
|
|
|
{
|
|
|
|
|
await db.LasaSpaceLockFly.UpdateAsync(item);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
item.Id = Guid.NewGuid().ToString();
|
|
|
|
|
item.WorkSpaceId = lasaWorkspace.Id;
|
|
|
|
|
await db.LasaSpaceLockFly.InsertAsync(item);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await db.LasaSpaceDevice.DeleteAsync(r=>r.WorkSpaceId == lasaWorkspace.Id);
|
|
|
|
|
await db.LasaSpaceDevice.InsertRangeAsync(devices);
|
|
|
|
|
await db.LasaSpaceUser.DeleteAsync(r=>r.WorkSpaceId==lasaWorkspace.Id);
|
|
|
|
@ -271,6 +308,56 @@ namespace OpenAuth.App.ServiceApp
|
|
|
|
|
return new Response<bool> { Result = false, Message = "编辑失败" };
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//获取无人机信息
|
|
|
|
|
public async Task<Response<List<LasaDronePort>>> GetUavList()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
using (var db = UnitWork.CreateContext())
|
|
|
|
|
{
|
|
|
|
|
var list=db.LasaSpaceDevice.AsQueryable()?.Select(r=>r.DeviceId).ToList();
|
|
|
|
|
|
|
|
|
|
var uavlist = await db.LasaDronePort.AsQueryable()
|
|
|
|
|
.Where(r=>!list.Contains(r.Id))
|
|
|
|
|
.ToListAsync();
|
|
|
|
|
return new Response<List<LasaDronePort>>
|
|
|
|
|
{
|
|
|
|
|
Result=uavlist
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 根据项目id获取项目信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="id"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public async Task<Response<WorkSpaceRes>> GetWorkSpaceById(string id)
|
|
|
|
|
{
|
|
|
|
|
using (var db = UnitWork.CreateContext())
|
|
|
|
|
{
|
|
|
|
|
WorkSpaceRes res=new WorkSpaceRes();
|
|
|
|
|
var workspace= await db.LasaWorkspace.AsQueryable().Where(r=>r.Id==id).FirstAsync();
|
|
|
|
|
var sysuser = db.User.AsQueryable()
|
|
|
|
|
.LeftJoin<LasaSpaceUser>((r, a) => r.Id == a.UserId)
|
|
|
|
|
.Where((r, a) => a.WorkSpaceId == id)
|
|
|
|
|
.Select((r, a) => r).ToList();
|
|
|
|
|
var uav=db.LasaDronePort.AsQueryable()
|
|
|
|
|
.LeftJoin<LasaSpaceDevice>((r,a)=>r.Id==a.DeviceId)
|
|
|
|
|
.Where((r,a)=>a.WorkSpaceId==id)
|
|
|
|
|
.Select((r,a)=>r).ToList();
|
|
|
|
|
var lockfly=db.LasaSpaceLockFly.AsQueryable().Where(r=>r.WorkSpaceId==id).ToList();
|
|
|
|
|
res.users = sysuser;
|
|
|
|
|
res.LasaDronePort = uav;
|
|
|
|
|
res.lasaSpaceLockFlies = lockfly;
|
|
|
|
|
res.workspace = workspace;
|
|
|
|
|
|
|
|
|
|
return new Response<WorkSpaceRes>
|
|
|
|
|
{
|
|
|
|
|
Result = res
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//删除项目
|
|
|
|
|
public async Task<Response<bool>> DeleteWorkspace(string id)
|
|
|
|
|
{
|
|
|
|
@ -287,5 +374,20 @@ namespace OpenAuth.App.ServiceApp
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
public async Task ExecuteFlyTask(string taskId)
|
|
|
|
|
{
|
|
|
|
|
var airLine = await Repository.ChangeRepository<SugarRepositiry<LasaAirLine>>().GetByIdAsync(taskId);
|
|
|
|
|
var wpml = airLine.WPML;
|
|
|
|
|
// todo 查询sn
|
|
|
|
|
var device = await Repository.ChangeRepository<SugarRepositiry<LasaUav>>().GetByIdAsync(airLine.UavId);
|
|
|
|
|
var topic = string.Format(GatewayManager.FlightTaskPrepare, airLine.UavId) ;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// todo 1. 下发任务,2. 执行任务 3. 改变任务库任务状态
|
|
|
|
|
// todo 创建飞行任务
|
|
|
|
|
// todo 改变任务状态
|
|
|
|
|
// todo
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|