/// <summary> /// 获取当前账套发放出去的模具 /// </summary> /// <param name="request"></param> /// <returns></returns> protected override async Task <IQueryable <Project> > GetQueryable(RequestPageDto request) { var query = (await base.GetQueryable(request)) .Include(o => o.Tenant) .Where(o => MasterDbContext.GetJsonValueNumber(o.Unit.Property, "$.TenantId") == AbpSession.TenantId.Value); return(query); }
protected override async Task <IQueryable <Unit> > BuildSearchQueryAsync(IDictionary <string, string> searchKeys, IQueryable <Unit> query) { var result = await base.BuildSearchQueryAsync(searchKeys, query); if (searchKeys.ContainsKey("Binded")) { string binded = searchKeys["Binded"].ToString(); //未绑定的 if (binded == "0") { result = result.Where(o => MasterDbContext.GetJsonValueNumber(o.Property, "$.TenantId") == null); } else if (binded == "1") { result = result.Where(o => MasterDbContext.GetJsonValueNumber(o.Property, "$.TenantId") > 0); } } return(result); }
/// <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); } }
/// <summary> /// 获取当前客户绑定了的所有模具厂 /// </summary> /// <returns></returns> public virtual async Task <object> GetManufactures() { using (CurrentUnitOfWork.DisableFilter(AbpDataFilters.MustHaveTenant)) { var projectManager = Resolve <MESProjectManager>(); var units = await Resolve <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 = projectManager.GetAll().Where(p => p.TenantId == tenant.TenantId && p.UnitId.HasValue && unitIds.Contains(p.UnitId.Value)); //在对应模具厂做的所有项目 var projectCount = baseQuery.Count(); result.Add(new { tenant.TenantId, tenant.Name, projectCount }); } return(result); } }