模型類:
public class order
{
[Key]
public decimal id { get; set; }
public string ord_no { get; set; }
public string ord_no_c { get; set; }
public int ord_type { get; set; }
public string c_code { get; set; }
public string curr { get; set; }
public DateTime batch_date { get; set; }
public DateTime send_date { get; set; }
public string country { get; set; }
public decimal total_qty { get; set; }
public decimal total_money { get; set; }
public string sales_man { get; set; }
public bool e_del { get; set; }
public string dept { get; set; }
public string pay { get; set; }
public string condition { get; set; }
}
控制器:
public ActionResult ddlist(int pageindex = 1, int pagesize = 5)
{
DateTime dt1 = DateTime.Today.AddDays(-30);
DateTime dt2 = DateTime.Today.AddDays(1);
MrpTestDBContext db = new MrpTestDBContext();
var xx0 = (from m in db.order
where m.e_del == false && m.batch_date >= dt1 && m.batch_date <= dt2
select m).ToList();
var model = xx0.OrderBy(s => s.id).ToPagedList(pageindex, pagesize);
if (Request.IsAjaxRequest())
{
return PartialView("ddfind_fb", model);
}
else
{
//return RedirectToAction("ddfind", new { ls = xx0 });
return View(model);
}
}
[HttpPost]
public ActionResult ddlist(string d1, string d2, int page = 1, int pagesize = 5)
{
var keys = Request.Form.AllKeys;
List ls_tj = new List();
foreach (var item in keys)
{
if (item.Length > 5)
{
if (item.Substring(0, 5) == "tj_xm" && Request.Form[item].Length > 0)
{
tj j = new tj();
j.xm = Request.Form[item];
j.yxz = Request.Form["tj_yxz" + item.Replace("tj_xm", "")];
j.fs = Request.Form["tj_bjfs" + item.Replace("tj_xm", "")];
j.bjz = Request.Form["bjz" + item.Replace("tj_xm", "")];
j.gx = Request.Form["gx_ls" + item.Replace("tj_xm", "")];
ls_tj.Add(j);
}
}
}
DateTime dt1 = DateTime.Today.AddDays(-30);
DateTime dt2 = DateTime.Today.AddDays(1);
if (bcController.IsDate(d1))
{
dt1 = DateTime.Parse(d1);
}
if (bcController.IsDate(d2))
{
dt2 = DateTime.Parse(d2);
}
MrpTestDBContext db = new MrpTestDBContext();
var xx0 = (from m in db.order
where m.e_del == false && m.batch_date >= dt1 && m.batch_date <= dt2
select m).ToList();
var xx0_1 = xx0;
var xx0_2 = xx0;
//优先级1
List> ls1_data = new List>();
List ls1_gx = new List();
string ls1_last = "";
foreach (var item in ls_tj)
{
var xx1 = xx0;
if (item.yxz == "1")
{
switch (item.xm)
{
case "ddno":
xx1 = (!string.IsNullOrEmpty(item.bjz)) ? xx1.Where(s => s.ord_no.Contains(item.bjz)).ToList() : xx1;
break;
case "ddtype":
if (!string.IsNullOrEmpty(item.bjz))
{
int _type = Convert.ToInt32(item.bjz);
xx1 = xx1.Where(s => s.ord_type == _type).ToList();
}
break;
default:
break;
}
ls1_data.Add(xx1);
ls1_gx.Add(item.gx);
}
}
for (int i = 0; i < ls1_data.Count; i++)
{
if (ls1_data.Count>1 && i
{
xx0_1 = (ls1_gx[i] == "and") ? ls1_data[i].Intersect(ls1_data[i + 1]).ToList() : ls1_data[i].Union(ls1_data[i + 1]).ToList();
}
if (ls1_data.Count==1)
{
xx0_1 = ls1_data[i];
}
ls1_last = ls1_gx[ls1_gx.Count - 1];
}
// 优先级2
List> ls2_data = new List>();
List ls2_gx = new List();
foreach (var item in ls_tj)
{
var xx2 = xx0;
if (item.yxz == "2")
{
switch (item.xm)
{
case "ddno":
xx2 = (!string.IsNullOrEmpty(item.bjz)) ? xx2.Where(s => s.ord_no.Contains(item.bjz)).ToList() : xx2;
break;
case "ddtype":
if (!string.IsNullOrEmpty(item.bjz))
{
int _type = Convert.ToInt32(item.bjz);
xx2 = xx2.Where(s => s.ord_type == _type).ToList();
}
break;
default:
break;
}
ls2_data.Add(xx2);
ls2_gx.Add(item.gx);
}
}
for (int i = 0; i < ls2_data.Count; i++)
{
if (ls2_data.Count > 1 && i < ls2_data.Count - 1)
{
xx0_2 = (ls2_gx[i] == "and") ? ls2_data[i].Intersect(ls2_data[i + 1]).ToList() : ls2_data[i].Union(ls2_data[i + 1]).ToList();
}
if (ls2_data.Count == 1)
{
xx0_2 = ls2_data[i];
}
}
if (ls1_data.Count>0)
{
xx0 = xx0_1;
if (ls2_data.Count>0)
{
xx0 = (ls1_last == "and" ? xx0_1.Intersect(xx0_2).ToList() : xx0_1.Union(xx0_2).ToList());
}
}
var model = xx0.OrderBy(s => s.id).ToPagedList(page, pagesize);
if (Request.IsAjaxRequest())
{
return PartialView("ddfind_fb", model);
}
else
{
//return RedirectToAction("ddfind", new { ls = xx0 });
return View(model);
}
//return PartialView("ddlist_fb", model);
}
效果圖