fix 升级到0.5.2,优化任务生成
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user