public BsTableDataSource <ADCDDisasterViewModel> NoVerifyGetPersonLiabelList(NoVerifyGetPersonLiabelList request)
        {
            //List<PersonLiabelListModel> plml = new List<PersonLiabelListModel>();
            //PersonLiabelListModel plm = new PersonLiabelListModel();
            if (string.IsNullOrEmpty(request.adcd))
            {
                throw new Exception("镇级行政编码不能为空!");
            }
            var _year = request.year == null ? DateTime.Now.Year : request.year;

            using (var db = DbFactory.Open())
            {
                var builder = db.From <ADCDInfo>();
                builder.LeftJoin <ADCDInfo, ADCDDisasterInfo>((x, y) => x.adcd == y.adcd);
                builder.Where(w => w.adcd.StartsWith(request.adcd.Substring(0, 9)));
                builder.Where <ADCDDisasterInfo>(w => w.Year == _year);
                if (!string.IsNullOrEmpty(request.key))
                {
                    builder.And(x => x.adnm.Contains(request.key));
                }
                var count = db.Count(builder);
                builder.Select("ADCDInfo.adcd,ADCDInfo.adnm,ADCDInfo.lng,ADCDInfo.lat,ADCDDisasterInfo.TotalNum,ADCDDisasterInfo.PointNum,ADCDDisasterInfo.PopulationNum,ADCDDisasterInfo.FXFTRW ");
                var rows = request.PageSize == 0 ? 10 : request.PageSize;
                var skip = request.PageIndex == 0 ? 0 : request.PageIndex * rows;
                builder.Limit(skip, rows);
                var list = db.Select <ADCDDisasterViewModel>(builder);
                List <ADCDDisasterViewModel> newlist = new List <ADCDDisasterViewModel>();
                //到岗人数
                var dgperson = db.Select <AllPersonListViewModel>("select distinct adcd from AppRecord");
                list.ForEach(w =>
                {
                    ADCDDisasterViewModel _adcdvm = new ADCDDisasterViewModel();
                    _adcdvm.adcd     = w.adcd;
                    _adcdvm.adnm     = w.adnm;
                    _adcdvm.Lng      = w.Lng;
                    _adcdvm.Lat      = w.Lat;
                    _adcdvm.TotalNum = w.TotalNum;
                    var pointnum     = db.Select <VillageTransferPerson>(y => y.adcd == w.adcd);
                    //受灾点
                    if (pointnum != null && pointnum.Count > 0)
                    {
                        if (pointnum[0].IfTransfer == null)
                        {
                            _adcdvm.PointNum = pointnum.Count();
                        }
                        else
                        {
                            _adcdvm.PointNum = 0;
                        }
                        //受灾害影响人口
                        _adcdvm.PopulationNum = pointnum.Sum(x => x.HouseholderNum);
                    }
                    else
                    {
                        _adcdvm.PointNum      = 0;
                        _adcdvm.PopulationNum = 0;
                    }
                    _adcdvm.onperson = dgperson.Where(x => x.adcd == w.adcd).Count();
                    _adcdvm.FXFTRW   = w.FXFTRW;
                    newlist.Add(_adcdvm);
                });
                return(new BsTableDataSource <ADCDDisasterViewModel>()
                {
                    total = count, rows = newlist
                });
            }
        }
Esempio n. 2
0
 public BsTableDataSource <ADCDDisasterViewModel> Post(NoVerifyGetPersonLiabelList request)
 {
     return(NoVerifySuperviseServiceManage.NoVerifyGetPersonLiabelList(request));
 }