/// <summary>
        /// 获取行政村上报和未上报统计信息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public List <VillageNumViewModel> GetVillageReportNum(GetVillageReportNum request)
        {
            using (var db = DbFactory.Open())
            {
                var year = DateTime.Now.Year;
                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.Where(x => x.Year == year && x.adcd.StartsWith(adcd.Substring(0, 9)));
                    ADCDDisasterInfoBuilder.SelectDistinct(x => x.adcd);
                    count = db.Select(ADCDDisasterInfoBuilder).Count;
                    list.Add(new VillageNumViewModel()
                    {
                        ZZTX        = GrassrootsFloodCtrlEnums.ZZTXEnums.行政村信息,
                        NoReported  = adcdList.Count() - count,
                        HasReported = count
                    });
                }

                #endregion

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

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

                #endregion

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

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

                #endregion

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

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

                #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>();
                    //Sql.In(x.adcd, adcdList)
                    VillagePicBuilder.Where(x => x.Year == year && x.adcd.StartsWith(adcd.Substring(0, 9)));
                    VillagePicBuilder.SelectDistinct(x => x.adcd);
                    count = db.Select(VillagePicBuilder).Count;
                    list.Add(new VillageNumViewModel()
                    {
                        ZZTX        = GrassrootsFloodCtrlEnums.ZZTXEnums.行政村防汛防台形势图,
                        NoReported  = adcdList.Count() - count,
                        HasReported = count
                    });
                }

                #endregion
                #region
                var iscount = db.Select <ADCDInfo>("select adcd from ADCDInfo where adcd like '%" + adcd.Substring(0, 9) + "%' and adcd != " + adcd + " and lng > 0 and lat > 0");
                var nocount = db.Select <ADCDInfo>("select adcd from ADCDInfo where adcd like '%" + adcd.Substring(0, 9) + "%' and adcd != " + adcd + " and ((lng is null and lat is null) or (lng = 0 and lat =0))");
                list.Add(new VillageNumViewModel()
                {
                    //行政村信息审批统计
                    ZZTX        = GrassrootsFloodCtrlEnums.ZZTXEnums.行政村标绘,
                    NoReported  = nocount.Count,
                    HasReported = iscount.Count
                });
                #endregion
                //

                return(list);
            }
        }
Exemplo n.º 2
0
 public List <VillageNumViewModel> Get(GetVillageReportNum request)
 {
     return(VillageTransferPersonManager.GetVillageReportNum(request));
 }