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);
        }