public ActionResult Index(JobOrders JobOrders, EFPagingInfo <JobOrders> p, DateTime?STime, DateTime?ETime, int IsFirst = 0) { IPageOfItems <JobOrders> JobOrdersList = null; if (IsFirst == 0) { JobOrders.State = 99; JobOrders.AgentState = 99; JobOrdersList = new PageOfItems <JobOrders>(new List <JobOrders>(), 0, 10, 0, new Hashtable()); } else { p = this.Condition(JobOrders, p, STime, ETime); JobOrdersList = Entity.Selects <JobOrders>(p); } List <int> UId = JobOrdersList.Select(o => o.UId).Distinct().ToList(); ViewBag.UsersList = Entity.Users.Where(n => n.State == 1 && UId.Contains(n.Id)).ToList(); ViewBag.JobOrdersList = JobOrdersList; ViewBag.JobOrders = JobOrders; ViewBag.Edit = this.checkPower("Edit"); ViewBag.ETime = ETime; ViewBag.STime = STime; ViewBag.ExcelExport = this.checkPower("ExcelExport"); ViewBag.SplitMoney = this.checkPower("SplitMoney"); ViewBag.JobPayWayList = Entity.JobPayWay.ToList(); return(View()); }
public ActionResult Index(JobOrders JobOrders, EFPagingInfo <JobOrders> p, bool?IsShowSupAgent, int?LowerLevel, DateTime?STime, DateTime?ETime, int IsFirst = 0) { IPageOfItems <JobOrders> JobOrdersList = null; if (IsShowSupAgent == null) { IsShowSupAgent = false; } ViewBag.BasicAgent = BasicAgent; ViewBag.IsAll = IsAll; LowerLevel = LowerLevel == null ? 0 : LowerLevel; if (IsFirst == 0) { JobOrders.State = 99; JobOrdersList = new PageOfItems <JobOrders>(new List <JobOrders>(), 0, 10, 0, new Hashtable()); } else { p = this.Condition(JobOrders, p, STime, ETime); IList <SysAgent> SysAgentList = null; if ((bool)IsShowSupAgent) { IList <int> UID = new List <int>(); if (LowerLevel != 0) { SysAgent LowerLevelAgent = Entity.SysAgent.Where(s => s.Id == LowerLevel).FirstOrNew(); SysAgentList = LowerLevelAgent.GetSupAgent(Entity, true); } else { SysAgentList = BasicAgent.GetSupAgent(Entity, true);//获取所有下级代理商信息 } UID = SysAgentList.Select(o => o.Id).ToList(); p.SqlWhere.Add(f => UID.Contains(f.AgentId)); } else { p.SqlWhere.Add(f => f.AgentId == BasicAgent.Id);//读取全部分支机构 } JobOrdersList = Entity.Selects <JobOrders>(p); } ViewBag.JobOrdersList = JobOrdersList; ViewBag.JobOrders = JobOrders; ViewBag.Edit = this.checkPower("Edit"); ViewBag.ETime = ETime; ViewBag.STime = STime; ViewBag.IsShowSupAgent = IsShowSupAgent; ViewBag.LowerLevel = LowerLevel; List <int> UId = JobOrdersList.Select(o => o.UId).Distinct().ToList(); ViewBag.UsersList = Entity.Users.Where(n => n.State == 1 && UId.Contains(n.Id)).ToList(); return(View()); }
/// <summary> /// 导出 /// </summary> /// <returns></returns> public ActionResult ExcelExport(JobOrders JobOrders, EFPagingInfo <JobOrders> p, DateTime?STime, DateTime?ETime, int IsFirst = 0) { IPageOfItems <JobOrders> JobOrdersList = null; if (IsFirst == 0) { JobOrdersList = new PageOfItems <JobOrders>(new List <JobOrders>(), 0, 10, 0, new Hashtable()); } else { if (STime.IsNullOrEmpty()) { STime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")); } if (ETime.IsNullOrEmpty()) { ETime = DateTime.Now; } TimeSpan TS = Convert.ToDateTime(ETime) - Convert.ToDateTime(STime); int Days = TS.Days; if (Days > 10) { ViewBag.ErrorMsg = "导出时间间隔不能超过10天!"; return(View("Error")); } p = this.Condition(JobOrders, p, STime, ETime); p.PageSize = 9999999; p.SqlWhere.Add(f => f.PayState == 1); p.OrderByList.Add("PayState", "ASC"); JobOrdersList = Entity.Selects <JobOrders>(p); } List <string> TNumList = JobOrdersList.Select(o => o.TNum).Distinct().ToList(); //IList<JobItem> JobItemList = Entity.JobItem.Where(n => TNumList.Contains(n.TNum)).OrderBy(n=>n.RunTime).ToList(); DataTable table = new DataTable(); DataRow row = null; // 创建 datatable table.Columns.Add(new DataColumn("订单号", typeof(string))); table.Columns.Add(new DataColumn("订单创建时间", typeof(string))); table.Columns.Add(new DataColumn("订单支付时间", typeof(string))); table.Columns.Add(new DataColumn("订单状态", typeof(string))); table.Columns.Add(new DataColumn("交易号", typeof(string))); table.Columns.Add(new DataColumn("金额", typeof(string))); table.Columns.Add(new DataColumn("执行时间", typeof(string))); table.Columns.Add(new DataColumn("手续费", typeof(string))); table.Columns.Add(new DataColumn("利润", typeof(string))); table.Columns.Add(new DataColumn("成本", typeof(string))); table.Columns.Add(new DataColumn("分润", typeof(string))); table.Columns.Add(new DataColumn("状态", typeof(string))); table.Columns.Add(new DataColumn("类型", typeof(string))); string state = ""; //订单按照支付时间排序 foreach (var temp in JobOrdersList) { IList <JobItem> JobItemList = Entity.JobItem.Where(n => n.TNum == temp.TNum).OrderBy(n => n.RunTime).ToList(); if (JobOrders.PayState == 3) { DateTime ETime_temp = new DateTime(ETime.Value.Year, ETime.Value.Month, ETime.Value.Day, 23, 59, 59, 999); JobItemList = JobItemList.Where(o => o.RunTime >= STime && o.RunTime <= ETime_temp).ToList(); } // 填充数据 #region 明细 foreach (var item in JobItemList) { row = table.NewRow(); row[0] = item.TNum; row[1] = temp.AddTime.ToString("yyyy-MM-dd HH:mm"); row[2] = temp.PayTime.Value.ToString("yyyy-MM-dd HH:mm"); row[3] = temp.GetState(); row[4] = item.RunNum; row[5] = item.RunMoney.ToString("F2"); row[6] = item.RunTime.ToString("yyyy-MM-dd HH:mm"); row[7] = item.Poundage.ToString("F2"); row[8] = item.HFGet.ToString("F2"); row[9] = item.RunGet.ToString("F2"); row[10] = item.AgentGet.ToString("F2"); switch (item.State) { case 0: state = "取消"; break; case 1: state = "待执行"; break; case 2: state = "执行中"; break; case 3: state = "执行完成"; break; case 4: state = "执行失败"; break; } row[11] = state; row[12] = item.RunType == 1 ? "消费" : "还款"; table.Rows.Add(row); } #endregion } string Time = DateTime.Now.ToString("yyyyMMddHHmmss") + new Random().Next(10, 99); return(this.ExportExcelBase(table, "任务订单明细-" + Time)); }
/// <summary> /// /// </summary> /// <param name="JobOrders"></param> /// <param name="p"></param> /// <param name="IsShowSupAgent">是否显示下级</param> /// <param name="LowerLevel">下级代理商</param> /// <returns></returns> public ActionResult Index(JobOrders JobOrders, EFPagingInfo <JobOrders> p, DateTime?STime, DateTime?ETime, bool?IsShowSupAgent, int?LowerLevel, int IsFirst = 0) { #region 条件校验 if (IsShowSupAgent == null) { IsShowSupAgent = false; } LowerLevel = LowerLevel == null ? 0 : LowerLevel; p.SqlWhere.Add(f => f.PayState != 0); p.SqlWhere.Add(f => f.AgentState != 0); if (!JobOrders.TNum.IsNullOrEmpty()) { p.SqlWhere.Add(f => f.TNum == JobOrders.TNum); } if (!JobOrders.Code.IsNullOrEmpty()) { IList <Users> UList = Entity.Users.Where(n => n.TrueName == JobOrders.Code || n.NeekName == JobOrders.Code || n.UserName == JobOrders.Code).ToList(); List <int> UIds = new List <int>(); foreach (var pp in UList) { UIds.Add(pp.Id); } p.SqlWhere.Add(f => UIds.Contains(f.UId)); } if (!JobOrders.AgentId.IsNullOrEmpty()) { p.SqlWhere.Add(f => f.AgentId == JobOrders.AgentId); } if (!JobOrders.AgentState.IsNullOrEmpty()) { p.SqlWhere.Add(f => f.AgentState == JobOrders.AgentState); } if (!STime.IsNullOrEmpty()) { p.SqlWhere.Add(f => f.PayTime > STime); } else { STime = DateTime.Now.AddMonths(-1); } if (!ETime.IsNullOrEmpty()) { p.SqlWhere.Add(f => f.PayTime < ETime); } else { ETime = DateTime.Now; } TimeSpan TS = ETime.Value.Subtract(STime.Value); int Days = TS.Days; if (Days > 31) { ViewBag.ErrorMsg = "统计时间间隔不能超过31天!"; return(View("Error")); } IList <SysAgent> AgentsList = null; if ((bool)IsShowSupAgent) { IList <int> UID = new List <int>(); if (LowerLevel != 0) { SysAgent LowerLevelAgent = Entity.SysAgent.Where(s => s.Id == LowerLevel).FirstOrNew(); AgentsList = LowerLevelAgent.GetSupAgent(Entity, true); } else { AgentsList = BasicAgent.GetSupAgent(Entity, true);//获取所有下级代理商信息 } UID = AgentsList.Select(o => o.Id).ToList(); p.SqlWhere.Add(f => UID.Contains(f.AgentId)); } else { p.SqlWhere.Add(f => f.AgentId == BasicAgent.Id);//读取全部分支机构 } #endregion p.OrderByList.Add("Id", "DESC"); IPageOfItems <JobOrders> JobOrdersList = null; if (IsFirst == 0) { JobOrdersList = new PageOfItems <JobOrders>(new List <JobOrders>(), 0, 10, 0, new Hashtable()); } else { JobOrdersList = Entity.Selects <JobOrders>(p); } ViewBag.JobOrdersList = JobOrdersList; ViewBag.JobOrders = JobOrders; //统计查询 if (JobOrdersList.TotalCount > 0) { var iquery = Entity.JobOrders.AsQueryable(); foreach (var item in p.SqlWhere) { iquery = iquery.Where(item); } //总金额 decimal SumAmoney = iquery.Sum(o => o.TotalMoney); ViewBag.SumAmoney = SumAmoney; //我的总佣金 decimal?SumMyProfit = Entity.OrderProfitLog.Where(o => o.Agent == BasicAgent.Id && o.OrderType == 31).Join(iquery, op => op.TNum, o => o.TNum, (op, o) => op.Profit).Sum(o => (decimal?)o); ViewBag.SumMyProfit = SumMyProfit; } //商户查询 IList <JobOrders> List = JobOrdersList.GroupBy(n => n.UId).Select(n => n.First()).ToList(); List <int> UId = new List <int>(); foreach (var pp in List) { UId.Add(pp.UId); } Dictionary <string, decimal> DicOrderProfitLog = new Dictionary <string, decimal>(); IList <Users> UsersList = Entity.Users.Where(n => UId.Contains(n.Id)).ToList(); foreach (var item in JobOrdersList) { DicOrderProfitLog.Add(item.TNum, Entity.OrderProfitLog.Where(o => o.TNum == item.TNum && o.Agent == BasicAgent.Id).Select(o => o.Profit).FirstOrDefault()); } ViewBag.DicOrderProfitLog = DicOrderProfitLog; ViewBag.UsersList = UsersList; ViewBag.SysAdminList = Entity.SysAdmin.Where(n => n.State == 1 && n.AgentId == AdminUser.AgentId).ToList(); ViewBag.IsShowSupAgent = IsShowSupAgent; ViewBag.BasicAgent = BasicAgent; SysSet SysSet = Entity.SysSet.FirstOrNew(); ViewBag.SysSet = SysSet; ViewBag.LowerLevel = LowerLevel; ViewBag.Edit = this.checkPower("Edit"); ViewBag.STime = STime; ViewBag.ETime = ETime; return(View()); }