public List <VillageNumViewModel> GetVillageReportNum1(GetVillageReportNum1 request)
        {
            using (var db = DbFactory.Open())
            {
                var year = DateTime.Now.Year;
                if (string.IsNullOrEmpty(adcd))
                {
                    throw new Exception("镇级编码不能为空!");
                }
                var _adcd = request.adcd;
                if (request.Year != 0)
                {
                    year = request.Year;
                }
                var list = new List <VillageNumViewModel>();

                #region 从ADCDInfo表中获取行政村的总数量

                var builder = db.From <ADCDInfo>();
                builder.Where(x => x.adcd.StartsWith(_adcd.Substring(0, 9)) && x.adcd != _adcd);
                var adcdList = db.Select(builder).Select(x => x.adcd);
                //if(adcdList.Count()==0)
                //    throw  new Exception("行政村信息不存在");
                #endregion

                var count = 0;
                #region 获取行政村信息上报统计

                if (adcdList.Count() != 0)
                {
                    var ADCDDisasterInfoBuilder = db.From <ADCDDisasterInfo>();
                    ADCDDisasterInfoBuilder.Where(x => x.Year == year && Sql.In(x.adcd, adcdList));
                    ADCDDisasterInfoBuilder.SelectDistinct(x => x.adcd);
                    count = db.Select(ADCDDisasterInfoBuilder).Count;
                    list.Add(new VillageNumViewModel()
                    {
                        ZZTX        = GrassrootsFloodCtrlEnums.ZZTXEnums.行政村信息,
                        NoReported  = adcdList.Count() - count,
                        HasReported = count
                    });
                }
                else
                {
                    list.Add(new VillageNumViewModel()
                    {
                        ZZTX        = GrassrootsFloodCtrlEnums.ZZTXEnums.行政村信息,
                        NoReported  = 0,
                        HasReported = 0
                    });
                }

                #endregion

                #region 获取行政村防汛防台工作组上报统计

                if (adcdList.Count() != 0)
                {
                    var VillageWorkingGroupBuilder = db.From <VillageWorkingGroup>();
                    VillageWorkingGroupBuilder.Where(x => x.Year == year && Sql.In(x.VillageADCD, adcdList));
                    VillageWorkingGroupBuilder.SelectDistinct(x => x.VillageADCD);
                    count = db.Select(VillageWorkingGroupBuilder).Count;
                    list.Add(new VillageNumViewModel()
                    {
                        ZZTX        = GrassrootsFloodCtrlEnums.ZZTXEnums.行政村防汛防台工作组,
                        NoReported  = adcdList.Count() - count,
                        HasReported = count
                    });
                }
                else
                {
                    list.Add(new VillageNumViewModel()
                    {
                        ZZTX        = GrassrootsFloodCtrlEnums.ZZTXEnums.行政村防汛防台工作组,
                        NoReported  = 0,
                        HasReported = 0
                    });
                }

                #endregion

                #region 获取行政村网格责任人上报统计

                if (adcdList.Count() != 0)
                {
                    var VillageGridPersonLiableBuilder = db.From <VillageGridPersonLiable>();
                    VillageGridPersonLiableBuilder.Where(x => x.Year == year && Sql.In(x.VillageADCD, adcdList));
                    VillageGridPersonLiableBuilder.SelectDistinct(x => x.VillageADCD);
                    count = db.Select(VillageGridPersonLiableBuilder).Count;
                    list.Add(new VillageNumViewModel()
                    {
                        ZZTX        = GrassrootsFloodCtrlEnums.ZZTXEnums.行政村网格责任人,
                        NoReported  = adcdList.Count() - count,
                        HasReported = count
                    });
                }
                else
                {
                    list.Add(new VillageNumViewModel()
                    {
                        ZZTX        = GrassrootsFloodCtrlEnums.ZZTXEnums.行政村网格责任人,
                        NoReported  = 0,
                        HasReported = 0
                    });
                }
                #endregion

                #region 获取行政村危险区转移人员上报统计

                if (adcdList.Count() != 0)
                {
                    var VillageTransferPersonBuilder = db.From <VillageTransferPerson>();
                    VillageTransferPersonBuilder.Where(x => x.Year == year && Sql.In(x.adcd, adcdList));
                    VillageTransferPersonBuilder.SelectDistinct(x => x.adcd);
                    count = db.Select(VillageTransferPersonBuilder).Count;
                    list.Add(new VillageNumViewModel()
                    {
                        ZZTX        = GrassrootsFloodCtrlEnums.ZZTXEnums.行政村危险区人员转移清单,
                        NoReported  = adcdList.Count() - count,
                        HasReported = count
                    });
                }
                else
                {
                    list.Add(new VillageNumViewModel()
                    {
                        ZZTX        = GrassrootsFloodCtrlEnums.ZZTXEnums.行政村危险区人员转移清单,
                        NoReported  = 0,
                        HasReported = 0
                    });
                }

                #endregion

                #region 获取镇街防汛防台责任人数量上报统计

                var TownPersonBuilder = db.From <TownPersonLiable>();
                TownPersonBuilder.Where(x => x.Year == year && x.adcd == adcd);
                count = dyConverter.ToInt32(db.Count(TownPersonBuilder));
                list.Add(new VillageNumViewModel()
                {
                    ZZTX = GrassrootsFloodCtrlEnums.ZZTXEnums.镇级防汛防台责任人, NoReported = 0, HasReported = count
                });

                #endregion

                #region 获取行政村防汛形势图上报统计

                if (adcdList.Count() != 0)
                {
                    var VillagePicBuilder = db.From <VillagePic>();
                    VillagePicBuilder.Where(x => x.Year == year && Sql.In(x.adcd, adcdList));
                    VillagePicBuilder.SelectDistinct(x => x.adcd);
                    count = db.Select(VillagePicBuilder).Count;
                    list.Add(new VillageNumViewModel()
                    {
                        ZZTX        = GrassrootsFloodCtrlEnums.ZZTXEnums.行政村防汛防台形势图,
                        NoReported  = adcdList.Count() - count,
                        HasReported = count
                    });
                }
                else
                {
                    list.Add(new VillageNumViewModel()
                    {
                        ZZTX        = GrassrootsFloodCtrlEnums.ZZTXEnums.行政村防汛防台形势图,
                        NoReported  = 0,
                        HasReported = 0
                    });
                }
                #endregion
                //
                return(list);
            }
        }
Esempio n. 2
0
 public List <VillageNumViewModel> Get(GetVillageReportNum1 request)
 {
     return(VillageTransferPersonManager.GetVillageReportNum1(request));
 }