Example #1
0
        /// <summary>
        /// 获取地区信息
        /// </summary>
        /// <param name="sysUser"></param>
        /// <returns></returns>
        private async Task <Tuple <List <string>, string, int> > GetArea(SysUser sysUser)
        {
            switch (sysUser.DataLimitType)
            {
            case (int)DataLimitTypeEnum.All:
                return(Tuple.Create(new List <string>(), AreaLevelEnum.Province, sysUser.DataLimitType));

            case (int)DataLimitTypeEnum.Area:
                if (string.IsNullOrEmpty(sysUser.DataLimitArea))
                {
                    return(Tuple.Create(new List <string>(), "", 404));
                }
                var area = await ComLib.GetGetAreaStatisticsAreaId(_areaBll, sysUser.DataLimitArea);

                return(Tuple.Create(area.Item1.Split(',').ToList(), area.Item2, sysUser.DataLimitType));

            case (int)DataLimitTypeEnum.Shop:
                if (string.IsNullOrEmpty(sysUser.DataLimitShop))
                {
                    return(Tuple.Create(new List <string>(), "", 404));
                }
                return(Tuple.Create(new List <string>(), "", sysUser.DataLimitType));
            }
            return(Tuple.Create(new List <string>(), "", 404));
        }
        /// <summary>
        /// 获取默认显示的库存信息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        private async Task <ResponsePagingBase> GetStatisticsStockShopDefault(GetStatisticsStockShopPageRequest request)
        {
            Tuple <IEnumerable <DbStatisticsStockViewShop>, int> statisticsStockShopView = null;

            switch (_appTicket.DataLimitType)
            {
            case (int)DataLimitTypeEnum.All:
                var province = await _areaBll.GetProvince();

                statisticsStockShopView = await _reportBll.GetStatisticsStockShop(request, string.Join(',', province.Select(p => p.AreaId)), AreaLevelEnum.Province);

                break;

            case (int)DataLimitTypeEnum.Area:
                if (!string.IsNullOrEmpty(_appTicket.DataLimitArea))
                {
                    var areaInfo = await ComLib.GetGetAreaStatisticsAreaId(_areaBll, _appTicket.DataLimitArea);

                    statisticsStockShopView = await _reportBll.GetStatisticsStockShop(request, areaInfo.Item1, areaInfo.Item2);
                }
                break;

            case (int)DataLimitTypeEnum.Shop:
                if (!string.IsNullOrEmpty(_appTicket.DataLimitShop))
                {
                    statisticsStockShopView = await _reportBll.GetStatisticsStockShopByShop(request, _appTicket.DataLimitShop);
                }
                break;
            }
            var result = await GetStatisticsStockShopView(statisticsStockShopView, request.Type);

            var recordCount = statisticsStockShopView == null ? 0 : statisticsStockShopView.Item2;

            return(ResponsePagingBase.Success(result, recordCount));
        }
