/// <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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        /// <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);
            }
        }