private void ShowAllDataAsync() { foreach (var item in App.Allocations) { if (Allots.FirstOrDefault(p => p.MasterAwb == item.MasterAwb && p.SubAwb == item.SubAwb) != null) { continue; } Allots.Add(item); } MasterAwbs = allots.Distinct(p => p.MasterAwb).Select(p => p.MasterAwb).ToList(); Count = allots.Count; }
private async Task SearchDataAsync() { try { if (string.IsNullOrWhiteSpace(SubNo)) { return; } if (string.IsNullOrWhiteSpace(SelectedMasterAwb)) { await Application.Current.MainPage.DisplayAlert("提示", "选择主单号", "确定"); return; } var rst = App.Allocations.Where(p => p.MasterAwb == SelectedMasterAwb && p.SubAwb == SubNo.TrimEnd()); var enumerable = rst as AllocationData[] ?? rst.ToArray(); if (enumerable.Any()) { var firstItem = enumerable.First(); // 如果已经盘点过就不要再进行盘点 if (firstItem.IsChecked != StateKind.Checked) { //清理 Allots.Clear(); firstItem.IsChecked = StateKind.Checked; App.Allocations.First(p => p.MasterAwb == SelectedMasterAwb && p.SubAwb == SubNo).IsChecked = StateKind.Checked; //更新缓存中的数据,因为需要同步到服务器上 //App.CheckedAllocations.First(p => p.MasterAwb == SelectedMasterAwb && p.SubAwb == SubNo).IsChecked = // StateKind.Checked; if (App.CheckedAllocations.Contains(firstItem)) { foreach (var data in App.CheckedAllocations) { if (data.MasterAwb == SelectedMasterAwb && data.SubAwb == SubNo) { data.IsChecked = StateKind.Checked; } } } else { App.CheckedAllocations.Push(firstItem); } //这个是持久化保存,就是防止手持设备突然退出时候,数据能够备份 _realm.Write(() => { var first = _realm.All <AllocationData2>().FirstOrDefault(p => p.MasterAwb == SelectedMasterAwb && p.SubAwb == SubNo); if (first != null) { first.IsChecked = 2; } else { _realm.Add(new AllocationData2 { Amount = firstItem.Amount, IsChecked = (int)firstItem.IsChecked, MasterAwb = firstItem.MasterAwb, SubAwb = firstItem.SubAwb, }); } }); //判断是否需要查验 if (!string.IsNullOrWhiteSpace(firstItem.Status) && firstItem.Status.Contains("查验")) { chayanPlayer.Play(); } else { okPlayer.Play(); } Allots.Add(firstItem); ScanedCount = ScanedCount + 1; Count = Allots.Count; } } else { //新增 yizhuangPlayer.Play(); //http://101.201.28.235:91/version/nodata.wav //await CrossMediaManager.Current.Play("http://101.201.28.235:91/version/nodata.wav"); if (await Application.Current.MainPage.DisplayAlert("提示", "是否标记为溢装到货", "确定", "取消")) { Allots.Clear(); var newItem = new AllocationData { IsChecked = StateKind.OverChecked, MasterAwb = SelectedMasterAwb, SubAwb = SubNo, Amount = 1 }; Allots.Add(newItem); Count = allots.Count; App.Allocations.Add(newItem); App.CheckedAllocations.Push(newItem); ScanedCount = ScanedCount + 1; //添加到本地数据库 _realm.Write(() => { _realm.Add(new AllocationData2 { Amount = 1, IsChecked = 3, MasterAwb = SelectedMasterAwb, SubAwb = SubNo, }); }); } } //TODO: 需要找到扫码完成之后选中文本 SubNo = string.Empty; OnPropertyChanged(nameof(Summary)); } catch (Exception ex) { await Application.Current.MainPage.DisplayAlert("提示", $"盘点出错:{ex.Message}", "确定"); } }