Example #3
0
        /// <summary>
        /// 分页获取商品信息
        /// </summary>
        /// <param name="httpContext"></param>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <ResponsePagingBase> ProcessAction(HttpContext httpContext, GetPurchaseBackPagingRequest request)
        {
            if (!HandleRequest(httpContext, request))
            {
                return(ResponsePagingBase.Success(new List <OpBackReceiptDetail>(), 0));
            }
            var result = await _openDataBll.GetBackReceiptDetail(request);

            if (result == null || result.Item2 == 0)
            {
                return(ResponsePagingBase.Success(new List <OpBackReceiptDetail>(), 0));
            }
            var inReceipt        = result.Item1.ToList();
            var goodsCategoryIds = new List <long>();
            var areaIds          = new List <long>();
            var unitIds          = new List <long>();
            var brandIds         = new List <long>();
            var supplierIds      = new List <long>();

            foreach (var g in inReceipt)
            {
                areaIds.Add(g.Province);
                areaIds.Add(g.City);
                areaIds.Add(g.District);
                areaIds.Add(g.Street);
                unitIds.Add(g.UnitId);
                goodsCategoryIds.Add(g.GoodsCategoryId);
                brandIds.Add(g.BrandId);
                supplierIds.Add(g.BackOfferId);
            }
            var areas = await _areaBll.GetArea(areaIds.Distinct().ToList());

            var goodsCategorys = await _goodsBll.GetGoodsCategory(goodsCategoryIds.Distinct().ToList());

            var units = await _goodsBll.GetUnits(unitIds.Distinct().ToList());

            var brands = await _goodsBll.GetGoodsBrands(brandIds.Distinct().ToList());

            var suppliers = await _baseSupplierBll.GetBaseSupplier(supplierIds.Distinct().ToList());

            var opReceiptDetail = inReceipt.Select(p => new OpBackReceiptDetail()
            {
                Province          = ComLib.GetAreaName(p.Province, areas),
                City              = ComLib.GetAreaName(p.City, areas),
                District          = ComLib.GetAreaName(p.District, areas),
                Street            = ComLib.GetAreaName(p.Street, areas),
                GoodsCategoryName = ComLib.GetCategoryName(p.GoodsCategoryId, goodsCategorys),
                GoodsName         = p.GoodsName,
                GoodsSpec         = p.GoodsSpec,
                ShopName          = p.ShopName,
                GoodsBrand        = ComLib.GetBrand(p.BrandId, brands),
                BackCode          = p.BackCode,
                BackDate          = p.BackDate.ToDateTimeFromTimeStamp(),
                Qty          = p.Qty,
                SupplierName = ComLib.GetSupplierName(p.BackOfferId, suppliers),
                UnitName     = ComLib.GetUnitNmae(p.UnitId, units)
            });

            return(ResponsePagingBase.Success(opReceiptDetail, result.Item2));
        }
 /// <summary>
 /// 处理请求参数
 /// </summary>
 /// <param name="httpContext"></param>
 /// <param name="request"></param>
 private bool HandleRequest(HttpContext httpContext, ReceiptInLogPageRequest request)
 {
     if (request.StartTime != null)
     {
         request.StartTimeStamp = request.StartTime.Value.ToTimestamp();
     }
     if (request.EndTime != null)
     {
         request.EndTimeStamp = request.EndTime.Value.Date.AddDays(1).AddSeconds(-1).ToTimestamp();
     }
     return(ComLib.HandleRequest(httpContext, request));
 }
 /// <summary>
 /// 处理请求参数
 /// </summary>
 /// <param name="httpContext"></param>
 /// <param name="request"></param>
 private bool HandleRequest(HttpContext httpContext, GetSaleGoodsLogPageRequest request)
 {
     if (request.StartTime != null)
     {
         request.StartTimeStamp = request.StartTime.Value.ToTimestamp();
     }
     if (request.EndTime != null)
     {
         request.EndTimeStamp = request.EndTime.Value.Date.AddDays(1).AddSeconds(-1).ToTimestamp();
     }
     if (request.ShopId <= 0)
     {
         return(ComLib.HandleRequest(httpContext, request));
     }
     return(true);
 }
        /// <summary>
        /// 获取选择的地区下一级数据
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        private async Task <ResponsePagingBase> GetStatisticsRetailShopLevel(GetStatisticsRetailShopPageRequest request)
        {
            if (_appTicket.DataLimitType == (int)DataLimitTypeEnum.Area && _appTicket.DataLimitArea.IndexOf(request.AreaId.ToString()) < 0)
            {
                return(new ResponsePagingBase().GetResponseError(StatusCode.DataForbidden, "数据无权访问"));
            }
            var         statisticsTime = ComLib.GetAreaStatisticsTime(request.StartTime, request.EndTime);
            var         newLevel       = string.Empty;
            List <Area> areas          = null;

            switch (request.Level)
            {
            case AreaLevelEnum.Province:
                //获取市
                newLevel = AreaLevelEnum.City;
                areas    = await _areaBll.GetCity(request.AreaId);

                break;

            case AreaLevelEnum.City:
                //获取县、区
                newLevel = AreaLevelEnum.District;
                areas    = await _areaBll.GetDistrict(request.AreaId);

                break;

            case AreaLevelEnum.District:
                //获取乡镇
                newLevel = AreaLevelEnum.Street;
                areas    = await _areaBll.GetStreet(request.AreaId);

                break;
            }
            if (areas == null || !areas.Any())
            {
                return(ResponsePagingBase.Success(GetEmptyData(statisticsTime.Item1, statisticsTime.Item2), 0));
            }
            var statisticsRetailShop = await _reportBll.GetStatisticsRetailShop(request, string.Join(',', areas.Select(p => p.AreaId)),
                                                                                statisticsTime.Item1, statisticsTime.Item2, newLevel);

            var result = await GetStatisticsRetailViewShop(statisticsTime.Item1, statisticsTime.Item2, statisticsRetailShop, request.Type, newLevel);

            var recordCount = statisticsRetailShop == null ? 0 : statisticsRetailShop.Item2;

            return(ResponsePagingBase.Success(result, recordCount));
        }
