diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Controllers/DeviceTaskAssignmentsController.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Controllers/DeviceTaskAssignmentsController.cs
index 7e9c6d30..a2ad5146 100644
--- a/Src/Dlhis.ScheduledTask/TaskAssignment/Controllers/DeviceTaskAssignmentsController.cs
+++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Controllers/DeviceTaskAssignmentsController.cs
@@ -52,6 +52,7 @@ public class DeviceTaskAssignmentsController : ControllerBase
///
///
[HttpPost("reset")]
+ [Transactional]
public async Task ResetAsync(DeviceTaskResetRequest request)
{
await _deviceTaskAssignmentService.ResetAsync(request);
diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/IDeviceTaskAssignmentService.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/IDeviceTaskAssignmentService.cs
index 85af7824..c16e56ce 100644
--- a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/IDeviceTaskAssignmentService.cs
+++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/IDeviceTaskAssignmentService.cs
@@ -10,7 +10,6 @@ public interface IDeviceTaskAssignmentService : IScopeDependency
Task> GetPageWarningAsync(DeviceTaskAssignmentRequest request);
-
Task ResetAsync(DeviceTaskResetRequest request);
}
diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/DeviceTaskAssignmentService.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/DeviceTaskAssignmentService.cs
index d8b3ab34..4a9ddd27 100644
--- a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/DeviceTaskAssignmentService.cs
+++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/DeviceTaskAssignmentService.cs
@@ -185,22 +185,19 @@ public class DeviceTaskAssignmentService : IDeviceTaskAssignmentService
{
var tasks = await _dbContext.Queryable()
.Where(x => request.Ids.Contains(x.Id))
+ .OrderBy(x => x.Id)
.ToListAsync();
- //判断process任务时间
- if (!request.Force)
- {
- var now = DateTime.Now;
- tasks.Any(x => x.ModifiedTime.AddMinutes(10) < now && x.Status == DeviceTaskStatusEnumType.Process).ThrowIfTrue("请等待任务处理完成");
- }
-
+ await _dbContext.Client.Deleteable()
+ .Where(x=> request.Ids.Contains(x.Id))
+ .ExecuteCommandAsync();
+
tasks.ForEach(x =>
{
x.Status = DeviceTaskStatusEnumType.Wait;
x.Version = 0;
+ x.Id = 0; // Reset Id to allow re-insertion
});
-
- //更新任务状态
- await _dbContext.UpdateAsync(tasks);
+ await _dbContext.InsertAsync(tasks);
}
}
\ No newline at end of file