diff --git a/DM_Weight/ViewModels/BindingChannelNewDialogViewModel .cs b/DM_Weight/ViewModels/BindingChannelNewDialogViewModel .cs index e148304..a2c2c93 100644 --- a/DM_Weight/ViewModels/BindingChannelNewDialogViewModel .cs +++ b/DM_Weight/ViewModels/BindingChannelNewDialogViewModel .cs @@ -218,7 +218,15 @@ namespace DM_Weight.ViewModels SetProperty(ref _pageSize, value); } } - + /// + /// 渲染标签状态 + /// + private bool _status = false; + public bool Status + { + get => _status; + set => SetProperty(ref _status, value); + } public bool CanCloseDialog() @@ -253,11 +261,11 @@ namespace DM_Weight.ViewModels .OrderBy(cl => cl.DrawerNo) .OrderBy(cl => cl.ColNo) .ToPageList(PageNum, PageSize, ref totalCount); - if(list!=null&&list.Count>0) + if (list != null && list.Count > 0) { for (int i = 0; i < list.Count; i++) { - if(list[i].channelStocks!=null&& list[i].channelStocks.Count>0) + if (list[i].channelStocks != null && list[i].channelStocks.Count > 0) { for (int j = 0; j < list[i].channelStocks.Count; j++) { @@ -322,7 +330,7 @@ namespace DM_Weight.ViewModels await Task.Delay(200); _portUtil.WriteChannelInfo(2, DrugInfo.DrugSpec, item.DrawerNo, item.ColNo); await Task.Delay(200); - _portUtil.WriteChannelInfo(8, DrugInfo.Manufactory.Length>10? DrugInfo.Manufactory.Substring(0, 10): DrugInfo.Manufactory, item.DrawerNo, item.ColNo); + _portUtil.WriteChannelInfo(8, DrugInfo.Manufactory.Length > 10 ? DrugInfo.Manufactory.Substring(0, 10) : DrugInfo.Manufactory, item.DrawerNo, item.ColNo); await Task.Delay(200); //_portUtil.WriteChannelInfo(6, DrugManuNo.EffDate==null?"": DrugManuNo.EffDate, item.DrawerNo, item.ColNo); //await Task.Delay(200); @@ -360,7 +368,7 @@ namespace DM_Weight.ViewModels if (c > 0) { - if(c>1) + if (c > 1) { SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c")); SnackbarMessageQueue.Enqueue("同一药品不可绑多个库位"); @@ -399,8 +407,8 @@ namespace DM_Weight.ViewModels SnackbarMessageQueue.Enqueue("该药品已绑定库位,不可绑定多个库位"); return; } - var channelStock = SqlSugarHelper.Db.Queryable().Where(cs => cs.Chnguid == item.Id&&cs.Quantity>0).ToList(); - if(channelStock.Count>0) + var channelStock = SqlSugarHelper.Db.Queryable().Where(cs => cs.Chnguid == item.Id && cs.Quantity > 0).ToList(); + if (channelStock.Count > 0) { //有库存,不能解绑 @@ -485,7 +493,7 @@ namespace DM_Weight.ViewModels //item.EffDate = null; item.Drug = null; SqlSugarHelper.Db.Updateable(item).UpdateColumns(it => new { it.DrugId }).ExecuteCommand(); - SqlSugarHelper.Db.Updateable().SetColumns(it =>new ChannelStock { DrugId = null, ManuNo = null, EffDate = null} ).Where(it=>it.Chnguid==item.Id).ExecuteCommand(); + SqlSugarHelper.Db.Updateable().SetColumns(it => new ChannelStock { DrugId = null, ManuNo = null, EffDate = null }).Where(it => it.Chnguid == item.Id).ExecuteCommand(); if (item.BoardType == 5) { // 清除显示屏库位信息 @@ -510,23 +518,29 @@ namespace DM_Weight.ViewModels /// public DelegateCommand ResetLabelCommand { - get => new DelegateCommand(async () => + get => new DelegateCommand(() => { + var SelectChannels = Channels.FindAll(item => item.IsSelected); var c = SelectChannels.Count; if (c > 0) { - + List tasks = new List(); SelectChannels.ForEach(async item => { //var channelStock = SqlSugarHelper.Db.Queryable().Where(cs => cs.Chnguid == item.Id).ToList(); + if (item.BoardType == 5) { + + Status = true; if (item.DrugId == null) { // 清除显示屏库位信息 _portUtil.ClearContent(item.DrawerNo, item.ColNo); - await Task.Delay(200); + //await Task.Delay(200000); + //Thread.Sleep(200); + tasks.Add(TaskSleep()); _portUtil.ShowContent(item.DrawerNo, item.ColNo); } else @@ -535,23 +549,36 @@ namespace DM_Weight.ViewModels _portUtil.WindowName = "BindingChannelDialog"; // 向显示屏写入库位信息 _portUtil.WriteChannelInfo(1, drugSelected.DrugName, item.DrawerNo, item.ColNo); - await Task.Delay(200); + //await Task.Delay(200000000); + //Thread.Sleep(200); + tasks.Add(TaskSleep()); _portUtil.WriteChannelInfo(2, drugSelected.DrugSpec, item.DrawerNo, item.ColNo); - await Task.Delay(200); + //await Task.Delay(200); + //Thread.Sleep(200); + tasks.Add(TaskSleep()); _portUtil.WriteChannelInfo(8, drugSelected.Manufactory.Length > 10 ? drugSelected.Manufactory.Substring(0, 10) : drugSelected.Manufactory, item.DrawerNo, item.ColNo); - await Task.Delay(200); + //await Task.Delay(200); + //Thread.Sleep(200); + tasks.Add(TaskSleep()); _portUtil.ShowContent(item.DrawerNo, item.ColNo); //_portUtil.WriteChannelInfo(6, DrugManuNo.EffDate==null?"": DrugManuNo.EffDate, item.DrawerNo, item.ColNo); - await Task.Delay(200); + //await Task.Delay(200); + //Thread.Sleep(200); + tasks.Add(TaskSleep()); _portUtil.WriteQuantity(item.DrawerNo, item.ColNo, item.totalCount); //await Task.Delay(200); } - SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#00e676")); - SnackbarMessageQueue.Enqueue("标签渲染完成!"); - return; } }); - //GetChannelsByDrawerNo(); + Task.WhenAll(tasks); + + if (Status.Equals(true)) + { + SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#00e676")); + SnackbarMessageQueue.Enqueue("标签渲染完成!"); + Status = false; + } + GetChannelsByDrawerNo(); } else { @@ -560,7 +587,11 @@ namespace DM_Weight.ViewModels SnackbarMessageQueue.Enqueue("请选择库位"); return; } - }); + }, () => Status == false); + } + static async Task TaskSleep() + { + await Task.Delay(200); } public DelegateCommand BtnCloseCommand {