Example #7
0
        /// <summary>
        /// 获取默认数据
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        private async Task <ResponseBase> GetStatisticsRetailDefault(GetStatisticsRetailRequest request)
        {
            List <DbStatisticsRetailView> statisticsRetail = null;
            var statisticsTime = ComLib.GetAreaStatisticsTime(request.StartTime, request.EndTime);
            var limitShops     = string.Empty;
            var arealevel      = string.Empty;

            switch (_appTicket.DataLimitType)
            {
            case (int)DataLimitTypeEnum.All:
                var province = await _areaBll.GetProvince();

                statisticsRetail = await _reportBll.GetStatisticsRetail(string.Join(',', province.Select(p => p.AreaId)),
                                                                        statisticsTime.Item1, statisticsTime.Item2, AreaLevelEnum.Province);

                arealevel = AreaLevelEnum.Province;
                break;

            case (int)DataLimitTypeEnum.Area:
                if (!string.IsNullOrEmpty(_appTicket.DataLimitArea))
                {
                    var areaInfo = await ComLib.GetGetAreaStatisticsAreaId(_areaBll, _appTicket.DataLimitArea);

                    statisticsRetail = await _reportBll.GetStatisticsRetail(areaInfo.Item1, statisticsTime.Item1,
                                                                            statisticsTime.Item2, areaInfo.Item2);

                    arealevel = areaInfo.Item2;
                }
                break;

            case (int)DataLimitTypeEnum.Shop:
                limitShops = _appTicket.DataLimitShop;
                if (!string.IsNullOrEmpty(_appTicket.DataLimitShop))
                {
                    statisticsRetail = await _reportBll.GetStatisticsRetailByShop(_appTicket.DataLimitShop,
                                                                                  statisticsTime.Item1, statisticsTime.Item2);

                    arealevel = AreaLevelEnum.Street;
                }
                break;
            }
            var result = await GetStatisticsRetailView(statisticsTime.Item1, statisticsTime.Item2, statisticsRetail, request.Type, limitShops, arealevel);

            return(ResponseBase.Success(result));
        }
        /// <summary>
        /// 获取默认数据
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        private async Task <ResponsePagingBase> GetStatisticsRetailShopDefault(GetStatisticsRetailShopPageRequest request)
        {
            Tuple <IEnumerable <DbStatisticsRetailViewShop>, int> statisticsRetailShop = null;
            var statisticsTime = ComLib.GetAreaStatisticsTime(request.StartTime, request.EndTime);
            var arealevel      = string.Empty;

            switch (_appTicket.DataLimitType)
            {
            case (int)DataLimitTypeEnum.All:
                var province = await _areaBll.GetProvince();

                statisticsRetailShop = await _reportBll.GetStatisticsRetailShop(request, string.Join(',', province.Select(p => p.AreaId)),
                                                                                statisticsTime.Item1, statisticsTime.Item2, AreaLevelEnum.Province);

                arealevel = AreaLevelEnum.Province;
                break;

            case (int)DataLimitTypeEnum.Area:
                if (!string.IsNullOrEmpty(_appTicket.DataLimitArea))
                {
                    var areaInfo = await ComLib.GetGetAreaStatisticsAreaId(_areaBll, _appTicket.DataLimitArea);

                    statisticsRetailShop = await _reportBll.GetStatisticsRetailShop(request, areaInfo.Item1, statisticsTime.Item1,
                                                                                    statisticsTime.Item2, areaInfo.Item2);

                    arealevel = areaInfo.Item2;
                }
                break;

            case (int)DataLimitTypeEnum.Shop:
                if (!string.IsNullOrEmpty(_appTicket.DataLimitShop))
                {
                    statisticsRetailShop = await _reportBll.GetStatisticsRetailShopByShop(request, _appTicket.DataLimitShop,
                                                                                          statisticsTime.Item1, statisticsTime.Item2);

                    arealevel = AreaLevelEnum.Street;
                }
                break;
            }
            var result = await GetStatisticsRetailViewShop(statisticsTime.Item1, statisticsTime.Item2, statisticsRetailShop, request.Type, arealevel);

            var recordCount = statisticsRetailShop == null ? 0 : statisticsRetailShop.Item2;

            return(ResponsePagingBase.Success(result, recordCount));
        }
