Beispiel #1
0
 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
         }));
     }
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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));
        }