浏览代码

Project progressPerc

zinab_elgendy 2 月之前
父节点
当前提交
b78a536ba8

+ 1 - 0
MTWorkHR.Application/Dtos/User/ProjectDto.cs

@@ -11,6 +11,7 @@ namespace MTWorkHR.Application.Models
         public string? NameEn { get; set; }
         public string? Desc { get; set; }
         public string? CreateUser { get; set; }
+        public decimal? ProgressPercentage { get; set; }
         public List<long>? ProjectTeamIds { get; set; }
         public List<ProjectTeamDto>? ProjectTeams { get; set; }
     }

+ 10 - 0
MTWorkHR.Application/Services/Task/ProjectService.cs

@@ -109,6 +109,16 @@ namespace MTWorkHR.Application.Services
             var list = MapperObject.Mapper
                 .Map<IList<ProjectDto>>(await page.ToListAsync());
 
+            var tasks = await _unitOfWork.UserTask.GetAllWithChildrenAsync();
+
+
+            foreach (var project in list)
+            {
+                var projectTasks = tasks.Item1.Where(a=> a.ProjectId == project.Id);
+                decimal countDone = projectTasks.Count(a=> a.TaskStatus.NameEn == "Done");
+                project.ProgressPercentage = countDone / (decimal)projectTasks.Count();
+            }
+
             var response = new PagingResultDto<ProjectDto>
             {
                 Result = list,

+ 1 - 1
MTWorkHR.Infrastructure/Repositories/Task/UserTaskRepository.cs

@@ -39,7 +39,7 @@ namespace MTWorkHR.Infrastructure.Repositories
 
         public async Task<Tuple<IQueryable<UserTask>, int>> GetAllWithChildrenAsync()
         {
-            var query = dbSet.Include(x => x.Project).Include(x => x.TaskAttachments)
+            var query = dbSet.Include(x => x.Project).Include(x => x.TaskStatus).Include(x => x.TaskAttachments)
                 .Include(x => x.TaskHistories).AsQueryable();
             var total = await query.CountAsync();