Example #9
0
        public async Task <ResponseBase> GetSystemStatistics()
        {
            try
            {
                var request = new GetSystemStatisticsRequest();
                if (!ComLib.HandleRequest(HttpContext, request))
                {
                    return(ResponseBase.Success(new SystemStatisticsView()));
                }
                var data = await _systemBll.GetSystemStatistics(request);

                return(ResponseBase.Success(data));
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message, ex, this.GetType());
                return(ResponseBase.CodeError());
            }
        }
Example #10
0
        public int SendComData(string targetPort, int baudrate, int databit, int stopbit, string parity, object comData)
        {
            byte[] comDataByte = ConvertLuaTableToBytes(comData);

            if (comDataByte == null)
            {
                return((int)LuaApiResult.SendComDataFailed);
            }

            try
            {
                ComLib.SendComData(targetPort, baudrate, databit, stopbit, parity, comDataByte);
                return((int)LuaApiResult.Success);
            }
            catch
            {
                return((int)LuaApiResult.SendComDataFailed);
            }
        }
Example #11
0
        /// <summary>
        /// 通过地区获取店面信息
        /// </summary>
        /// <param name="httpContext"></param>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <ResponsePagingBase> ProcessAction(HttpContext httpContext, GetShopPagingReqest request)
        {
            var shopRequest = new GetShopPageRequest()
            {
                LoginUserId = request.LoginUserId,
                PageCurrent = request.PageCurrent,
                PageSize    = request.PageSize,
            };

            if (!ComLib.HandleRequest(httpContext, shopRequest))
            {
                return(ResponsePagingBase.Success(new List <OpShopView>(), 0));
            }
            var shops = await _shopBll.GetShopPage(shopRequest);

            if (shops == null || shops.Item2 == 0)
            {
                return(ResponsePagingBase.Success(new List <OpShopView>(), 0));
            }
            var areaIds = new List <long>();

            foreach (var g in shops.Item1)
            {
                areaIds.Add(g.Province.Value);
                areaIds.Add(g.City.Value);
                areaIds.Add(g.District.Value);
                areaIds.Add(g.Street.Value);
            }
            var areas = await _areaBll.GetArea(areaIds.Distinct().ToList());

            return(ResponsePagingBase.Success(shops.Item1.Select(p => new OpShopView()
            {
                ShopName = p.ShopName,
                ShopTelphone = p.ShopTelphone,
                ShopAddress = p.ShopAddress,
                ShopLinkMan = p.ShopLinkMan,
                Province = GetAreaName(p.Province.Value, areas),
                City = GetAreaName(p.City.Value, areas),
                District = GetAreaName(p.District.Value, areas),
                Stree = GetAreaName(p.Street.Value, areas)
            }), shops.Item2));
        }
