diff --git a/CompanyManagment.EFCore/Repository/EmployeeDocumentsRepository.cs b/CompanyManagment.EFCore/Repository/EmployeeDocumentsRepository.cs index f4a10b1c..dd751ea9 100644 --- a/CompanyManagment.EFCore/Repository/EmployeeDocumentsRepository.cs +++ b/CompanyManagment.EFCore/Repository/EmployeeDocumentsRepository.cs @@ -1035,28 +1035,10 @@ public class EmployeeDocumentsRepository : RepositoryBase workshops.Contains(x.WorkshopId) && x.LeftWorkDate.AddDays(-1) >= now) - .Select(x => new { x.WorkshopId, x.EmployeeId }); - - var clientTemp = _companyContext.EmployeeClientTemps - .Where(x => workshops.Contains(x.WorkshopId)) - .Select(x => new { x.WorkshopId, x.EmployeeId }); - - var leftWorkTemp = _companyContext.LeftWorkTemps - .Where(x => workshops.Contains(x.WorkshopId)) - .Select(x => new { x.WorkshopId, x.EmployeeId }); - - // ترکیب کل لیست‌ها در حافظه - var allActiveEmployees = activeEmployees - .Concat(clientTemp) - .Concat(leftWorkTemp); // دریافت فقط اطلاعات مورد نیاز var employeeDocumentsQuery = _companyContext.EmployeeDocuments .Where(x => workshops.Contains(x.WorkshopId) - && allActiveEmployees.Any(a=>a.WorkshopId == x.WorkshopId && a.EmployeeId == x.EmployeeId) && x.IsSentToChecker == false && x.HasRejectedItems) .Where(x => x.EmployeeDocumentItemCollection @@ -1104,29 +1086,10 @@ public class EmployeeDocumentsRepository : RepositoryBase> GetRejectedItemsByWorkshopIdAndRoleForAdminWorkFlow(long workshopId, long roleId) { - var employeeIdsInWorkshop = await _companyContext.LeftWorkList - .Where(x => x.WorkshopId == workshopId && x.LeftWorkDate.AddDays(-1) >= DateTime.Today) - .Select(x => new { x.EmployeeId, FullName = x.Employee.FName + " " + x.Employee.LName }) - .Union( - _companyContext.EmployeeClientTemps - .Where(x => x.WorkshopId == workshopId) - .Select(x => new { x.EmployeeId, FullName = x.EmployeeFullName }) - ) - .Union( - _companyContext.LeftWorkTemps - .Where(x => x.WorkshopId == workshopId) - .Join(_companyContext.Employees, x => x.EmployeeId, e => e.id, - (x, e) => new { x.EmployeeId, FullName = e.FName + " " + e.LName }) - ) - .Distinct() - .ToListAsync(); - - var employeeIdList = employeeIdsInWorkshop.Select(x => x.EmployeeId).ToList(); var edItemsQuery = _companyContext.EmployeeDocumentItems .Where(x => x.WorkshopId == workshopId && x.DocumentStatus == DocumentStatus.Rejected && - employeeIdList.Contains(x.EmployeeId) && x.EmployeeDocuments.IsSentToChecker == false && x.EmployeeDocuments.HasRejectedItems) .Include(x => x.EmployeeDocuments).AsSplitQuery(); @@ -1165,6 +1128,9 @@ public class EmployeeDocumentsRepository : RepositoryBase new MediaViewModel { Id = x.id, Path = x.Path }) .ToListAsync(); + var employeeIds = edItemsGrouped.Select(x => x.EmployeeId).ToList(); + + var employees = _companyContext.Employees.Where(x => employeeIds.Contains(x.id)).ToList(); var result = edItemsGrouped.GroupBy(x => x.EmployeeId) @@ -1184,7 +1150,7 @@ public class EmployeeDocumentsRepository : RepositoryBase e.EmployeeId == x.Key); + var employeeInfo = employees.First(e => e.id == x.Key); //var requiredItemsUploaded = employeeLatestConfirmedDocuments // .Where(y => requiredDocs.Contains(y.DocumentItemLabel)).Select(y => y.DocumentItemLabel)