// 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); }