public async Task<string> GetExamineReport_Master_Progress(GetExamineReport_MasterParam param) { Log.Write("Query GetExamineReport_Master_Progress"); Log.WriteToFile(); var db = new EnergyNetEntities(); var predicate = PredicateBuilder.True<ExamineReport_Master>(); predicate = predicate.And(x => x.YY == 2015); predicate = predicate.And(x => x.IsReject == false); if (param.CustId != null) predicate = predicate.And(x => x.CustID == param.CustId); if (param.CheckerId != null) predicate = predicate.And(x => x.CheckerId == param.CheckerId); if (param.AtuCheckerId != null) predicate = predicate.And(x => x.AtuCheckerId == param.AtuCheckerId); if (param.DeliverDate_Start != null) predicate = predicate.And(x => x.DeliverDate >= param.DeliverDate_Start); if (param.DeliverDate_End != null) predicate = predicate.And(x => x.DeliverDate <= param.DeliverDate_End); if (param.FixDate_Start != null) predicate = predicate.And(x => x.FixDate >= param.FixDate_Start); if (param.FixDate_End != null) predicate = predicate.And(x => x.FixDate <= param.FixDate_End); if (param.GreenCheckState != null) predicate = predicate.And(x => x.GreenCheckState == param.GreenCheckState); if (param.EconCheckState != null) predicate = predicate.And(x => x.EconCheckState == param.EconCheckState); var page_size = 10; int page_now = param.page == null ? 1 : (int)param.page; int skip_row = (page_size * (page_now - 1)); var dnow = DateTime.Now; var items = db.ExamineReport_Master.AsExpandable() .Where(predicate) .OrderByDescending(x => DbFunctions.DiffDays(x.FixDate, DateTime.Now)) .Select(x => new ExamineReport_Master_Progress() { YY = x.YY, CustID = x.CustID, DeliverDate = x.DeliverDate, FixDate = x.FixDate, GreenCheckState = x.GreenCheckState, EconCheckState = x.EconCheckState, CheckerId = x.CheckerId, CheckerName = x.Tb_Login_CheckerId.LoginName, CheckDate = x.CheckDate, CheckCount = x.CheckCount, InitPassDate = x.InitPassDate, EconPassDate = x.EconPassDate, CustName = x.BuileBase.CustName, AtuName = x.Tb_Login_AtuCheckerId.LoginName, diffDeliverDays = DbFunctions.DiffDays(x.DeliverDate, DateTime.Now), diffFixDays = DbFunctions.DiffDays(x.FixDate, DateTime.Now), diffCheckDays = DbFunctions.DiffDays(x.CheckDate, DateTime.Now) }); var row_count = await items.CountAsync(); int page_total = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(row_count) / page_size)); if (page_total == 0) page_total = 1; var result = await items.Skip(skip_row).Take(page_size).ToListAsync(); //foreach (var rlt in result) //{ // if (rlt.FixDate != null && (rlt.GreenCheckState == "C" || rlt.GreenCheckState == "D")) // {//已經修正 但還沒審 // rlt.diffFixDays = (DateTime.Now - (DateTime)rlt.FixDate).Days; // } // if (rlt.CheckDate != null && rlt.GreenCheckState == "B") // {//已經審過 但未通過 仍未補正 // rlt.diffCheckDays = (DateTime.Now - (DateTime)rlt.CheckDate).Days; // } //} var r = new GridExamineReport_Master(); r.items = result; r.page = page_now; r.page_total = page_total; r.rows_count = row_count; return defJSONNull(r); }
public async Task<string> GetExamineReport_Master(GetExamineReport_MasterParam param) { Log.Write("Query GetExamineReport_Master"); Log.WriteToFile(); var db = new EnergyNetEntities(); var predicate = PredicateBuilder.True<ExamineReport_Master>(); predicate = predicate.And(x => x.YY == 2015); predicate = predicate.And(x => x.IsReject == false); if (param.CustId != null) predicate = predicate.And(x => x.CustID == param.CustId); if (param.CheckerId != null) predicate = predicate.And(x => x.CheckerId == param.CheckerId); if (param.AtuCheckerId != null) predicate = predicate.And(x => x.AtuCheckerId == param.AtuCheckerId); if (param.DeliverDate_Start != null) predicate = predicate.And(x => x.DeliverDate >= param.DeliverDate_Start); if (param.DeliverDate_End != null) predicate = predicate.And(x => x.DeliverDate <= param.DeliverDate_End); if (param.FixDate_Start != null) predicate = predicate.And(x => x.FixDate >= param.FixDate_Start); if (param.FixDate_End != null) predicate = predicate.And(x => x.FixDate <= param.FixDate_End); if (param.GreenCheckState != null) predicate = predicate.And(x => x.GreenCheckState == param.GreenCheckState); if (param.EconCheckState != null) predicate = predicate.And(x => x.EconCheckState == param.EconCheckState); var page_size = 10; int page_now = param.page == null ? 1 : (int)param.page; int skip_row = (page_size * (page_now - 1)); Log.Write(new string[] { "skip_row", skip_row.ToString() }); Log.WriteToFile(); var items = db.ExamineReport_Master.AsExpandable() .Where(predicate) .OrderByDescending(x => x.DeliverDate) .Select(x => new { x.YY, x.CustID, x.DeliverDate, x.FixDate, x.GreenCheckState, x.EconCheckState, x.CheckerId, CheckerName = x.Tb_Login_CheckerId.LoginName, x.CheckDate, x.CheckCount, x.InitPassDate, x.EconPassDate, x.IsReject, x.AtuCheckerId, CustName = x.BuileBase.CustName, AtuName = x.Tb_Login_AtuCheckerId.LoginName }); var row_count = await items.CountAsync(); int page_total = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(row_count) / page_size)); if (page_total == 0) page_total = 1; var result = await items.Skip(skip_row).Take(page_size).ToListAsync(); var r = new GridExamineReport_Master(); r.items = result; r.page = page_now; r.page_total = page_total; r.rows_count = row_count; return defJSONNull(r); }