Esempio n. 1
0
        public async override Task <PagedResultDto <TEntityDto> > GetAll(PagedResultRequestInput input)
        {
            CheckGetAllPermission();

            var query = _repository.DynamicQuery(input);

            var tasksCount = await query.CountAsync();

            var taskList = query.PageBy(input).ToList();

            return(new PagedResultDto <TEntityDto>(tasksCount, ObjectMapper.Map <List <TEntityDto> >(taskList)));
        }
        public async override Task <PagedResultDto <ReelMoveMethodDto> > GetAll(PagedResultRequestInput input)
        {
            CheckGetAllPermission();

            var query = _repository.DynamicQuery(input).Include(r => r.OutStorages);

            var tasksCount = await query.CountAsync();

            var taskList = query.PageBy(input).ToList();

            return(new PagedResultDto <ReelMoveMethodDto>(tasksCount, ObjectMapper.Map <List <ReelMoveMethodDto> >(taskList)));
        }
Esempio n. 3
0
        public async Task <PagedResultDto <ReelOutLifeDto> > GetOutLifeReel(PagedResultRequestInput input)
        {
            // 查询仓库超期物料
            // var overdueDaySet = SettingManager.GetSettingValueForTenant<double>("overdueDay", AbpSession.TenantId.Value);// (await _repositoryT.FirstOrDefaultAsync(c => c.TenantId == AbpSession.TenantId && c.Name == "overdueDay")).Value;

            double overdueDay = SettingManager.GetSettingValueForTenant <double>("overdueDay", AbpSession.TenantId.Value);

            //Logger.Info(overdueDay.ToString());

            DateTime dt = DateTime.Now.AddDays(overdueDay);

            var outLifeReelsIQ = _repository.GetAllIncluding(r => r.PartNo).Where(r => r.MakeDate <= dt.AddDays((r.ExtendShelfLife + r.PartNo.ShelfLife) * -1) && r.StorageLocationId.Length > 0);

            //var sql = outLifeReelsIQ.ToSql();
            //Logger.Info(outLifeReelsIQ.ToSql());

            // (double)(r.PartNo.ShelfLife + r.ExtendShelfLife)  .AddDays((r.PartNo.ShelfLife + r.ExtendShelfLife) * -1)

            var outLifeReels = await outLifeReelsIQ.ToListAsync();

            var config = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap <Reel, ReelOutLifeDto>()
                .ForMember(x => x.ShelfLife, opt => opt.MapFrom(x => x.PartNo.ShelfLife))
                .ForMember(x => x.WarningDay, opt => opt.MapFrom(x => overdueDay))
                .ForMember(x => x.OutLifeDate, opt => opt.MapFrom(x => x.MakeDate.AddDays(x.ExtendShelfLife + x.PartNo.ShelfLife)))
                .ForMember(x => x.OutLifeDay, opt => opt.MapFrom(x => (DateTime.Now.Date - x.MakeDate.AddDays(x.ExtendShelfLife + x.PartNo.ShelfLife)).Days))
                .ForMember(x => x.WarnLifeDate, opt => opt.MapFrom(x => x.MakeDate.AddDays(x.ExtendShelfLife + x.PartNo.ShelfLife - overdueDay)))
                .ForMember(x => x.WarnLifeDay, opt => opt.MapFrom(x => (DateTime.Now.Date - x.MakeDate.AddDays(x.ExtendShelfLife + x.PartNo.ShelfLife - overdueDay)).Days))
                .ForMember(x => x.OutLifeType, opt => opt.MapFrom(x => (x.MakeDate > DateTime.Now.AddDays((x.ExtendShelfLife + x.PartNo.ShelfLife) * -1)) ? OutLifeType.Warning : OutLifeType.OutLife))
                ;
            }
                                                 );


            var query = config.CreateMapper().Map <List <ReelOutLifeDto> >(outLifeReels).AsQueryable().DynamicQuery(input);

            var tasksCount = query.Count();

            //默认的分页方式
            //var taskList = query.Skip(input.SkipCount).Take(input.MaxResultCount).ToList();

            //ABP提供了扩展方法PageBy分页方式
            var taskList = query.PageBy(input).ToList();

            return(new PagedResultDto <ReelOutLifeDto>(tasksCount, taskList));
        }
Esempio n. 4
0
        public async Task <PagedResultDto <GroupReelDto> > GetGroupReel(PagedResultRequestInput input)
        {
            // 先按参数查询数据
            var query = _repository.DynamicQuery(input);

            var res = query.GroupBy(r => new { r.PartNoId, r.StorageId }).Select(r => new GroupReelDto()
            {
                PartNoId  = r.Key.PartNoId,
                StorageId = r.Key.StorageId,
                ReelCount = r.Count(),
                TotalQty  = r.Sum(reel => reel.Qty)
            });

            var tasksCount = await res.CountAsync();

            var taskList = res.PageBy(input).ToList();

            return(new PagedResultDto <GroupReelDto>(tasksCount, taskList));
        }
Esempio n. 5
0
        public PagedResultDto <BOMDto> GetItemsById(string Id, PagedResultRequestInput input)
        {
            // 查询
            // var query = _repository.GetAll().Where(m => m.ProductId == Id);


            var query = config.CreateMapper().Map <List <BOM>, List <BOMDto> >(
                _repository.GetAll().Where(m => m.ProductId == Id).ToList());

            var res = query.AsQueryable().DynamicQuery(input);

            var tasksCount = res.Count();

            //默认的分页方式
            //var taskList = query.Skip(input.SkipCount).Take(input.MaxResultCount).ToList();

            //ABP提供了扩展方法PageBy分页方式
            var taskList = res.PageBy(input).ToList();

            return(new PagedResultDto <BOMDto>(tasksCount, taskList));
        }