Example #12
0
        /// <summary>
        /// 分页获取商品信息
        /// </summary>
        /// <param name="httpContext"></param>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <ResponsePagingBase> ProcessAction(HttpContext httpContext, GetGoodsPagingRequest request)
        {
            if (!HandleRequest(httpContext, request))
            {
                return(ResponsePagingBase.Success(new List <OpGoodsView>(), 0));
            }
            var result = await _openDataBll.GetGoodsPaging(request);

            if (result == null || result.Item2 == 0)
            {
                return(ResponsePagingBase.Success(new List <OpGoodsView>(), 0));
            }
            var goods            = result.Item1.ToList();
            var goodsIds         = new List <long>();
            var goodsCategoryIds = new List <long>();
            var stockIds         = new List <long>();
            var areaIds          = new List <long>();
            var unitIds          = new List <long>();
            var brandIds         = new List <long>();

            foreach (var g in goods)
            {
                goodsIds.Add(g.GoodsId);
                stockIds.Add(g.StockId);
                areaIds.Add(g.Province);
                areaIds.Add(g.City);
                areaIds.Add(g.District);
                areaIds.Add(g.Street);
                unitIds.Add(g.BaseUnitId);
                goodsCategoryIds.Add(g.GoodsCategoryId);
                brandIds.Add(g.BrandId);
            }
            var areas = await _areaBll.GetArea(areaIds.Distinct().ToList());

            var goodsCategorys = await _goodsBll.GetGoodsCategory(goodsCategoryIds.Distinct().ToList());

            var units = await _goodsBll.GetUnits(unitIds.Distinct().ToList());

            var stockQtys = await _goodsBll.GetStStockQtyView(goodsIds, stockIds);

            var brands = await _goodsBll.GetGoodsBrands(brandIds.Distinct().ToList());

            var opGoodsView = goods.Select(p => new OpGoodsView()
            {
                Province           = ComLib.GetAreaName(p.Province, areas),
                City               = ComLib.GetAreaName(p.City, areas),
                District           = ComLib.GetAreaName(p.District, areas),
                Street             = ComLib.GetAreaName(p.Street, areas),
                Comment            = p.Comment,
                Contents           = p.Contents,
                DosageForms        = p.DosageForms,
                GoodsCategoryName  = ComLib.GetCategoryName(p.GoodsCategoryId, goodsCategorys),
                GoodsCode          = p.GoodsCode,
                GoodsIngredient    = p.GoodsIngredient,
                GoodsName          = p.GoodsName,
                GoodsOrigin        = p.GoodsOrigin,
                GoodsProduct       = p.GoodsProduct,
                GoodsRestrictive   = p.GoodsRestrictive,
                GoodsShortName     = p.GoodsShortName,
                GoodsSpec          = p.GoodsSpec,
                RegistrationHolder = p.RegistrationHolder,
                RegistrationNumber = p.RegistrationNumber,
                ShopName           = p.ShopName,
                RepertoryUnit      = ComLib.GetUnitNmae(p.BaseUnitId, units),
                RepertoryQty       = ComLib.GetRepertoryQty(p.GoodsId, p.StockId, stockQtys),
                GoodsBrand         = ComLib.GetBrand(p.BrandId, brands)
            });

            return(ResponsePagingBase.Success(opGoodsView, result.Item2));
        }
Example #13
0
 /// <summary>
 /// 处理请求参数
 /// </summary>
 /// <param name="httpContext"></param>
 /// <param name="request"></param>
 private bool HandleRequest(HttpContext httpContext, GetGoodsPagingRequest request)
 {
     return(ComLib.HandleRequest(httpContext, request));
 }
