public List<StageCustomerEntity> GetUserOpportunitys(string userid, string teamid, string begintime, string endtime, string agentid, string clientid)
        {
            List<StageCustomerEntity> list = new List<StageCustomerEntity>();

            DataSet ds = SalesRPTDAL.BaseProvider.GetUserOpportunitys(userid, teamid, begintime, endtime, agentid, clientid);

            DataTable dt = ds.Tables["Users"];

            var stages = SystemBusiness.BaseBusiness.GetOrderStages("", agentid, clientid);

            #region 统计所有
            var teams = SystemBusiness.BaseBusiness.GetTeams(agentid);
            foreach (var team in teams)
            {
                StageCustomerEntity model = new StageCustomerEntity();

                model.Name = team.TeamName;
                model.GUID = team.TeamID;

                model.Stages = new List<StageCustomerItem>();
                model.ChildItems = new List<StageCustomerEntity>();

                //遍历成员
                foreach (var user in team.Users)
                {
                    StageCustomerEntity childModel = new StageCustomerEntity();
                    childModel.GUID = user.UserID;
                    childModel.Name = user.Name;
                    childModel.PID = team.TeamID;
                    childModel.Stages = new List<StageCustomerItem>();

                    //遍历阶段
                    foreach (var stage in stages)
                    {
                        StageCustomerItem childItem = new StageCustomerItem();
                        childItem.Name = stage.StageName;

                        var drs = dt.Select("StageID='" + stage.StageID + "' and OwnerID='" + user.UserID + "'");

                        if (drs.Count() > 0)
                        {
                            childItem.Count = Convert.ToInt32(drs[0]["Value"]);
                            childItem.Money = Convert.ToDecimal(drs[0]["TotalMoney"]);
                        }
                        else
                        {
                            childItem.Count = 0;
                            childItem.Money = 0;
                        }

                        if (model.Stages.Where(m => m.StageID == stage.StageID).Count() > 0)
                        {
                            model.Stages.Where(m => m.StageID == stage.StageID).FirstOrDefault().Count += childItem.Count;
                            model.Stages.Where(m => m.StageID == stage.StageID).FirstOrDefault().Money += childItem.Money;
                        }
                        else
                        {
                            StageCustomerItem item = new StageCustomerItem();
                            item.Name = stage.StageName;
                            item.StageID = stage.StageID;
                            item.Count = childItem.Count;
                            item.Money = childItem.Money;
                            model.Stages.Add(item);
                        }

                        childModel.Stages.Add(childItem);
                    }
                    model.ChildItems.Add(childModel);
                }
                list.Add(model);
            }

            #endregion


            return list;
        }
        public List<StageCustomerEntity> GetUserCustomers(string userid, string teamid, string begintime, string endtime, string agentid, string clientid)
        {
            List<StageCustomerEntity> list = new List<StageCustomerEntity>();

            DataSet ds = CustomerRPTDAL.BaseProvider.GetUserCustomers(userid, teamid, begintime, endtime, agentid, clientid);

            DataTable dt = ds.Tables["Users"];

            var stages = SystemBusiness.BaseBusiness.GetCustomStages(agentid, clientid);

            

            if (!string.IsNullOrEmpty(userid))
            {
                #region 统计个人

                StageCustomerEntity model = new StageCustomerEntity();
                model.Name = OrganizationBusiness.GetUserByUserID(userid, agentid).Name;
                model.Stages = new List<StageCustomerItem>();
                foreach (var stage in stages)
                {
                    StageCustomerItem item = new StageCustomerItem();
                    item.Name = stage.StageName;

                    var drs = dt.Select("StageID='" + item.StageID + "'");  
                    if (drs.Count() > 0)
                    {
                        item.Count = Convert.ToInt32(drs[0]["Value"]);
                    }
                    else
                    {
                        item.Count = 0;
                    }
                    model.Stages.Add(item);
                }
                list.Add(model);

                #endregion
            }
            else if (!string.IsNullOrEmpty(teamid))
            {
                #region 统计团队
                var team = SystemBusiness.BaseBusiness.GetTeamByID(teamid, agentid);
                StageCustomerEntity model = new StageCustomerEntity();

                model.Name = team.TeamName;
                model.GUID = team.TeamID;

                model.Stages = new List<StageCustomerItem>();
                model.ChildItems = new List<StageCustomerEntity>();

                //遍历成员
                foreach (var user in team.Users)
                {
                    StageCustomerEntity childModel = new StageCustomerEntity();
                    childModel.GUID = user.UserID;
                    childModel.Name = user.Name;
                    childModel.PID = team.TeamID;
                    childModel.Stages = new List<StageCustomerItem>();

                    //遍历阶段
                    foreach (var stage in stages)
                    {
                        StageCustomerItem childItem = new StageCustomerItem();
                        childItem.Name = stage.StageName;

                        var drs = dt.Select("StageID='" + stage.StageID + "' and OwnerID='" + user.UserID + "'");
                        
                        if (drs.Count() > 0)
                        {
                            childItem.Count = Convert.ToInt32(drs[0]["Value"]);
                        }
                        else
                        {
                            childItem.Count = 0;
                        }

                        if (model.Stages.Where(m => m.StageID == stage.StageID).Count() > 0)
                        {
                            model.Stages.Where(m => m.StageID == stage.StageID).FirstOrDefault().Count += childItem.Count;
                        }
                        else 
                        {
                            StageCustomerItem item = new StageCustomerItem();
                            item.Name = stage.StageName;
                            item.StageID = stage.StageID;
                            item.Count = childItem.Count;
                            model.Stages.Add(item);
                        }

                        childModel.Stages.Add(childItem);
                    }
                    model.ChildItems.Add(childModel);
                }
                list.Add(model);

                #endregion
            }
            else
            {
                #region 统计所有
                var teams = SystemBusiness.BaseBusiness.GetTeams(agentid);
                foreach (var team in teams)
                {
                    StageCustomerEntity model = new StageCustomerEntity();

                    model.Name = team.TeamName;
                    model.GUID = team.TeamID;

                    model.Stages = new List<StageCustomerItem>();
                    model.ChildItems = new List<StageCustomerEntity>();

                    //遍历成员
                    foreach (var user in team.Users)
                    {
                        StageCustomerEntity childModel = new StageCustomerEntity();
                        childModel.GUID = user.UserID;
                        childModel.Name = user.Name;
                        childModel.PID = team.TeamID;
                        childModel.Stages = new List<StageCustomerItem>();

                        //遍历阶段
                        foreach (var stage in stages)
                        {
                            StageCustomerItem childItem = new StageCustomerItem();
                            childItem.Name = stage.StageName;

                            var drs = dt.Select("StageID='" + stage.StageID + "' and OwnerID='" + user.UserID + "'");

                            if (drs.Count() > 0)
                            {
                                childItem.Count = Convert.ToInt32(drs[0]["Value"]);
                            }
                            else
                            {
                                childItem.Count = 0;
                            }

                            if (model.Stages.Where(m => m.StageID == stage.StageID).Count() > 0)
                            {
                                model.Stages.Where(m => m.StageID == stage.StageID).FirstOrDefault().Count += childItem.Count;
                            }
                            else
                            {
                                StageCustomerItem item = new StageCustomerItem();
                                item.Name = stage.StageName;
                                item.StageID = stage.StageID;
                                item.Count = childItem.Count;
                                model.Stages.Add(item);
                            }

                            childModel.Stages.Add(childItem);
                        }
                        model.ChildItems.Add(childModel);
                    }
                    list.Add(model);
                }

                #endregion
            }
            

            return list;
        }