public ActionResult Search(ProgressSearchViewModel model) { try { using (var db = new ApplicationDbContext()) { var predicate = PredicateBuilder.True <Invitation>().And(p => p.EmailTemplate.OrgId == IMSUserUtil.OrgId); if (model.NoticeIds.Count() > 0) { predicate = predicate.And(model.NoticeIdPredicate); } if (model.RecruitStatusCodes.Count() > 0) { predicate = predicate.And(model.RecruitStatusCodePredicate); } var result = db.Invitations .Include(x => x.RecruitStatusType) .Include(x => x.EmailTemplate) .AsExpandable() .Where(predicate).ToList() .Select(x => new InvitationViewModel { NoticeId = x.TemplateId, NoticeName = x.EmailTemplate.Name, Email = x.Email, RecruitStatusCode = x.RecruitStatusType.Code }) .OrderByDescending(x => x.Email) .ToList(); return(Json(new ImsResult { Data = result })); } } catch (Exception e) { return(Json(new ImsResult { Error = e.Message })); } }
public List <ProgressListViewModel> GetProgressList(ProgressSearchViewModel condition) { List <SqlParameter> parameters = new List <SqlParameter>(); string sql = "select top 5000 o.[ContractTime],o.[BizManager],o.[BizOperations],o.[Recommend],o.[CommercialExpense],c.[CustomerName],i.ItemName,s.StepName,p.CompletedTime,p.ResultDesc,p.CreateTime,p.Creator,c.Contacts " + " from T_Prog_WorkOrder o left join T_Prog_Customers c on o.CusId=c.CusId left join T_Prog_WorkProgress p on o.WoId=p.WoId left join T_Prog_BizItems i on p.ItemId=i.ItemId left join T_Prog_BizSteps s on p.StepId=s.StepId" + " where o.State>0 and p.ResultDesc is not null"; if (condition.sCreate.HasValue) { sql += " and p.CompletedTime >= @sCreate"; parameters.Add(new SqlParameter("@sCreate", condition.sCreate)); } if (condition.eCreate.HasValue) { sql += " and p.CompletedTime <= @eCreate"; parameters.Add(new SqlParameter("@eCreate", condition.eCreate)); } if (!string.IsNullOrEmpty(condition.CustomerName)) { sql += " and c.CusId = @CustomerName"; parameters.Add(new SqlParameter("@CustomerName", condition.CustomerName)); } if (!string.IsNullOrEmpty(condition.Creator)) { sql += " and p.Creator like @Creator"; parameters.Add(new SqlParameter("@Creator", string.Format("%{0}%", condition.Creator))); } if (!string.IsNullOrEmpty(condition.Contacts)) { sql += " and c.Contacts like @Contacts"; parameters.Add(new SqlParameter("@Contacts", string.Format("%{0}%", condition.Contacts))); } sql += " order by p.CreateTime desc"; List <ProgressListViewModel> progs = _context.Database.SqlQuery <ProgressListViewModel>(sql, parameters.ToArray()).ToList(); return(progs); }
public ActionResult ExportExcelProgress(ProgressSearchViewModel condition) { string s = ","; //标题头 List <string> columnNames = new List <string>() { "客户名称", "项目名称", "工作步骤", "进度记录", "完成时间", "记录人", "业务费用", "合同时间" }; string colNames = ""; foreach (string c in columnNames) { if (colNames != "") { colNames += s; } colNames += c; } //数据内容 string data = ""; var progs = _report.GetProgressList(condition); using (MemoryStream ms = new MemoryStream()) { using (StreamWriter sw = new StreamWriter(ms, Encoding.Default)) { sw.WriteLine(colNames); foreach (ProgressListViewModel pl in progs) { data += (pl.CustomerName + s); data += (pl.ItemName + s); data += (pl.StepName + s); data += (pl.ResultDesc + s); if (pl.CompletedTime.HasValue) { data += (pl.CompletedTime.Value.ToString("yyyy-MM-dd") + s); } data += pl.Creator + s; data += pl.CommercialExpense.ToString() + s; data += pl.ContractTime.ToString("yyyy-MM-dd"); sw.WriteLine(data); data = ""; } sw.Flush(); Response.Clear(); Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.ContentType = "application/octet-stream"; Response.AppendHeader("Content-Disposition", "attachment; filename=" + string.Format("进度记录{0}.csv", DateTime.Now.ToString("yyyy-MM-dd"))); Response.AppendHeader("Content-Length", "" + ms.Length); byte[] bts = ms.ToArray(); Response.OutputStream.Write(bts, 0, bts.Length); Response.OutputStream.Flush(); sw.Close(); ms.Close(); } } return(null); }
public IHttpActionResult GetProgerssList(ProgressSearchViewModel condition) { var progs = _report.GetProgressList(condition); return(Ok(progs)); }