Esempio n. 1
0
        public void Group(int count)
        {
            ProductGroupEntities pg       = new ProductGroupEntities();
            DateTime             dtToday  = Convert.ToDateTime(DateTime.Now.AddDays(1).ToString("yyyy-MM-dd")); //今天
            DateTime             dtNexDay = Convert.ToDateTime(DateTime.Now.AddDays(2).ToString("yyyy-MM-dd")); //明天

            pg.Groups.RemoveRange(pg.Groups.Where(w => w.Date > dtToday && w.Date < dtNexDay));
            pg.SaveChanges();
            var list    = new List <Product>();
            var alllist = new List <Product>();
            var toady   = DateTime.Now.AddDays(1);

            list = pg.Products.Where(w => w.CreateDate.Value.Month == toady.Month && w.CreateDate.Value.Day == toady.Day).ToList();
            foreach (var a in list)
            {
                for (int i = 0; i < a.OrderCount; i++)
                {
                    alllist.Add(a);
                }
            }
            List <List <Product> > zh = new List <List <Product> >();
            var          task         = 0;
            List <Group> te           = new List <Group>();

            while (getcount(alllist) > count - 1 && forcount < 15000)
            {
                forcount++;
                var arritem = getArrayItems(alllist, count);
                zh.Add(arritem);
                string proid = "";
                string name  = "";
                foreach (var p in arritem)
                {
                    proid += p.Id + "|";
                }
                task++;
                name += "" + DateTime.Now.AddDays(1).ToString("MMdd") + "Q";
                var l = 4 - task.ToString().Length;
                for (var p = 0; p < l; p++)
                {
                    name += "0";
                }
                name += task;
                pg.Groups.Add(new Group {
                    TaskID = name, ProId = proid, Date = DateTime.Now.AddDays(1)
                });
                te.Add(new Group {
                    TaskID = name, ProId = proid, Date = DateTime.Now.AddDays(1)
                });
            }
            pg.SaveChanges();
            foreach (var a in alllist)
            {
                var gro = pg.Groups.FirstOrDefault(w => w.Date > dtToday && w.Date < dtNexDay && w.ProId == a.Id.ToString());
                if (gro != null)
                {
                    gro.SurplusCount += 1;
                }
                else
                {
                    pg.Groups.Add(new Group {
                        TaskID = "0", ProId = a.Id.ToString(), SurplusCount = 1, Date = DateTime.Now.AddDays(1)
                    });
                }
                pg.SaveChanges();
            }
        }