From 4c12571c29cb545f56f5d467247ea7e5091d5054 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Tue, 2 Jul 2024 18:28:14 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E8=80=81=E6=A1=A3=E6=A1=88=E5=8F=B7?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TaskAssignment/Dto/TaskDto.cs | 2 + .../Services/Implements/AssignmentService.cs | 50 +++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Dto/TaskDto.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Dto/TaskDto.cs index b64dfcc0..c724c2f2 100644 --- a/Src/Dlhis.ScheduledTask/TaskAssignment/Dto/TaskDto.cs +++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Dto/TaskDto.cs @@ -13,6 +13,8 @@ public class TaskDto public string Brand { get; set; } public string FuncStr { get; set; } public string UserNo { get; set; } + + public string OldUserNo { get; set; } public string UserCode { get; set; } public string UserName { get; set; } public string DepartmentNo { get; set; } diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs index ea4f446e..00cc6aaa 100644 --- a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs +++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs @@ -219,6 +219,43 @@ public class AssignmentService : IAssignmentService task.ModifiedTime = now; }); + if (await _dbContext.Queryable().Where(x => x.Status == OldDeviceGainfoEnumType.Wait).AnyAsync()) + { + var dCodes = await _dbContext.Queryable() + .LeftJoin((x, ga) => x.UserNo == ga.No) + .Where(x => taskIds.Contains(x.Id)) + .Where(x => x.Status == DeviceTaskStatusEnumType.Process) + .Select((x, ga) => new + { + x.DeviceUniqueNo, + ga.Code, + ga.No + }) + .ToListAsync(); + + var oldDeviceGainfoWhere = LinqExpressionExtensions.False(); + dCodes.ForEach(item => { oldDeviceGainfoWhere = oldDeviceGainfoWhere.Or(x => x.Code == item.Code && x.DeviceUniqueNo == item.DeviceUniqueNo); }); + var oldData = await _dbContext.Queryable().Where(x => x.Status == OldDeviceGainfoEnumType.Wait) + .Where(oldDeviceGainfoWhere) + .ToListAsync(); + + oldData.ForEach(d => + { + var task = deviceTasks.FirstOrDefault(x => x.UserNo == d.No && x.DeviceUniqueNo == d.DeviceUniqueNo); + if (task != null) + { + d.Status = task.Status == DeviceTaskStatusEnumType.Success + ? OldDeviceGainfoEnumType.Deleted + : OldDeviceGainfoEnumType.Error; + + d.Remark = task.ResultMessage; + } + }); + + await _dbContext.UpdateAsync(oldData); + } + + await _dbContext.UpdateAsync(deviceTasks); } @@ -299,6 +336,19 @@ public class AssignmentService : IAssignmentService throw new VersionExceptions("version exceptions"); } + var oldDeviceGainfoWhere = LinqExpressionExtensions.False(); + page.Data.ForEach(item => { oldDeviceGainfoWhere = oldDeviceGainfoWhere.Or(x => x.Code == item.UserCode && x.DeviceUniqueNo == item.DeviceUniqueNo); }); + var oldData = await _dbContext.Queryable().Where(x => x.Status == OldDeviceGainfoEnumType.Wait || x.Status == OldDeviceGainfoEnumType.Error) + .Where(oldDeviceGainfoWhere) + .ToListAsync(); + + page.Data.ForEach(item => + { + var o = oldData.FirstOrDefault(x => x.Code == item.UserCode && x.DeviceUniqueNo == item.DeviceUniqueNo); + if (o != null) + item.OldUserNo = o.No; + }); + return page.Data; }, 5);