Esempio n. 6
0
        public async override Task <PagedResultDto <ProductDto> > GetAll(PagedResultRequestInput input)
        {
            // 查询 添加组件查询
            // var query = _repositoryMPN.GetAll().Where(m => m.MPNHierarchy == MPNHierarchy.组件);
            input.RequestWMSDtos.Add(new RequestWMSDto()
            {
                LinkOperation = LinkOperation.And, Operation = Operation.Equal, PropertyName = "MPNHierarchy", QueryValue = 0
            });

            //获取总数
            var query = _repositoryMPN.DynamicQuery(input);

            var tasksCount = await query.CountAsync();

            //默认的分页方式
            //var taskList = query.Skip(input.SkipCount).Take(input.MaxResultCount).ToList();

            //ABP提供了扩展方法PageBy分页方式
            var taskList = query.PageBy(input).ToList();


            return(new PagedResultDto <ProductDto>(tasksCount, config.CreateMapper().Map <List <MPN>, List <ProductDto> >(taskList)));
        }
Esempio n. 7
0
        public IQueryable <TEntity> DynamicQuery(PagedResultRequestInput input)
        {
            var sourceData = GetAll();

            return(sourceData.DynamicQuery(input));
        }
        public async Task <PagedResultDto <ReadyMBillDetailedReportDto> > GetAllAsync(string readyBillId, PagedResultRequestInput input)
        {
            var resS = await

                       Task.Factory.StartNew(() =>
            {
                // 获取输入备料单的记账备料单
                var readyBill = _repositoryReadyMBill.FirstOrDefault(readyBillId);

                if (readyBill == null)
                {
                    return(new PagedResultDto <ReadyMBillDetailedReportDto>(0, new List <ReadyMBillDetailedReportDto>()));
                }

                // 获取筛选条件中的 备料单 合集
                var readyBills = _repositoryReadyMBill.GetAll().Where(s => s.ReReadyMBillId == readyBill.ReReadyMBillId).Include(r => r.WorkBills).ThenInclude(s => s.WorkBill).ToList();

                // 查询记账备料单的相信信息
                var ReadyMBillds = _repositoryReadyMBilld.GetAll().Where(s => readyBills.Select(r => r.Id).Contains(s.ReadyMBillId)).ToList();

                var toList = new Func <IEnumerable <IEnumerable <string> >, string>(i =>
                {
                    var list = new List <string>();
                    foreach (var item in i)
                    {
                        foreach (var str in item)
                        {
                            list.Add(str);
                        }
                    }

                    return(string.Join('|', list.Distinct()));
                });

                // 分组
                var res = ReadyMBillds.GroupBy(r => r.PartNoId).Select(s => new ReadyMBillDetailedReportDto()
                {
                    ReReadyMBillId   = readyBill.ReReadyMBillId,
                    WorkBillIds      = toList(readyBills.Select(r => r.WorkBills).Select(w => w.Select(wo => wo.WorkBillId + ":" + wo.Qty)).Distinct()),
                    Products         = toList(readyBills.Select(r => r.WorkBills).Select(w => w.Select(wo => wo.WorkBill.ProductId)).Distinct()),
                    Lines            = toList(readyBills.Select(r => r.WorkBills).Select(w => w.Select(wo => wo.WorkBill.LineId)).Distinct()),
                    DemandQty        = s.Sum(r => r.Qty),
                    SendQty          = s.Sum(r => r.SendQty),
                    PartNoId         = s.Key,
                    FollowQty        = s.Sum(r => r.FollowQty),
                    ReadyMBillIds    = string.Join('|', readyBills.Select(r => r.Id)),
                    ReelMoveMethodId = s.FirstOrDefault().ReelMoveMethodId,
                    ReturnQty        = s.Sum(r => r.ReturnQty),
                    MoreSendQty      = s.Sum(r => r.SendQty) - s.Sum(r => r.Qty) - s.Sum(r => r.ReturnQty),
                    NoFollowQty      = s.Sum(r => r.SendQty) - s.Sum(r => r.FollowQty),
                    RealSendQty      = s.Sum(r => r.SendQty) - s.Sum(r => r.ReturnQty)
                });

                var query = res.AsQueryable().DynamicQuery(input);

                var tasksCount = query.Count();

                //默认的分页方式
                //var taskList = query.Skip(input.SkipCount).Take(input.MaxResultCount).ToList();

                //ABP提供了扩展方法PageBy分页方式
                var taskList = query.PageBy(input).ToList();

                return(new PagedResultDto <ReadyMBillDetailedReportDto>(tasksCount, taskList));
            });

            return(resS);
        }
Esempio n. 9
0
 protected override IQueryable <User> ApplySorting(IQueryable <User> query, PagedResultRequestInput input)
 {
     return(query.OrderBy(r => r.UserName));
 }
Esempio n. 10
0
 protected override IQueryable <User> CreateFilteredQuery(PagedResultRequestInput input)
 {
     return(Repository.GetAllIncluding(x => x.Roles));
 }
Esempio n. 11
0
        public async Task <PagedResultDto <ReelMoveLogDto> > GetAllByRMId(string reelMoveMethodId, PagedResultRequestInput input)
        {
            input.RequestWMSDtos.Add(new RequestWMSDto()
            {
                PropertyName = "ReelMoveMethodId", Operation = Operation.Equal, LinkOperation = LinkOperation.And, QueryValue = reelMoveMethodId
            });

            var res = await GetAll(input);

            return(res);
        }
Esempio n. 12
0
 protected override IQueryable <Role> ApplySorting(IQueryable <Role> query, PagedResultRequestInput input)
 {
     return(query.OrderBy(r => r.DisplayName));
 }