diff --git a/Src/Dlhis.Entity/Device/Entities/DeviceTaskEntity.cs b/Src/Dlhis.Entity/Device/Entities/DeviceTaskEntity.cs index 18c42cbe..1399d6d4 100644 --- a/Src/Dlhis.Entity/Device/Entities/DeviceTaskEntity.cs +++ b/Src/Dlhis.Entity/Device/Entities/DeviceTaskEntity.cs @@ -65,6 +65,12 @@ public class DeviceTaskEntity : SugarBaseEntity, ITenantId, IVersion [SugarColumn(DefaultValue = "0")] public long CancellationId { get; set; } = 0; + /// + /// 优先级 + /// + [SugarColumn(DefaultValue = "0")] + public int Priority { get; set; } = 0; + public string TenantId { get; set; } } diff --git a/Src/Dlhis.ScheduledTask/Jobs/CreateGetUploadRecordJob.cs b/Src/Dlhis.ScheduledTask/Jobs/CreateGetUploadRecordJob.cs index b945a4ae..1208a47f 100644 --- a/Src/Dlhis.ScheduledTask/Jobs/CreateGetUploadRecordJob.cs +++ b/Src/Dlhis.ScheduledTask/Jobs/CreateGetUploadRecordJob.cs @@ -40,6 +40,7 @@ public class CreateGetUploadRecordJob : BaseJob Version = 0, Type = DeviceTaskEnumType.UploadRecord, CancellationId = 0, + Priority = 50, CreatedBy = 1, CreateTime = DateTime.Now, diff --git a/Src/Dlhis.ScheduledTask/Jobs/CreateSyncServerDateTimeJob.cs b/Src/Dlhis.ScheduledTask/Jobs/CreateSyncServerDateTimeJob.cs index a80f2e60..c4d5145d 100644 --- a/Src/Dlhis.ScheduledTask/Jobs/CreateSyncServerDateTimeJob.cs +++ b/Src/Dlhis.ScheduledTask/Jobs/CreateSyncServerDateTimeJob.cs @@ -41,6 +41,7 @@ public class CreateSyncServerDateTimeJob : BaseJob UserNo = string.Empty, Type = DeviceTaskEnumType.SyncDateTime, DeviceType = x.Type, + Priority = 49, CreatedBy = 1, CreateTime = DateTime.Now, diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs index e619304b..76dd1ac0 100644 --- a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs +++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs @@ -51,9 +51,20 @@ public class AssignmentService : IAssignmentService .WhereIF(request.DeviceUniqueNo.IsPresent(), (deviceTask, deivce) => deviceTask.DeviceUniqueNo == request.DeviceUniqueNo) .WhereIF(request.Types.IsPresent(), deviceTask => request.Types.Contains(deviceTask.Type)) .WhereIF(!request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Wait) - .WhereIF(request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Process && SqlFunc.DateDiff(DateType.Minute, deviceTask.CreateTime, deviceTask.ModifiedTime) > 30) + .WhereIF(request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Process + && SqlFunc.DateDiff(DateType.Minute, deviceTask.CreateTime, deviceTask.ModifiedTime) > 30) //.Where(deviceTask => heartbeatDeviceNos.Contains(deviceTask.DeviceUniqueNo)) - .OrderBy(deviceTask => deviceTask.CreateTime) + .OrderBy(deviceTask => new List + { + new() + { + FieldName = nameof(DeviceTaskEntity.Priority), OrderByType = OrderByType.Desc, + }, + new() + { + FieldName = nameof(DeviceTaskEntity.CreateTime), OrderByType = OrderByType.Asc, + }, + }) .Select((deviceTask, deivce, deivceTamplate, ga, galeave, department) => new { UserId = SqlFunc.IsNull(SqlFunc.IsNull(deviceTask.UserId, ga.Id), galeave.IdentityUserId),