fix 升级到0.5.2,优化任务生成

This commit is contained in:
2024-01-22 09:45:39 +08:00
parent ce939b0a29
commit e749a6cc14
13 changed files with 124 additions and 116 deletions

View File

@@ -120,8 +120,8 @@ public class AssignmentService : IAssignmentService
{
var b = x.Key.Brand;
var d = x.Key.DeviceUniqueNo;
var dc = x.Key.DeviceConnectionInfo??"{}";
var func = x.Key.FuncStr??"[]";
var dc = x.Key.DeviceConnectionInfo ?? "{}";
var func = x.Key.FuncStr ?? "[]";
var jobj = new JObject
{
@@ -262,37 +262,34 @@ public class AssignmentService : IAssignmentService
public async Task UpdateDeviceTaskStatusAsync(List<UpdateDeviceTaskStatusRequest> requests)
{
var taskIds = requests.Select(x => x.TaskId).ToList();
var deviceTasks = await _dbContext.Queryable<DeviceTaskEntity>()
.Where(x => taskIds.Contains(x.Id))
.Where(x => x.Status == DeviceTaskStatusEnumType.Process)
.ToListAsync();
taskIds = deviceTasks.Select(x => x.Id).ToList();
requests = requests.Where(x => taskIds.Contains(x.TaskId)).ToList();
deviceTasks.ForEach(x =>
{
});
var now = DateTime.Now;
var tasks = new List<DeviceTaskEntity>(requests.Count);
foreach (var request in requests)
{
//for (int i = 0; i < 5; i++)
//{
var deviceTask = deviceTasks.First(x => x.Id == request.TaskId);
// if (effect == 0)
// {
// continue;
// }
// return;
//}
//throw new UserFriendlyException("操作失败,请重试");
var deviceTask = await _dbContext.Queryable<DeviceTaskEntity>().Where(x => x.Id == request.TaskId).SingleAsync();
deviceTask.ThrowIfNull("设备任务不存在");
(deviceTask.Status != DeviceTaskStatusEnumType.Process)
.ThrowIfTrue($"任务状态[{deviceTask.Status.GetDescription()}]有误");
var status = request.IsSuccess ? DeviceTaskStatusEnumType.Success : DeviceTaskStatusEnumType.Error;
var effect = await _dbContext.Updateable<DeviceTaskEntity>()
.SetColumns(x => x.Status == status)
.SetColumns(x => x.ResultMessage == request.ResultMessage)
.SetColumns(x => x.Version == x.Version + 1)
.SetColumns(x => x.ModifiedTime == DateTime.Now)
.Where(x => x.Id == request.TaskId && x.Version == deviceTask.Version)
.ExecuteCommandAsync();
deviceTask.Status = request.IsSuccess ? DeviceTaskStatusEnumType.Success : DeviceTaskStatusEnumType.Error;
deviceTask.ResultMessage = request.ResultMessage;
deviceTask.ModifiedTime = now;
tasks.Add(deviceTask);
}
await _dbContext.UpdateAsync(tasks);
}