/// <summary> /// 采购订单金额态势(天) /// </summary> /// <param name="currentUser"></param> /// <returns></returns> public async Task <ResponseObject <PurchaseSupplierAmountCountDayModel> > GetPurchaseAmountCountDay(CurrentUser currentUser) { try { DateTime _thisDateTime = DateTime.Now; String y = _thisDateTime.ToString("yyyy"); String m = _thisDateTime.ToString("MM"); int day = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(DateTime.Now.Year, DateTime.Now.Month); var today = await _db.Instance.Queryable <TPSMPurchaseOrderMainDbModel>() .Where(t => t.CompanyId == currentUser.CompanyID && t.OrderDate >= Convert.ToDateTime($"{DateTime.Now.ToString("yyyy-MM")}-01") && t.OrderDate < Convert.ToDateTime($"{DateTime.Now.AddMonths(1).ToString("yyyy-MM")}-01") ) .GroupBy(n => n.OrderDate) .Select(n => new { n.OrderDate, PurchaseAmount = SqlFunc.AggregateSum(n.PurchaseAmount) }) .ToListAsync(); string s1 = ""; string s2 = ""; for (int i = 0; i < day; i++) { s1 += "|" + (i + 1); int Count = today.Where(n => n.OrderDate == Convert.ToDateTime(y + "-" + m + "-" + (i + 1))).Count(); if (Count > 0) { var model = today.Where(n => n.OrderDate == Convert.ToDateTime(y + "-" + m + "-" + (i + 1))); if (model != null) { s2 += "|" + String.Format("{0:N2}", model.Select(n => n.PurchaseAmount).ToList()[0]); } } else { s2 += "|0.00"; } } PurchaseSupplierAmountCountDayModel _model = new PurchaseSupplierAmountCountDayModel { xAxisData = s1.Substring(1).Split('|'), SeriesData = s2.Substring(1).Split('|') }; return(ResponseUtil <PurchaseSupplierAmountCountDayModel> .SuccessResult(_model)); } catch (Exception ex) { return(ResponseUtil <PurchaseSupplierAmountCountDayModel> .FailResult(null, $"统计采购订单金额发生异常{System.Environment.NewLine} {ex.Message}")); } }
/// <summary> /// 采购订单金额态势(周) /// </summary> /// <param name="currentUser"></param> /// <returns></returns> public async Task <ResponseObject <PurchaseSupplierAmountCountDayModel> > GetPurchaseAmountCountWeek(CurrentUser currentUser) { try { DateTime _thisDateTime = DateTime.Now; int y = Convert.ToInt32(_thisDateTime.ToString("yyyy")); int m = Convert.ToInt32(_thisDateTime.ToString("MM")); //获取本月的天数 var date_count = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(DateTime.Now.Year, DateTime.Now.Month); DateTime firstDay = _thisDateTime.AddDays(1 - _thisDateTime.Day); int weekday = (int)firstDay.DayOfWeek == 0 ? 7 : (int)firstDay.DayOfWeek; //本月第一周有几天 int firstWeekEndDay = 7 - (weekday - 1); var days = date_count; var mod = firstWeekEndDay; //本月第一周有几天 var count = 1; var start = 1; //起始日期 1 号开始 var s1 = ""; var s2 = ""; var ss1 = ""; var ss2 = ""; var end = start + mod - 1;//截止日期 while (days >= 0) { //var end = start + 6; end = end > date_count ? date_count : end; ss1 += "第" + count + "周:" + y + "年" + m + "月" + "(" + start + "-" + end + ");" + "\n"; s1 += ",第" + count + "周"; DateTime dt1 = Convert.ToDateTime("" + y + "-" + m + "-" + start); DateTime dt2; if ((end + 1) > date_count) { dt2 = Convert.ToDateTime("" + y + "-" + (m + 1) + "-01"); } else { dt2 = Convert.ToDateTime("" + y + "-" + m + "-" + (end + 1)); } var today = await _db.Instance.Queryable <TPSMPurchaseOrderMainDbModel>() .Where(t => t.CompanyId == currentUser.CompanyID && t.AuditStatus == 2 && t.DeleteFlag == false && t.OrderDate >= dt1 && t.OrderDate < dt2 ).Select(t => SqlFunc.AggregateSum(t.PurchaseAmount)).ToListAsync(); if (today.Count > 0) { s2 += "|" + String.Format("{0:N2}", today[0]); } else { s2 += "|0.00"; } start = end + 1; end += 7; days -= 7; ss2 += days + ","; count++; } PurchaseSupplierAmountCountDayModel _model = new PurchaseSupplierAmountCountDayModel { xAxisData = s1.Substring(1).Split(','), SeriesData = s2.Substring(1).Split('|') }; return(ResponseUtil <PurchaseSupplierAmountCountDayModel> .SuccessResult(_model)); } catch (Exception ex) { return(ResponseUtil <PurchaseSupplierAmountCountDayModel> .FailResult(null, $"采购订单金额态势(周) 发生异常{System.Environment.NewLine} {ex.Message}")); } }
/// <summary> /// 采购订单金额态势(月) /// </summary> /// <param name="currentUser"></param> /// <returns></returns> public async Task <ResponseObject <PurchaseSupplierAmountCountDayModel> > GetPurchaseAmountCountMonth(CurrentUser currentUser) { try { DateTime _thisDateTime = DateTime.Now; String y = _thisDateTime.ToString("yyyy"); String m = _thisDateTime.ToString("MM"); int day = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(DateTime.Now.Year, DateTime.Now.Month); // var queryData = _db.Instance.Queryable<TWMProductionWhMainDbModel>() //.Where(t => t.CompanyId == currentUser.CompanyID && t.AuditStatus == 2 && t.DeleteFlag == false); string s1 = ""; string s2 = ""; for (int i = 0; i < 12; i++) { s1 += "|" + (i + 1); var Month = (y + "-" + (i + 1)); DateTime dt1 = Convert.ToDateTime("" + y + "-" + (i + 1) + "-01"); DateTime dt2; if ((i + 1) == 12) { dt2 = Convert.ToDateTime("" + (Convert.ToInt32(y) + 1) + "-01-01"); } else { dt2 = Convert.ToDateTime("" + y + "-" + (i + 2) + "-01"); } // var query = await queryData.Where(t => t.WarehousingDate >= dt1 && t.WarehousingDate < dt2 //).Select(t => SqlFunc.AggregateSum(t.Number)).ToListAsync(); // if (query.Count > 0) // { // s2 += "," + String.Format("{0:N2}", query[0]); // } // else // { // s2 += ", " + queryData.Where(t => t.WarehousingDate >= dt1 && t.WarehousingDate < dt2 //).Select(t => SqlFunc.AggregateSum(t.Number)).ToSql(); // } var today = await _db.Instance.Queryable <TPSMPurchaseOrderMainDbModel>() .Where(t => t.CompanyId == currentUser.CompanyID && t.AuditStatus == 2 && t.DeleteFlag == false && t.OrderDate >= dt1 && t.OrderDate < dt2 ).Select(t => SqlFunc.AggregateSum(t.PurchaseAmount)).ToListAsync(); if (today.Count > 0) { s2 += "|" + String.Format("{0:N2}", today[0]); } else { s2 += "|0.00"; } } PurchaseSupplierAmountCountDayModel _model = new PurchaseSupplierAmountCountDayModel { xAxisData = s1.Substring(1).Split('|'), SeriesData = s2.Substring(1).Split('|') }; return(ResponseUtil <PurchaseSupplierAmountCountDayModel> .SuccessResult(_model)); } catch (Exception ex) { return(ResponseUtil <PurchaseSupplierAmountCountDayModel> .FailResult(null, $"采购订单金额态势(天) 发生异常{System.Environment.NewLine} {ex.Message}")); } }