Ejemplo n.º 1
0
        /// <summary>
        /// 获取分页列表数据
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ApiResultPageLR <XsLadeBaseVO> > GetPageLRSync(SearchDTO <XsLadeBaseDTO> model)
        {
            var dto        = model.Data;
            var expression = dto.GetExpression();
            var orders     = dto.GetOrder();
            var count      = await _xsLadeBaseRepository.CountAsync(expression, isMaster : false);

            if (count == 0)
            {
                return(ApiResultUtil.IsFailedPageLR <XsLadeBaseVO>("无数据!"));
            }

            var entities = await _xsLadeBaseRepository.GetListAsync(model.PageIndex, model.PageSize, expression, isMaster : false, orderByFields : orders);

            var scheduleTaskVOs = this.ObjectMapper.Map <List <XsLadeBaseVO> >(entities);

            return(ApiResultUtil.IsSuccess(scheduleTaskVOs, count, model.PageIndex, model.PageSize));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取分页列表数据
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ApiResultPageLR <HyFormulaMaterVO> > GetPageLRSync(SearchDTO <HyFormulaMaterDTO> model)
        {
            var dto = model.Data;

            //根据查询条件获取分页列表数据
            var expression = dto.GetExpression();
            var orders     = dto.GetOrder();
            var count      = await _hyFormulaMaterRepository.CountAsync(expression);

            if (count == 0)
            {
                return(ApiResultUtil.IsFailedPageLR <HyFormulaMaterVO>("无数据!"));
            }
            var entities = await _hyFormulaMaterRepository.GetListAsync(model.PageIndex, model.PageSize, expression, isMaster : false, orderByFields : orders);

            var hyFormulaMaterVOs = this.ObjectMapper.Map <List <HyFormulaMaterVO> >(entities);

            return(ApiResultUtil.IsSuccess(hyFormulaMaterVOs, count, model.PageIndex, model.PageSize));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 获取分页列表数据
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ApiResultPageLR <XsLadeRimpactVO> > GetPageLRSync(SearchDTO <XsLadeRimpactDTO> model)
        {
            var dto = model.Data;

            //根据发货单编码模糊查询获取所有发货单主键
            if (!string.IsNullOrEmpty(dto.XLB_LadeId))
            {
                var itemResult = await this.GrainFactory.GetGrain <IXsLadeBaseGrain>(this.GrainId).GetAllSync(new XsLadeBaseDTO {
                    XLB_LadeId = dto.XLB_LadeId
                });

                if (itemResult.Success && itemResult.Data.Count > 0)
                {
                    dto.XLR_Lades = itemResult.Data.Where(m => !string.IsNullOrEmpty(m.Id)).Select(m => m.Id).Distinct().ToList();
                }
                else
                {
                    return(ApiResultUtil.IsFailedPageLR <XsLadeRimpactVO>("无数据!"));
                }
            }

            //根据查询条件获取分页列表数据
            var expression = dto.GetExpression();
            var orders     = dto.GetOrder();
            var count      = await _xsLadeRimpactRepository.CountAsync(expression);

            if (count == 0)
            {
                return(ApiResultUtil.IsFailedPageLR <XsLadeRimpactVO>("无数据!"));
            }
            var entities = await _xsLadeRimpactRepository.GetListAsync(model.PageIndex, model.PageSize, expression, isMaster : false, orderByFields : orders);

            //获取发货单数据
            List <XsLadeBaseDO> xsLadeBaseList = new List <XsLadeBaseDO>();

            if (entities.Any(m => !string.IsNullOrEmpty(m.XLR_Lade)))
            {
                var itemResult = await this.GrainFactory.GetGrain <IXsLadeBaseGrain>(this.GrainId).GetAllSync(new XsLadeBaseDTO
                {
                    Ids = entities.Where(m => !string.IsNullOrEmpty(m.XLR_Lade)).Select(m => m.XLR_Lade).Distinct().ToList()
                });

                if (itemResult.Success)
                {
                    xsLadeBaseList = (List <XsLadeBaseDO>)itemResult.Data;
                }
            }

            //获取客商数据
            List <XsCompyBaseDO> xsCompyBaseList = new List <XsCompyBaseDO>();

            if (xsLadeBaseList != null)
            {
                var itemResult = await _orleansClient.GetGrain <IXsCompyBaseStateGrain>(GrainIdKey.UtcUIDGrainKey.ToString()).GetAllSync(new XsCompyBaseDTO
                {
                    Ids = xsLadeBaseList.Where(m => !string.IsNullOrEmpty(m.XLB_Client)).Select(m => m.XLB_Client).Distinct().ToList()
                });

                if (itemResult.Success)
                {
                    xsCompyBaseList = (List <XsCompyBaseDO>)itemResult.Data;
                }
            }

            //获取企业数据
            List <PbBasicFirmDO> pbBasicFirmList = new List <PbBasicFirmDO>();

            if (entities.Any(m => !string.IsNullOrEmpty(m.XLR_Firm)))
            {
                var itemResult = await _orleansClient.GetGrain <IPbBasicFirmStateGrain>(GrainIdKey.UtcUIDGrainKey.ToString()).GetAllSync(new PbBasicFirmDTO
                {
                    Ids = entities.Where(m => !string.IsNullOrEmpty(m.XLR_Firm)).Select(m => m.XLR_Firm).Distinct().ToList()
                });

                if (itemResult.Success)
                {
                    pbBasicFirmList = (List <PbBasicFirmDO>)itemResult.Data;
                }
            }

            //左连接查询数据
            var xsLadeRimpactVOs = (from rimpact in entities
                                    join t1 in xsLadeBaseList on rimpact.XLR_Lade equals t1.Id into mapping1
                                    from lade in mapping1.DefaultIfEmpty()  //左连接需要加上DefaultIfEmpty
                                    join t2 in xsCompyBaseList on lade.XLB_Client equals t2.XOB_ID into mapping2
                                    from compy in mapping2.DefaultIfEmpty() //左连接需要加上DefaultIfEmpty
                                    join t3 in pbBasicFirmList on rimpact.XLR_Firm equals t3.PBF_ID into mapping3
                                    from firm in mapping3.DefaultIfEmpty()  //左连接需要加上DefaultIfEmpty
                                    select new
            {
                rimpact,
                lade,
                compy,
                firm
            }).AsEnumerable()
                                   .Select(x =>
            {
                var result            = this.ObjectMapper.Map <XsLadeRimpactVO>(x.rimpact);
                result.XLB_LadeId     = x.lade?.XLB_LadeId;
                result.XLB_ClientName = x.compy?.XOB_Name;
                result.XLR_FirmName   = x.firm?.PBF_ShortName;
                return(result);
            })
                                   .ToList();

            //返回结果
            return(ApiResultUtil.IsSuccess(xsLadeRimpactVOs, count, model.PageIndex, model.PageSize));
        }