diff --git a/DM_Weight/App.config b/DM_Weight/App.config index ac6cf4c..371c0d3 100644 --- a/DM_Weight/App.config +++ b/DM_Weight/App.config @@ -3,7 +3,7 @@ - + - + diff --git a/DM_Weight/Models/StringVSIntModels.cs b/DM_Weight/Models/StringVSIntModels.cs new file mode 100644 index 0000000..a530097 --- /dev/null +++ b/DM_Weight/Models/StringVSIntModels.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DM_Weight.Models +{ + public class StringVSIntModels + { + public string StringId { get; set; } + public int IntQuantity { get; set; } + } +} diff --git a/DM_Weight/ViewModels/AddToJiaoJieDialogViewModel.cs b/DM_Weight/ViewModels/AddToJiaoJieDialogViewModel.cs index 6b0503d..2b909c6 100644 --- a/DM_Weight/ViewModels/AddToJiaoJieDialogViewModel.cs +++ b/DM_Weight/ViewModels/AddToJiaoJieDialogViewModel.cs @@ -3,6 +3,7 @@ using DM_Weight.msg; using DM_Weight.Port; using DM_Weight.util; using log4net; +using MaterialDesignThemes.Wpf; using Prism.Commands; using Prism.Events; using Prism.Mvvm; @@ -16,6 +17,7 @@ using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Input; +using System.Windows.Media; namespace DM_Weight.ViewModels { @@ -41,6 +43,8 @@ namespace DM_Weight.ViewModels get => _jiaojie_channelStocks; set => SetProperty(ref _jiaojie_channelStocks, value); } + //交接柜所在药箱下的所有药品id + List drugIdLst = new List(); //交接柜中无该批次添加实体 public List AddJJStock = new List(); //交接柜中有该批次更新实体 @@ -61,6 +65,20 @@ namespace DM_Weight.ViewModels private IEnumerable> enumerable; private IEnumerator> enumerator; + private SolidColorBrush _colorBrush; + + public SolidColorBrush SnackbarBackground + { + get => _colorBrush; + set => SetProperty(ref _colorBrush, value); + } + private ISnackbarMessageQueue _snackbarMessageQueue = new SnackbarMessageQueue(TimeSpan.FromSeconds(3)); + + public ISnackbarMessageQueue SnackbarMessageQueue + { + get => _snackbarMessageQueue; + set => SetProperty(ref _snackbarMessageQueue, value); + } public string Title => "交接柜补药"; @@ -82,18 +100,19 @@ namespace DM_Weight.ViewModels public void OnDialogOpened(IDialogParameters parameters) { _eventAggregator.GetEvent().Subscribe(DoMyPrismEvent); - Jiaojie_ChannelStocks = parameters.GetValue>("ChannelStocks"); + Jiaojie_ChannelStocks = parameters.GetValue>("_ChannelStock"); + for (int i = 0; i < Jiaojie_ChannelStocks.Count; i++) { ChannelStock copy = TransExpV2.Trans(Jiaojie_ChannelStocks[i]); ChannelStocks.Add(copy); } - ChannelStocks = Jiaojie_ChannelStocks.GroupBy(cs =>new { cs.DrugId, cs.ManuNo }).Select(g => new - { - Key = g.Key, - AddQuantity = g.Sum(s => s.AddQuantity) - }).Select(cs => new ChannelStock() { DrugId = cs.Key.DrugId,ManuNo=cs.Key.ManuNo, AddQuantity = cs.AddQuantity }).ToList(); + //ChannelStocks = Jiaojie_ChannelStocks.GroupBy(cs =>new { cs.DrugId }).Select(g => new + //{ + // Key = g.Key, + // AddQuantity = g.Sum(s => s.AddQuantity) + //}).Select(cs => new ChannelStock() { DrugId = cs.Key.DrugId,ManuNo=cs.Key.ManuNo, AddQuantity = cs.AddQuantity }).ToList(); RequestData(); } @@ -199,9 +218,9 @@ namespace DM_Weight.ViewModels .Where(cs => cs.Quantity > 0) .Where(cs => cs.DrawerType == 1) .Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM3")) - .Where(cs => cs.DrugId == ChannelStocks[i].DrugId && cs.ManuNo == ChannelStocks[i].ManuNo) - .OrderBy(cs => cs.EffDate) - .OrderBy(cs => cs.DrawerNo) + .Where(cs => cs.DrugId == ChannelStocks[i].DrugId) + //.OrderBy(cs => cs.EffDate) + .OrderBy(cs => new { cs.EffDate, cs.DrawerNo, cs.ColNo }) .ToList(); if (HasQChannels == null || HasQChannels.Count <= 0) { @@ -213,22 +232,37 @@ namespace DM_Weight.ViewModels // 说明数量足够 if (total >= TakeQ) { - for (int j = 0; TakeQ > 0; j++) + //for (int j = 0; TakeQ > 0; j++) + //{ + // ChannelStock stock = HasQChannels[j]; + // if (TakeQ > stock.Quantity) + // { + // stock.TakeQuantity = stock.Quantity; + // channelStocks.Add(stock); + // TakeQ -= stock.Quantity; + // } + // else + // { + // stock.TakeQuantity = TakeQ; + // channelStocks.Add(stock); + // TakeQ = 0; + // } + //} + int hadTakeQ = 0; + for (int j = 0; j < HasQChannels.Count; j++) { - ChannelStock stock = HasQChannels[j]; - if (TakeQ > stock.Quantity) + if ((ChannelStocks[i].AddQuantity - hadTakeQ) > HasQChannels[j].Quantity) { - stock.TakeQuantity = stock.Quantity; - channelStocks.Add(stock); - TakeQ -= stock.Quantity; + HasQChannels[j].TakeQuantity = HasQChannels[j].Quantity; + hadTakeQ += HasQChannels[j].Quantity; } else { - stock.TakeQuantity = TakeQ; - channelStocks.Add(stock); - TakeQ = 0; + HasQChannels[j].TakeQuantity = ChannelStocks[i].AddQuantity - hadTakeQ; + break; } } + channelStocks.AddRange(HasQChannels); } else { @@ -247,14 +281,14 @@ namespace DM_Weight.ViewModels } else { - channelStocks.Sort((a, b) => - { - if ((a.DrawerNo - b.DrawerNo) == 0) - { - return a.ColNo - b.ColNo; - } - return a.DrawerNo - b.DrawerNo; - }); + //channelStocks.Sort((a, b) => + //{ + // if ((a.DrawerNo - b.DrawerNo) == 0) + // { + // return a.ColNo - b.ColNo; + // } + // return a.DrawerNo - b.DrawerNo; + //}); ChannelStocks = channelStocks; @@ -282,7 +316,7 @@ namespace DM_Weight.ViewModels } } - enumerable = ChannelStocks.GroupBy(cs => cs.DrawerNo, cs => cs); + enumerable = ChannelStocks.Where(cs=>cs.TakeQuantity>0).GroupBy(cs => cs.DrawerNo, cs => cs); enumerator = enumerable.GetEnumerator(); enumerator.MoveNext(); Status = 1; @@ -337,11 +371,36 @@ namespace DM_Weight.ViewModels { if (!_isFinishClick) { + _isFinishClick = true; List record = ChannelStocks.FindAll(it => it.TakeQuantity > 0).ToList(); if (record.Count > 0) { + //交接柜需要补药数量与加药数量对比,数量不一致则提示 + + var jjSum = from item in Jiaojie_ChannelStocks orderby item.DrugId group item by item.DrugId into g select new { DrugId = g.Key, Quantity = g.Sum(item => item.NeedNum) }; + + var csSum = from item in record orderby item.DrugId group item by item.DrugId into g select new { DrugId = g.Key, Quantity = g.Sum(item => item.TakeQuantity) }; + foreach (var jjItem in jjSum) + { + foreach (var csItem in csSum) + { + if (jjItem.DrugId == csItem.DrugId) + { + if (jjItem.Quantity != csItem.Quantity) + { + SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c")); + SnackbarMessageQueue.Enqueue("输入药品数量与需要补药品数不一致!"); + _isFinishClick = false; + return; + } + } + } + } + + + string InvoiceId = "AddJiaoJie_" + CurrentTimeMillis(); var f = SqlSugarHelper.Db.UseTran(() => { @@ -357,35 +416,6 @@ namespace DM_Weight.ViewModels Id = it.Id, }).UpdateColumns(it => new { it.Quantity, it.ManuNo, it.EffDate }).ExecuteCommand(); - ////更新 交接柜 批次信息 - //List jiaojieStock = Jiaojie_ChannelStocks.Where(cs => cs.DrugId == it.DrugId).ToList(); - ////交接柜中有该药品及批次的数据则更新;没有则插入一条 - //if (jiaojieStock != null) - //{ - // for (int j = 0; j < jiaojieStock.Count; j++) - // { - // if(it.Quantity> jiaojieStock[j].Quantity) - // { - // //取的数量够不够被 - // } - // List searchStock = SqlSugarHelper.Db.Queryable() - // .Where(cs => cs.DrawerNo == jiaojieStock[j].DrawerNo - // && cs.DrugId == jiaojieStock[j].DrugId - // && cs.DrugId == it.DrugId - // && cs.ManuNo == it.ManuNo - // &&cs.MachineId==(ConfigurationManager.AppSettings["jj_machineId"] ?? "DM5")) - // .ToList(); - // //List stockManuList = jiaojieStock.Where(cs => cs.ManuNo == it.ManuNo).ToList(); - // if (searchStock == null || searchStock.Count <= 0) - // { - // SqlSugarHelper.Db.Deleteable().Where(cs=>cs.DrawerNo== jiaojieStock[j].DrawerNo&&cs.DrugId== jiaojieStock[j].DrugId&&cs.Quantity<=0).ExecuteCommand(); - // jiaojieStock[j].ManuNo = it.ManuNo; - // jiaojieStock[j].Id = Guid.NewGuid().ToString(); - // SqlSugarHelper.Db.Insertable(jiaojieStock[j]).ExecuteCommand(); - // } - // } - //} - // 保存数据 出库记录 SqlSugarHelper.Db.Insertable(new MachineRecord() { @@ -408,31 +438,31 @@ namespace DM_Weight.ViewModels //更新 交接柜 批次信息 for (int i = 0; i < Jiaojie_ChannelStocks.Count; i++) { - ChannelStock jiaoStock = Jiaojie_ChannelStocks[i]; - SqlSugarHelper.Db.Deleteable().Where(cs => cs.DrawerNo == jiaoStock.DrawerNo && cs.DrugId == jiaoStock.DrugId && cs.MachineId == jiaoStock.MachineId && cs.Quantity <= 0).ExecuteCommand(); - List csStockList = record.Where(cs => cs.DrugId == jiaoStock.DrugId && cs.TakeQuantity > 0).ToList(); + ChannelStock jiaoStock = Jiaojie_ChannelStocks[i]; + SqlSugarHelper.Db.Deleteable().Where(cs => cs.DrawerNo == Jiaojie_ChannelStocks[i].DrawerNo && cs.DrugId == Jiaojie_ChannelStocks[i].DrugId && cs.MachineId == Jiaojie_ChannelStocks[i].MachineId && cs.Quantity <= 0).ExecuteCommand(); + List csStockList = record.Where(cs => cs.DrugId == Jiaojie_ChannelStocks[i].DrugId && cs.TakeQuantity > 0).ToList(); if (csStockList != null && csStockList.Count > 0) { for (int j = 0; j < csStockList.Count; j++) { ChannelStock csStock = (ChannelStock)csStockList[j].Clone(); ChannelStock jjStockManuNo = SqlSugarHelper.Db.Queryable() - .Where(cs => cs.DrawerNo == jiaoStock.DrawerNo && cs.DrugId == jiaoStock.DrugId && cs.ManuNo == csStock.ManuNo && cs.MachineId == "DM5").First(); - logger.Info($"库中{jiaoStock.DrawerNo}号手术间,{jiaoStock.DrugId},{csStock.ManuNo};有该批次{jjStockManuNo!=null};jjStockManuNo是空:{jjStockManuNo==null}"); + .Where(cs => cs.DrawerNo == Jiaojie_ChannelStocks[i].DrawerNo && cs.DrugId == Jiaojie_ChannelStocks[i].DrugId && cs.ManuNo == csStock.ManuNo && cs.MachineId == "DM5").First(); + logger.Info($"库中{Jiaojie_ChannelStocks[i].DrawerNo}号手术间,{Jiaojie_ChannelStocks[i].DrugId},{csStock.ManuNo};有该批次{jjStockManuNo != null};jjStockManuNo是空:{jjStockManuNo == null}"); if (jjStockManuNo != null) { int addNum = csStock.TakeQuantity; - logger.Info($"需补药数{jiaoStock.NeedNum},该批次取药数{csStock.TakeQuantity}"); + logger.Info($"需补药数{Jiaojie_ChannelStocks[i].NeedNum},该批次取药数{csStock.TakeQuantity}"); //有该批次 - if (jiaoStock.NeedNum > csStock.TakeQuantity) + if (Jiaojie_ChannelStocks[i].NeedNum > csStock.TakeQuantity) { //不够取 ChannelStock newStock = new ChannelStock(); //newStock.Chnguid = jiaoStock.Chnguid; //newStock.BaseQuantity = jiaoStock.BaseQuantity; - newStock.ManuNo = jiaoStock.ManuNo; - newStock.DrawerNo = jiaoStock.DrawerNo; - newStock.DrugId = jiaoStock.DrugId; + newStock.ManuNo = Jiaojie_ChannelStocks[i].ManuNo; + newStock.DrawerNo = Jiaojie_ChannelStocks[i].DrawerNo; + newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId; newStock.AddToJJNum = addNum; newStock.Id = jjStockManuNo.Id; //newStock.MachineId = jiaoStock.MachineId; @@ -440,7 +470,7 @@ namespace DM_Weight.ViewModels //newStock.Quantity = jiaoStock.Quantity + csStock.TakeQuantity; UpdateJJStock.Add(newStock); csStockList[j].TakeQuantity = 0; - jiaoStock.NeedNum = jiaoStock.NeedNum - csStock.TakeQuantity; + Jiaojie_ChannelStocks[i].NeedNum = Jiaojie_ChannelStocks[i].NeedNum - csStock.TakeQuantity; } else { @@ -454,53 +484,53 @@ namespace DM_Weight.ViewModels ChannelStock newStock = new ChannelStock(); //newStock.Chnguid = jiaoStock.Chnguid; //newStock.BaseQuantity = jiaoStock.BaseQuantity; - newStock.ManuNo = jiaoStock.ManuNo; - newStock.DrawerNo = jiaoStock.DrawerNo; - newStock.DrugId = jiaoStock.DrugId; - newStock.AddToJJNum = jiaoStock.NeedNum; + newStock.ManuNo = Jiaojie_ChannelStocks[i].ManuNo; + newStock.DrawerNo = Jiaojie_ChannelStocks[i].DrawerNo; + newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId; + newStock.AddToJJNum = Jiaojie_ChannelStocks[i].NeedNum; newStock.Id = jjStockManuNo.Id; //newStock.MachineId = jiaoStock.MachineId; //newStock.NeedNum = 0; //newStock.Quantity = jiaoStock.Quantity + csStock.TakeQuantity; UpdateJJStock.Add(newStock); - csStockList[j].TakeQuantity = csStock.TakeQuantity - jiaoStock.NeedNum; - jiaoStock.NeedNum = 0; + csStockList[j].TakeQuantity = csStock.TakeQuantity - Jiaojie_ChannelStocks[i].NeedNum; + Jiaojie_ChannelStocks[i].NeedNum = 0; break; } } else //没有该批次 { - if (jiaoStock.NeedNum > csStock.TakeQuantity) + if (Jiaojie_ChannelStocks[i].NeedNum > csStock.TakeQuantity) { //不够取 ChannelStock newStock = new ChannelStock(); - newStock.BaseQuantity = jiaoStock.BaseQuantity; - newStock.Chnguid = jiaoStock.Chnguid; - newStock.DrawerNo = jiaoStock.DrawerNo; - newStock.DrugId = jiaoStock.DrugId; + newStock.BaseQuantity = Jiaojie_ChannelStocks[i].BaseQuantity; + newStock.Chnguid = Jiaojie_ChannelStocks[i].Chnguid; + newStock.DrawerNo = Jiaojie_ChannelStocks[i].DrawerNo; + newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId; newStock.ManuNo = csStock.ManuNo; newStock.AddToJJNum = csStock.TakeQuantity; newStock.Id = Guid.NewGuid().ToString(); - newStock.MachineId = jiaoStock.MachineId; + newStock.MachineId = Jiaojie_ChannelStocks[i].MachineId; newStock.DrawerType = 1; newStock.NeedNum = 0; AddJJStock.Add(newStock); - jiaoStock.NeedNum = jiaoStock.NeedNum - csStock.TakeQuantity; + Jiaojie_ChannelStocks[i].NeedNum = Jiaojie_ChannelStocks[i].NeedNum - csStock.TakeQuantity; csStockList[j].TakeQuantity = 0; } else { //够取 ChannelStock newStock = new ChannelStock(); - newStock.Chnguid = jiaoStock.Chnguid; - newStock.BaseQuantity = jiaoStock.BaseQuantity; - newStock.DrawerNo = jiaoStock.DrawerNo; - newStock.DrugId = jiaoStock.DrugId; + newStock.Chnguid = Jiaojie_ChannelStocks[i].Chnguid; + newStock.BaseQuantity = Jiaojie_ChannelStocks[i].BaseQuantity; + newStock.DrawerNo = Jiaojie_ChannelStocks[i].DrawerNo; + newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId; newStock.ManuNo = csStock.ManuNo; - newStock.AddToJJNum = jiaoStock.NeedNum; + newStock.AddToJJNum = Jiaojie_ChannelStocks[i].NeedNum; newStock.NeedNum = 0; newStock.Id = Guid.NewGuid().ToString(); - newStock.MachineId = jiaoStock.MachineId; + newStock.MachineId = Jiaojie_ChannelStocks[i].MachineId; newStock.DrawerType = 1; AddJJStock.Add(newStock); csStockList[j].TakeQuantity = csStock.TakeQuantity - newStock.AddToJJNum; @@ -511,7 +541,7 @@ namespace DM_Weight.ViewModels } SqlSugarHelper.Db.Updateable() .SetColumns(cs => new ChannelStock() { NeedNum = 0 }) - .Where(cs => cs.DrawerNo == jiaoStock.DrawerNo) + .Where(cs => cs.DrawerNo == Jiaojie_ChannelStocks[i].DrawerNo) .ExecuteCommand(); } @@ -568,19 +598,20 @@ namespace DM_Weight.ViewModels } } //更新交接柜状态为 已取药未入库(等在交接柜入库后再更新交接柜库存) - List jiaojie = Jiaojie_ChannelStocks.GroupBy(cs => cs.DrawerNo).Select(cs => cs.FirstOrDefault()).ToList(); - if (jiaojie != null && jiaojie.Count > 0) + if (Jiaojie_ChannelStocks != null) { - for (int j = 0; j < jiaojie.Count; j++) + Jiaojie_ChannelStocks.ForEach(jj => { - ChannelStock jiaojie_it = jiaojie[j]; //更新交接柜状态为 已取药未入库 SqlSugarHelper.Db.Updateable(new ChannelList() { State = 1, - Id = jiaojie_it.ChannelLst.Id + Id = jj.ChannelLst.Id }).UpdateColumns(it => it.State).ExecuteCommand(); + } + + ); } return true; }); diff --git a/DM_Weight/ViewModels/AddToJiaoJieNewDialogViewModel.cs b/DM_Weight/ViewModels/AddToJiaoJieNewDialogViewModel.cs new file mode 100644 index 0000000..db14983 --- /dev/null +++ b/DM_Weight/ViewModels/AddToJiaoJieNewDialogViewModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DM_Weight.ViewModels +{ + public class AddToJiaoJieNewDialogViewModel + { + + } +} diff --git a/DM_Weight/ViewModels/AddToJiaoJieWindowViewModel.cs b/DM_Weight/ViewModels/AddToJiaoJieWindowViewModel.cs index 2e48d3f..22de0bf 100644 --- a/DM_Weight/ViewModels/AddToJiaoJieWindowViewModel.cs +++ b/DM_Weight/ViewModels/AddToJiaoJieWindowViewModel.cs @@ -39,24 +39,44 @@ namespace DM_Weight.ViewModels public void OnNavigatedFrom(NavigationContext navigationContext) { // 取消消息订阅 - _eventAggregator.GetEvent().Unsubscribe(DoMyPrismEvent); - _eventAggregator.GetEvent().Unsubscribe(SetIsSelected); + //_eventAggregator.GetEvent().Unsubscribe(DoMyPrismEvent); + //_eventAggregator.GetEvent().Unsubscribe(SetIsSelected); } - private List channelStocks; - public List ChannelStocks + private List? channelStocks; + public List? ChannelStocks { get => channelStocks; set => SetProperty(ref channelStocks, value); } + private ChannelStock _channelStock; + public ChannelStock _ChannelStock + { + get => _channelStock; + set => SetProperty(ref _channelStock, value); + } + + private List? _channelLists; + public List? _ChannelLists + { + get => _channelLists; + set => SetProperty(ref _channelLists, value); + } + private ChannelList _channelList; + public ChannelList _ChannelList + { + get => _channelList; + set => SetProperty(ref _channelList, value); + } + public void OnNavigatedTo(NavigationContext navigationContext) { - _eventAggregator.GetEvent().Subscribe(DoMyPrismEvent); - _eventAggregator.GetEvent().Subscribe(SetIsSelected); + //_eventAggregator.GetEvent().Subscribe(DoMyPrismEvent); + //_eventAggregator.GetEvent().Subscribe(SetIsSelected); RequestData(); } private PortUtil _portUtil; @@ -70,26 +90,85 @@ namespace DM_Weight.ViewModels } private void RequestData() { - ChannelStocks = SqlSugarHelper.Db.Queryable() - .Includes(cs => cs.ChannelLst) - .Includes(cs => cs.DrugInfo) - .Where(cs => cs.MachineId == (ConfigurationManager.AppSettings["jj_machineId"] ?? "DM5") && cs.BaseQuantity > cs.Quantity) - .OrderBy(cs => cs.Chnguid) - .OrderBy(cs => cs.DrawerNo) - .ToList(); - //ChannelStocks = ChannelStocks.GroupBy(it => new { it.DrawerNo, it.DrugId }) - // .Select(it => - // { - // var ret = it.First(); - // ret.Quantity = it.Sum(itx => itx.Quantity); - // ret.NeedNum=it.Sum(itx => itx.NeedNum); - // return ret; - // }).Where(it=>it.BaseQuantity>it.Quantity) - // .ToList(); - ChannelStocks.ForEach(cs => cs.AddQuantity = cs.BaseQuantity - cs.Quantity); + //ChannelStocks = SqlSugarHelper.Db.Queryable() + // .Includes(cs => cs.ChannelLst) + // .Includes(cs => cs.DrugInfo) + // .Where(cs => cs.MachineId == (ConfigurationManager.AppSettings["jj_machineId"] ?? "DM5") && cs.BaseQuantity > cs.Quantity) + // .OrderBy(cs => cs.Chnguid) + // .OrderBy(cs => cs.DrawerNo) + // .ToList(); + ////ChannelStocks = ChannelStocks.GroupBy(it => new { it.DrawerNo, it.DrugId }) + //// .Select(it => + //// { + //// var ret = it.First(); + //// ret.Quantity = it.Sum(itx => itx.Quantity); + //// ret.NeedNum=it.Sum(itx => itx.NeedNum); + //// return ret; + //// }).Where(it=>it.BaseQuantity>it.Quantity) + //// .ToList(); + //ChannelStocks.ForEach(cs => cs.AddQuantity = cs.BaseQuantity - cs.Quantity); + + //ICollectionView vw = CollectionViewSource.GetDefaultView(ChannelStocks); + //vw.GroupDescriptions.Add(new PropertyGroupDescription("ChannelLst")); + + //_ChannelLists = SqlSugarHelper.Db.Queryable() + // .Includes(cl => cl.channelStocks) + // .Includes(cl => cl.Drug) + // .InnerJoin((cl, cs) => cl.Id == cs.Chnguid && cs.BaseQuantity > cs.Quantity) + // .Where(cl => cl.MachineId == (ConfigurationManager.AppSettings["jj_machineId"] ?? "DM5")) + // .OrderBy(cl => cl.Id) + // .OrderBy(cl => cl.DrawerNo) + // .ToList(); + ChannelStocks?.Clear(); + _ChannelLists?.Clear(); + //1)查询channel_stock所有要补药的药箱 + ChannelStocks = SqlSugarHelper.Db.Queryable() + .Includes(cs => cs.ChannelLst) + .Includes(cs => cs.DrugInfo) + .Where(cs => cs.MachineId == (ConfigurationManager.AppSettings["jj_machineId"] ?? "DM5") && cs.NeedNum > 0) + .OrderBy(cs => cs.Chnguid) + .OrderBy(cs => cs.DrawerNo) + .ToList(); + ChannelStocks = ChannelStocks.GroupBy(it => new { it.DrawerNo, it.DrugId }) + .Select(it => + { + var ret = it.First(); + ret.Quantity = it.Sum(itx => itx.Quantity); + ret.NeedNum = it.Sum(itx => itx.NeedNum); + return ret; + }).Where(it => it.BaseQuantity > it.Quantity) + .ToList(); + if (ChannelStocks != null && ChannelStocks.Count > 0) + { + ChannelStocks.ForEach(cs => cs.AddQuantity = cs.NeedNum); + + //2)查询channel_list将1)中查询的添加到channel_list的channel_stock里供页面呈现显示 + List DrawerNoList = ChannelStocks.Select(cs => cs.DrawerNo).Distinct().ToList(); + List channelLists = new List(); + for (int i = 0; i < DrawerNoList.Count; i++) + { + var channelList = SqlSugarHelper.Db.Queryable() + .Where(cl => cl.MachineId == (ConfigurationManager.AppSettings["jj_machineId"] ?? "DM5") && cl.DrawerNo == DrawerNoList[i]) + .OrderBy(cl => cl.Id) + .OrderBy(cl => cl.DrawerNo) + .First(); + if (channelList.channelStocks == null) + { + channelList.channelStocks = new List(); + } + channelList.channelStocks.AddRange(ChannelStocks.Where(cs => cs.DrawerNo == DrawerNoList[i]&&(cs.NeedNum>0||cs.AddToJJNum>0)).ToList()); + if (channelList != null) + { + channelLists.Add(channelList); + } + } + _ChannelLists = channelLists; + } + else + { + _ChannelLists.Clear(); + } - ICollectionView vw = CollectionViewSource.GetDefaultView(ChannelStocks); - vw.GroupDescriptions.Add(new PropertyGroupDescription("ChannelLst")); } private int _status = 0; @@ -108,304 +187,304 @@ namespace DM_Weight.ViewModels get => new DelegateCommand(() => RequestData()); } //一键补药 - public DelegateCommand OpenDragCommand - { - get => new DelegateCommand(() => - { - try - { - Status = 1; - IsEnable = false; + //public DelegateCommand OpenDragCommand + //{ + // get => new DelegateCommand(() => + // { + // try + // { + // Status = 1; + // IsEnable = false; - var varDrawerNO = SqlSugarHelper.Db.Queryable() - .Where(cs => cs.MachineId == (ConfigurationManager.AppSettings["machineId"] ?? "DM3")) - .GroupBy(cs => cs.DrawerNo).Select(DrawerNo => DrawerNo).ToList(); + // var varDrawerNO = SqlSugarHelper.Db.Queryable() + // .Where(cs => cs.MachineId == (ConfigurationManager.AppSettings["machineId"] ?? "DM3")) + // .GroupBy(cs => cs.DrawerNo).Select(DrawerNo => DrawerNo).ToList(); - iDrawerNoLst = varDrawerNO.Select(item => item.DrawerNo).ToList(); - CurrentNum = 0; - _portUtil.SpeakAsync($"正在打开 {iDrawerNoLst[CurrentNum]} 号抽屉"); + // iDrawerNoLst = varDrawerNO.Select(item => item.DrawerNo).ToList(); + // CurrentNum = 0; + // _portUtil.SpeakAsync($"正在打开 {iDrawerNoLst[CurrentNum]} 号抽屉"); - _portUtil.WindowName = "AddToJiaoJieWindow"; - _portUtil.Operate = true; - //_portUtil.BoardType = singleChannels.Count > 0 ? singleChannels[0].BoardType : 1; - //_portUtil.ColNos = singleChannels.Select(it => it.ColNo).ToArray(); - _portUtil.DrawerNo = iDrawerNoLst[CurrentNum]; - _portUtil.OpenAllDrawer(); + // _portUtil.WindowName = "AddToJiaoJieWindow"; + // _portUtil.Operate = true; + // //_portUtil.BoardType = singleChannels.Count > 0 ? singleChannels[0].BoardType : 1; + // //_portUtil.ColNos = singleChannels.Select(it => it.ColNo).ToArray(); + // _portUtil.DrawerNo = iDrawerNoLst[CurrentNum]; + // _portUtil.OpenAllDrawer(); - } - catch (Exception ex) - { + // } + // catch (Exception ex) + // { - AlertMsg alertMsg = new AlertMsg - { - Message = $"补药异常{ex.Message}", - Type = MsgType.ERROR, - }; - _eventAggregator.GetEvent().Publish(alertMsg); - logger.Info($"AddToJiaoJieWindowViewModel异常:{ex.Message}"); - _portUtil.Operate = false; - } + // AlertMsg alertMsg = new AlertMsg + // { + // Message = $"补药异常{ex.Message}", + // Type = MsgType.ERROR, + // }; + // _eventAggregator.GetEvent().Publish(alertMsg); + // logger.Info($"AddToJiaoJieWindowViewModel异常:{ex.Message}"); + // _portUtil.Operate = false; + // } - }); - } - void DoMyPrismEvent(DeviceMsg msg) - { - if (msg.WindowName == "AddToJiaoJieWindow") - { - switch (msg.EventType) - { - // 抽屉打开 - case EventType.DRAWEROPEN: - if (Status == 1) - { - Status = 2; - } - CurrentNum += 1; - if (CurrentNum < iDrawerNoLst.Count) - { - _portUtil.WindowName = "AddToJiaoJieWindow"; - _portUtil.Operate = true; - _portUtil.DrawerNo = iDrawerNoLst[CurrentNum]; - _portUtil.OpenAllDrawer(); - } - else - { - _portUtil.GetAllDrawerLockState(); - } - break; - // 抽屉关闭 - case EventType.DRAWERCLOSE: - if (Status == 2) - { - Status = 3; - } - _portUtil.Operate = false; - IsEnable = true; - CurrentNum = 0; + // }); + //} + //void DoMyPrismEvent(DeviceMsg msg) + //{ + // if (msg.WindowName == "AddToJiaoJieWindow") + // { + // switch (msg.EventType) + // { + // // 抽屉打开 + // case EventType.DRAWEROPEN: + // if (Status == 1) + // { + // Status = 2; + // } + // CurrentNum += 1; + // if (CurrentNum < iDrawerNoLst.Count) + // { + // _portUtil.WindowName = "AddToJiaoJieWindow"; + // _portUtil.Operate = true; + // _portUtil.DrawerNo = iDrawerNoLst[CurrentNum]; + // _portUtil.OpenAllDrawer(); + // } + // else + // { + // _portUtil.GetAllDrawerLockState(); + // } + // break; + // // 抽屉关闭 + // case EventType.DRAWERCLOSE: + // if (Status == 2) + // { + // Status = 3; + // } + // _portUtil.Operate = false; + // IsEnable = true; + // CurrentNum = 0; - break; - // 数量变化 - case EventType.UPDATEQUANTITY: - if (Status == 2) - { - ChannelStocks.ForEach(it => it.AddQuantity = msg.Quantitys[it.ColNo - 1]); - } - break; - // 打开失败 - case EventType.OPENERROR: - AlertMsg alertMsg = new AlertMsg - { - Message = msg.Message, - Type = MsgType.ERROR, - }; - _eventAggregator.GetEvent().Publish(alertMsg); - Status = 0; - _portUtil.Operate = false; - IsEnable = false; - CurrentNum = 0; - break; - } - } + // break; + // // 数量变化 + // case EventType.UPDATEQUANTITY: + // if (Status == 2) + // { + // ChannelStocks.ForEach(it => it.AddQuantity = msg.Quantitys[it.ColNo - 1]); + // } + // break; + // // 打开失败 + // case EventType.OPENERROR: + // AlertMsg alertMsg = new AlertMsg + // { + // Message = msg.Message, + // Type = MsgType.ERROR, + // }; + // _eventAggregator.GetEvent().Publish(alertMsg); + // Status = 0; + // _portUtil.Operate = false; + // IsEnable = false; + // CurrentNum = 0; + // break; + // } + // } - } + //} //完成按钮 - public DelegateCommand AddFinish - { - get => new DelegateCommand(() => - { - if (ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).Count <= 0) - { + //public DelegateCommand AddFinish + //{ + // get => new DelegateCommand(() => + // { + // if (ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).Count <= 0) + // { - AlertMsg alertMsg = new AlertMsg - { - Message = "请选择药箱", - Type = MsgType.SUCCESS, - }; - _eventAggregator.GetEvent().Publish(alertMsg); - return; - } - List jiaojieStocks = new List(); - List cs = ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).ToList(); - for (int i = 0; i < cs.Count; i++) - { - ChannelStock copy = TransExpV2.Trans(cs[i]); - jiaojieStocks.Add(copy); - } - csList = jiaojieStocks.FindAll(cs => cs.ChannelLst.IsSelected).GroupBy(cs => cs.DrugId).Select(g => new - { - DrugId = g.Key, - AddQuantity = g.Sum(s => s.AddQuantity) - }).Select(cs => new ChannelStock() { DrugId = cs.DrugId, AddQuantity = cs.AddQuantity }).ToList(); + // AlertMsg alertMsg = new AlertMsg + // { + // Message = "请选择药箱", + // Type = MsgType.SUCCESS, + // }; + // _eventAggregator.GetEvent().Publish(alertMsg); + // return; + // } + // List jiaojieStocks = new List(); + // List cs = ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).ToList(); + // for (int i = 0; i < cs.Count; i++) + // { + // ChannelStock copy = TransExpV2.Trans(cs[i]); + // jiaojieStocks.Add(copy); + // } + // csList = jiaojieStocks.FindAll(cs => cs.ChannelLst.IsSelected).GroupBy(cs => cs.DrugId).Select(g => new + // { + // DrugId = g.Key, + // AddQuantity = g.Sum(s => s.AddQuantity) + // }).Select(cs => new ChannelStock() { DrugId = cs.DrugId, AddQuantity = cs.AddQuantity }).ToList(); - List channelStocks = new List(); - List msg = new List(); - for (int i = 0; i < csList.Count; i++) - { - List HasQChannels = SqlSugarHelper.Db.Queryable() - .Includes(cs => cs.DrugInfo) - .Where(cs => cs.Quantity > 0) - .Where(cs => cs.DrawerType == 1) - .Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM3")) - .Where(cs => cs.DrugId == csList[i].DrugId) - .OrderBy(cs => cs.EffDate) - .OrderBy(cs => cs.DrawerNo) - .ToList(); - int total = HasQChannels.Sum(it => it.Quantity); - int TakeQ = csList[i].AddQuantity; - // 说明数量足够 - if (total >= TakeQ) - { - for (int j = 0; TakeQ > 0; j++) - { - ChannelStock stock = HasQChannels[j]; - if (TakeQ > stock.Quantity) - { - stock.TakeQuantity = stock.Quantity; - channelStocks.Add(stock); - TakeQ -= stock.Quantity; - } - else - { - stock.TakeQuantity = TakeQ; - channelStocks.Add(stock); - TakeQ = 0; - } - } - } - else - { - msg.Add($"药品【{ChannelStocks[i].DrugInfo.DrugName}】库存不足,应取【{TakeQ}】库存【{total}】"); - } + // List channelStocks = new List(); + // List msg = new List(); + // for (int i = 0; i < csList.Count; i++) + // { + // List HasQChannels = SqlSugarHelper.Db.Queryable() + // .Includes(cs => cs.DrugInfo) + // .Where(cs => cs.Quantity > 0) + // .Where(cs => cs.DrawerType == 1) + // .Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM3")) + // .Where(cs => cs.DrugId == csList[i].DrugId) + // .OrderBy(cs => cs.EffDate) + // .OrderBy(cs => cs.DrawerNo) + // .ToList(); + // int total = HasQChannels.Sum(it => it.Quantity); + // int TakeQ = csList[i].AddQuantity; + // // 说明数量足够 + // if (total >= TakeQ) + // { + // for (int j = 0; TakeQ > 0; j++) + // { + // ChannelStock stock = HasQChannels[j]; + // if (TakeQ > stock.Quantity) + // { + // stock.TakeQuantity = stock.Quantity; + // channelStocks.Add(stock); + // TakeQ -= stock.Quantity; + // } + // else + // { + // stock.TakeQuantity = TakeQ; + // channelStocks.Add(stock); + // TakeQ = 0; + // } + // } + // } + // else + // { + // msg.Add($"药品【{ChannelStocks[i].DrugInfo.DrugName}】库存不足,应取【{TakeQ}】库存【{total}】"); + // } - } - if (msg.Count > 0) - { - DialogParameters dialogParameters = new DialogParameters(); - dialogParameters.Add("msgInfo", msg); - DialogServiceExtensions.ShowDialogHost(_dialogService, "ShowMessageDialog", dialogParameters, "RootDialog"); - return; + // } + // if (msg.Count > 0) + // { + // DialogParameters dialogParameters = new DialogParameters(); + // dialogParameters.Add("msgInfo", msg); + // DialogServiceExtensions.ShowDialogHost(_dialogService, "ShowMessageDialog", dialogParameters, "RootDialog"); + // return; - } - else - { - channelStocks.Sort((a, b) => - { - if ((a.DrawerNo - b.DrawerNo) == 0) - { - return a.ColNo - b.ColNo; - } - return a.DrawerNo - b.DrawerNo; - }); - } - List record = channelStocks.FindAll(it => it.TakeQuantity > 0).ToList(); - if (record.Count > 0) - { - string InvoiceId = "AddJiaoJie_" + CurrentTimeMillis(); - var f = SqlSugarHelper.Db.UseTran(() => - { - for (int i = 0; i < record.Count; i++) - { - ChannelStock it = record[i]; - // 更新数据 库存信息 - SqlSugarHelper.Db.Updateable(new ChannelStock() - { - Quantity = it.Quantity - it.TakeQuantity, - ManuNo = it.ManuNo, - EffDate = it.EffDate, - Id = it.Id, - }).UpdateColumns(it => new { it.Quantity, it.ManuNo, it.EffDate }).ExecuteCommand(); + // } + // else + // { + // channelStocks.Sort((a, b) => + // { + // if ((a.DrawerNo - b.DrawerNo) == 0) + // { + // return a.ColNo - b.ColNo; + // } + // return a.DrawerNo - b.DrawerNo; + // }); + // } + // List record = channelStocks.FindAll(it => it.TakeQuantity > 0).ToList(); + // if (record.Count > 0) + // { + // string InvoiceId = "AddJiaoJie_" + CurrentTimeMillis(); + // var f = SqlSugarHelper.Db.UseTran(() => + // { + // for (int i = 0; i < record.Count; i++) + // { + // ChannelStock it = record[i]; + // // 更新数据 库存信息 + // SqlSugarHelper.Db.Updateable(new ChannelStock() + // { + // Quantity = it.Quantity - it.TakeQuantity, + // ManuNo = it.ManuNo, + // EffDate = it.EffDate, + // Id = it.Id, + // }).UpdateColumns(it => new { it.Quantity, it.ManuNo, it.EffDate }).ExecuteCommand(); - //更新 交接柜 库存信息 - List jiaojie = jiaojieStocks.Where(cs => cs.DrugId == it.DrugId).ToList(); - if (jiaojie != null && jiaojie.Count > 0) - { - for (int j = 0; j < jiaojie.Count; j++) - { - // 更新数据 交接柜 库存信息 - ChannelStock jiaojie_it = jiaojie[j]; - SqlSugarHelper.Db.Updateable(new ChannelStock() - { - Quantity = jiaojie_it.BaseQuantity, - //ManuNo = it.ManuNo, - //EffDate = it.EffDate, - Id = jiaojie_it.Id, - }).UpdateColumns(jiaojie_it => new { jiaojie_it.Quantity }).ExecuteCommand(); - } - } + // //更新 交接柜 库存信息 + // List jiaojie = jiaojieStocks.Where(cs => cs.DrugId == it.DrugId).ToList(); + // if (jiaojie != null && jiaojie.Count > 0) + // { + // for (int j = 0; j < jiaojie.Count; j++) + // { + // // 更新数据 交接柜 库存信息 + // ChannelStock jiaojie_it = jiaojie[j]; + // SqlSugarHelper.Db.Updateable(new ChannelStock() + // { + // Quantity = jiaojie_it.BaseQuantity, + // //ManuNo = it.ManuNo, + // //EffDate = it.EffDate, + // Id = jiaojie_it.Id, + // }).UpdateColumns(jiaojie_it => new { jiaojie_it.Quantity }).ExecuteCommand(); + // } + // } - // 保存数据 出库记录 - SqlSugarHelper.Db.Insertable(new MachineRecord() - { - MachineId = it.MachineId, - DrawerNo = it.DrawerNo, - ColNo = it.ColNo, - DrugId = it.DrugId, - ManuNo = it.ManuNo, - EffDate = !String.IsNullOrEmpty(it.EffDate) ? DateTime.ParseExact(it.EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null, - Operator = HomeWindowViewModel.Operator?.Id, - Reviewer = HomeWindowViewModel.Reviewer?.Id, - OperationTime = DateTime.Now, - Quantity = it.TakeQuantity, - Type = 2, - InvoiceId = InvoiceId - }).ExecuteCommand(); - } - return true; - }); - if (f.Data) - { - // 更新屏显库存 - List singleChannels = record.FindAll(it => it.BoardType != 5); - if (singleChannels.Count > 0) - { - singleChannels.ForEach(it => - { - _portUtil.WriteQuantity(it.DrawerNo, it.ColNo, it.Quantity - it.TakeQuantity); - }); - } - AlertMsg alertMsg = new AlertMsg - { - Message = "补药完成,库存已更新", - Type = MsgType.SUCCESS, - }; - _eventAggregator.GetEvent().Publish(alertMsg); - RequestData(); - } - if (!f.IsSuccess) - { - AlertMsg alertMsg = new AlertMsg - { - Message = "补药操作失败,库存更新失败!", - Type = MsgType.ERROR, - }; - _eventAggregator.GetEvent().Publish(alertMsg); - } - } - else - { - AlertMsg alertMsg = new AlertMsg - { - Message = "补药数量有误", - Type = MsgType.ERROR - }; - _eventAggregator.GetEvent().Publish(alertMsg); - } - }); - } + // // 保存数据 出库记录 + // SqlSugarHelper.Db.Insertable(new MachineRecord() + // { + // MachineId = it.MachineId, + // DrawerNo = it.DrawerNo, + // ColNo = it.ColNo, + // DrugId = it.DrugId, + // ManuNo = it.ManuNo, + // EffDate = !String.IsNullOrEmpty(it.EffDate) ? DateTime.ParseExact(it.EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null, + // Operator = HomeWindowViewModel.Operator?.Id, + // Reviewer = HomeWindowViewModel.Reviewer?.Id, + // OperationTime = DateTime.Now, + // Quantity = it.TakeQuantity, + // Type = 2, + // InvoiceId = InvoiceId + // }).ExecuteCommand(); + // } + // return true; + // }); + // if (f.Data) + // { + // // 更新屏显库存 + // List singleChannels = record.FindAll(it => it.BoardType != 5); + // if (singleChannels.Count > 0) + // { + // singleChannels.ForEach(it => + // { + // _portUtil.WriteQuantity(it.DrawerNo, it.ColNo, it.Quantity - it.TakeQuantity); + // }); + // } + // AlertMsg alertMsg = new AlertMsg + // { + // Message = "补药完成,库存已更新", + // Type = MsgType.SUCCESS, + // }; + // _eventAggregator.GetEvent().Publish(alertMsg); + // RequestData(); + // } + // if (!f.IsSuccess) + // { + // AlertMsg alertMsg = new AlertMsg + // { + // Message = "补药操作失败,库存更新失败!", + // Type = MsgType.ERROR, + // }; + // _eventAggregator.GetEvent().Publish(alertMsg); + // } + // } + // else + // { + // AlertMsg alertMsg = new AlertMsg + // { + // Message = "补药数量有误", + // Type = MsgType.ERROR + // }; + // _eventAggregator.GetEvent().Publish(alertMsg); + // } + // }); + //} //取消 - public DelegateCommand CancleAdd - { - get => new DelegateCommand(() => - { - _portUtil.ResetData(); - Status = 0; - IsEnable = true; - CurrentNum = 0; - }); - } + //public DelegateCommand CancleAdd + //{ + // get => new DelegateCommand(() => + // { + // _portUtil.ResetData(); + // Status = 0; + // IsEnable = true; + // CurrentNum = 0; + // }); + //} public DelegateCommand RejectReport_Download @@ -437,14 +516,16 @@ namespace DM_Weight.ViewModels // DrugId = g.Key, AddQuantity = g.Sum(s => s.AddQuantity) //}).Select(cs=>new ChannelStock() { DrugId=cs.DrugId,AddQuantity=cs.AddQuantity }).ToList(); - csList = ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).ToList(); + csList = _ChannelList.channelStocks.FindAll(cs => cs.ChannelLst.IsSelected).ToList(); if (csList != null && csList.Count > 0) { // 此处延时1毫秒,等待页面渲染 await Task.Delay(TimeSpan.FromMilliseconds(1)); DialogParameters dialogParameters = new DialogParameters(); - dialogParameters.Add("ChannelStocks", csList); + dialogParameters.Add("_ChannelStock", csList); + //List drugIdLst = ChannelStocks.FindAll(cs => cs.DrawerNo == _ChannelStock.DrawerNo).Select(cs => cs.DrugId).ToList(); + //dialogParameters.Add("drugIdLst", drugIdLst); DialogServiceExtensions.ShowDialogHost(_dialogService, "AddToJiaoJieDialog", dialogParameters, DoDialogResult, "RootDialog"); } @@ -470,38 +551,61 @@ namespace DM_Weight.ViewModels //} //MessageBox.Show("返回值:" + dialogResult.Result.ToString()); } - int AddToJiaoJieClickNum = 1; - //设置选中药箱的复选框状态 - private void SetIsSelected(ChannelStock channelStock) + //int AddToJiaoJieClickNum = 1; + ////设置选中药箱的复选框状态 + //private void SetIsSelected(ChannelStock channelStock) + //{ + // if (channelStock != null) + // { + // //channelStock.ChannelLst.IsSelected = !channelStock.ChannelLst.IsSelected; + // if (channelStock.ChannelLst.State == 0) + // { + // channelStock.ChannelLst.IsSelected = !channelStock.ChannelLst.IsSelected; + // } + // else + // { + // return; + // } + // if (_ChannelList.channelStocks != null && _ChannelList.channelStocks != null) + // { + // _ChannelList.channelStocks = _ChannelList.channelStocks.Select(x => + // { + // for (int i = 0; i < _ChannelList.channelStocks.Count; i++) + // { + // if (_ChannelList.channelStocks[i].DrawerNo == channelStock.DrawerNo) + // { + // _ChannelList.channelStocks[i].ChannelLst = channelStock.ChannelLst; + // } + // else + // { + // _ChannelList.channelStocks[i].ChannelLst.IsSelected = false; + // } + // } + // return x; + // }).ToList(); + // } + // ICollectionView vw = CollectionViewSource.GetDefaultView(_ChannelList.channelStocks); + // vw.GroupDescriptions.Add(new PropertyGroupDescription("ChannelLst")); + // } + //} + + + private DelegateCommand _rowSelected; + + public DelegateCommand RowSelected => _rowSelected ??= new DelegateCommand(OpenOrderDialog); + public async void OpenOrderDialog() { - if (channelStock != null) + if (_ChannelList != null && _ChannelList.channelStocks != null && _ChannelList.State == 0) { - //channelStock.ChannelLst.IsSelected = !channelStock.ChannelLst.IsSelected; - if (channelStock.ChannelLst.State == 0) - { - channelStock.ChannelLst.IsSelected = !channelStock.ChannelLst.IsSelected; - } - else - { - return; - } - if (channelStock != null && ChannelStocks != null) - { - ChannelStocks = ChannelStocks.Select(x => - { - for (int i = 0; i < ChannelStocks.Count; i++) - { - if (ChannelStocks[i].DrawerNo == channelStock.DrawerNo) - { - ChannelStocks[i].ChannelLst = channelStock.ChannelLst; - } - } - return x; - }).ToList(); - } - ICollectionView vw = CollectionViewSource.GetDefaultView(ChannelStocks); - vw.GroupDescriptions.Add(new PropertyGroupDescription("ChannelLst")); + // 此处延时1毫秒,等待页面渲染 + await Task.Delay(TimeSpan.FromMilliseconds(1)); + //选中药箱号下的所有药品id + DialogParameters dialogParameters = new DialogParameters(); + dialogParameters.Add("_ChannelStock", _ChannelList.channelStocks); + DialogServiceExtensions.ShowDialogHost(_dialogService, "AddToJiaoJieDialog", dialogParameters, DoDialogResult, "RootDialog"); + } + } } } diff --git a/DM_Weight/Views/AddToJiaoJieWindow.xaml b/DM_Weight/Views/AddToJiaoJieWindow.xaml index 3a0b7a9..14e0ba8 100644 --- a/DM_Weight/Views/AddToJiaoJieWindow.xaml +++ b/DM_Weight/Views/AddToJiaoJieWindow.xaml @@ -10,6 +10,21 @@ xmlns:prism="http://prismlibrary.com/" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +