Esempio n. 1
0
        // GET: ChartBoard
        public async Task <ActionResult> Index()
        {
            //30天收益图
            ViewBag.MonthLabels = JsonConvert.SerializeObject(BaseDataHelper.getLastMonthDate(DateTime.Now).Select(x => x.ToString("MM月dd日")).ToArray());
            ViewBag.MonthData   = JsonConvert.SerializeObject(await outRecordServer.searchLastMonthProfit());

            //昨日收益饼图
            ViewBag.YesterdayData = JsonConvert.SerializeObject(await outRecordServer.searchYesterdayNum());

            //异常订单半年线图
            ViewBag.HarfYearMonthLabel = JsonConvert.SerializeObject(BaseDataHelper.getSixMnthDate(DateTime.Now).Select(x => x.ToString("yyyy-MM")).ToArray());
            var orderData = await orderInfoServer.getHalfYearOrderNum();

            ViewBag.NormalOrderData    = JsonConvert.SerializeObject(orderData.produceOrderNum);
            ViewBag.ExceptOrderData    = JsonConvert.SerializeObject(orderData.exceptedOrderNum);
            ViewBag.CompletedOrderData = JsonConvert.SerializeObject(orderData.completedOrderNum);

            //库存不足柱状图
            var inventoryData = await inventoryServer.searchTenInventoryCount();

            ViewBag.InventoryLabels     = JsonConvert.SerializeObject(inventoryData.materialName);
            ViewBag.InventoryAlarmCount = JsonConvert.SerializeObject(inventoryData.alarmCount);
            ViewBag.InventoryRealCount  = JsonConvert.SerializeObject(inventoryData.inventoryCount);

            return(View());
        }
        public OrderTool getHalfYearOrderNum()
        {
            DateTime        startTime = DateTime.Now.AddMonths(-5).AddDays(1 - DateTime.Now.Day).Date;
            List <DateTime> MonthDate = new List <DateTime>();

            MonthDate = BaseDataHelper.getSixMnthDate(DateTime.Now);
            LayerDbContext context = new LayerDbContext();
            //异常订单数
            var exceptOrderTemp = context.orderInfo.Where(x => x.status == "excepted" && x.receivedDate > startTime).GroupBy(x => x.createdDate.Month).Select(x => new { createdDate = x.Max(item => item.createdDate), count = x.Count() }).ToList();
            //所有订单
            var orderTemp = context.orderInfo.Where(x => x.createdDate > startTime).GroupBy(x => x.createdDate.Month).Select(x => new { createdDate = x.Max(item => item.createdDate), count = x.Count() }).ToList();
            //完成订单
            var completedOrderTemp = context.orderInfo.Where(x => x.status == "completed" && x.receivedDate > startTime).GroupBy(x => x.createdDate.Month).Select(x => new { createdDate = x.Max(item => item.createdDate), count = x.Count() }).ToList();

            List <LineDataTool> orderData          = new List <LineDataTool>();
            List <LineDataTool> exceptedOrderData  = new List <LineDataTool>();
            List <LineDataTool> completedOrderData = new List <LineDataTool>();
            LineDataTool        model = null;

            foreach (var item in orderTemp)
            {
                model         = new LineDataTool();
                model.intData = item.count;
                model.date    = item.createdDate.AddDays(1 - item.createdDate.Day).Date;
                orderData.Add(model);
            }
            foreach (var item in exceptOrderTemp)
            {
                model         = new LineDataTool();
                model.intData = item.count;
                model.date    = item.createdDate.AddDays(1 - item.createdDate.Day).Date;
                exceptedOrderData.Add(model);
            }
            foreach (var item in completedOrderTemp)
            {
                model         = new LineDataTool();
                model.intData = item.count;
                model.date    = item.createdDate.AddDays(1 - item.createdDate.Day).Date;
                completedOrderData.Add(model);
            }

            var       normalData     = (from x in MonthDate.OrderBy(x => x) join y in orderData on x equals y.date into Temp from t in Temp.DefaultIfEmpty() select t == null ? 0 : t.intData).ToArray();
            var       exceptData     = (from x in MonthDate.OrderBy(x => x) join y in exceptedOrderData on x equals y.date into Temp from t in Temp.DefaultIfEmpty() select t == null ? 0 : t.intData).ToArray();
            var       copmpletedData = (from x in MonthDate.OrderBy(x => x) join y in completedOrderData on x equals y.date into Temp from t in Temp.DefaultIfEmpty() select t == null ? 0 : t.intData).ToArray();
            OrderTool result         = new OrderTool();

            result.exceptedOrderNum  = exceptData;
            result.produceOrderNum   = normalData;
            result.completedOrderNum = copmpletedData;
            return(result);
        }