From c178499470d544893ae7f46cc0a9576bd4eccb14 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Fri, 5 Jul 2024 15:06:26 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=B7=B2=E7=9F=A5=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Device/Response/DevicePageResponse.cs | 5 +++++ .../Device/Services/Implements/DeviceService.cs | 3 ++- .../Services/Implements/GainfoService.cs | 17 ++++++++++++++++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/Src/Dlhis.Basic/Device/Response/DevicePageResponse.cs b/Src/Dlhis.Basic/Device/Response/DevicePageResponse.cs index 50de5f73..11ec35bf 100644 --- a/Src/Dlhis.Basic/Device/Response/DevicePageResponse.cs +++ b/Src/Dlhis.Basic/Device/Response/DevicePageResponse.cs @@ -86,6 +86,11 @@ public class DevicePageResponse /// public bool Enable { get; set; } + /// + /// 厂区 + /// + public string Factory { get; set; } + /// /// 是否作为考勤 diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs index 9c34262a..ab1db519 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs @@ -46,7 +46,8 @@ public class DeviceService : IDeviceService Type = d.Type, BusinessPlaceCode = bp.Code, BusinessPlaceName = bp.Name, - LastHeartbeatTime = dr.LastHeartbeatTime + LastHeartbeatTime = dr.LastHeartbeatTime, + Factory = d.TenantId }, true) .ToPageListAsync(request); diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs index 4a61fb40..54685dcb 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoService.cs @@ -69,11 +69,17 @@ public class GainfoService : IGainfoService } //获取所有厂区 - var factories = request.DepartmentSelections.Select(x => x.Tenant); + var factories = request.DepartmentSelections.Select(x => x.Tenant).ToList(); + if (factories.Count == 0) + { + factories = _currentUser.GetUserClaim("tenants").Split(",").ToList(); + } + var today = DateTime.Today; var page = await _gainfoStore.Queryable(request.Status) .WhereIF(request.SearchType != GainfoSearchEnumType.BusinessTrip && request.DepartmentSelections?.Any() == true, where) + .WhereIF(request.SearchType != GainfoSearchEnumType.BusinessTrip && request.DepartmentSelections?.Any() == false, gainfo => factories.Contains(gainfo.Factory)) .WhereIF(request.SearchType == GainfoSearchEnumType.Internal, gainfo => SqlFunc.Subqueryable().Where(x => x.Code == gainfo.Code).NotAny()) .WhereIF(request.SearchType == GainfoSearchEnumType.Outsource, gainfo => SqlFunc.Subqueryable().Where(x => x.Code == gainfo.Code).Any()) .WhereIF(request.SearchType == GainfoSearchEnumType.BusinessTrip, gainfo => @@ -85,6 +91,15 @@ public class GainfoService : IGainfoService .Select() .ToPageListAsync(request); + + if (request.SearchType == GainfoSearchEnumType.Outsource) + { + var codes = page.Data.Select(x => x.Code).ToList(); + var outsourceInfos = await _dbContext.Queryable().Where(x => codes.Contains(x.Code)).Select(x => new { x.Code, x.Supplier }).ToListAsync(); + + page.Data.ForEach(item => { item.DepartmentNo = outsourceInfos.FirstOrDefault(x => x.Code == item.Code)?.Supplier; }); + } + return page; }