private ISearchResponse <HNKY_CUR> GetResult(CheckStatisHNKYSearchModel model) { var filterQuery = FilterQuery(model); int pos = model.posStart.HasValue ? model.posStart.Value : 0; int count = model.count.HasValue ? model.count.Value : 30; return(Rep.Search(t => t.Query(filterQuery).From(pos).Size(count).Index("gx-t-bp-hnky").Source(sf => sf.Includes(ss => ss.Fields( tt => tt.SYSPRIMARYKEY, tt => tt.PROJECTNAME, tt => tt.STRUCTPART, tt => tt.CUSTOMID, tt => tt.REPORTNUM, tt => tt.SHEJIDENGJI, tt => tt.BAIFENGBI, tt => tt.LINQI, tt => tt.CHECKDATE, tt => tt.QIANGDUDAIBIAOZHI))))); }
public ActionResult Search(CheckStatisHNKYSearchModel model) { var response = GetResult(model); var totalCount = response.Total; int pos = model.posStart ?? 0; DhtmlxGrid grid = new DhtmlxGrid(); grid.AddPaging((int)totalCount, pos); var allCustoms = checkUnitService.GetAllCheckUnit(); var index = 1; foreach (var item in response.Documents) { var customName = string.Empty; allCustoms.TryGetValue(item.CUSTOMID, out customName); DhtmlxGridRow row = new DhtmlxGridRow(item.SYSPRIMARYKEY); row.AddCell(index++); row.AddCell(item.PROJECTNAME); row.AddCell(item.STRUCTPART); row.AddCell(checkUnitService.GetCheckUnitByIdFromAll(allCustoms, item.CUSTOMID)); row.AddCell(GetUIDtString(item.CHECKDATE, "yyyy-MM-dd")); row.AddLinkJsCell(item.REPORTNUM, "detailsReport(\"{0}\")".Fmt(item.SYSPRIMARYKEY)); row.AddCell(item.LINQI); row.AddCell(item.SHEJIDENGJI); row.AddCell(item.QIANGDUDAIBIAOZHI); if (model.qiangduwuxiao.HasValue && model.qiangduwuxiao == 1) { row.AddCell(string.Empty); } else { row.AddCell(item.BAIFENGBI.ToString()); } grid.AddGridRow(row); } string str = grid.BuildRowXml().ToString(System.Xml.Linq.SaveOptions.DisableFormatting); return(Content(str, "text/xml")); }
private Func <QueryContainerDescriptor <HNKY_CUR>, QueryContainer> FilterQuery(CheckStatisHNKYSearchModel model) { List <string> customIds = new List <string>(); if (!model.Area.IsNullOrEmpty()) { var areas = model.Area.Split(',').ToList(); foreach (var item in areas) { var customId = customRep.GetByConditon <string>(t => t.area == item, t => new { t.ID }); for (int i = 0; i < customId.Count; i++) { customIds.Add(customId[i]); } } //customIds = customRep.GetByConditon<string>(t => t.area == model.Area, t => new { t.ID });// = customRep.GetByConditonPage<string>(t => t.area == model.Area, r => new { r.Id }, null, null); } Func <QueryContainerDescriptor <HNKY_CUR>, QueryContainer> filterQuery = q => { QueryContainer initQuery = q.Exists(qe => qe.Field(qef => qef.SYSPRIMARYKEY)); string dtFormatStr = "yyyy-MM-dd'T'HH:mm:ss"; string startDtStr = model.StartDt.HasValue ? model.StartDt.Value.ToString(dtFormatStr) : string.Empty; string endDtStr = model.EndDt.HasValue ? model.EndDt.Value.AddDays(1).ToString(dtFormatStr) : string.Empty; if (!startDtStr.IsNullOrEmpty()) { initQuery = initQuery && +q.DateRange(d => d.Field(f => f.CHECKDATE).GreaterThanOrEquals(DateMath.FromString(startDtStr))); } if (!endDtStr.IsNullOrEmpty()) { initQuery = initQuery && +q.DateRange(d => d.Field(f => f.CHECKDATE).LessThan(DateMath.FromString(endDtStr))); } if (!model.CUSTOMID.IsNullOrEmpty()) { initQuery = initQuery && q.Term(qt => qt.Field(qtf => qtf.CUSTOMID).Value(model.CUSTOMID)); } if (!model.YANGHUTIAOJIAN.IsNullOrEmpty()) { initQuery = initQuery && q.Term(qt => qt.Field(qtf => qtf.YANGHUTIAOJIAN).Value(model.YANGHUTIAOJIAN)); } if (!customIds.IsNullOrEmpty()) { initQuery = initQuery && q.Terms(qt => qt.Field(qtf => qtf.CUSTOMID).Terms(customIds)); } if (!model.SHEJIDENGJI.IsNullOrEmpty()) { initQuery = initQuery && q.Term(qt => qt.Field(qtf => qtf.SHEJIDENGJI).Value(model.SHEJIDENGJI)); } if (!model.ProjectName.IsNullOrEmpty()) { initQuery = initQuery && q.QueryString(m => m.DefaultField(f => f.PROJECTNAME).Query("{0}{1}{0}".Fmt("*", model.ProjectName))); } if (model.qiangduwuxiao.HasValue && model.qiangduwuxiao == 1) { initQuery = initQuery && q.Term(t => t.Field(tt => tt.QIANGDUDAIBIAOZHI).Value("无效")); } if (!model.BAIFENBIStart.IsNullOrEmpty()) { initQuery = initQuery && q.Range(t => t.Field(tt => tt.BAIFENGBI).GreaterThanOrEquals(double.Parse(model.BAIFENBIStart))); } if (!model.BAIFENBIEnd.IsNullOrEmpty()) { initQuery = initQuery && q.Range(t => t.Field(tt => tt.BAIFENGBI).LessThanOrEquals(double.Parse(model.BAIFENBIEnd))); } if (!model.LINQIStart.IsNullOrEmpty()) { initQuery = initQuery && q.Range(t => t.Field(tt => tt.LINQI).GreaterThanOrEquals(double.Parse(model.LINQIStart))); } if (!model.LINQIEnd.IsNullOrEmpty()) { initQuery = initQuery && q.Range(t => t.Field(tt => tt.LINQI).LessThanOrEquals(double.Parse(model.LINQIEnd))); } return(initQuery); }; return(filterQuery); }