zhangbin 2025-08-29 11:26:07 +08:00
commit c5cabd7f68
6 changed files with 105 additions and 7 deletions

View File

@ -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
{

View File

@ -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

View File

@ -2,6 +2,8 @@
namespace OpenAuth.Repository.Domain;
[SugarTable("lasa_aiinspection")]
public class LasaAiInspection
{
[SugarColumn(ColumnName = "Id", IsPrimaryKey = true)]

View File

@ -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; }

View File

@ -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);
}
}
}

View File

@ -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();