private void LoadTraysAll() { if (SelectedRack == null) { return; } // 测量过程中无法不能调整料库 if (SelectedRack.Status == RackStatus.RS_Busy) { return; } TraysOfRackViewModel trvm = new TraysOfRackViewModel(); trvm.Rack = SelectedRack; trvm.Trays.Clear(); //var trays = Trays.Where(t => t.Status == TrayStatus.TS_Idle).ToList(); var trays = Trays.Where(t => !t.Placed && t.PartCount != 0).ToList(); foreach (var item in trays) { trvm.Trays.Add(item); } TraysOfRackWindow trWindow = new TraysOfRackWindow(); trWindow.DataContext = trvm; trWindow.ShowDialog(); }
private void LoadTrayToRack() { if (SelectedTray == null) { return; } // 测量过程中无法不能调整料库 if (Rack.Status == RackStatus.RS_Busy) { return; } LoadTraysViewModel ltvm = new LoadTraysViewModel(); ltvm.SelectedTrayInRack = SelectedTray; ltvm.Rack = Rack; ltvm.Trays.Clear(); //var trays = Trays.Where(t => t.Status == TrayStatus.TS_Idle).ToList(); var trays = Trays.Where(t => !t.Placed && t.PartCount != 0).ToList(); foreach (var item in trays) { ltvm.Trays.Add(item); } LoadTrayToRackWindow ltWnd = new LoadTrayToRackWindow(); ltWnd.DataContext = ltvm; ltWnd.ShowDialog(); }
private void DeleteTray() { if (SelectedTray == null) { return; } //if (SelectedTray.Status != TrayStatus.TS_Idle) //{ // // 警告:料盘装载中,无法删除 // return; //} if (SelectedTray.Placed) { // 警告:料盘装载中,无法删除 return; } foreach (var item in SelectedTray.Parts) { item.Placed = false; item.SlotNb = -1; item.TrayNb = -1; } Trays.Remove(SelectedTray); TraysRepository.UpdateTrays(Trays); }
private void Add_Click(object sender, RoutedEventArgs e) { if (Trays.Where(t => t.Category == TrayViewModel.Category && t.TrayNb == TrayViewModel.TrayNb).Count() != 0) { return; } Tray tray = new Tray() { Id = Trays.Count + 1, // 表示未放置到料架上 Status = TrayStatus.TS_Idle, UseCmmNo = -1, Category = TrayViewModel.Category, TrayNb = TrayViewModel.TrayNb, CmmNo = TrayViewModel.CmmNo, SlotNb = -1, ColumnCount = TrayViewModel.ColumnCount, RowCount = TrayViewModel.RowCount, ColumnOffset = TrayViewModel.ColumnOffset, RowOffset = TrayViewModel.RowOffset, BaseColumnOffset = TrayViewModel.BaseColumnOffset, BaseRowOffset = TrayViewModel.BaseRowOffset, Placed = false, Parts = new ObservableCollection <Part>() }; for (int i = 0; i < tray.ColumnCount * tray.RowCount; i++) { tray.Parts.Add(new Part() { Id = i, SlotNb = i + 1, Status = PartStatus.PS_Empty }); } Trays.Add(tray); }
static public void serve() { while (!Trays.isEmpty()) { if (Trays.borekInPlate <= 1 && Trays.totalBorek != 0 && !(Trays.borekInPlate == Trays.totalBorek)) { Console.WriteLine("The waiter came, filling the borek tray..."); if (Trays.totalBorek > 4) { Trays.borekInPlate = 5; } else { Trays.borekInPlate = Trays.totalBorek; } Console.WriteLine("The waiter is return..\n"); } else if (Trays.drinkInPlate <= 1 && Trays.totalDrink != 0 && !(Trays.drinkInPlate == Trays.totalDrink)) { Console.WriteLine("The waiter came, filling the drink tray..."); if (Trays.totalDrink > 4) { Trays.drinkInPlate = 5; } else { Trays.drinkInPlate = Trays.totalDrink; } Console.WriteLine("The waiter is return..\n"); } else if (Trays.cakeInPlate <= 1 && Trays.totalCake != 0 && !(Trays.cakeInPlate == Trays.totalCake)) { Console.WriteLine("The waiter came, filling the cake tray..."); if (Trays.totalCake > 4) { Trays.cakeInPlate = 5; } else { Trays.cakeInPlate = Trays.totalCake; } Console.WriteLine("The waiter is return..\n"); } Thread.Sleep(2000); } Console.ResetColor(); foreach (var guest in Guests.getGuests()) { Console.WriteLine(guest.name + "\nBorek: {0} Drink: {1} Cake: {2}", guest.takenBorek, guest.takenDrink, guest.takenCake); Console.WriteLine("*****************************"); } }
public void TrayIn() { if (NowTrayId != null) { TrayOut(); } NowTrayId = Guid.NewGuid().ToString(); var tray = new Tray(NowTrayId); Trays.Add(tray); }
public static void drinkLine() { List <Guest> inDrinkLine = new List <Guest>(Guests.getGuests()); List <Guest> neverTakesDrink = new List <Guest>(Guests.getGuests()); bool fromNeverTakes = false; var rand = new Random(); int index; Guest guest; while (!Trays.isEmpty()) { if (neverTakesDrink.Count != 0) { index = rand.Next(neverTakesDrink.Count); guest = neverTakesDrink[index]; fromNeverTakes = true; } else { index = rand.Next(inDrinkLine.Count); guest = inDrinkLine[index]; } if (Trays.totalDrink != 0 && Trays.drinkInPlate > 0) { lock (guest) { if (fromNeverTakes) { neverTakesDrink.RemoveAt(index); fromNeverTakes = false; } Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine(guest.name + " is going to take a Drink"); guest.takenDrink++; Trays.totalDrink--; Trays.drinkInPlate--; Console.WriteLine(guest.name + " take a Drink"); Console.WriteLine(guest.name + " is return\n"); } } if (guest.takenDrink == 5) { inDrinkLine.RemoveAt(index); } Thread.Sleep(rand.Next(1000, 4000)); } }
private void LoadTrays() { if (SelectedTray == null || SelectedTrayInRack == null) { return; } //SelectedTrayInRack = SelectedTray; int index = SelectedTrayInRack.SlotNb; Rack.Trays[index - 1] = SelectedTray; Rack.Trays[index - 1].Status = TrayStatus.TS_Idle; Rack.Trays[index - 1].SlotNb = index; Rack.Trays[index - 1].Placed = true; Trays.Remove(SelectedTray); }
public void TrayOut() { Task.Run(() => { //保存计数 SaveCount(); //统计数据 LoadStatistical(); }); if (NowTrayId == null) { return; } var nowTray = NowTray; if (nowTray == null) { return; } if (!nowTray.IsComplate || (!nowTray.IsNg && !nowTray.IsPosting)) { Remove(); if (!nowTray.IsComplate) { OnSignalError?.Invoke(); } } else { Task.Run(() => { Tray NgTray = Trays.FirstOrDefault(); if (NgTray == null) { Remove(); return; } //计算停机延时 double speed = double.Parse(App.Settings.Speed); double delay = App.Config.Tray.StopInterval / speed; Task.Delay((int)delay).Wait(); if (nowTray.IsNg || nowTray.IsPosting) { OnNg?.Invoke(NgTray); } Remove(); }); } NowTrayId = null; }
public static ValidateMsg <Trays> TrayCanPrint(string trayId) { using (IUnitOfWork unit = MSSqlHelper.DataContext()) { ValidateMsg <Trays> msg = new ValidateMsg <Trays>() { Valid = false }; ITraysRep tr = new TraysRep(unit); Trays t = tr.GetSingleById(trayId); if (t == null) { msg.Message.Add("托盘标签:" + trayId + " 错误!"); } else { msg.Valid = true; } return(msg); } }
private Hashtable GenContainers(Trays tray, List <SinglePackage> singlePackages, string whouse) { Hashtable containers = new Hashtable(); containers.Add("id", tray.trayId); containers.Add("whouse", whouse); List <Dictionary <string, string> > packages = new List <Dictionary <string, string> >(); foreach (var package in singlePackages) { Dictionary <string, string> p = new Dictionary <string, string>(); p.Add("id", package.packageID); p.Add("part_id", package.partNr); p.Add("quantity", package.capa.ToString()); p.Add("fifo_time", tray.createTime.ToString()); p.Add("project", package.WorkStation.ProdLine.projectID); packages.Add(p); } containers.Add("packages", packages); return(containers); }
public List <SinglePackage> TraySPDetail(string trayId) { using (IUnitOfWork unit = MSSqlHelper.DataContext()) { try { ITraysRep tr = new TraysRep(unit); Trays t = tr.GetSingleById(trayId); if (t == null) { return(null); } ITrayItemRep tir = new TrayItemRep(unit); return(tir.GetSPByTrayId(trayId)); } catch { return(null); } } }
private void UnloadTrays() { if (SelectedTrayInRack == null) { return; } if (SelectedTrayInRack.Status == TrayStatus.TS_Empty) { return; } int index = SelectedTrayInRack.SlotNb; SelectedTrayInRack.Status = TrayStatus.TS_Idle; SelectedTrayInRack.SlotNb = -1; SelectedTrayInRack.Placed = false; Trays.Add(SelectedTrayInRack); Rack.Trays[index - 1] = new Tray() { Status = TrayStatus.TS_Empty, SlotNb = index, }; }
public void AddSingle(Trays tray) { context.Trays.InsertOnSubmit(tray); }
public ProcessMsg CompleteStore(List <string> packageIds, string whouse, string posi) { using (TransactionScope trans = new TransactionScope()) { using (IUnitOfWork unit = MSSqlHelper.DataContext()) { ProcessMsg msg = new ProcessMsg(); try { string trayId = "T" + DateTime.Now.ToString("yyyyMMddHHmmssfff"); ITraysRep tr = new TraysRep(unit); ITrayItemRep tir = new TrayItemRep(unit); ISinglePackageRep spr = new SinglePackageRep(unit); Trays ts = new Trays() { trayId = trayId, createTime = DateTime.Now, warehouse = whouse, position = posi, status = (int)TrayStatus.Stored, rowguid = Guid.NewGuid() }; List <TrayItem> tis = new List <TrayItem>(); foreach (string pid in packageIds) { tis.Add(new TrayItem() { itemId = Guid.NewGuid(), trayId = ts.trayId, packageId = pid, rowguid = Guid.NewGuid() }); } bool synced = false; // sync container data try { List <SinglePackage> singlePackages = spr.GetListByIds(packageIds); synced = new ApiService().SyncStoreContainer(GenContainers(ts, singlePackages, GetWhouse())); } catch (ApiException ae) { msg.AddMessage(ReturnCode.Warning, ae.Message); synced = false; } catch { synced = false; } ts.sync = synced; tr.AddSingle(ts); tir.AddMuti(tis); unit.Submit(); trans.Complete(); msg.result = true; if (synced) { msg.AddMessage(ReturnCode.OK, ts.trayId); } else { msg.AddMessage(ReturnCode.OK, ts.trayId); msg.AddMessage(ReturnCode.Warning, "托盘生成成功,但WMS同步失败,请检查网络,稍候重新同步!"); } } catch (Exception e) { msg.result = false; msg.AddMessage(ReturnCode.Error, "错误:" + e.Message + "\n请联系程序管理员!"); } finally { trans.Dispose(); } return(msg); } } }
public void Remove() { Trays.RemoveAt(0); OnComplate?.Invoke(); }