Example #14
0
        /// <summary>
        /// 通过地区获取店面信息
        /// </summary>
        /// <param name="httpContext"></param>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <ResponsePagingBase> ProcessAction(HttpContext httpContext, GetShopPageRequest request)
        {
            if (request.SceneType != (int)GetShopPageSceneTypeEnum.DataLimitSetting && !ComLib.HandleRequest(httpContext, request))
            {
                return(ResponsePagingBase.Success(new List <GetShopPageView>(), 0));
            }
            var shops = await _shopBll.GetShopPage(request);

            var leaderNames = GetLeaderNames(shops.Item1.ToList(), request.SceneType);

            return(ResponsePagingBase.Success(shops.Item1.Select(p => new GetShopPageView()
            {
                ShopId = p.ShopId,
                ShopName = p.ShopName,
                ShopTelphone = p.ShopTelphone,
                ProvinceName = GetAreaName(p.Province),
                CityName = GetAreaName(p.City),
                DistrictName = GetAreaName(p.District),
                LicenseNum = string.Empty,
                ShopAddress = p.ShopAddress,
                LeaderName = GetLeaderName(p.OrgId, request.SceneType, leaderNames)
            }), shops.Item2));
        }
Example #15
0
 /// <summary>
 /// 处理请求参数
 /// </summary>
 /// <param name="httpContext"></param>
 /// <param name="request"></param>
 private bool HandleRequest(HttpContext httpContext, GetPurchaseBackPagingRequest request)
 {
     return(ComLib.HandleRequest(httpContext, request));
 }
        /// <summary>
        /// 分页获取商品信息
        /// </summary>
        /// <param name="httpContext"></param>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <ResponsePagingBase> ProcessAction(HttpContext httpContext, GetSaleGoodsBackPagingRequest request)
        {
            if (!HandleRequest(httpContext, request))
            {
                return(ResponsePagingBase.Success(new List <OpRetailDetail>(), 0));
            }
            var result = await _openDataBll.GetRetailBackDetail(request);

            if (result == null || result.Item2 == 0)
            {
                return(ResponsePagingBase.Success(new List <OpRetailDetail>(), 0));
            }
            var retailBack       = result.Item1.ToList();
            var goodsCategoryIds = new List <long>();
            var areaIds          = new List <long>();
            var unitIds          = new List <long>();
            var brandIds         = new List <long>();
            var retailId         = new List <long>();

            foreach (var g in retailBack)
            {
                areaIds.Add(g.Province);
                areaIds.Add(g.City);
                areaIds.Add(g.District);
                areaIds.Add(g.Street);
                unitIds.Add(g.UnitId);
                goodsCategoryIds.Add(g.GoodsCategoryId);
                brandIds.Add(g.BrandId);
                retailId.Add(g.RetailBackId);
            }
            var areas = await _areaBll.GetArea(areaIds.Distinct().ToList());

            var goodsCategorys = await _goodsBll.GetGoodsCategory(goodsCategoryIds.Distinct().ToList());

            var units = await _goodsBll.GetUnits(unitIds.Distinct().ToList());

            var brands = await _goodsBll.GetGoodsBrands(brandIds.Distinct().ToList());

            var customers = await _retailCustomerBll.GetRetailCustomer(retailId.Distinct().ToList());

            var opRetailDetail = retailBack.Select(p =>
            {
                var customer = customers.FirstOrDefault(g => g.RetailId == p.RetailBackId);
                return(new OpRetailBackDetail()
                {
                    Province = ComLib.GetAreaName(p.Province, areas),
                    City = ComLib.GetAreaName(p.City, areas),
                    District = ComLib.GetAreaName(p.District, areas),
                    Street = ComLib.GetAreaName(p.Street, areas),
                    GoodsCategoryName = ComLib.GetCategoryName(p.GoodsCategoryId, goodsCategorys),
                    GoodsName = p.GoodsName,
                    GoodsSpec = p.GoodsSpec,
                    ShopName = p.ShopName,
                    GoodsBrand = ComLib.GetBrand(p.BrandId, brands),
                    BackBillCode = p.BillCode,
                    BackBillDate = p.BillDate.ToDateTimeFromTimeStamp(),
                    Qty = p.Qty,
                    UnitName = ComLib.GetUnitNmae(p.UnitId, units),
                    ReturnerIdentification = customer?.Identification,
                    ReturnerName = customer?.RetailCustomerName,
                    ReturnerTel = customer?.RetailCustomerTel
                });
            });

            return(ResponsePagingBase.Success(opRetailDetail, result.Item2));
        }