public void SonucBilginiYaz() { using (dbTezRotaDataContext dc = new dbTezRotaDataContext()) { tOptimizasyonEmir tOp = new tOptimizasyonEmir(); tOp.BaslangicSkor = NakliyeListesi.Max(a => a.NakSkor).ToString(); tOp.PlanId = this.PlanId; tOp.Sicaklik = this.Sicaklik; tOp.SicaklikAzaltmaOrani = this.SicaklikAzaltmaOrani; tOp.Dongu = this.Dongu; tOp.SonucSkor = this.EnIyiCozum.Max(a => a.NakSkor).ToString(); tOp.EmirZamani = DateTime.Now; dc.tOptimizasyonEmirs.InsertOnSubmit(tOp); dc.SubmitChanges(); tOptimizasyonSonuc tos = new tOptimizasyonSonuc(); int i = 0; foreach (var item in this.EnIyiCozum) { foreach (var n in item.RotaList) { tos = new tOptimizasyonSonuc(); tos.EmirId = tOp.Id; tos.NakliyeNo = item.NakliyeNo; var tasimaListesi = this.NakliyeListesi.Where(a => a.NakliyeNo == item.NakliyeNo && a.PlanId == PlanId) .FirstOrDefault().TasimaListesi; Tasima tasima; if (i == 0) { tasima = tasimaListesi.Where(a => a.KaynakId == 65).FirstOrDefault(); i = 99; } tasima = tasimaListesi.Where(a => a.HedefId == n).FirstOrDefault(); tos.TasimaId = tasima.Id; dc.tOptimizasyonSonucs.InsertOnSubmit(tos); dc.SubmitChanges(); } } } }
public void RassalPlanUret() { var seed = (int)DateTime.Now.Ticks; var rnd = new Random(seed); maxSiraId = 10; RotaSayisi = 20; List <int> tasimaTipleri = new List <int>() { 1, 2, 3, 4, 5 }; using (dbTezRotaDataContext dc = new dbTezRotaDataContext()) { List <int> NoktaIdListesi = dc.tNoktas.Where(a => a.Id != ELM).Select(a => a.Id).ToList(); List <int> tempHedefListesi = new List <int>(); int noktaSayisi = NoktaIdListesi.Count; int tasimaTipSayisi = tasimaTipleri.Count; tPlan plan = new tPlan(); plan.PlanIsmi = "Plan - " + DateTime.Now.ToString(); dc.tPlans.InsertOnSubmit(plan); dc.SubmitChanges(); MessageBox.Show("Plan başarılı şekilde oluşturulmuştur."); int KaynakId = ELM; int HedefId = 0; //taşıma oluşturma for (int i = 0; i < RotaSayisi; i++) { random = new Random((int)DateTime.Now.Ticks); int tid = random.Next(0, tasimaTipSayisi); string nakliyeNo = "N-" + i; for (int s = 0; s < maxSiraId; s++) { if (s == 0) { KaynakId = ELM; } if (s == (maxSiraId - 1)) { HedefId = ELM; } else { var randomHedefList = NoktaIdListesi.Except(tempHedefListesi); int ind = rnd.Next(0, randomHedefList.Count()); HedefId = randomHedefList.ElementAt(ind); tempHedefListesi.Add(HedefId); } tTasima t = new tTasima(); t.PlanId = plan.Id; t.KaynakId = KaynakId; t.HedefId = HedefId; t.SiraId = s; t.NakliyeNo = nakliyeNo; t.TasimaTipi = tasimaTipleri.ElementAt(tid); dc.tTasimas.InsertOnSubmit(t); dc.SubmitChanges(); KaynakId = HedefId; } KaynakId = ELM; tempHedefListesi.Clear(); } MessageBox.Show("Plana taşıma eklenmiştir."); } }
public void DataTableToPlan() { var seed = (int)DateTime.Now.Ticks; var rnd = new Random(seed); List <Tasima> Tasimalar = new List <Tasima>(); List <tNokta> noktalar = new List <tNokta>(); List <tNoktaKaynak> kaynakNoktalar = new List <tNoktaKaynak>(); var araclar = new List <tArac>();; using (dbTezRotaDataContext dc = new dbTezRotaDataContext()) { noktalar = dc.tNoktas.ToList(); kaynakNoktalar = dc.tNoktaKaynaks.ToList(); araclar = dc.tAracs.ToList(); } Nokta KaynakNokta = new Nokta(); Tasima t = new Tasima(); var tempLokasyon = string.Empty; for (int i = 0; i < dtExcelPlan.Rows.Count; i++) { string Lokasyon = dtExcelPlan.Rows[i]["Lokasyon"].ToString(); int SiraId = Convert.ToInt32(dtExcelPlan.Rows[i]["Olay Sırası"]); string NakliyeNo = dtExcelPlan.Rows[i]["Nakliye"].ToString(); string dorsePlaka = dtExcelPlan.Rows[i]["Plaka"].ToString(); if (SiraId == 1) { t = new Tasima(); KaynakNokta = new Nokta(); var EldekiNokta = kaynakNoktalar.Where(a => a.Kodu2.Contains(Lokasyon)).FirstOrDefault(); if (EldekiNokta == null) { continue; } var MevcutNokta = noktalar.Where(a => a.nokta_isim == EldekiNokta.NoktaAdi).FirstOrDefault(); var arac = araclar.Where(a => a.DorsePlaka == dorsePlaka).FirstOrDefault(); if (arac == null) { arac = araclar.FirstOrDefault(); } t.NakliyeNo = NakliyeNo; t.KaynakId = MevcutNokta.Id; t.TasimaninAraci.AracId = arac.Id; t.TasimaninAraci.AracTip = arac.AracTipId; tempLokasyon = Lokasyon; } if (tempLokasyon != string.Empty && tempLokasyon != Lokasyon && SiraId != 1) { var HedefNokta = new Nokta(); tempLokasyon = Lokasyon; if (Lokasyon.StartsWith("000")) { Lokasyon = Lokasyon.Remove(0, 3); } else if (Lokasyon.StartsWith("00")) { Lokasyon = Lokasyon.Remove(0, 2); } var EldekiNokta = kaynakNoktalar.Where(a => (a.Kodu2 ?? string.Empty).Contains(Lokasyon)).FirstOrDefault(); if (EldekiNokta == null) { continue; } var MevcutNokta = noktalar.Where(a => a.nokta_isim.ToLower().Contains(EldekiNokta.NoktaAdi.ToLower())).FirstOrDefault(); if (MevcutNokta == null) { continue; } var arac = araclar.Where(a => a.DorsePlaka == dorsePlaka).FirstOrDefault(); if (arac == null) { arac = araclar.FirstOrDefault(); } t.NakliyeNo = NakliyeNo; t.TasimaninAraci.AracId = arac.Id; t.TasimaninAraci.AracTip = arac.AracTipId; if (t.KaynakId == 0) { t.KaynakId = KaynakNokta.Id; t.HedefId = MevcutNokta.Id; KaynakNokta.Id = MevcutNokta.Id; Tasimalar.Add(t); t = new Tasima(); } else { t.HedefId = MevcutNokta.Id; KaynakNokta.Id = MevcutNokta.Id; Tasimalar.Add(t); t = new Tasima(); } using (dbTezRotaDataContext dc = new dbTezRotaDataContext()) { var nokta = dc.tNoktas.Where(a => a.Id == MevcutNokta.Id).FirstOrDefault(); nokta.musteriKodu = Lokasyon; dc.SubmitChanges(); } } } var dur = 0; using (dbTezRotaDataContext dc = new dbTezRotaDataContext()) { tPlan tp = new tPlan(); tp.PlanIsmi = FilePath; dc.tPlans.InsertOnSubmit(tp); dc.SubmitChanges(); int s = 0; var t2 = string.Empty; var naklileyeler = Tasimalar.GroupBy(a => a.NakliyeNo).ToList(); foreach (var n in naklileyeler) { s = 0; if (n.Where(a => a.HedefId == 65).Count() < 3) { if (n.Count() > 3) { foreach (var te in n) { tTasima ta = new tTasima(); ta.PlanId = tp.Id; ta.KaynakId = te.KaynakId; ta.HedefId = te.HedefId; ta.NakliyeNo = te.NakliyeNo; ta.SiraId = s; s++; dc.tTasimas.InsertOnSubmit(ta); dc.SubmitChanges(); } } } } } }