Merge branch 'main' of http://123.132.248.154:10000/HC_YFZX/LASAPlatform
commit
c5cabd7f68
|
|
@ -1,8 +1,9 @@
|
|||
using Infrastructure;
|
||||
using Newtonsoft.Json;
|
||||
using OpenAuth.App.ServiceApp;
|
||||
using Quartz;
|
||||
|
||||
namespace OpenAuth.App.ServiceApp;
|
||||
namespace OpenAuth.App.OpenJob;
|
||||
|
||||
public class FlyTaskJob : IJob
|
||||
{
|
||||
|
|
@ -447,10 +447,10 @@ namespace OpenAuth.App.ServiceApp
|
|||
{
|
||||
JobName = $"{task.Id}",
|
||||
JobType = 0, // 本地任务
|
||||
JobCall = "OpenAuth.App.ServiceApp.FlyTaskJob",
|
||||
JobCall = "OpenAuth.App.OpenJob.FlyTaskJob",
|
||||
JobCallParams = "{\"taskId\":\"" + task.Id + "\"}",
|
||||
Cron = task.PeriodicFormula,
|
||||
Status = 1, // 开启运行 todo 关于修改后关闭问题
|
||||
Status = 1, // 开启运行
|
||||
Remark = "定时任务",
|
||||
};
|
||||
var jobId = _openJobApp.Add(record);
|
||||
|
|
@ -1185,7 +1185,6 @@ namespace OpenAuth.App.ServiceApp
|
|||
Wpml = wpml
|
||||
};
|
||||
await Repository.ChangeRepository<SugarRepositiry<LasaTaskAssign>>().InsertAsync(taskAssign);
|
||||
// todo 更新任务状态?
|
||||
}
|
||||
|
||||
public async Task PendingFlyTask(string taskId)
|
||||
|
|
@ -2359,7 +2358,7 @@ namespace OpenAuth.App.ServiceApp
|
|||
var lasaTask = new LasaTask
|
||||
{
|
||||
Id = Guid.NewGuid().ToString(),
|
||||
TaskName = $"手飞任务 ",
|
||||
TaskName = $"手飞任务 {date:yyyy-MM-dd HH:mm:ss}",
|
||||
TaskType = 0,
|
||||
//0 计划任务 1 手飞任务
|
||||
FlightTaskType = 1,
|
||||
|
|
@ -2390,7 +2389,94 @@ namespace OpenAuth.App.ServiceApp
|
|||
WarningTitle = req.WarningTitle,
|
||||
WarningContent = req.WarningContent
|
||||
};
|
||||
await Repository.ChangeRepository<SugarRepositiry<LasaAiInspection>>().InsertAsync(aiInspection);
|
||||
using var db = Repository.AsSugarClient();
|
||||
try
|
||||
{
|
||||
db.Ado.BeginTran();
|
||||
// 更新
|
||||
await db.Updateable(aiInspection).IgnoreNullColumns().ExecuteCommandAsync();
|
||||
|
||||
var task = await db.Queryable<LasaTask>()
|
||||
.Where(x => x.Id == req.TaskId)
|
||||
.FirstAsync();
|
||||
var algoInstances = await db
|
||||
.Queryable<LasaAlgoInstance>()
|
||||
.Where(x => x.Id == req.AlgoInstanceId)
|
||||
.ToListAsync();
|
||||
var tagsIds = algoInstances.Select(x => x.Tags).ToList();
|
||||
var algoIds = algoInstances.First().AlgoIds.Split(",").ToArray();
|
||||
var algo = await db
|
||||
.Queryable<LasaAlgorithmsRepository>()
|
||||
.Where(x => x.Id == algoIds[0])
|
||||
.FirstAsync();
|
||||
dynamic json = new
|
||||
ExpandoObject();
|
||||
var x = SnowFlakeSingle.instance;
|
||||
//var pushUrl = $"rtmp://box.wisestcity.com:1935/live/{x.NextId()}";
|
||||
var pushUrl = "rtmp://box.wisestcity.com:1935/live/11";
|
||||
json.rtmp_url = req.RtmpUrl;
|
||||
json.push_url = pushUrl;
|
||||
json.imgsz = 640;
|
||||
json.frame_skip = 1;
|
||||
//json.model_name = algo.Path;
|
||||
json.model_name = "yolov8x.pt";
|
||||
json.taskname = task.TaskName;
|
||||
json.taskid = req.TaskId;
|
||||
var taskRecord = new LasaTask()
|
||||
{
|
||||
Id = req.TaskId,
|
||||
Status = 1,
|
||||
PushUrl = pushUrl
|
||||
};
|
||||
await db.Updateable(taskRecord).IgnoreNullColumns().ExecuteCommandAsync();
|
||||
var tag = await db
|
||||
.Queryable<LasaModelLabel>()
|
||||
.Where(x => tagsIds.Contains(x.Id))
|
||||
.Select(x => x.EnumValue)
|
||||
.ToArrayAsync();
|
||||
json.tag = new int [0, 1, 2, 3, 4, 5];
|
||||
var content = new StringContent(JsonConvert.SerializeObject(json), Encoding.UTF8, "application/json");
|
||||
using var httpClient = new HttpClient();
|
||||
var response = await httpClient.PostAsync("http://192.168.10.131:9025/start_detection", content);
|
||||
db.Ado.CommitTran();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
db.Ado.RollbackTran();
|
||||
throw ex;
|
||||
//throw new Exception("调用智能巡检失败");
|
||||
}
|
||||
|
||||
return new Response<bool>()
|
||||
{
|
||||
Result = true
|
||||
};
|
||||
}
|
||||
|
||||
public async Task<Response<bool>> EndHandFlyTask(string taskid)
|
||||
{
|
||||
var task = new LasaTask()
|
||||
{
|
||||
Id = taskid,
|
||||
Status = 5 // 成功
|
||||
};
|
||||
using var db = Repository.AsSugarClient();
|
||||
try
|
||||
{
|
||||
db.Ado.BeginTran();
|
||||
await db.Updateable(task).IgnoreNullColumns().ExecuteCommandAsync();
|
||||
// 结束智能巡检
|
||||
using var httpClient = new HttpClient();
|
||||
await httpClient.PostAsync("http://192.168.10.131:9025/stop_detection", null);
|
||||
//var response = await httpClient.PostAsync("http://192.168.10.131:9025/stop_detection");
|
||||
db.Ado.CommitTran();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
db.Ado.RollbackTran();
|
||||
throw new Exception("结束任务失败");
|
||||
}
|
||||
|
||||
return new Response<bool>()
|
||||
{
|
||||
Result = true
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
namespace OpenAuth.Repository.Domain;
|
||||
|
||||
|
||||
[SugarTable("lasa_aiinspection")]
|
||||
public class LasaAiInspection
|
||||
{
|
||||
[SugarColumn(ColumnName = "Id", IsPrimaryKey = true)]
|
||||
|
|
|
|||
|
|
@ -153,6 +153,8 @@ namespace OpenAuth.Repository.Domain
|
|||
/// 断点信息
|
||||
/// </summary>
|
||||
public string BreakPoint { get; set; }
|
||||
|
||||
public string PushUrl { get; set; }
|
||||
|
||||
[SugarColumn(IsIgnore = true)] public string AlgoInstanceId { get; set; }
|
||||
[SugarColumn(IsIgnore = true)] public string WarningTitle { get; set; }
|
||||
|
|
|
|||
|
|
@ -884,5 +884,12 @@ namespace OpenAuth.WebApi.Controllers.ServiceControllers
|
|||
{
|
||||
return await _app.CallAiModel(req);
|
||||
}
|
||||
|
||||
// 手飞任务结束
|
||||
[HttpPost]
|
||||
public async Task<Response<bool>> EndHandFlyTask(string taskid)
|
||||
{
|
||||
return await _app.EndHandFlyTask(taskid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -312,7 +312,7 @@ namespace OpenAuth.WebApi
|
|||
//UtilMethods.GetNativeSql(sql, pars);
|
||||
|
||||
//获取无参数化SQL 影响性能只适合调试
|
||||
//Console.WriteLine(UtilMethods.GetSqlString(DbType.PostgreSQL, sql, pars));
|
||||
Console.WriteLine(UtilMethods.GetSqlString(DbType.PostgreSQL, sql, pars));
|
||||
//Console.WriteLine(sql + "\r\n" + db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value)));
|
||||
//LogHelper.LogInformation(sql + "\r\n" +db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value)));
|
||||
//Console.WriteLine();
|
||||
|
|
|
|||
Loading…
Reference in New Issue