public ActionResult GridSearch(CheckStatisDataGridSearchModel model) { var response = GetGridSerarchResponse(model); DhtmlxGrid grid = new DhtmlxGrid(); var allInsts = checkUnitService.GetAllCheckUnit(); var allItems = itemNameService.GetAllItemName(); var pos = model.posStart.HasValue ? model.posStart.Value : 0; int index = pos + 1; if (response.IsValid) { var totalCount = (int)response.Total; grid.AddPaging(totalCount, pos); foreach (var item in response.Documents) { DhtmlxGridRow row = new DhtmlxGridRow(item.SYSPRIMARYKEY); row.AddCell(index++); row.AddCell(checkUnitService.GetCheckUnitByIdFromAll(allInsts, item.CUSTOMID)); row.AddCell(item.PROJECTNAME); row.AddCell(itemNameService.GetItemCNNameFromAll(allItems, item.REPORTJXLB, item.ITEMNAME)); row.AddCell(GetUIDtString(item.CHECKDATE)); row.AddCell(GetUIDtString(item.PRINTDATE)); row.AddLinkJsCell(item.REPORTNUM, "getPKRReport(\"{0}\")".Fmt(item.REPORTNUM)); row.AddCell(new DhtmlxGridCell("查看", false).AddCellAttribute("title", "查看")); grid.AddGridRow(row); } } string str = grid.BuildRowXml().ToString(System.Xml.Linq.SaveOptions.DisableFormatting); return(Content(str, "text /xml")); }
private ISearchResponse <es_t_bp_item> GetGridSerarchResponse(CheckStatisDataGridSearchModel model) { var filterQuery = GetGridSearchFilterQuery(model); int pos = model.posStart.HasValue ? model.posStart.Value : 0; int count = model.count.HasValue ? model.count.Value : 30; return(tbpItemESRep.Search(t => t.Query(filterQuery).From(pos).Size(count) .Source(tt => tt.Includes(ttt => ttt.Fields(tst => tst.CUSTOMID, tst => tst.SYSPRIMARYKEY, tst => tst.REPORTNUM, tst => tst.ITEMNAME, tst => tst.PRINTDATE, tst => tst.CHECKDATE, tst => tst.PROJECTNAME))))); }
protected Func <QueryContainerDescriptor <es_t_bp_item>, QueryContainer> GetGridSearchFilterQuery(CheckStatisDataGridSearchModel model) { Func <QueryContainerDescriptor <es_t_bp_item>, QueryContainer> filterQuery = q => { string dtFormatStr = "yyyy-MM-dd'T'HH:mm:ss"; DateTime?StartTime = new DateTime(); DateTime?EndTime = new DateTime(); DateTime date = DateTime.Now; if (model.SearchType == "0") { StartTime = DateTime.Today; EndTime = DateTime.Today.AddDays(1); } else if (model.SearchType == "1") { StartTime = date.AddDays(1 - Convert.ToInt32(date.DayOfWeek.ToString("d"))); //本周周一 EndTime = StartTime.Value.AddDays(7); } else if (model.SearchType == "2") { StartTime = date.AddDays(1 - date.Day); //本月月初 EndTime = StartTime.Value.AddMonths(1); //本月月末 } else if (model.SearchType == "3") { StartTime = date.AddMonths(0 - (date.Month - 1) % 3).AddDays(1 - date.Day); //本季度初 EndTime = StartTime.Value.AddMonths(3); } else if (model.SearchType == "4") { StartTime = new DateTime(date.Year, 1, 1); //本年年初 EndTime = new DateTime(date.Year, 12, 31).AddDays(1); //本年年末 } else if (model.SearchType == "5") { StartTime = new DateTime(2000, 1, 1); EndTime = new DateTime(2099, 1, 1); } var startDtStr = StartTime.HasValue ? StartTime.Value.ToString(dtFormatStr) : string.Empty; var endDtStr = EndTime.HasValue ? EndTime.Value.ToString(dtFormatStr) : string.Empty; QueryContainer initQuery = q.Exists(qe => qe.Field(qef => qef.SYSPRIMARYKEY)); if (model.Type == "0") { if (!startDtStr.IsNullOrEmpty()) { initQuery = initQuery && +q.DateRange(d => d.Field(f => f.PRINTDATE).GreaterThanOrEquals(DateMath.FromString(startDtStr))); } if (!startDtStr.IsNullOrEmpty()) { initQuery = initQuery && +q.DateRange(d => d.Field(f => f.PRINTDATE).LessThanOrEquals(DateMath.FromString(endDtStr))); } } else if (model.Type == "1") { if (!startDtStr.IsNullOrEmpty()) { initQuery = initQuery && +q.DateRange(d => d.Field(f => f.APPROVEDATE).GreaterThanOrEquals(DateMath.FromString(startDtStr))); } if (!startDtStr.IsNullOrEmpty()) { initQuery = initQuery && +q.DateRange(d => d.Field(f => f.APPROVEDATE).LessThanOrEquals(DateMath.FromString(endDtStr))); } } else if (model.Type == "2") { if (!startDtStr.IsNullOrEmpty()) { initQuery = initQuery && +q.DateRange(d => d.Field(f => f.CHECKDATE).GreaterThanOrEquals(DateMath.FromString(startDtStr))); } if (!startDtStr.IsNullOrEmpty()) { initQuery = initQuery && +q.DateRange(d => d.Field(f => f.CHECKDATE).LessThanOrEquals(DateMath.FromString(endDtStr))); } } else if (model.Type == "3") { if (!startDtStr.IsNullOrEmpty()) { initQuery = initQuery && +q.DateRange(d => d.Field(f => f.UPLOADTIME).GreaterThanOrEquals(DateMath.FromString(startDtStr))); } if (!startDtStr.IsNullOrEmpty()) { initQuery = initQuery && +q.DateRange(d => d.Field(f => f.UPLOADTIME).LessThanOrEquals(DateMath.FromString(endDtStr))); } } if (!model.CustomId.IsNullOrEmpty()) { initQuery = initQuery && q.Term(tt => tt.Field(ttt => ttt.CUSTOMID).Value(model.CustomId)); } return(initQuery); }; return(filterQuery); }