//如果是手工排班需要不需要检查里面有无排班,如果有排班的数据,那么就不重新全部删除,而是保留一部分原来的排班的数据
        public void PaiBanHandChange(PBDateTemplet PbDateTempletOld, ShopTemplet shopTempletNew, Kf_DepartMent kf_DepartMent)
        {
            ShopTempletDetailsRepository shopTempletDetailsRepo = new ShopTempletDetailsRepository();
            PBDateTempletRepository      pbDateTempletRepo      = new PBDateTempletRepository();


            List <ShopTempletDetails> listShopTempletDetailsOld = shopTempletDetailsRepo.GetAll()
                                                                  .Where(it => it._ShopTemplet == PbDateTempletOld._ShopTemplet)
                                                                  .WhereIf(it => it._ShopGroup._Kf_DepartMent == kf_DepartMent, kf_DepartMent.ID != 1)
                                                                  .ToList();

            List <ShopTempletDetails> listShopTempletDetailsNew = shopTempletDetailsRepo.GetAll()
                                                                  .Where(it => it._ShopTemplet == shopTempletNew)
                                                                  .WhereIf(it => it._ShopGroup._Kf_DepartMent == kf_DepartMent, kf_DepartMent.ID != 1)
                                                                  .ToList();

            //在老的里面有,新的里面也有的,不动。
            List <PersonShopGroupPBs> listPersonShopGroupPBs = this.GetAll()
                                                               .Where(it => it.UserWorkDate == PbDateTempletOld._UserWorkDate)
                                                               .WhereIf(it => it._ShopGroups._Kf_DepartMent == kf_DepartMent, kf_DepartMent.ID != 1)
                                                               .ToList();

            //在老的里面有,新的里面没有的,删除掉。
            foreach (var PersonShopGroupPB in listPersonShopGroupPBs)
            {
                if (listShopTempletDetailsNew.Where(it => it._ShopGroup == PersonShopGroupPB._ShopGroups).Count() == 0)
                {
                    this.Delete(PersonShopGroupPB);
                }
            }
            //在老的里面没有,新的里面有的,插入进去。
            //都是哪些人可以做这个班组的客服
            PersonShopGroupRepository PersonShopGroupRepo = new PersonShopGroupRepository();
            List <PersonShopGroup>    listPersonShopGroup = PersonShopGroupRepo.GetAll().ToList();

            foreach (var shopGroupDetail in listShopTempletDetailsNew)
            {
                if (listPersonShopGroupPBs.Where(it => it._ShopGroups == shopGroupDetail._ShopGroup).Count() == 0)
                {
                    //根据排班来插入店铺
                    this.ShopGroupPB(shopGroupDetail._ShopGroup, PbDateTempletOld._UserWorkDate, kf_DepartMent);
                }
            }
        }
        //根据PBDateTemplet,模板排班里面的内容,更新班组排班表PersonShopGroupPBs
        public void PaiBan(DateTime localStartDate, DateTime localEndDate, Kf_DepartMent kf_DepartMent)
        {
            ShopTempletDetailsRepository shopTempletDetailsRepo = new ShopTempletDetailsRepository();
            PBDateTempletRepository      pbDateTempletRepo      = new PBDateTempletRepository();

            List <PersonShopGroupPBs> listPersonShopGroupPBs = this.GetAll()
                                                               .Where(it => it.UserWorkDate.WorkDate <= localEndDate)
                                                               .Where(it => it.UserWorkDate.WorkDate >= localStartDate)
                                                               .WhereIf(it => it._ShopGroups._Kf_DepartMent == kf_DepartMent, kf_DepartMent.ID != 1)
                                                               .ToList();

            //删除原来的
            foreach (var PersonShopGroupPB in listPersonShopGroupPBs)
            {
                this.Delete(PersonShopGroupPB);
            }
            //取出来哪些shopGroup,插入进去
            List <ShopTempletDetails> listShopTempletDetails = shopTempletDetailsRepo.GetAll()
                                                               .Where(it => it._ShopTemplet._Kf_DepartMent == kf_DepartMent)
                                                               .Where(it => it._ShopTemplet.isExpire == isExpire.未过期)
                                                               .Where(it => it._ShopTemplet.isValid == isValid.效)
                                                               .ToList();

            List <PBDateTemplet> listPBDateTemplet = pbDateTempletRepo.GetAll()
                                                     .Where(it => it._UserWorkDate.WorkDate <= localEndDate)
                                                     .Where(it => it._UserWorkDate.WorkDate >= localStartDate)
                                                     .ToList();


            foreach (var PBDateTemplet in listPBDateTemplet)
            {
                List <ShopTempletDetails> localListShopTempletDetails = listShopTempletDetails
                                                                        .Where(it => it._ShopTemplet == PBDateTemplet._ShopTemplet).ToList();

                foreach (var ShopTempletDetails in localListShopTempletDetails)
                {
                    //根据ShopGroup,进行PersonShopGroupPBs的排班插入
                    this.ShopGroupPB(ShopTempletDetails._ShopGroup, PBDateTemplet._UserWorkDate, kf_DepartMent);
                }
            }
        }