/// <summary> /// 获取当前加工点绑定了的所有模具厂 /// </summary> /// <returns></returns> public virtual async Task <object> GetCustomers() { using (CurrentUnitOfWork.DisableFilter(AbpDataFilters.MustHaveTenant)) { var units = await MESUnitManager .GetAll() .Include(o => o.Tenant) .Where(o => MasterDbContext.GetJsonValueNumber(o.Property, "$.TenantId") == AbpSession.TenantId.Value) .Select(o => new { o.TenantId, o.Tenant.Name, o.Id }) .ToListAsync(); var tenants = units .Select(o => new { o.TenantId, o.Name }) .Distinct(); var result = new List <object>(); foreach (var tenant in tenants) { var unitIds = units.Where(o => o.TenantId == tenant.TenantId).Select(o => o.Id); var baseQuery = ProcessTaskManager.GetAll().Where(p => p.TenantId == tenant.TenantId && p.Status.Contains(ProcessTask.Status_SendProcessor) && p.SupplierId != null && unitIds.Contains(p.SupplierId.Value)); //模具厂发过来的所有加工任务 var taskCount = baseQuery.Count(); //延期任务 var delayCount = baseQuery.Where(new DelayTaskSpecification()).Count(); result.Add(new { tenant.TenantId, tenant.Name, taskCount, delayCount }); } return(result); } }