fix 重置任务修改为重新创建任务处理

This commit is contained in:
2025-07-25 14:41:53 +08:00
parent 41bc12c964
commit cdb39dc424
3 changed files with 8 additions and 11 deletions

View File

@@ -52,6 +52,7 @@ public class DeviceTaskAssignmentsController : ControllerBase
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost("reset")] [HttpPost("reset")]
[Transactional]
public async Task ResetAsync(DeviceTaskResetRequest request) public async Task ResetAsync(DeviceTaskResetRequest request)
{ {
await _deviceTaskAssignmentService.ResetAsync(request); await _deviceTaskAssignmentService.ResetAsync(request);

View File

@@ -10,7 +10,6 @@ public interface IDeviceTaskAssignmentService : IScopeDependency
Task<Pagination<DeviceTaskAssignmentResponse>> GetPageWarningAsync(DeviceTaskAssignmentRequest request); Task<Pagination<DeviceTaskAssignmentResponse>> GetPageWarningAsync(DeviceTaskAssignmentRequest request);
Task ResetAsync(DeviceTaskResetRequest request); Task ResetAsync(DeviceTaskResetRequest request);
} }

View File

@@ -185,22 +185,19 @@ public class DeviceTaskAssignmentService : IDeviceTaskAssignmentService
{ {
var tasks = await _dbContext.Queryable<DeviceTaskEntity>() var tasks = await _dbContext.Queryable<DeviceTaskEntity>()
.Where(x => request.Ids.Contains(x.Id)) .Where(x => request.Ids.Contains(x.Id))
.OrderBy(x => x.Id)
.ToListAsync(); .ToListAsync();
//判断process任务时间 await _dbContext.Client.Deleteable<DeviceTaskEntity>()
if (!request.Force) .Where(x=> request.Ids.Contains(x.Id))
{ .ExecuteCommandAsync();
var now = DateTime.Now;
tasks.Any(x => x.ModifiedTime.AddMinutes(10) < now && x.Status == DeviceTaskStatusEnumType.Process).ThrowIfTrue("请等待任务处理完成");
}
tasks.ForEach(x => tasks.ForEach(x =>
{ {
x.Status = DeviceTaskStatusEnumType.Wait; x.Status = DeviceTaskStatusEnumType.Wait;
x.Version = 0; x.Version = 0;
x.Id = 0; // Reset Id to allow re-insertion
}); });
await _dbContext.InsertAsync(tasks);
//更新任务状态
await _dbContext.UpdateAsync(tasks);
} }
} }