Exemplo n.º 1
0
        public void MO_Planning(Dictionary <string, int> dic)
        {
            MidClass midClass = new MidClass();

            midClass.Date     = startDate;
            midClass.ProPwoer = 0;

            ICollection c = dic.Keys;

            foreach (string moName in c)
            {
                midClass.ProPwoer = midClass.ProPwoer + dic[moName];
                if (midClass.ProPwoer > 28800)
                {
                    while (midClass.ProPwoer > 28800)
                    {
                        Console.Write(moName + "    ");    //输出 MO
                        if (midClass.ProPwoer >= 28000)    //如果产能大于28800,则直接输出28800
                        {
                            Console.Write(28800 + "    ");
                        }
                        //                        Console.WriteLine(i+" " + midClass.Date + " " + midClass.ProPwoer);
                        midClass.ProPwoer = midClass.ProPwoer - 28800;
                        //                        if (midClass.ProPwoer < 28800)        //如果产能小于28800,则在这里输出
                        //                        {
                        //                            Console.Write(midClass.ProPwoer + "    ");
                        //                        }
                        Console.Write(midClass.Date + "    ");        //输出开始日期
                        string temp    = midClass.Date;
                        int    tempInt = int.Parse(temp.Substring(8));
                        switch (tag % 7)
                        {
                        case 1:
                        case 2:
                        case 3:
                        case 4:
                            tempInt++;
                            tag++;
                            break;

                        case 5:
                            tempInt += 3;
                            tag     += 3;
                            break;
                        }
                        temp          = temp.Remove(8);
                        midClass.Date = String.Concat(temp, tempInt.ToString());
                        Console.WriteLine(midClass.Date);    //输出结束日期
                    }
                    //循环完了后输出当前MO不足28800的部分
                    Console.WriteLine(moName + "    " + midClass.ProPwoer + "    " + midClass.Date + "    " + midClass.Date);
                }
                else
                {
                    //如果不足28800则直接输出
                    Console.WriteLine(moName + "    " + midClass.ProPwoer + "    " + midClass.Date + "    " + midClass.Date);
                }
            }
        }
Exemplo n.º 2
0
        //非"重载"方法
        public List <Product> MO_Planning_My(Dictionary <string, int> dic)
        {
            List <Product> list = new List <Product>();

            MidClass midClass = new MidClass();

            midClass.Date     = startDate;
            midClass.ProPwoer = 0;

            ICollection c = dic.Keys;

            foreach (string moName in c)
            {
                midClass.ProPwoer = midClass.ProPwoer + dic[moName];
                if (midClass.ProPwoer > 28800)
                {
                    while (midClass.ProPwoer > 28800)
                    {
                        Product p = new Product();
                        p.Mo = moName;                  //存入当前 MO
                        if (midClass.ProPwoer >= 28000) //如果产能大于28800,则直接存入28800
                        {
                            p.ProducePower = 28800;
                        }
                        midClass.ProPwoer = midClass.ProPwoer - 28800;
                        p.StartDate       = midClass.Date;  //存入开始日期
                        string temp    = midClass.Date;
                        int    tempInt = int.Parse(temp.Substring(8)) + 1;
                        temp          = temp.Remove(8);
                        midClass.Date = String.Concat(temp, tempInt.ToString());
                        p.EndDate     = midClass.Date; //存入结束日期

                        list.Add(p);
                    }
                    //循环完了后存入当前MO不足28800的部分
                    list.Add(new Product(moName, midClass.Date, midClass.Date, midClass.ProPwoer));
                }
                else
                {
                    //如果不足28800则直接存入
                    list.Add(new Product(moName, midClass.Date, midClass.Date, midClass.ProPwoer));
                }
            }
            return(list);
        }