交接柜补药时列出所有要补药的批次让补药人选择对应批次
This commit is contained in:
		
							parent
							
								
									88b97e213f
								
							
						
					
					
						commit
						c971e9d1bc
					
				| 
						 | 
					@ -3,7 +3,7 @@
 | 
				
			||||||
  <connectionStrings>
 | 
					  <connectionStrings>
 | 
				
			||||||
	<!-- 数据库连接字符串 -->
 | 
						<!-- 数据库连接字符串 -->
 | 
				
			||||||
	<!--<add name="database" connectionString="server=127.0.0.1;database=wpf_dm_program;userid=root;password=qq1223" />-->
 | 
						<!--<add name="database" connectionString="server=127.0.0.1;database=wpf_dm_program;userid=root;password=qq1223" />-->
 | 
				
			||||||
	<add name="database" connectionString="server=127.0.0.1;port=3306;database=xiangtan_mazuike;userid=root;password=root" />
 | 
						<add name="database" connectionString="server=127.0.0.1;port=3306;database=xiangtan_mazuike_xx;userid=root;password=root" />
 | 
				
			||||||
  </connectionStrings>
 | 
					  </connectionStrings>
 | 
				
			||||||
	<!--<runtime>
 | 
						<!--<runtime>
 | 
				
			||||||
		--><!--配置之后,Appdomain.CurrentDomain.UnhandledException 事件的 IsTerminating 就变成了 false 啦!也就是说,程序并不会因为这次的异常而崩溃退出。--><!--
 | 
							--><!--配置之后,Appdomain.CurrentDomain.UnhandledException 事件的 IsTerminating 就变成了 false 啦!也就是说,程序并不会因为这次的异常而崩溃退出。--><!--
 | 
				
			||||||
| 
						 | 
					@ -54,7 +54,7 @@
 | 
				
			||||||
		<!-- 抽屉串口使用的协议232或者485 -->
 | 
							<!-- 抽屉串口使用的协议232或者485 -->
 | 
				
			||||||
		<add key="DrawerProtocol" value="485" />
 | 
							<add key="DrawerProtocol" value="485" />
 | 
				
			||||||
		<!-- 抽屉串口的串口号 -->
 | 
							<!-- 抽屉串口的串口号 -->
 | 
				
			||||||
		<add key="DrawerPortPath" value="COM5" />
 | 
							<add key="DrawerPortPath" value="COM1" />
 | 
				
			||||||
		<!-- can总线串口的串口号 -->
 | 
							<!-- can总线串口的串口号 -->
 | 
				
			||||||
		<add key="CanBusPortPath" value="COM3" />
 | 
							<add key="CanBusPortPath" value="COM3" />
 | 
				
			||||||
		<!-- 条码枪串口的串口号 -->
 | 
							<!-- 条码枪串口的串口号 -->
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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; }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -3,6 +3,7 @@ using DM_Weight.msg;
 | 
				
			||||||
using DM_Weight.Port;
 | 
					using DM_Weight.Port;
 | 
				
			||||||
using DM_Weight.util;
 | 
					using DM_Weight.util;
 | 
				
			||||||
using log4net;
 | 
					using log4net;
 | 
				
			||||||
 | 
					using MaterialDesignThemes.Wpf;
 | 
				
			||||||
using Prism.Commands;
 | 
					using Prism.Commands;
 | 
				
			||||||
using Prism.Events;
 | 
					using Prism.Events;
 | 
				
			||||||
using Prism.Mvvm;
 | 
					using Prism.Mvvm;
 | 
				
			||||||
| 
						 | 
					@ -16,6 +17,7 @@ using System.Text;
 | 
				
			||||||
using System.Threading;
 | 
					using System.Threading;
 | 
				
			||||||
using System.Threading.Tasks;
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
using System.Windows.Input;
 | 
					using System.Windows.Input;
 | 
				
			||||||
 | 
					using System.Windows.Media;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace DM_Weight.ViewModels
 | 
					namespace DM_Weight.ViewModels
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -41,6 +43,8 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
            get => _jiaojie_channelStocks;
 | 
					            get => _jiaojie_channelStocks;
 | 
				
			||||||
            set => SetProperty(ref _jiaojie_channelStocks, value);
 | 
					            set => SetProperty(ref _jiaojie_channelStocks, value);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        //交接柜所在药箱下的所有药品id
 | 
				
			||||||
 | 
					        List<string> drugIdLst = new List<string>();
 | 
				
			||||||
        //交接柜中无该批次添加实体
 | 
					        //交接柜中无该批次添加实体
 | 
				
			||||||
        public List<ChannelStock> AddJJStock = new List<ChannelStock>();
 | 
					        public List<ChannelStock> AddJJStock = new List<ChannelStock>();
 | 
				
			||||||
        //交接柜中有该批次更新实体
 | 
					        //交接柜中有该批次更新实体
 | 
				
			||||||
| 
						 | 
					@ -61,6 +65,20 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
        private IEnumerable<IGrouping<int, ChannelStock>> enumerable;
 | 
					        private IEnumerable<IGrouping<int, ChannelStock>> enumerable;
 | 
				
			||||||
        private IEnumerator<IGrouping<int, ChannelStock>> enumerator;
 | 
					        private IEnumerator<IGrouping<int, ChannelStock>> 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 => "交接柜补药";
 | 
					        public string Title => "交接柜补药";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -82,18 +100,19 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
        public void OnDialogOpened(IDialogParameters parameters)
 | 
					        public void OnDialogOpened(IDialogParameters parameters)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            _eventAggregator.GetEvent<PortUtilEvent>().Subscribe(DoMyPrismEvent);
 | 
					            _eventAggregator.GetEvent<PortUtilEvent>().Subscribe(DoMyPrismEvent);
 | 
				
			||||||
            Jiaojie_ChannelStocks = parameters.GetValue<List<ChannelStock>>("ChannelStocks");
 | 
					            Jiaojie_ChannelStocks = parameters.GetValue<List<ChannelStock>>("_ChannelStock");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for (int i = 0; i < Jiaojie_ChannelStocks.Count; i++)
 | 
					            for (int i = 0; i < Jiaojie_ChannelStocks.Count; i++)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                ChannelStock copy = TransExpV2<ChannelStock, ChannelStock>.Trans(Jiaojie_ChannelStocks[i]);
 | 
					                ChannelStock copy = TransExpV2<ChannelStock, ChannelStock>.Trans(Jiaojie_ChannelStocks[i]);
 | 
				
			||||||
                ChannelStocks.Add(copy);
 | 
					                ChannelStocks.Add(copy);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            ChannelStocks = Jiaojie_ChannelStocks.GroupBy(cs =>new { cs.DrugId, cs.ManuNo }).Select(g => new
 | 
					            //ChannelStocks = Jiaojie_ChannelStocks.GroupBy(cs =>new { cs.DrugId }).Select(g => new
 | 
				
			||||||
            {
 | 
					            //{
 | 
				
			||||||
                Key = g.Key,
 | 
					            //    Key = g.Key,
 | 
				
			||||||
                AddQuantity = g.Sum(s => s.AddQuantity)
 | 
					            //    AddQuantity = g.Sum(s => s.AddQuantity)
 | 
				
			||||||
            }).Select(cs => new ChannelStock() { DrugId = cs.Key.DrugId,ManuNo=cs.Key.ManuNo, AddQuantity = cs.AddQuantity }).ToList();
 | 
					            //}).Select(cs => new ChannelStock() { DrugId = cs.Key.DrugId,ManuNo=cs.Key.ManuNo, AddQuantity = cs.AddQuantity }).ToList();
 | 
				
			||||||
            RequestData();
 | 
					            RequestData();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -199,9 +218,9 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                    .Where(cs => cs.Quantity > 0)
 | 
					                    .Where(cs => cs.Quantity > 0)
 | 
				
			||||||
                    .Where(cs => cs.DrawerType == 1)
 | 
					                    .Where(cs => cs.DrawerType == 1)
 | 
				
			||||||
                    .Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
 | 
					                    .Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
 | 
				
			||||||
                    .Where(cs => cs.DrugId == ChannelStocks[i].DrugId && cs.ManuNo == ChannelStocks[i].ManuNo)
 | 
					                    .Where(cs => cs.DrugId == ChannelStocks[i].DrugId)
 | 
				
			||||||
                    .OrderBy(cs => cs.EffDate)
 | 
					                    //.OrderBy(cs => cs.EffDate)
 | 
				
			||||||
                    .OrderBy(cs => cs.DrawerNo)
 | 
					                    .OrderBy(cs => new { cs.EffDate, cs.DrawerNo, cs.ColNo })
 | 
				
			||||||
                    .ToList();
 | 
					                    .ToList();
 | 
				
			||||||
                if (HasQChannels == null || HasQChannels.Count <= 0)
 | 
					                if (HasQChannels == null || HasQChannels.Count <= 0)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
| 
						 | 
					@ -213,22 +232,37 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                // 说明数量足够
 | 
					                // 说明数量足够
 | 
				
			||||||
                if (total >= TakeQ)
 | 
					                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 ((ChannelStocks[i].AddQuantity - hadTakeQ) > HasQChannels[j].Quantity)
 | 
				
			||||||
                        if (TakeQ > stock.Quantity)
 | 
					 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            stock.TakeQuantity = stock.Quantity;
 | 
					                            HasQChannels[j].TakeQuantity = HasQChannels[j].Quantity;
 | 
				
			||||||
                            channelStocks.Add(stock);
 | 
					                            hadTakeQ += HasQChannels[j].Quantity;
 | 
				
			||||||
                            TakeQ -= stock.Quantity;
 | 
					 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        else
 | 
					                        else
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            stock.TakeQuantity = TakeQ;
 | 
					                            HasQChannels[j].TakeQuantity = ChannelStocks[i].AddQuantity - hadTakeQ;
 | 
				
			||||||
                            channelStocks.Add(stock);
 | 
					                            break;
 | 
				
			||||||
                            TakeQ = 0;
 | 
					 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					                    channelStocks.AddRange(HasQChannels);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else
 | 
					                else
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
| 
						 | 
					@ -247,14 +281,14 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                channelStocks.Sort((a, b) =>
 | 
					                //channelStocks.Sort((a, b) =>
 | 
				
			||||||
                {
 | 
					                //{
 | 
				
			||||||
                    if ((a.DrawerNo - b.DrawerNo) == 0)
 | 
					                //    if ((a.DrawerNo - b.DrawerNo) == 0)
 | 
				
			||||||
                    {
 | 
					                //    {
 | 
				
			||||||
                        return a.ColNo - b.ColNo;
 | 
					                //        return a.ColNo - b.ColNo;
 | 
				
			||||||
                    }
 | 
					                //    }
 | 
				
			||||||
                    return a.DrawerNo - b.DrawerNo;
 | 
					                //    return a.DrawerNo - b.DrawerNo;
 | 
				
			||||||
                });
 | 
					                //});
 | 
				
			||||||
                ChannelStocks = channelStocks;
 | 
					                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 = enumerable.GetEnumerator();
 | 
				
			||||||
                    enumerator.MoveNext();
 | 
					                    enumerator.MoveNext();
 | 
				
			||||||
                    Status = 1;
 | 
					                    Status = 1;
 | 
				
			||||||
| 
						 | 
					@ -337,11 +371,36 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                if (!_isFinishClick)
 | 
					                if (!_isFinishClick)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    _isFinishClick = true;
 | 
					                    _isFinishClick = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    List<ChannelStock> record = ChannelStocks.FindAll(it => it.TakeQuantity > 0).ToList();
 | 
					                    List<ChannelStock> record = ChannelStocks.FindAll(it => it.TakeQuantity > 0).ToList();
 | 
				
			||||||
                    if (record.Count > 0)
 | 
					                    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();
 | 
					                        string InvoiceId = "AddJiaoJie_" + CurrentTimeMillis();
 | 
				
			||||||
                        var f = SqlSugarHelper.Db.UseTran(() =>
 | 
					                        var f = SqlSugarHelper.Db.UseTran(() =>
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
| 
						 | 
					@ -357,35 +416,6 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                                    Id = it.Id,
 | 
					                                    Id = it.Id,
 | 
				
			||||||
                                }).UpdateColumns(it => new { it.Quantity, it.ManuNo, it.EffDate }).ExecuteCommand();
 | 
					                                }).UpdateColumns(it => new { it.Quantity, it.ManuNo, it.EffDate }).ExecuteCommand();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                ////更新 交接柜 批次信息
 | 
					 | 
				
			||||||
                                //List<ChannelStock> 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<ChannelStock> searchStock = SqlSugarHelper.Db.Queryable<ChannelStock>()
 | 
					 | 
				
			||||||
                                //                                                          .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<ChannelStock> stockManuList = jiaojieStock.Where(cs => cs.ManuNo == it.ManuNo).ToList();
 | 
					 | 
				
			||||||
                                //        if (searchStock == null || searchStock.Count <= 0)
 | 
					 | 
				
			||||||
                                //        {
 | 
					 | 
				
			||||||
                                //            SqlSugarHelper.Db.Deleteable<ChannelStock>().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()
 | 
					                                SqlSugarHelper.Db.Insertable(new MachineRecord()
 | 
				
			||||||
                                {
 | 
					                                {
 | 
				
			||||||
| 
						 | 
					@ -408,31 +438,31 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                            //更新 交接柜 批次信息
 | 
					                            //更新 交接柜 批次信息
 | 
				
			||||||
                            for (int i = 0; i < Jiaojie_ChannelStocks.Count; i++)
 | 
					                            for (int i = 0; i < Jiaojie_ChannelStocks.Count; i++)
 | 
				
			||||||
                            {
 | 
					                            {
 | 
				
			||||||
                                 ChannelStock jiaoStock = Jiaojie_ChannelStocks[i];
 | 
					                                ChannelStock jiaoStock = Jiaojie_ChannelStocks[i];
 | 
				
			||||||
                                SqlSugarHelper.Db.Deleteable<ChannelStock>().Where(cs => cs.DrawerNo == jiaoStock.DrawerNo && cs.DrugId == jiaoStock.DrugId && cs.MachineId == jiaoStock.MachineId && cs.Quantity <= 0).ExecuteCommand();
 | 
					                                SqlSugarHelper.Db.Deleteable<ChannelStock>().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<ChannelStock> csStockList = record.Where(cs => cs.DrugId == jiaoStock.DrugId && cs.TakeQuantity > 0).ToList();
 | 
					                                List<ChannelStock> csStockList = record.Where(cs => cs.DrugId == Jiaojie_ChannelStocks[i].DrugId && cs.TakeQuantity > 0).ToList();
 | 
				
			||||||
                                if (csStockList != null && csStockList.Count > 0)
 | 
					                                if (csStockList != null && csStockList.Count > 0)
 | 
				
			||||||
                                {
 | 
					                                {
 | 
				
			||||||
                                    for (int j = 0; j < csStockList.Count; j++)
 | 
					                                    for (int j = 0; j < csStockList.Count; j++)
 | 
				
			||||||
                                    {
 | 
					                                    {
 | 
				
			||||||
                                        ChannelStock csStock = (ChannelStock)csStockList[j].Clone();
 | 
					                                        ChannelStock csStock = (ChannelStock)csStockList[j].Clone();
 | 
				
			||||||
                                        ChannelStock jjStockManuNo = SqlSugarHelper.Db.Queryable<ChannelStock>()
 | 
					                                        ChannelStock jjStockManuNo = SqlSugarHelper.Db.Queryable<ChannelStock>()
 | 
				
			||||||
                                                                       .Where(cs => cs.DrawerNo == jiaoStock.DrawerNo && cs.DrugId == jiaoStock.DrugId && cs.ManuNo == csStock.ManuNo && cs.MachineId == "DM5").First();
 | 
					                                                                       .Where(cs => cs.DrawerNo == Jiaojie_ChannelStocks[i].DrawerNo && cs.DrugId == Jiaojie_ChannelStocks[i].DrugId && cs.ManuNo == csStock.ManuNo && cs.MachineId == "DM5").First();
 | 
				
			||||||
                                        logger.Info($"库中{jiaoStock.DrawerNo}号手术间,{jiaoStock.DrugId},{csStock.ManuNo};有该批次{jjStockManuNo!=null};jjStockManuNo是空:{jjStockManuNo==null}");
 | 
					                                        logger.Info($"库中{Jiaojie_ChannelStocks[i].DrawerNo}号手术间,{Jiaojie_ChannelStocks[i].DrugId},{csStock.ManuNo};有该批次{jjStockManuNo != null};jjStockManuNo是空:{jjStockManuNo == null}");
 | 
				
			||||||
                                        if (jjStockManuNo != null)
 | 
					                                        if (jjStockManuNo != null)
 | 
				
			||||||
                                        {
 | 
					                                        {
 | 
				
			||||||
                                            int addNum = csStock.TakeQuantity;
 | 
					                                            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();
 | 
					                                                ChannelStock newStock = new ChannelStock();
 | 
				
			||||||
                                                //newStock.Chnguid = jiaoStock.Chnguid;
 | 
					                                                //newStock.Chnguid = jiaoStock.Chnguid;
 | 
				
			||||||
                                                //newStock.BaseQuantity = jiaoStock.BaseQuantity;
 | 
					                                                //newStock.BaseQuantity = jiaoStock.BaseQuantity;
 | 
				
			||||||
                                                newStock.ManuNo = jiaoStock.ManuNo;
 | 
					                                                newStock.ManuNo = Jiaojie_ChannelStocks[i].ManuNo;
 | 
				
			||||||
                                                newStock.DrawerNo = jiaoStock.DrawerNo;
 | 
					                                                newStock.DrawerNo = Jiaojie_ChannelStocks[i].DrawerNo;
 | 
				
			||||||
                                                newStock.DrugId = jiaoStock.DrugId;
 | 
					                                                newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId;
 | 
				
			||||||
                                                newStock.AddToJJNum = addNum;
 | 
					                                                newStock.AddToJJNum = addNum;
 | 
				
			||||||
                                                newStock.Id = jjStockManuNo.Id;
 | 
					                                                newStock.Id = jjStockManuNo.Id;
 | 
				
			||||||
                                                //newStock.MachineId = jiaoStock.MachineId;
 | 
					                                                //newStock.MachineId = jiaoStock.MachineId;
 | 
				
			||||||
| 
						 | 
					@ -440,7 +470,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                                                //newStock.Quantity = jiaoStock.Quantity + csStock.TakeQuantity;
 | 
					                                                //newStock.Quantity = jiaoStock.Quantity + csStock.TakeQuantity;
 | 
				
			||||||
                                                UpdateJJStock.Add(newStock);
 | 
					                                                UpdateJJStock.Add(newStock);
 | 
				
			||||||
                                                csStockList[j].TakeQuantity = 0;
 | 
					                                                csStockList[j].TakeQuantity = 0;
 | 
				
			||||||
                                                jiaoStock.NeedNum = jiaoStock.NeedNum - csStock.TakeQuantity;
 | 
					                                                Jiaojie_ChannelStocks[i].NeedNum = Jiaojie_ChannelStocks[i].NeedNum - csStock.TakeQuantity;
 | 
				
			||||||
                                            }
 | 
					                                            }
 | 
				
			||||||
                                            else
 | 
					                                            else
 | 
				
			||||||
                                            {
 | 
					                                            {
 | 
				
			||||||
| 
						 | 
					@ -454,53 +484,53 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                                                ChannelStock newStock = new ChannelStock();
 | 
					                                                ChannelStock newStock = new ChannelStock();
 | 
				
			||||||
                                                //newStock.Chnguid = jiaoStock.Chnguid;
 | 
					                                                //newStock.Chnguid = jiaoStock.Chnguid;
 | 
				
			||||||
                                                //newStock.BaseQuantity = jiaoStock.BaseQuantity;
 | 
					                                                //newStock.BaseQuantity = jiaoStock.BaseQuantity;
 | 
				
			||||||
                                                newStock.ManuNo = jiaoStock.ManuNo;
 | 
					                                                newStock.ManuNo = Jiaojie_ChannelStocks[i].ManuNo;
 | 
				
			||||||
                                                newStock.DrawerNo = jiaoStock.DrawerNo;
 | 
					                                                newStock.DrawerNo = Jiaojie_ChannelStocks[i].DrawerNo;
 | 
				
			||||||
                                                newStock.DrugId = jiaoStock.DrugId;
 | 
					                                                newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId;
 | 
				
			||||||
                                                newStock.AddToJJNum = jiaoStock.NeedNum; 
 | 
					                                                newStock.AddToJJNum = Jiaojie_ChannelStocks[i].NeedNum;
 | 
				
			||||||
                                                newStock.Id = jjStockManuNo.Id;
 | 
					                                                newStock.Id = jjStockManuNo.Id;
 | 
				
			||||||
                                                //newStock.MachineId = jiaoStock.MachineId;
 | 
					                                                //newStock.MachineId = jiaoStock.MachineId;
 | 
				
			||||||
                                                //newStock.NeedNum = 0;
 | 
					                                                //newStock.NeedNum = 0;
 | 
				
			||||||
                                                //newStock.Quantity = jiaoStock.Quantity + csStock.TakeQuantity;
 | 
					                                                //newStock.Quantity = jiaoStock.Quantity + csStock.TakeQuantity;
 | 
				
			||||||
                                                UpdateJJStock.Add(newStock);
 | 
					                                                UpdateJJStock.Add(newStock);
 | 
				
			||||||
                                                csStockList[j].TakeQuantity = csStock.TakeQuantity - jiaoStock.NeedNum;
 | 
					                                                csStockList[j].TakeQuantity = csStock.TakeQuantity - Jiaojie_ChannelStocks[i].NeedNum;
 | 
				
			||||||
                                                jiaoStock.NeedNum = 0;
 | 
					                                                Jiaojie_ChannelStocks[i].NeedNum = 0;
 | 
				
			||||||
                                                break;
 | 
					                                                break;
 | 
				
			||||||
                                            }
 | 
					                                            }
 | 
				
			||||||
                                        }
 | 
					                                        }
 | 
				
			||||||
                                        else   //没有该批次
 | 
					                                        else   //没有该批次
 | 
				
			||||||
                                        {
 | 
					                                        {
 | 
				
			||||||
                                            if (jiaoStock.NeedNum > csStock.TakeQuantity)
 | 
					                                            if (Jiaojie_ChannelStocks[i].NeedNum > csStock.TakeQuantity)
 | 
				
			||||||
                                            {
 | 
					                                            {
 | 
				
			||||||
                                                //不够取
 | 
					                                                //不够取
 | 
				
			||||||
                                                ChannelStock newStock = new ChannelStock();
 | 
					                                                ChannelStock newStock = new ChannelStock();
 | 
				
			||||||
                                                newStock.BaseQuantity = jiaoStock.BaseQuantity;
 | 
					                                                newStock.BaseQuantity = Jiaojie_ChannelStocks[i].BaseQuantity;
 | 
				
			||||||
                                                newStock.Chnguid = jiaoStock.Chnguid;
 | 
					                                                newStock.Chnguid = Jiaojie_ChannelStocks[i].Chnguid;
 | 
				
			||||||
                                                newStock.DrawerNo = jiaoStock.DrawerNo;
 | 
					                                                newStock.DrawerNo = Jiaojie_ChannelStocks[i].DrawerNo;
 | 
				
			||||||
                                                newStock.DrugId = jiaoStock.DrugId;
 | 
					                                                newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId;
 | 
				
			||||||
                                                newStock.ManuNo = csStock.ManuNo;
 | 
					                                                newStock.ManuNo = csStock.ManuNo;
 | 
				
			||||||
                                                newStock.AddToJJNum = csStock.TakeQuantity;
 | 
					                                                newStock.AddToJJNum = csStock.TakeQuantity;
 | 
				
			||||||
                                                newStock.Id = Guid.NewGuid().ToString();
 | 
					                                                newStock.Id = Guid.NewGuid().ToString();
 | 
				
			||||||
                                                newStock.MachineId = jiaoStock.MachineId;
 | 
					                                                newStock.MachineId = Jiaojie_ChannelStocks[i].MachineId;
 | 
				
			||||||
                                                newStock.DrawerType = 1;
 | 
					                                                newStock.DrawerType = 1;
 | 
				
			||||||
                                                newStock.NeedNum = 0;
 | 
					                                                newStock.NeedNum = 0;
 | 
				
			||||||
                                                AddJJStock.Add(newStock);
 | 
					                                                AddJJStock.Add(newStock);
 | 
				
			||||||
                                                jiaoStock.NeedNum = jiaoStock.NeedNum - csStock.TakeQuantity;
 | 
					                                                Jiaojie_ChannelStocks[i].NeedNum = Jiaojie_ChannelStocks[i].NeedNum - csStock.TakeQuantity;
 | 
				
			||||||
                                                csStockList[j].TakeQuantity = 0;
 | 
					                                                csStockList[j].TakeQuantity = 0;
 | 
				
			||||||
                                            }
 | 
					                                            }
 | 
				
			||||||
                                            else
 | 
					                                            else
 | 
				
			||||||
                                            {
 | 
					                                            {
 | 
				
			||||||
                                                //够取
 | 
					                                                //够取
 | 
				
			||||||
                                                ChannelStock newStock = new ChannelStock();
 | 
					                                                ChannelStock newStock = new ChannelStock();
 | 
				
			||||||
                                                newStock.Chnguid = jiaoStock.Chnguid;
 | 
					                                                newStock.Chnguid = Jiaojie_ChannelStocks[i].Chnguid;
 | 
				
			||||||
                                                newStock.BaseQuantity = jiaoStock.BaseQuantity;
 | 
					                                                newStock.BaseQuantity = Jiaojie_ChannelStocks[i].BaseQuantity;
 | 
				
			||||||
                                                newStock.DrawerNo = jiaoStock.DrawerNo;
 | 
					                                                newStock.DrawerNo = Jiaojie_ChannelStocks[i].DrawerNo;
 | 
				
			||||||
                                                newStock.DrugId = jiaoStock.DrugId;
 | 
					                                                newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId;
 | 
				
			||||||
                                                newStock.ManuNo = csStock.ManuNo;
 | 
					                                                newStock.ManuNo = csStock.ManuNo;
 | 
				
			||||||
                                                newStock.AddToJJNum = jiaoStock.NeedNum;
 | 
					                                                newStock.AddToJJNum = Jiaojie_ChannelStocks[i].NeedNum;
 | 
				
			||||||
                                                newStock.NeedNum = 0;
 | 
					                                                newStock.NeedNum = 0;
 | 
				
			||||||
                                                newStock.Id = Guid.NewGuid().ToString();
 | 
					                                                newStock.Id = Guid.NewGuid().ToString();
 | 
				
			||||||
                                                newStock.MachineId = jiaoStock.MachineId;
 | 
					                                                newStock.MachineId = Jiaojie_ChannelStocks[i].MachineId;
 | 
				
			||||||
                                                newStock.DrawerType = 1;
 | 
					                                                newStock.DrawerType = 1;
 | 
				
			||||||
                                                AddJJStock.Add(newStock);
 | 
					                                                AddJJStock.Add(newStock);
 | 
				
			||||||
                                                csStockList[j].TakeQuantity = csStock.TakeQuantity - newStock.AddToJJNum;
 | 
					                                                csStockList[j].TakeQuantity = csStock.TakeQuantity - newStock.AddToJJNum;
 | 
				
			||||||
| 
						 | 
					@ -511,7 +541,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                                }
 | 
					                                }
 | 
				
			||||||
                                SqlSugarHelper.Db.Updateable<ChannelStock>()
 | 
					                                SqlSugarHelper.Db.Updateable<ChannelStock>()
 | 
				
			||||||
                                                 .SetColumns(cs => new ChannelStock() { NeedNum = 0 })
 | 
					                                                 .SetColumns(cs => new ChannelStock() { NeedNum = 0 })
 | 
				
			||||||
                                                 .Where(cs => cs.DrawerNo == jiaoStock.DrawerNo)
 | 
					                                                 .Where(cs => cs.DrawerNo == Jiaojie_ChannelStocks[i].DrawerNo)
 | 
				
			||||||
                                                 .ExecuteCommand();
 | 
					                                                 .ExecuteCommand();
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -568,19 +598,20 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                                }
 | 
					                                }
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                            //更新交接柜状态为 已取药未入库(等在交接柜入库后再更新交接柜库存)
 | 
					                            //更新交接柜状态为 已取药未入库(等在交接柜入库后再更新交接柜库存)
 | 
				
			||||||
                            List<ChannelStock> jiaojie = Jiaojie_ChannelStocks.GroupBy(cs => cs.DrawerNo).Select(cs => cs.FirstOrDefault()).ToList();
 | 
					                            if (Jiaojie_ChannelStocks != null)
 | 
				
			||||||
                            if (jiaojie != null && jiaojie.Count > 0)
 | 
					 | 
				
			||||||
                            {
 | 
					                            {
 | 
				
			||||||
                                for (int j = 0; j < jiaojie.Count; j++)
 | 
					                                Jiaojie_ChannelStocks.ForEach(jj =>
 | 
				
			||||||
                                {
 | 
					                                {
 | 
				
			||||||
                                    ChannelStock jiaojie_it = jiaojie[j];
 | 
					 | 
				
			||||||
                                    //更新交接柜状态为 已取药未入库
 | 
					                                    //更新交接柜状态为 已取药未入库
 | 
				
			||||||
                                    SqlSugarHelper.Db.Updateable(new ChannelList()
 | 
					                                    SqlSugarHelper.Db.Updateable(new ChannelList()
 | 
				
			||||||
                                    {
 | 
					                                    {
 | 
				
			||||||
                                        State = 1,
 | 
					                                        State = 1,
 | 
				
			||||||
                                        Id = jiaojie_it.ChannelLst.Id
 | 
					                                        Id = jj.ChannelLst.Id
 | 
				
			||||||
                                    }).UpdateColumns(it => it.State).ExecuteCommand();
 | 
					                                    }).UpdateColumns(it => it.State).ExecuteCommand();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                }
 | 
					                                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                    );
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                            return true;
 | 
					                            return true;
 | 
				
			||||||
                        });
 | 
					                        });
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -39,24 +39,44 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
        public void OnNavigatedFrom(NavigationContext navigationContext)
 | 
					        public void OnNavigatedFrom(NavigationContext navigationContext)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            // 取消消息订阅
 | 
					            // 取消消息订阅
 | 
				
			||||||
            _eventAggregator.GetEvent<PortUtilEvent>().Unsubscribe(DoMyPrismEvent);
 | 
					            //_eventAggregator.GetEvent<PortUtilEvent>().Unsubscribe(DoMyPrismEvent);
 | 
				
			||||||
            _eventAggregator.GetEvent<IsSelectedEvent>().Unsubscribe(SetIsSelected);
 | 
					            //_eventAggregator.GetEvent<IsSelectedEvent>().Unsubscribe(SetIsSelected);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private List<ChannelStock> channelStocks;
 | 
					        private List<ChannelStock>? channelStocks;
 | 
				
			||||||
        public List<ChannelStock> ChannelStocks
 | 
					        public List<ChannelStock>? ChannelStocks
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            get => channelStocks;
 | 
					            get => channelStocks;
 | 
				
			||||||
            set => SetProperty(ref channelStocks, value);
 | 
					            set => SetProperty(ref channelStocks, value);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        private ChannelStock _channelStock;
 | 
				
			||||||
 | 
					        public ChannelStock _ChannelStock
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            get => _channelStock;
 | 
				
			||||||
 | 
					            set => SetProperty(ref _channelStock, value);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        private List<ChannelList>? _channelLists;
 | 
				
			||||||
 | 
					        public List<ChannelList>? _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)
 | 
					        public void OnNavigatedTo(NavigationContext navigationContext)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            _eventAggregator.GetEvent<PortUtilEvent>().Subscribe(DoMyPrismEvent);
 | 
					            //_eventAggregator.GetEvent<PortUtilEvent>().Subscribe(DoMyPrismEvent);
 | 
				
			||||||
            _eventAggregator.GetEvent<IsSelectedEvent>().Subscribe(SetIsSelected);
 | 
					            //_eventAggregator.GetEvent<IsSelectedEvent>().Subscribe(SetIsSelected);
 | 
				
			||||||
            RequestData();
 | 
					            RequestData();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        private PortUtil _portUtil;
 | 
					        private PortUtil _portUtil;
 | 
				
			||||||
| 
						 | 
					@ -70,26 +90,85 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        private void RequestData()
 | 
					        private void RequestData()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            ChannelStocks = SqlSugarHelper.Db.Queryable<ChannelStock>()
 | 
					            //ChannelStocks = SqlSugarHelper.Db.Queryable<ChannelStock>()
 | 
				
			||||||
               .Includes<ChannelList>(cs => cs.ChannelLst)
 | 
					            //   .Includes<ChannelList>(cs => cs.ChannelLst)
 | 
				
			||||||
               .Includes<DrugInfo>(cs => cs.DrugInfo)
 | 
					            //   .Includes<DrugInfo>(cs => cs.DrugInfo)
 | 
				
			||||||
               .Where(cs => cs.MachineId == (ConfigurationManager.AppSettings["jj_machineId"] ?? "DM5") && cs.BaseQuantity > cs.Quantity)
 | 
					            //   .Where(cs => cs.MachineId == (ConfigurationManager.AppSettings["jj_machineId"] ?? "DM5") && cs.BaseQuantity > cs.Quantity)
 | 
				
			||||||
               .OrderBy(cs => cs.Chnguid)
 | 
					            //   .OrderBy(cs => cs.Chnguid)
 | 
				
			||||||
               .OrderBy(cs => cs.DrawerNo)
 | 
					            //   .OrderBy(cs => cs.DrawerNo)
 | 
				
			||||||
               .ToList();
 | 
					            //   .ToList();
 | 
				
			||||||
            //ChannelStocks = ChannelStocks.GroupBy(it => new { it.DrawerNo, it.DrugId })
 | 
					            ////ChannelStocks = ChannelStocks.GroupBy(it => new { it.DrawerNo, it.DrugId })
 | 
				
			||||||
            //    .Select(it =>
 | 
					            ////    .Select(it =>
 | 
				
			||||||
            //    {
 | 
					            ////    {
 | 
				
			||||||
            //        var ret = it.First();
 | 
					            ////        var ret = it.First();
 | 
				
			||||||
            //        ret.Quantity = it.Sum(itx => itx.Quantity); 
 | 
					            ////        ret.Quantity = it.Sum(itx => itx.Quantity); 
 | 
				
			||||||
            //        ret.NeedNum=it.Sum(itx => itx.NeedNum);
 | 
					            ////        ret.NeedNum=it.Sum(itx => itx.NeedNum);
 | 
				
			||||||
            //        return ret;
 | 
					            ////        return ret;
 | 
				
			||||||
            //    }).Where(it=>it.BaseQuantity>it.Quantity)
 | 
					            ////    }).Where(it=>it.BaseQuantity>it.Quantity)
 | 
				
			||||||
            //    .ToList();
 | 
					            ////    .ToList();
 | 
				
			||||||
            ChannelStocks.ForEach(cs => cs.AddQuantity = cs.BaseQuantity - cs.Quantity);
 | 
					            //ChannelStocks.ForEach(cs => cs.AddQuantity = cs.BaseQuantity - cs.Quantity);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //ICollectionView vw = CollectionViewSource.GetDefaultView(ChannelStocks);
 | 
				
			||||||
 | 
					            //vw.GroupDescriptions.Add(new PropertyGroupDescription("ChannelLst"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //_ChannelLists = SqlSugarHelper.Db.Queryable<ChannelList>()
 | 
				
			||||||
 | 
					            //    .Includes<ChannelStock>(cl => cl.channelStocks)
 | 
				
			||||||
 | 
					            //    .Includes<DrugInfo>(cl => cl.Drug)
 | 
				
			||||||
 | 
					            //    .InnerJoin<ChannelStock>((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<ChannelStock>()
 | 
				
			||||||
 | 
					              .Includes<ChannelList>(cs => cs.ChannelLst)
 | 
				
			||||||
 | 
					              .Includes<DrugInfo>(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<int> DrawerNoList = ChannelStocks.Select(cs => cs.DrawerNo).Distinct().ToList();
 | 
				
			||||||
 | 
					                List<ChannelList> channelLists = new List<ChannelList>();
 | 
				
			||||||
 | 
					                for (int i = 0; i < DrawerNoList.Count; i++)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    var channelList = SqlSugarHelper.Db.Queryable<ChannelList>()
 | 
				
			||||||
 | 
					                        .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<ChannelStock>();
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    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;
 | 
					        private int _status = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -108,304 +187,304 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
            get => new DelegateCommand(() => RequestData());
 | 
					            get => new DelegateCommand(() => RequestData());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        //一键补药
 | 
					        //一键补药
 | 
				
			||||||
        public DelegateCommand OpenDragCommand
 | 
					        //public DelegateCommand OpenDragCommand
 | 
				
			||||||
        {
 | 
					        //{
 | 
				
			||||||
            get => new DelegateCommand(() =>
 | 
					        //    get => new DelegateCommand(() =>
 | 
				
			||||||
            {
 | 
					        //    {
 | 
				
			||||||
                try
 | 
					        //        try
 | 
				
			||||||
                {
 | 
					        //        {
 | 
				
			||||||
                    Status = 1;
 | 
					        //            Status = 1;
 | 
				
			||||||
                    IsEnable = false;
 | 
					        //            IsEnable = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    var varDrawerNO = SqlSugarHelper.Db.Queryable<ChannelStock>()
 | 
					        //            var varDrawerNO = SqlSugarHelper.Db.Queryable<ChannelStock>()
 | 
				
			||||||
                                   .Where(cs => cs.MachineId == (ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
 | 
					        //                           .Where(cs => cs.MachineId == (ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
 | 
				
			||||||
                                   .GroupBy(cs => cs.DrawerNo).Select(DrawerNo => DrawerNo).ToList();
 | 
					        //                           .GroupBy(cs => cs.DrawerNo).Select(DrawerNo => DrawerNo).ToList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    iDrawerNoLst = varDrawerNO.Select(item => item.DrawerNo).ToList();
 | 
					        //            iDrawerNoLst = varDrawerNO.Select(item => item.DrawerNo).ToList();
 | 
				
			||||||
                    CurrentNum = 0;
 | 
					        //            CurrentNum = 0;
 | 
				
			||||||
                    _portUtil.SpeakAsync($"正在打开 {iDrawerNoLst[CurrentNum]} 号抽屉");
 | 
					        //            _portUtil.SpeakAsync($"正在打开 {iDrawerNoLst[CurrentNum]} 号抽屉");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    _portUtil.WindowName = "AddToJiaoJieWindow";
 | 
					        //            _portUtil.WindowName = "AddToJiaoJieWindow";
 | 
				
			||||||
                    _portUtil.Operate = true;
 | 
					        //            _portUtil.Operate = true;
 | 
				
			||||||
                    //_portUtil.BoardType = singleChannels.Count > 0 ? singleChannels[0].BoardType : 1;
 | 
					        //            //_portUtil.BoardType = singleChannels.Count > 0 ? singleChannels[0].BoardType : 1;
 | 
				
			||||||
                    //_portUtil.ColNos = singleChannels.Select(it => it.ColNo).ToArray();
 | 
					        //            //_portUtil.ColNos = singleChannels.Select(it => it.ColNo).ToArray();
 | 
				
			||||||
                    _portUtil.DrawerNo = iDrawerNoLst[CurrentNum];
 | 
					        //            _portUtil.DrawerNo = iDrawerNoLst[CurrentNum];
 | 
				
			||||||
                    _portUtil.OpenAllDrawer();
 | 
					        //            _portUtil.OpenAllDrawer();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					        //        }
 | 
				
			||||||
                catch (Exception ex)
 | 
					        //        catch (Exception ex)
 | 
				
			||||||
                {
 | 
					        //        {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    AlertMsg alertMsg = new AlertMsg
 | 
					        //            AlertMsg alertMsg = new AlertMsg
 | 
				
			||||||
                    {
 | 
					        //            {
 | 
				
			||||||
                        Message = $"补药异常{ex.Message}",
 | 
					        //                Message = $"补药异常{ex.Message}",
 | 
				
			||||||
                        Type = MsgType.ERROR,
 | 
					        //                Type = MsgType.ERROR,
 | 
				
			||||||
                    };
 | 
					        //            };
 | 
				
			||||||
                    _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
					        //            _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
				
			||||||
                    logger.Info($"AddToJiaoJieWindowViewModel异常:{ex.Message}");
 | 
					        //            logger.Info($"AddToJiaoJieWindowViewModel异常:{ex.Message}");
 | 
				
			||||||
                    _portUtil.Operate = false;
 | 
					        //            _portUtil.Operate = false;
 | 
				
			||||||
                }
 | 
					        //        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            });
 | 
					        //    });
 | 
				
			||||||
        }
 | 
					        //}
 | 
				
			||||||
        void DoMyPrismEvent(DeviceMsg msg)
 | 
					        //void DoMyPrismEvent(DeviceMsg msg)
 | 
				
			||||||
        {
 | 
					        //{
 | 
				
			||||||
            if (msg.WindowName == "AddToJiaoJieWindow")
 | 
					        //    if (msg.WindowName == "AddToJiaoJieWindow")
 | 
				
			||||||
            {
 | 
					        //    {
 | 
				
			||||||
                switch (msg.EventType)
 | 
					        //        switch (msg.EventType)
 | 
				
			||||||
                {
 | 
					        //        {
 | 
				
			||||||
                    // 抽屉打开
 | 
					        //            // 抽屉打开
 | 
				
			||||||
                    case EventType.DRAWEROPEN:
 | 
					        //            case EventType.DRAWEROPEN:
 | 
				
			||||||
                        if (Status == 1)
 | 
					        //                if (Status == 1)
 | 
				
			||||||
                        {
 | 
					        //                {
 | 
				
			||||||
                            Status = 2;
 | 
					        //                    Status = 2;
 | 
				
			||||||
                        }
 | 
					        //                }
 | 
				
			||||||
                        CurrentNum += 1;
 | 
					        //                CurrentNum += 1;
 | 
				
			||||||
                        if (CurrentNum < iDrawerNoLst.Count)
 | 
					        //                if (CurrentNum < iDrawerNoLst.Count)
 | 
				
			||||||
                        {
 | 
					        //                {
 | 
				
			||||||
                            _portUtil.WindowName = "AddToJiaoJieWindow";
 | 
					        //                    _portUtil.WindowName = "AddToJiaoJieWindow";
 | 
				
			||||||
                            _portUtil.Operate = true;
 | 
					        //                    _portUtil.Operate = true;
 | 
				
			||||||
                            _portUtil.DrawerNo = iDrawerNoLst[CurrentNum];
 | 
					        //                    _portUtil.DrawerNo = iDrawerNoLst[CurrentNum];
 | 
				
			||||||
                            _portUtil.OpenAllDrawer();
 | 
					        //                    _portUtil.OpenAllDrawer();
 | 
				
			||||||
                        }
 | 
					        //                }
 | 
				
			||||||
                        else
 | 
					        //                else
 | 
				
			||||||
                        {
 | 
					        //                {
 | 
				
			||||||
                            _portUtil.GetAllDrawerLockState();
 | 
					        //                    _portUtil.GetAllDrawerLockState();
 | 
				
			||||||
                        }
 | 
					        //                }
 | 
				
			||||||
                        break;
 | 
					        //                break;
 | 
				
			||||||
                    // 抽屉关闭
 | 
					        //            // 抽屉关闭
 | 
				
			||||||
                    case EventType.DRAWERCLOSE:
 | 
					        //            case EventType.DRAWERCLOSE:
 | 
				
			||||||
                        if (Status == 2)
 | 
					        //                if (Status == 2)
 | 
				
			||||||
                        {
 | 
					        //                {
 | 
				
			||||||
                            Status = 3;
 | 
					        //                    Status = 3;
 | 
				
			||||||
                        }
 | 
					        //                }
 | 
				
			||||||
                        _portUtil.Operate = false;
 | 
					        //                _portUtil.Operate = false;
 | 
				
			||||||
                        IsEnable = true;
 | 
					        //                IsEnable = true;
 | 
				
			||||||
                        CurrentNum = 0;
 | 
					        //                CurrentNum = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        break;
 | 
					        //                break;
 | 
				
			||||||
                    // 数量变化
 | 
					        //            // 数量变化
 | 
				
			||||||
                    case EventType.UPDATEQUANTITY:
 | 
					        //            case EventType.UPDATEQUANTITY:
 | 
				
			||||||
                        if (Status == 2)
 | 
					        //                if (Status == 2)
 | 
				
			||||||
                        {
 | 
					        //                {
 | 
				
			||||||
                            ChannelStocks.ForEach(it => it.AddQuantity = msg.Quantitys[it.ColNo - 1]);
 | 
					        //                    ChannelStocks.ForEach(it => it.AddQuantity = msg.Quantitys[it.ColNo - 1]);
 | 
				
			||||||
                        }
 | 
					        //                }
 | 
				
			||||||
                        break;
 | 
					        //                break;
 | 
				
			||||||
                    // 打开失败
 | 
					        //            // 打开失败
 | 
				
			||||||
                    case EventType.OPENERROR:
 | 
					        //            case EventType.OPENERROR:
 | 
				
			||||||
                        AlertMsg alertMsg = new AlertMsg
 | 
					        //                AlertMsg alertMsg = new AlertMsg
 | 
				
			||||||
                        {
 | 
					        //                {
 | 
				
			||||||
                            Message = msg.Message,
 | 
					        //                    Message = msg.Message,
 | 
				
			||||||
                            Type = MsgType.ERROR,
 | 
					        //                    Type = MsgType.ERROR,
 | 
				
			||||||
                        };
 | 
					        //                };
 | 
				
			||||||
                        _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
					        //                _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
				
			||||||
                        Status = 0;
 | 
					        //                Status = 0;
 | 
				
			||||||
                        _portUtil.Operate = false;
 | 
					        //                _portUtil.Operate = false;
 | 
				
			||||||
                        IsEnable = false;
 | 
					        //                IsEnable = false;
 | 
				
			||||||
                        CurrentNum = 0;
 | 
					        //                CurrentNum = 0;
 | 
				
			||||||
                        break;
 | 
					        //                break;
 | 
				
			||||||
                }
 | 
					        //        }
 | 
				
			||||||
            }
 | 
					        //    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        }
 | 
					        //}
 | 
				
			||||||
        //完成按钮
 | 
					        //完成按钮
 | 
				
			||||||
        public DelegateCommand AddFinish
 | 
					        //public DelegateCommand AddFinish
 | 
				
			||||||
        {
 | 
					        //{
 | 
				
			||||||
            get => new DelegateCommand(() =>
 | 
					        //    get => new DelegateCommand(() =>
 | 
				
			||||||
            {
 | 
					        //    {
 | 
				
			||||||
                if (ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).Count <= 0)
 | 
					        //        if (ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).Count <= 0)
 | 
				
			||||||
                {
 | 
					        //        {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    AlertMsg alertMsg = new AlertMsg
 | 
					        //            AlertMsg alertMsg = new AlertMsg
 | 
				
			||||||
                    {
 | 
					        //            {
 | 
				
			||||||
                        Message = "请选择药箱",
 | 
					        //                Message = "请选择药箱",
 | 
				
			||||||
                        Type = MsgType.SUCCESS,
 | 
					        //                Type = MsgType.SUCCESS,
 | 
				
			||||||
                    };
 | 
					        //            };
 | 
				
			||||||
                    _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
					        //            _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
				
			||||||
                    return;
 | 
					        //            return;
 | 
				
			||||||
                }
 | 
					        //        }
 | 
				
			||||||
                List<ChannelStock> jiaojieStocks = new List<ChannelStock>();
 | 
					        //        List<ChannelStock> jiaojieStocks = new List<ChannelStock>();
 | 
				
			||||||
                List<ChannelStock> cs = ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).ToList();
 | 
					        //        List<ChannelStock> cs = ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).ToList();
 | 
				
			||||||
                for (int i = 0; i < cs.Count; i++)
 | 
					        //        for (int i = 0; i < cs.Count; i++)
 | 
				
			||||||
                {
 | 
					        //        {
 | 
				
			||||||
                    ChannelStock copy = TransExpV2<ChannelStock, ChannelStock>.Trans(cs[i]);
 | 
					        //            ChannelStock copy = TransExpV2<ChannelStock, ChannelStock>.Trans(cs[i]);
 | 
				
			||||||
                    jiaojieStocks.Add(copy);
 | 
					        //            jiaojieStocks.Add(copy);
 | 
				
			||||||
                }
 | 
					        //        }
 | 
				
			||||||
                csList = jiaojieStocks.FindAll(cs => cs.ChannelLst.IsSelected).GroupBy(cs => cs.DrugId).Select(g => new
 | 
					        //        csList = jiaojieStocks.FindAll(cs => cs.ChannelLst.IsSelected).GroupBy(cs => cs.DrugId).Select(g => new
 | 
				
			||||||
                {
 | 
					        //        {
 | 
				
			||||||
                    DrugId = g.Key,
 | 
					        //            DrugId = g.Key,
 | 
				
			||||||
                    AddQuantity = g.Sum(s => s.AddQuantity)
 | 
					        //            AddQuantity = g.Sum(s => s.AddQuantity)
 | 
				
			||||||
                }).Select(cs => new ChannelStock() { DrugId = cs.DrugId, AddQuantity = cs.AddQuantity }).ToList();
 | 
					        //        }).Select(cs => new ChannelStock() { DrugId = cs.DrugId, AddQuantity = cs.AddQuantity }).ToList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                List<ChannelStock> channelStocks = new List<ChannelStock>();
 | 
					        //        List<ChannelStock> channelStocks = new List<ChannelStock>();
 | 
				
			||||||
                List<string> msg = new List<string>();
 | 
					        //        List<string> msg = new List<string>();
 | 
				
			||||||
                for (int i = 0; i < csList.Count; i++)
 | 
					        //        for (int i = 0; i < csList.Count; i++)
 | 
				
			||||||
                {
 | 
					        //        {
 | 
				
			||||||
                    List<ChannelStock> HasQChannels = SqlSugarHelper.Db.Queryable<ChannelStock>()
 | 
					        //            List<ChannelStock> HasQChannels = SqlSugarHelper.Db.Queryable<ChannelStock>()
 | 
				
			||||||
                        .Includes<DrugInfo>(cs => cs.DrugInfo)
 | 
					        //                .Includes<DrugInfo>(cs => cs.DrugInfo)
 | 
				
			||||||
                        .Where(cs => cs.Quantity > 0)
 | 
					        //                .Where(cs => cs.Quantity > 0)
 | 
				
			||||||
                        .Where(cs => cs.DrawerType == 1)
 | 
					        //                .Where(cs => cs.DrawerType == 1)
 | 
				
			||||||
                        .Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
 | 
					        //                .Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
 | 
				
			||||||
                        .Where(cs => cs.DrugId == csList[i].DrugId)
 | 
					        //                .Where(cs => cs.DrugId == csList[i].DrugId)
 | 
				
			||||||
                        .OrderBy(cs => cs.EffDate)
 | 
					        //                .OrderBy(cs => cs.EffDate)
 | 
				
			||||||
                        .OrderBy(cs => cs.DrawerNo)
 | 
					        //                .OrderBy(cs => cs.DrawerNo)
 | 
				
			||||||
                        .ToList();
 | 
					        //                .ToList();
 | 
				
			||||||
                    int total = HasQChannels.Sum(it => it.Quantity);
 | 
					        //            int total = HasQChannels.Sum(it => it.Quantity);
 | 
				
			||||||
                    int TakeQ = csList[i].AddQuantity;
 | 
					        //            int TakeQ = csList[i].AddQuantity;
 | 
				
			||||||
                    // 说明数量足够
 | 
					        //            // 说明数量足够
 | 
				
			||||||
                    if (total >= TakeQ)
 | 
					        //            if (total >= TakeQ)
 | 
				
			||||||
                    {
 | 
					        //            {
 | 
				
			||||||
                        for (int j = 0; TakeQ > 0; j++)
 | 
					        //                for (int j = 0; TakeQ > 0; j++)
 | 
				
			||||||
                        {
 | 
					        //                {
 | 
				
			||||||
                            ChannelStock stock = HasQChannels[j];
 | 
					        //                    ChannelStock stock = HasQChannels[j];
 | 
				
			||||||
                            if (TakeQ > stock.Quantity)
 | 
					        //                    if (TakeQ > stock.Quantity)
 | 
				
			||||||
                            {
 | 
					        //                    {
 | 
				
			||||||
                                stock.TakeQuantity = stock.Quantity;
 | 
					        //                        stock.TakeQuantity = stock.Quantity;
 | 
				
			||||||
                                channelStocks.Add(stock);
 | 
					        //                        channelStocks.Add(stock);
 | 
				
			||||||
                                TakeQ -= stock.Quantity;
 | 
					        //                        TakeQ -= stock.Quantity;
 | 
				
			||||||
                            }
 | 
					        //                    }
 | 
				
			||||||
                            else
 | 
					        //                    else
 | 
				
			||||||
                            {
 | 
					        //                    {
 | 
				
			||||||
                                stock.TakeQuantity = TakeQ;
 | 
					        //                        stock.TakeQuantity = TakeQ;
 | 
				
			||||||
                                channelStocks.Add(stock);
 | 
					        //                        channelStocks.Add(stock);
 | 
				
			||||||
                                TakeQ = 0;
 | 
					        //                        TakeQ = 0;
 | 
				
			||||||
                            }
 | 
					        //                    }
 | 
				
			||||||
                        }
 | 
					        //                }
 | 
				
			||||||
                    }
 | 
					        //            }
 | 
				
			||||||
                    else
 | 
					        //            else
 | 
				
			||||||
                    {
 | 
					        //            {
 | 
				
			||||||
                        msg.Add($"药品【{ChannelStocks[i].DrugInfo.DrugName}】库存不足,应取【{TakeQ}】库存【{total}】");
 | 
					        //                msg.Add($"药品【{ChannelStocks[i].DrugInfo.DrugName}】库存不足,应取【{TakeQ}】库存【{total}】");
 | 
				
			||||||
                    }
 | 
					        //            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					        //        }
 | 
				
			||||||
                if (msg.Count > 0)
 | 
					        //        if (msg.Count > 0)
 | 
				
			||||||
                {
 | 
					        //        {
 | 
				
			||||||
                    DialogParameters dialogParameters = new DialogParameters();
 | 
					        //            DialogParameters dialogParameters = new DialogParameters();
 | 
				
			||||||
                    dialogParameters.Add("msgInfo", msg);
 | 
					        //            dialogParameters.Add("msgInfo", msg);
 | 
				
			||||||
                    DialogServiceExtensions.ShowDialogHost(_dialogService, "ShowMessageDialog", dialogParameters, "RootDialog");
 | 
					        //            DialogServiceExtensions.ShowDialogHost(_dialogService, "ShowMessageDialog", dialogParameters, "RootDialog");
 | 
				
			||||||
                    return;
 | 
					        //            return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					        //        }
 | 
				
			||||||
                else
 | 
					        //        else
 | 
				
			||||||
                {
 | 
					        //        {
 | 
				
			||||||
                    channelStocks.Sort((a, b) =>
 | 
					        //            channelStocks.Sort((a, b) =>
 | 
				
			||||||
                    {
 | 
					        //            {
 | 
				
			||||||
                        if ((a.DrawerNo - b.DrawerNo) == 0)
 | 
					        //                if ((a.DrawerNo - b.DrawerNo) == 0)
 | 
				
			||||||
                        {
 | 
					        //                {
 | 
				
			||||||
                            return a.ColNo - b.ColNo;
 | 
					        //                    return a.ColNo - b.ColNo;
 | 
				
			||||||
                        }
 | 
					        //                }
 | 
				
			||||||
                        return a.DrawerNo - b.DrawerNo;
 | 
					        //                return a.DrawerNo - b.DrawerNo;
 | 
				
			||||||
                    });
 | 
					        //            });
 | 
				
			||||||
                }
 | 
					        //        }
 | 
				
			||||||
                List<ChannelStock> record = channelStocks.FindAll(it => it.TakeQuantity > 0).ToList();
 | 
					        //        List<ChannelStock> record = channelStocks.FindAll(it => it.TakeQuantity > 0).ToList();
 | 
				
			||||||
                if (record.Count > 0)
 | 
					        //        if (record.Count > 0)
 | 
				
			||||||
                {
 | 
					        //        {
 | 
				
			||||||
                    string InvoiceId = "AddJiaoJie_" + CurrentTimeMillis();
 | 
					        //            string InvoiceId = "AddJiaoJie_" + CurrentTimeMillis();
 | 
				
			||||||
                    var f = SqlSugarHelper.Db.UseTran(() =>
 | 
					        //            var f = SqlSugarHelper.Db.UseTran(() =>
 | 
				
			||||||
                    {
 | 
					        //            {
 | 
				
			||||||
                        for (int i = 0; i < record.Count; i++)
 | 
					        //                for (int i = 0; i < record.Count; i++)
 | 
				
			||||||
                        {
 | 
					        //                {
 | 
				
			||||||
                            ChannelStock it = record[i];
 | 
					        //                    ChannelStock it = record[i];
 | 
				
			||||||
                            // 更新数据 库存信息
 | 
					        //                    // 更新数据 库存信息
 | 
				
			||||||
                            SqlSugarHelper.Db.Updateable(new ChannelStock()
 | 
					        //                    SqlSugarHelper.Db.Updateable(new ChannelStock()
 | 
				
			||||||
                            {
 | 
					        //                    {
 | 
				
			||||||
                                Quantity = it.Quantity - it.TakeQuantity,
 | 
					        //                        Quantity = it.Quantity - it.TakeQuantity,
 | 
				
			||||||
                                ManuNo = it.ManuNo,
 | 
					        //                        ManuNo = it.ManuNo,
 | 
				
			||||||
                                EffDate = it.EffDate,
 | 
					        //                        EffDate = it.EffDate,
 | 
				
			||||||
                                Id = it.Id,
 | 
					        //                        Id = it.Id,
 | 
				
			||||||
                            }).UpdateColumns(it => new { it.Quantity, it.ManuNo, it.EffDate }).ExecuteCommand();
 | 
					        //                    }).UpdateColumns(it => new { it.Quantity, it.ManuNo, it.EffDate }).ExecuteCommand();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                            //更新 交接柜 库存信息
 | 
					        //                    //更新 交接柜 库存信息
 | 
				
			||||||
                            List<ChannelStock> jiaojie = jiaojieStocks.Where(cs => cs.DrugId == it.DrugId).ToList();
 | 
					        //                    List<ChannelStock> jiaojie = jiaojieStocks.Where(cs => cs.DrugId == it.DrugId).ToList();
 | 
				
			||||||
                            if (jiaojie != null && jiaojie.Count > 0)
 | 
					        //                    if (jiaojie != null && jiaojie.Count > 0)
 | 
				
			||||||
                            {
 | 
					        //                    {
 | 
				
			||||||
                                for (int j = 0; j < jiaojie.Count; j++)
 | 
					        //                        for (int j = 0; j < jiaojie.Count; j++)
 | 
				
			||||||
                                {
 | 
					        //                        {
 | 
				
			||||||
                                    // 更新数据 交接柜 库存信息
 | 
					        //                            // 更新数据 交接柜 库存信息
 | 
				
			||||||
                                    ChannelStock jiaojie_it = jiaojie[j];
 | 
					        //                            ChannelStock jiaojie_it = jiaojie[j];
 | 
				
			||||||
                                    SqlSugarHelper.Db.Updateable(new ChannelStock()
 | 
					        //                            SqlSugarHelper.Db.Updateable(new ChannelStock()
 | 
				
			||||||
                                    {
 | 
					        //                            {
 | 
				
			||||||
                                        Quantity = jiaojie_it.BaseQuantity,
 | 
					        //                                Quantity = jiaojie_it.BaseQuantity,
 | 
				
			||||||
                                        //ManuNo = it.ManuNo,
 | 
					        //                                //ManuNo = it.ManuNo,
 | 
				
			||||||
                                        //EffDate = it.EffDate,
 | 
					        //                                //EffDate = it.EffDate,
 | 
				
			||||||
                                        Id = jiaojie_it.Id,
 | 
					        //                                Id = jiaojie_it.Id,
 | 
				
			||||||
                                    }).UpdateColumns(jiaojie_it => new { jiaojie_it.Quantity }).ExecuteCommand();
 | 
					        //                            }).UpdateColumns(jiaojie_it => new { jiaojie_it.Quantity }).ExecuteCommand();
 | 
				
			||||||
                                }
 | 
					        //                        }
 | 
				
			||||||
                            }
 | 
					        //                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                            // 保存数据 出库记录
 | 
					        //                    // 保存数据 出库记录
 | 
				
			||||||
                            SqlSugarHelper.Db.Insertable(new MachineRecord()
 | 
					        //                    SqlSugarHelper.Db.Insertable(new MachineRecord()
 | 
				
			||||||
                            {
 | 
					        //                    {
 | 
				
			||||||
                                MachineId = it.MachineId,
 | 
					        //                        MachineId = it.MachineId,
 | 
				
			||||||
                                DrawerNo = it.DrawerNo,
 | 
					        //                        DrawerNo = it.DrawerNo,
 | 
				
			||||||
                                ColNo = it.ColNo,
 | 
					        //                        ColNo = it.ColNo,
 | 
				
			||||||
                                DrugId = it.DrugId,
 | 
					        //                        DrugId = it.DrugId,
 | 
				
			||||||
                                ManuNo = it.ManuNo,
 | 
					        //                        ManuNo = it.ManuNo,
 | 
				
			||||||
                                EffDate = !String.IsNullOrEmpty(it.EffDate) ? DateTime.ParseExact(it.EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
 | 
					        //                        EffDate = !String.IsNullOrEmpty(it.EffDate) ? DateTime.ParseExact(it.EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
 | 
				
			||||||
                                Operator = HomeWindowViewModel.Operator?.Id,
 | 
					        //                        Operator = HomeWindowViewModel.Operator?.Id,
 | 
				
			||||||
                                Reviewer = HomeWindowViewModel.Reviewer?.Id,
 | 
					        //                        Reviewer = HomeWindowViewModel.Reviewer?.Id,
 | 
				
			||||||
                                OperationTime = DateTime.Now,
 | 
					        //                        OperationTime = DateTime.Now,
 | 
				
			||||||
                                Quantity = it.TakeQuantity,
 | 
					        //                        Quantity = it.TakeQuantity,
 | 
				
			||||||
                                Type = 2,
 | 
					        //                        Type = 2,
 | 
				
			||||||
                                InvoiceId = InvoiceId
 | 
					        //                        InvoiceId = InvoiceId
 | 
				
			||||||
                            }).ExecuteCommand();
 | 
					        //                    }).ExecuteCommand();
 | 
				
			||||||
                        }
 | 
					        //                }
 | 
				
			||||||
                        return true;
 | 
					        //                return true;
 | 
				
			||||||
                    });
 | 
					        //            });
 | 
				
			||||||
                    if (f.Data)
 | 
					        //            if (f.Data)
 | 
				
			||||||
                    {
 | 
					        //            {
 | 
				
			||||||
                        // 更新屏显库存
 | 
					        //                // 更新屏显库存
 | 
				
			||||||
                        List<ChannelStock> singleChannels = record.FindAll(it => it.BoardType != 5);
 | 
					        //                List<ChannelStock> singleChannels = record.FindAll(it => it.BoardType != 5);
 | 
				
			||||||
                        if (singleChannels.Count > 0)
 | 
					        //                if (singleChannels.Count > 0)
 | 
				
			||||||
                        {
 | 
					        //                {
 | 
				
			||||||
                            singleChannels.ForEach(it =>
 | 
					        //                    singleChannels.ForEach(it =>
 | 
				
			||||||
                            {
 | 
					        //                    {
 | 
				
			||||||
                                _portUtil.WriteQuantity(it.DrawerNo, it.ColNo, it.Quantity - it.TakeQuantity);
 | 
					        //                        _portUtil.WriteQuantity(it.DrawerNo, it.ColNo, it.Quantity - it.TakeQuantity);
 | 
				
			||||||
                            });
 | 
					        //                    });
 | 
				
			||||||
                        }
 | 
					        //                }
 | 
				
			||||||
                        AlertMsg alertMsg = new AlertMsg
 | 
					        //                AlertMsg alertMsg = new AlertMsg
 | 
				
			||||||
                        {
 | 
					        //                {
 | 
				
			||||||
                            Message = "补药完成,库存已更新",
 | 
					        //                    Message = "补药完成,库存已更新",
 | 
				
			||||||
                            Type = MsgType.SUCCESS,
 | 
					        //                    Type = MsgType.SUCCESS,
 | 
				
			||||||
                        };
 | 
					        //                };
 | 
				
			||||||
                        _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
					        //                _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
				
			||||||
                        RequestData();
 | 
					        //                RequestData();
 | 
				
			||||||
                    }
 | 
					        //            }
 | 
				
			||||||
                    if (!f.IsSuccess)
 | 
					        //            if (!f.IsSuccess)
 | 
				
			||||||
                    {
 | 
					        //            {
 | 
				
			||||||
                        AlertMsg alertMsg = new AlertMsg
 | 
					        //                AlertMsg alertMsg = new AlertMsg
 | 
				
			||||||
                        {
 | 
					        //                {
 | 
				
			||||||
                            Message = "补药操作失败,库存更新失败!",
 | 
					        //                    Message = "补药操作失败,库存更新失败!",
 | 
				
			||||||
                            Type = MsgType.ERROR,
 | 
					        //                    Type = MsgType.ERROR,
 | 
				
			||||||
                        };
 | 
					        //                };
 | 
				
			||||||
                        _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
					        //                _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
				
			||||||
                    }
 | 
					        //            }
 | 
				
			||||||
                }
 | 
					        //        }
 | 
				
			||||||
                else
 | 
					        //        else
 | 
				
			||||||
                {
 | 
					        //        {
 | 
				
			||||||
                    AlertMsg alertMsg = new AlertMsg
 | 
					        //            AlertMsg alertMsg = new AlertMsg
 | 
				
			||||||
                    {
 | 
					        //            {
 | 
				
			||||||
                        Message = "补药数量有误",
 | 
					        //                Message = "补药数量有误",
 | 
				
			||||||
                        Type = MsgType.ERROR
 | 
					        //                Type = MsgType.ERROR
 | 
				
			||||||
                    };
 | 
					        //            };
 | 
				
			||||||
                    _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
					        //            _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
				
			||||||
                }
 | 
					        //        }
 | 
				
			||||||
            });
 | 
					        //    });
 | 
				
			||||||
        }
 | 
					        //}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //取消
 | 
					        //取消
 | 
				
			||||||
        public DelegateCommand CancleAdd
 | 
					        //public DelegateCommand CancleAdd
 | 
				
			||||||
        {
 | 
					        //{
 | 
				
			||||||
            get => new DelegateCommand(() =>
 | 
					        //    get => new DelegateCommand(() =>
 | 
				
			||||||
            {
 | 
					        //    {
 | 
				
			||||||
                _portUtil.ResetData();
 | 
					        //        _portUtil.ResetData();
 | 
				
			||||||
                Status = 0;
 | 
					        //        Status = 0;
 | 
				
			||||||
                IsEnable = true;
 | 
					        //        IsEnable = true;
 | 
				
			||||||
                CurrentNum = 0;
 | 
					        //        CurrentNum = 0;
 | 
				
			||||||
            });
 | 
					        //    });
 | 
				
			||||||
        }
 | 
					        //}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public DelegateCommand RejectReport_Download
 | 
					        public DelegateCommand RejectReport_Download
 | 
				
			||||||
| 
						 | 
					@ -437,14 +516,16 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                //    DrugId = g.Key, AddQuantity = g.Sum(s => s.AddQuantity)
 | 
					                //    DrugId = g.Key, AddQuantity = g.Sum(s => s.AddQuantity)
 | 
				
			||||||
                //}).Select(cs=>new ChannelStock() { DrugId=cs.DrugId,AddQuantity=cs.AddQuantity }).ToList();
 | 
					                //}).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)
 | 
					                if (csList != null && csList.Count > 0)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    // 此处延时1毫秒,等待页面渲染
 | 
					                    // 此处延时1毫秒,等待页面渲染
 | 
				
			||||||
                    await Task.Delay(TimeSpan.FromMilliseconds(1));
 | 
					                    await Task.Delay(TimeSpan.FromMilliseconds(1));
 | 
				
			||||||
                    DialogParameters dialogParameters = new DialogParameters();
 | 
					                    DialogParameters dialogParameters = new DialogParameters();
 | 
				
			||||||
                    dialogParameters.Add("ChannelStocks", csList);
 | 
					                    dialogParameters.Add("_ChannelStock", csList);
 | 
				
			||||||
 | 
					                    //List<string> drugIdLst = ChannelStocks.FindAll(cs => cs.DrawerNo == _ChannelStock.DrawerNo).Select(cs => cs.DrugId).ToList();
 | 
				
			||||||
 | 
					                    //dialogParameters.Add("drugIdLst", drugIdLst);
 | 
				
			||||||
                    DialogServiceExtensions.ShowDialogHost(_dialogService, "AddToJiaoJieDialog", dialogParameters, DoDialogResult, "RootDialog");
 | 
					                    DialogServiceExtensions.ShowDialogHost(_dialogService, "AddToJiaoJieDialog", dialogParameters, DoDialogResult, "RootDialog");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
| 
						 | 
					@ -470,38 +551,61 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
            //}
 | 
					            //}
 | 
				
			||||||
            //MessageBox.Show("返回值:" + dialogResult.Result.ToString());
 | 
					            //MessageBox.Show("返回值:" + dialogResult.Result.ToString());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        int AddToJiaoJieClickNum = 1;
 | 
					        //int AddToJiaoJieClickNum = 1;
 | 
				
			||||||
        //设置选中药箱的复选框状态
 | 
					        ////设置选中药箱的复选框状态
 | 
				
			||||||
        private void SetIsSelected(ChannelStock channelStock)
 | 
					        //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;
 | 
					                // 此处延时1毫秒,等待页面渲染
 | 
				
			||||||
                if (channelStock.ChannelLst.State == 0)
 | 
					                await Task.Delay(TimeSpan.FromMilliseconds(1));
 | 
				
			||||||
                {
 | 
					                //选中药箱号下的所有药品id
 | 
				
			||||||
                    channelStock.ChannelLst.IsSelected = !channelStock.ChannelLst.IsSelected;
 | 
					                DialogParameters dialogParameters = new DialogParameters();
 | 
				
			||||||
                }
 | 
					                dialogParameters.Add("_ChannelStock", _ChannelList.channelStocks);
 | 
				
			||||||
                else
 | 
					                DialogServiceExtensions.ShowDialogHost(_dialogService, "AddToJiaoJieDialog", dialogParameters, DoDialogResult, "RootDialog");
 | 
				
			||||||
                {
 | 
					
 | 
				
			||||||
                    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"));
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,6 +10,21 @@
 | 
				
			||||||
             xmlns:prism="http://prismlibrary.com/"
 | 
					             xmlns:prism="http://prismlibrary.com/"
 | 
				
			||||||
             mc:Ignorable="d" 
 | 
					             mc:Ignorable="d" 
 | 
				
			||||||
             d:DesignHeight="450" d:DesignWidth="800">
 | 
					             d:DesignHeight="450" d:DesignWidth="800">
 | 
				
			||||||
 | 
					    <UserControl.Resources>
 | 
				
			||||||
 | 
					        <Style x:Key="st" TargetType="GridViewColumnHeader">
 | 
				
			||||||
 | 
					            <Style.Setters>
 | 
				
			||||||
 | 
					                <Setter Property="Height">
 | 
				
			||||||
 | 
					                    <Setter.Value>55</Setter.Value>
 | 
				
			||||||
 | 
					                </Setter>
 | 
				
			||||||
 | 
					                <Setter Property="Background">
 | 
				
			||||||
 | 
					                    <Setter.Value>#31ccec</Setter.Value>
 | 
				
			||||||
 | 
					                </Setter>
 | 
				
			||||||
 | 
					                <Setter Property="Foreground">
 | 
				
			||||||
 | 
					                    <Setter.Value>white</Setter.Value>
 | 
				
			||||||
 | 
					                </Setter>
 | 
				
			||||||
 | 
					            </Style.Setters>
 | 
				
			||||||
 | 
					        </Style>
 | 
				
			||||||
 | 
					    </UserControl.Resources>
 | 
				
			||||||
    <Grid>
 | 
					    <Grid>
 | 
				
			||||||
        <Grid.Resources>
 | 
					        <Grid.Resources>
 | 
				
			||||||
            <!--<CollectionViewSource x:Key="GroupedDataList" Source="{Binding ChannelStocks}">
 | 
					            <!--<CollectionViewSource x:Key="GroupedDataList" Source="{Binding ChannelStocks}">
 | 
				
			||||||
| 
						 | 
					@ -21,6 +36,19 @@
 | 
				
			||||||
            <convert:TotalCountConverter x:Key="TotalCountConverter" />
 | 
					            <convert:TotalCountConverter x:Key="TotalCountConverter" />
 | 
				
			||||||
            <convert:StatusConverter x:Key="StatusConverter" />
 | 
					            <convert:StatusConverter x:Key="StatusConverter" />
 | 
				
			||||||
            <convert:StockStatusConverter x:Key="StockStatusConverter" />
 | 
					            <convert:StockStatusConverter x:Key="StockStatusConverter" />
 | 
				
			||||||
 | 
					            <Style x:Key="st" TargetType="GridViewColumnHeader">
 | 
				
			||||||
 | 
					                <Style.Setters>
 | 
				
			||||||
 | 
					                    <Setter Property="Height">
 | 
				
			||||||
 | 
					                        <Setter.Value>55</Setter.Value>
 | 
				
			||||||
 | 
					                    </Setter>
 | 
				
			||||||
 | 
					                    <Setter Property="Background">
 | 
				
			||||||
 | 
					                        <Setter.Value>#31ccec</Setter.Value>
 | 
				
			||||||
 | 
					                    </Setter>
 | 
				
			||||||
 | 
					                    <Setter Property="Foreground">
 | 
				
			||||||
 | 
					                        <Setter.Value>white</Setter.Value>
 | 
				
			||||||
 | 
					                    </Setter>
 | 
				
			||||||
 | 
					                </Style.Setters>
 | 
				
			||||||
 | 
					            </Style>
 | 
				
			||||||
        </Grid.Resources>
 | 
					        </Grid.Resources>
 | 
				
			||||||
        <Grid.RowDefinitions>
 | 
					        <Grid.RowDefinitions>
 | 
				
			||||||
            <RowDefinition Height="Auto" />
 | 
					            <RowDefinition Height="Auto" />
 | 
				
			||||||
| 
						 | 
					@ -73,12 +101,12 @@
 | 
				
			||||||
                    Style="{StaticResource MaterialDesignOutlinedLightButton}"
 | 
					                    Style="{StaticResource MaterialDesignOutlinedLightButton}"
 | 
				
			||||||
                    Content="账册报表" />
 | 
					                    Content="账册报表" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                <Button
 | 
					                <!--<Button
 | 
				
			||||||
                    Margin="3 0 3 0"
 | 
					                    Margin="3 0 3 0"
 | 
				
			||||||
                    VerticalAlignment="Center"
 | 
					                    VerticalAlignment="Center"
 | 
				
			||||||
                    Command="{Binding TakeDrugCommand}"
 | 
					                    Command="{Binding TakeDrugCommand}"
 | 
				
			||||||
                    Style="{StaticResource MaterialDesignOutlinedLightButton}"
 | 
					                    Style="{StaticResource MaterialDesignOutlinedLightButton}"
 | 
				
			||||||
                    Content="取药" />
 | 
					                    Content="取药" />-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                <Button
 | 
					                <Button
 | 
				
			||||||
                    Margin="6 0 6 0"
 | 
					                    Margin="6 0 6 0"
 | 
				
			||||||
| 
						 | 
					@ -92,7 +120,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        </Grid>
 | 
					        </Grid>
 | 
				
			||||||
        <DataGrid
 | 
					        <!--<DataGrid
 | 
				
			||||||
                Grid.Row="1"
 | 
					                Grid.Row="1"
 | 
				
			||||||
                materialDesign:DataGridAssist.ColumnHeaderPadding="15"
 | 
					                materialDesign:DataGridAssist.ColumnHeaderPadding="15"
 | 
				
			||||||
                ItemsSource="{Binding ChannelStocks,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
 | 
					                ItemsSource="{Binding ChannelStocks,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
 | 
				
			||||||
| 
						 | 
					@ -110,7 +138,8 @@
 | 
				
			||||||
                    <Setter Property="BorderThickness" Value="0.6"/>
 | 
					                    <Setter Property="BorderThickness" Value="0.6"/>
 | 
				
			||||||
                    <Setter Property="HorizontalContentAlignment" Value="Center"/>
 | 
					                    <Setter Property="HorizontalContentAlignment" Value="Center"/>
 | 
				
			||||||
                </Style>
 | 
					                </Style>
 | 
				
			||||||
                <!--<Style TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource MaterialDesignDataGridCell}">
 | 
					                -->
 | 
				
			||||||
 | 
					        <!--<Style TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource MaterialDesignDataGridCell}">
 | 
				
			||||||
                    <Style.Triggers>
 | 
					                    <Style.Triggers>
 | 
				
			||||||
                        <Trigger Property="IsReadOnly" Value="True">
 | 
					                        <Trigger Property="IsReadOnly" Value="True">
 | 
				
			||||||
                            <Setter Property="BorderBrush" Value="Transparent" />
 | 
					                            <Setter Property="BorderBrush" Value="Transparent" />
 | 
				
			||||||
| 
						 | 
					@ -119,6 +148,7 @@
 | 
				
			||||||
                    </Style.Triggers>
 | 
					                    </Style.Triggers>
 | 
				
			||||||
                    <Setter Property="HorizontalAlignment" Value="Center"/>
 | 
					                    <Setter Property="HorizontalAlignment" Value="Center"/>
 | 
				
			||||||
                </Style>-->
 | 
					                </Style>-->
 | 
				
			||||||
 | 
					        <!--
 | 
				
			||||||
                <Style TargetType="DataGridCell">
 | 
					                <Style TargetType="DataGridCell">
 | 
				
			||||||
                    <Setter Property="Template">
 | 
					                    <Setter Property="Template">
 | 
				
			||||||
                        <Setter.Value>
 | 
					                        <Setter.Value>
 | 
				
			||||||
| 
						 | 
					@ -166,12 +196,94 @@
 | 
				
			||||||
                <DataGridTextColumn IsReadOnly="True" Header="药品名称" Binding="{Binding DrugInfo.DrugName}"/>
 | 
					                <DataGridTextColumn IsReadOnly="True" Header="药品名称" Binding="{Binding DrugInfo.DrugName}"/>
 | 
				
			||||||
                <DataGridTextColumn IsReadOnly="True" Header="规格" Binding="{Binding DrugInfo.DrugSpec}"/>
 | 
					                <DataGridTextColumn IsReadOnly="True" Header="规格" Binding="{Binding DrugInfo.DrugSpec}"/>
 | 
				
			||||||
                <DataGridTextColumn IsReadOnly="True" Header="厂家" Binding="{Binding DrugInfo.Manufactory}"/>
 | 
					                <DataGridTextColumn IsReadOnly="True" Header="厂家" Binding="{Binding DrugInfo.Manufactory}"/>
 | 
				
			||||||
                <DataGridTextColumn IsReadOnly="True" Header="批次" Binding="{Binding ManuNo}"/>
 | 
					                -->
 | 
				
			||||||
 | 
					        <!--<DataGridTextColumn IsReadOnly="True" Header="批次" Binding="{Binding ManuNo}"/>-->
 | 
				
			||||||
 | 
					        <!--
 | 
				
			||||||
                <DataGridTextColumn IsReadOnly="True" Header="药品基数" Binding="{Binding BaseQuantity}"/>
 | 
					                <DataGridTextColumn IsReadOnly="True" Header="药品基数" Binding="{Binding BaseQuantity}"/>
 | 
				
			||||||
                <DataGridTextColumn IsReadOnly="True" Header="需补药数量" Binding="{Binding AddQuantity}"/>
 | 
					                <DataGridTextColumn IsReadOnly="True" Header="需补药数量" Binding="{Binding AddQuantity}"/>
 | 
				
			||||||
                <DataGridTextColumn IsReadOnly="True" Header="状态" Binding="{Binding ChannelLst.State,Converter={StaticResource StockStatusConverter},ConverterParameter=TextState}"/>
 | 
					                <DataGridTextColumn IsReadOnly="True" Header="状态" Binding="{Binding ChannelLst.State,Converter={StaticResource StockStatusConverter},ConverterParameter=TextState}"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            </DataGrid.Columns>
 | 
					            </DataGrid.Columns>
 | 
				
			||||||
        </DataGrid>
 | 
					        </DataGrid>-->
 | 
				
			||||||
 | 
					        <ListView  Grid.ColumnSpan="2"
 | 
				
			||||||
 | 
					         Padding="0 6 0 0" Grid.Row="1"
 | 
				
			||||||
 | 
					         ItemsSource="{Binding _ChannelLists, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"                
 | 
				
			||||||
 | 
					         SelectedItem="{Binding _ChannelList}"
 | 
				
			||||||
 | 
					         materialDesign:ListViewAssist.HeaderRowBackground="#31ccec"
 | 
				
			||||||
 | 
					         materialDesign:DataGridAssist.ColumnHeaderPadding="10"
 | 
				
			||||||
 | 
					         materialDesign:ListViewAssist.ListViewItemPadding="13">
 | 
				
			||||||
 | 
					            <ListView.Resources>
 | 
				
			||||||
 | 
					                <Style TargetType="{x:Type GridViewColumnHeader}" BasedOn="{StaticResource {x:Type GridViewColumnHeader}}">
 | 
				
			||||||
 | 
					                    <Setter Property="Foreground" Value="White" />
 | 
				
			||||||
 | 
					                </Style>
 | 
				
			||||||
 | 
					            </ListView.Resources>
 | 
				
			||||||
 | 
					            <i:Interaction.Triggers>
 | 
				
			||||||
 | 
					                <i:EventTrigger EventName="SelectionChanged">
 | 
				
			||||||
 | 
					                    <i:InvokeCommandAction Command="{Binding RowSelected}" />
 | 
				
			||||||
 | 
					                </i:EventTrigger>
 | 
				
			||||||
 | 
					            </i:Interaction.Triggers>
 | 
				
			||||||
 | 
					            <ListView.View>
 | 
				
			||||||
 | 
					                <GridView  ColumnHeaderContainerStyle="{StaticResource st}">
 | 
				
			||||||
 | 
					                    <GridViewColumn Width="80"
 | 
				
			||||||
 | 
					                         DisplayMemberBinding="{Binding DrawerNo}"
 | 
				
			||||||
 | 
					                         Header="药箱号"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    <GridViewColumn Header="药品名称" Width="150">
 | 
				
			||||||
 | 
					                        <GridViewColumn.CellTemplate>
 | 
				
			||||||
 | 
					                            <DataTemplate>
 | 
				
			||||||
 | 
					                                <ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="DrugInfo.DrugName" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
 | 
				
			||||||
 | 
					                            </DataTemplate>
 | 
				
			||||||
 | 
					                        </GridViewColumn.CellTemplate>
 | 
				
			||||||
 | 
					                    </GridViewColumn>
 | 
				
			||||||
 | 
					                    <GridViewColumn Header="厂家" Width="150">
 | 
				
			||||||
 | 
					                        <GridViewColumn.CellTemplate>
 | 
				
			||||||
 | 
					                            <DataTemplate>
 | 
				
			||||||
 | 
					                                <ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="DrugInfo.Manufactory" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
 | 
				
			||||||
 | 
					                            </DataTemplate>
 | 
				
			||||||
 | 
					                        </GridViewColumn.CellTemplate>
 | 
				
			||||||
 | 
					                    </GridViewColumn>
 | 
				
			||||||
 | 
					                    <GridViewColumn Header="规格" Width="100">
 | 
				
			||||||
 | 
					                        <GridViewColumn.CellTemplate>
 | 
				
			||||||
 | 
					                            <DataTemplate>
 | 
				
			||||||
 | 
					                                <ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="DrugInfo.DrugSpec" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
 | 
				
			||||||
 | 
					                            </DataTemplate>
 | 
				
			||||||
 | 
					                        </GridViewColumn.CellTemplate>
 | 
				
			||||||
 | 
					                    </GridViewColumn>
 | 
				
			||||||
 | 
					                    <GridViewColumn Header="基数" Width="100">
 | 
				
			||||||
 | 
					                        <GridViewColumn.CellTemplate>
 | 
				
			||||||
 | 
					                            <DataTemplate>
 | 
				
			||||||
 | 
					                                <ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="BaseQuantity" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
 | 
				
			||||||
 | 
					                            </DataTemplate>
 | 
				
			||||||
 | 
					                        </GridViewColumn.CellTemplate>
 | 
				
			||||||
 | 
					                    </GridViewColumn>
 | 
				
			||||||
 | 
					                    <GridViewColumn Header="需补药数" Width="100">
 | 
				
			||||||
 | 
					                        <GridViewColumn.CellTemplate>
 | 
				
			||||||
 | 
					                            <DataTemplate>
 | 
				
			||||||
 | 
					                                <ListBox ItemsSource="{Binding channelStocks}" DisplayMemberPath="NeedNum" materialDesign:ListBoxItemAssist.ShowSelection="False"></ListBox>
 | 
				
			||||||
 | 
					                            </DataTemplate>
 | 
				
			||||||
 | 
					                        </GridViewColumn.CellTemplate>
 | 
				
			||||||
 | 
					                    </GridViewColumn>
 | 
				
			||||||
 | 
					                    <GridViewColumn Width="100"
 | 
				
			||||||
 | 
					                          DisplayMemberBinding="{Binding State,Converter={StaticResource StockStatusConverter},ConverterParameter=TextState}"
 | 
				
			||||||
 | 
					                          Header="状态"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    <!--<GridViewColumn Width="200"
 | 
				
			||||||
 | 
					             DisplayMemberBinding="{Binding Drug.DrugName}"
 | 
				
			||||||
 | 
					             Header="药品名称"/>
 | 
				
			||||||
 | 
					                    <GridViewColumn Width="200"
 | 
				
			||||||
 | 
					             DisplayMemberBinding="{Binding Drug.Manufactory}"
 | 
				
			||||||
 | 
					             Header="厂家"/>
 | 
				
			||||||
 | 
					                    <GridViewColumn Width="200"
 | 
				
			||||||
 | 
					             DisplayMemberBinding="{Binding Drug.DrugSpec}"
 | 
				
			||||||
 | 
					             Header="规格"/>
 | 
				
			||||||
 | 
					                    <GridViewColumn Width="100"
 | 
				
			||||||
 | 
					             DisplayMemberBinding="{Binding BaseQuantity}"
 | 
				
			||||||
 | 
					             Header="药品基数"/>
 | 
				
			||||||
 | 
					                    <GridViewColumn Width="100"
 | 
				
			||||||
 | 
					             DisplayMemberBinding="{Binding BaseQuantity}"
 | 
				
			||||||
 | 
					             Header="需补药数量"/>-->
 | 
				
			||||||
 | 
					                </GridView>
 | 
				
			||||||
 | 
					            </ListView.View>
 | 
				
			||||||
 | 
					        </ListView>
 | 
				
			||||||
    </Grid>
 | 
					    </Grid>
 | 
				
			||||||
</UserControl>
 | 
					</UserControl>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,42 +23,42 @@ namespace DM_Weight.Views
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public partial class AddToJiaoJieWindow : UserControl
 | 
					    public partial class AddToJiaoJieWindow : UserControl
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        IEventAggregator _eventAggregator;
 | 
					        //IEventAggregator _eventAggregator;
 | 
				
			||||||
        public AddToJiaoJieWindow(IEventAggregator eventAggregator)
 | 
					        public AddToJiaoJieWindow()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            InitializeComponent();
 | 
					            InitializeComponent();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            _eventAggregator = eventAggregator;
 | 
					            //_eventAggregator = eventAggregator;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        //展开
 | 
					        //展开
 | 
				
			||||||
        private void Expander_Expanded(object sender, RoutedEventArgs e)
 | 
					        //private void Expander_Expanded(object sender, RoutedEventArgs e)
 | 
				
			||||||
        {
 | 
					        //{
 | 
				
			||||||
            //Expander expander = sender as Expander;
 | 
					        //    //Expander expander = sender as Expander;
 | 
				
			||||||
            //if (expander != null)
 | 
					        //    //if (expander != null)
 | 
				
			||||||
            //{
 | 
					        //    //{
 | 
				
			||||||
            //    // 假设你的数据在DataContext中
 | 
					        //    //    // 假设你的数据在DataContext中
 | 
				
			||||||
            //    List<ChannelStock> data = expander.DataContext as List<ChannelStock>;
 | 
					        //    //    List<ChannelStock> data = expander.DataContext as List<ChannelStock>;
 | 
				
			||||||
            //    if (data != null&&data.Count>0)
 | 
					        //    //    if (data != null&&data.Count>0)
 | 
				
			||||||
            //    {
 | 
					        //    //    {
 | 
				
			||||||
            //        // 使用data做你需要的操作
 | 
					        //    //        // 使用data做你需要的操作
 | 
				
			||||||
            //    }
 | 
					        //    //    }
 | 
				
			||||||
            //}
 | 
					        //    //}
 | 
				
			||||||
        }
 | 
					        //}
 | 
				
			||||||
        //收起
 | 
					        //收起
 | 
				
			||||||
        private void Expander_Collapsed(object sender, RoutedEventArgs e)
 | 
					        //private void Expander_Collapsed(object sender, RoutedEventArgs e)
 | 
				
			||||||
        {
 | 
					        //{
 | 
				
			||||||
            Expander expander = sender as Expander;
 | 
					        //    Expander expander = sender as Expander;
 | 
				
			||||||
            if (expander != null)
 | 
					        //    if (expander != null)
 | 
				
			||||||
            {
 | 
					        //    {
 | 
				
			||||||
                // 假设你的数据在DataContext中
 | 
					        //        // 假设你的数据在DataContext中
 | 
				
			||||||
                CollectionViewGroup group = expander.DataContext as CollectionViewGroup;
 | 
					        //        CollectionViewGroup group = expander.DataContext as CollectionViewGroup;
 | 
				
			||||||
                if (group != null)
 | 
					        //        if (group != null)
 | 
				
			||||||
                {
 | 
					        //        {
 | 
				
			||||||
                    ChannelStock internalGroup = group.Items[0] as ChannelStock;
 | 
					        //            ChannelStock internalGroup = group.Items[0] as ChannelStock;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    _eventAggregator.GetEvent<IsSelectedEvent>().Publish(internalGroup);
 | 
					        //            _eventAggregator.GetEvent<IsSelectedEvent>().Publish(internalGroup);
 | 
				
			||||||
                }
 | 
					        //        }
 | 
				
			||||||
            }
 | 
					        //    }
 | 
				
			||||||
        }
 | 
					        //}
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -75,7 +75,7 @@
 | 
				
			||||||
                            EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
 | 
					                            EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
 | 
				
			||||||
                         />
 | 
					                         />
 | 
				
			||||||
                    <DataGridTextColumn  Width="100"
 | 
					                    <DataGridTextColumn  Width="100"
 | 
				
			||||||
                            Header="数量" 
 | 
					                            Header="库存" 
 | 
				
			||||||
                            IsReadOnly="True"
 | 
					                            IsReadOnly="True"
 | 
				
			||||||
                            Binding="{Binding Quantity}"
 | 
					                            Binding="{Binding Quantity}"
 | 
				
			||||||
                            ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
 | 
					                            ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
 | 
				
			||||||
| 
						 | 
					@ -95,13 +95,25 @@
 | 
				
			||||||
                            ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
 | 
					                            ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
 | 
				
			||||||
                            EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
 | 
					                            EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
 | 
				
			||||||
                        />
 | 
					                        />
 | 
				
			||||||
                    <DataGridTextColumn  Width="100"
 | 
					                    <!--<DataGridTextColumn  Width="100"
 | 
				
			||||||
                            Header="取出数量"
 | 
					                            Header="取出数量"
 | 
				
			||||||
                            IsReadOnly="True"
 | 
					                            IsReadOnly="True"
 | 
				
			||||||
                            Binding="{Binding TakeQuantity}"
 | 
					                            Binding="{Binding TakeQuantity}"
 | 
				
			||||||
                            ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
 | 
					                            ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
 | 
				
			||||||
                            EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
 | 
					                            EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"
 | 
				
			||||||
                        />
 | 
					                        />-->
 | 
				
			||||||
 | 
					                    <DataGridTemplateColumn  Header="取出数量">
 | 
				
			||||||
 | 
					                        <DataGridTemplateColumn.CellTemplate>
 | 
				
			||||||
 | 
					                            <DataTemplate>
 | 
				
			||||||
 | 
					                                <TextBox Width="80" Style="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}">
 | 
				
			||||||
 | 
					                                    <TextBox.Text>
 | 
				
			||||||
 | 
					                                        <Binding Path="TakeQuantity" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
 | 
				
			||||||
 | 
					                                        </Binding>
 | 
				
			||||||
 | 
					                                    </TextBox.Text>
 | 
				
			||||||
 | 
					                                </TextBox>
 | 
				
			||||||
 | 
					                            </DataTemplate>
 | 
				
			||||||
 | 
					                        </DataGridTemplateColumn.CellTemplate>
 | 
				
			||||||
 | 
					                    </DataGridTemplateColumn>
 | 
				
			||||||
                </DataGrid.Columns>
 | 
					                </DataGrid.Columns>
 | 
				
			||||||
            </DataGrid>
 | 
					            </DataGrid>
 | 
				
			||||||
            <Grid Grid.Row="2">
 | 
					            <Grid Grid.Row="2">
 | 
				
			||||||
| 
						 | 
					@ -147,6 +159,9 @@
 | 
				
			||||||
                </StackPanel>
 | 
					                </StackPanel>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            </Grid>
 | 
					            </Grid>
 | 
				
			||||||
 | 
					            <materialDesign:Snackbar
 | 
				
			||||||
 | 
					        Background="{Binding SnackbarBackground}"
 | 
				
			||||||
 | 
					        MessageQueue="{Binding SnackbarMessageQueue}"/>
 | 
				
			||||||
        </Grid>
 | 
					        </Grid>
 | 
				
			||||||
    </materialDesign:Card>
 | 
					    </materialDesign:Card>
 | 
				
			||||||
</UserControl>
 | 
					</UserControl>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,174 @@
 | 
				
			||||||
 | 
					<UserControl x:Class="DM_Weight.Views.Dialog.AddToJiaoJieNewDialog"
 | 
				
			||||||
 | 
					             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 | 
				
			||||||
 | 
					             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 | 
				
			||||||
 | 
					             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
 | 
				
			||||||
 | 
					             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
 | 
				
			||||||
 | 
					             xmlns:local="clr-namespace:DM_Weight.Views.Dialog"
 | 
				
			||||||
 | 
					             mc:Ignorable="d" 
 | 
				
			||||||
 | 
					             xmlns:prism="http://prismlibrary.com/"
 | 
				
			||||||
 | 
					             prism:ViewModelLocator.AutoWireViewModel="True"
 | 
				
			||||||
 | 
					             xmlns:convert="clr-namespace:DM_Weight.Converter"
 | 
				
			||||||
 | 
					             xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
 | 
				
			||||||
 | 
					             MinWidth="880"
 | 
				
			||||||
 | 
					             Width="Auto"
 | 
				
			||||||
 | 
					             Height="Auto">
 | 
				
			||||||
 | 
					    <UserControl.Resources>
 | 
				
			||||||
 | 
					        <convert:StatusConverter x:Key="StatusConverter" />
 | 
				
			||||||
 | 
					    </UserControl.Resources>
 | 
				
			||||||
 | 
					    <materialDesign:Card Padding="0">
 | 
				
			||||||
 | 
					        <Grid>
 | 
				
			||||||
 | 
					            <Grid.RowDefinitions>
 | 
				
			||||||
 | 
					                <RowDefinition Height="Auto" />
 | 
				
			||||||
 | 
					                <RowDefinition Height="Auto" />
 | 
				
			||||||
 | 
					                <RowDefinition Height="Auto" />
 | 
				
			||||||
 | 
					            </Grid.RowDefinitions>
 | 
				
			||||||
 | 
					            <Grid Background="#03a9f4" Grid.Row="0">
 | 
				
			||||||
 | 
					                <TextBlock VerticalAlignment="Center" Foreground="{DynamicResource PrimaryHueDarkForegroundBrush}" Margin="16 4 16 4" Style="{StaticResource MaterialDesignHeadline5TextBlock}" Text="交接柜补药" />
 | 
				
			||||||
 | 
					                <Button
 | 
				
			||||||
 | 
					                        Style="{StaticResource MaterialDesignIconForegroundButton}"
 | 
				
			||||||
 | 
					                        Foreground="{DynamicResource PrimaryHueDarkForegroundBrush}"
 | 
				
			||||||
 | 
					                        HorizontalAlignment="Right"
 | 
				
			||||||
 | 
					                        Command="{Binding BtnCloseCommand}"
 | 
				
			||||||
 | 
					                        IsEnabled="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=CloseBtn}"
 | 
				
			||||||
 | 
					                        ToolTip="关闭"
 | 
				
			||||||
 | 
					                    >
 | 
				
			||||||
 | 
					                    <materialDesign:PackIcon Kind="Close" Width="34" Height="34" />
 | 
				
			||||||
 | 
					                </Button>
 | 
				
			||||||
 | 
					            </Grid>
 | 
				
			||||||
 | 
					            <DataGrid
 | 
				
			||||||
 | 
					        Grid.Row="1"
 | 
				
			||||||
 | 
					        materialDesign:DataGridAssist.ColumnHeaderPadding="15"
 | 
				
			||||||
 | 
					        ItemsSource="{Binding ChannelStocks,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
 | 
				
			||||||
 | 
					        materialDesign:DataGridAssist.EnableEditBoxAssist="False"
 | 
				
			||||||
 | 
					        IsSynchronizedWithCurrentItem="True"
 | 
				
			||||||
 | 
					        materialDesign:DataGridAssist.CellPadding="13"
 | 
				
			||||||
 | 
					        CanUserAddRows="False"
 | 
				
			||||||
 | 
					        AutoGenerateColumns="False">
 | 
				
			||||||
 | 
					                <DataGrid.Resources>
 | 
				
			||||||
 | 
					                    <Style TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource MaterialDesignDataGridColumnHeader}">
 | 
				
			||||||
 | 
					                        <Setter Property="Background" Value="#31ccec" />
 | 
				
			||||||
 | 
					                        <Setter Property="Foreground" Value="white" />
 | 
				
			||||||
 | 
					                        <Setter Property="Height" Value="56" />
 | 
				
			||||||
 | 
					                        <Setter Property="BorderBrush" Value="white"/>
 | 
				
			||||||
 | 
					                        <Setter Property="BorderThickness" Value="0.6"/>
 | 
				
			||||||
 | 
					                        <Setter Property="HorizontalContentAlignment" Value="Center"/>
 | 
				
			||||||
 | 
					                    </Style>
 | 
				
			||||||
 | 
					                    <Style TargetType="DataGridCell">
 | 
				
			||||||
 | 
					                        <Setter Property="Template">
 | 
				
			||||||
 | 
					                            <Setter.Value>
 | 
				
			||||||
 | 
					                                <ControlTemplate TargetType="DataGridCell">
 | 
				
			||||||
 | 
					                                    <TextBlock TextAlignment="Center" VerticalAlignment="Center"  >
 | 
				
			||||||
 | 
					                        <ContentPresenter Margin="13" />
 | 
				
			||||||
 | 
					                                    </TextBlock>
 | 
				
			||||||
 | 
					                                </ControlTemplate>
 | 
				
			||||||
 | 
					                            </Setter.Value>
 | 
				
			||||||
 | 
					                        </Setter>
 | 
				
			||||||
 | 
					                        <Style.Triggers>
 | 
				
			||||||
 | 
					                            <Trigger Property="IsSelected" Value="True">
 | 
				
			||||||
 | 
					                                <Setter Property="Foreground" Value="Black"/>
 | 
				
			||||||
 | 
					                                <Setter Property="BorderBrush" Value="Transparent" />
 | 
				
			||||||
 | 
					                            </Trigger>
 | 
				
			||||||
 | 
					                        </Style.Triggers>
 | 
				
			||||||
 | 
					                    </Style>
 | 
				
			||||||
 | 
					                </DataGrid.Resources>
 | 
				
			||||||
 | 
					                <!--<DataGrid.GroupStyle>
 | 
				
			||||||
 | 
					                    <GroupStyle>
 | 
				
			||||||
 | 
					                        <GroupStyle.ContainerStyle>
 | 
				
			||||||
 | 
					                            <Style TargetType="{x:Type GroupItem}">
 | 
				
			||||||
 | 
					                                <Setter Property="Template">
 | 
				
			||||||
 | 
					                                    <Setter.Value>
 | 
				
			||||||
 | 
					                                        <ControlTemplate TargetType="{x:Type GroupItem}">
 | 
				
			||||||
 | 
					                                            <Expander IsExpanded="True"
 | 
				
			||||||
 | 
					                                          materialDesign:ExpanderAssist.HeaderBackground="PaleTurquoise" Expanded="Expander_Expanded" Collapsed="Expander_Collapsed">
 | 
				
			||||||
 | 
					                                                <Expander.Header >
 | 
				
			||||||
 | 
					                                                    <StackPanel Orientation="Horizontal">
 | 
				
			||||||
 | 
					                                                        <TextBlock Text="{Binding Path=Name.DrawerNo,StringFormat={}{0}号药箱}" FontWeight="Bold" />
 | 
				
			||||||
 | 
					                                                    </StackPanel>
 | 
				
			||||||
 | 
					                                                </Expander.Header>
 | 
				
			||||||
 | 
					                                                <ItemsPresenter/>
 | 
				
			||||||
 | 
					                                            </Expander>
 | 
				
			||||||
 | 
					                                        </ControlTemplate>
 | 
				
			||||||
 | 
					                                    </Setter.Value>
 | 
				
			||||||
 | 
					                                </Setter>
 | 
				
			||||||
 | 
					                            </Style>
 | 
				
			||||||
 | 
					                        </GroupStyle.ContainerStyle>
 | 
				
			||||||
 | 
					                    </GroupStyle>
 | 
				
			||||||
 | 
					                </DataGrid.GroupStyle>-->
 | 
				
			||||||
 | 
					                <DataGrid.Columns>
 | 
				
			||||||
 | 
					                    <DataGridTextColumn IsReadOnly="True" Header="药品名称" Binding="{Binding DrugInfo.DrugName}"/>
 | 
				
			||||||
 | 
					                    <DataGridTextColumn IsReadOnly="True" Header="规格" Binding="{Binding DrugInfo.DrugSpec}"/>
 | 
				
			||||||
 | 
					                    <DataGridTextColumn IsReadOnly="True" Header="厂家" Binding="{Binding DrugInfo.Manufactory}"/>
 | 
				
			||||||
 | 
					                    <DataGridTextColumn IsReadOnly="True" Header="批次" Binding="{Binding ManuNo}"/>
 | 
				
			||||||
 | 
					                    <DataGridTextColumn IsReadOnly="True" Header="药品基数" Binding="{Binding BaseQuantity}"/>
 | 
				
			||||||
 | 
					                    <DataGridTextColumn IsReadOnly="True" Header="需补药数量" Binding="{Binding AddQuantity}"/>
 | 
				
			||||||
 | 
					                    <DataGridTextColumn IsReadOnly="True" Header="库位" Binding="{Binding AddQuantity}"/>
 | 
				
			||||||
 | 
					                    <DataGridTextColumn IsReadOnly="True" Header="库存数量" Binding="{Binding AddQuantity}"/>
 | 
				
			||||||
 | 
					                    <DataGridTemplateColumn Header="补药数量" IsReadOnly="True">
 | 
				
			||||||
 | 
					                        <DataGridTemplateColumn.CellTemplate>
 | 
				
			||||||
 | 
					                            <DataTemplate>
 | 
				
			||||||
 | 
					                                <ListBox ItemsSource="{Binding channelStocks}">
 | 
				
			||||||
 | 
					                                    <ListBox.ItemTemplate>
 | 
				
			||||||
 | 
					                                        <DataTemplate>
 | 
				
			||||||
 | 
					                                            <TextBox Width="80" Style="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}">
 | 
				
			||||||
 | 
					                                                <TextBox.Text>
 | 
				
			||||||
 | 
					                                                    <Binding Path="AddQuantity" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
 | 
				
			||||||
 | 
					                                                        <Binding.ValidationRules>
 | 
				
			||||||
 | 
					                                                            <ExceptionValidationRule />
 | 
				
			||||||
 | 
					                                                        </Binding.ValidationRules>
 | 
				
			||||||
 | 
					                                                    </Binding>
 | 
				
			||||||
 | 
					                                                </TextBox.Text>
 | 
				
			||||||
 | 
					                                            </TextBox>
 | 
				
			||||||
 | 
					                                        </DataTemplate>
 | 
				
			||||||
 | 
					                                    </ListBox.ItemTemplate>
 | 
				
			||||||
 | 
					                                </ListBox>
 | 
				
			||||||
 | 
					                            </DataTemplate>
 | 
				
			||||||
 | 
					                        </DataGridTemplateColumn.CellTemplate>
 | 
				
			||||||
 | 
					                    </DataGridTemplateColumn>
 | 
				
			||||||
 | 
					                </DataGrid.Columns>
 | 
				
			||||||
 | 
					            </DataGrid>
 | 
				
			||||||
 | 
					            <Grid Grid.Row="2">
 | 
				
			||||||
 | 
					                <Grid.ColumnDefinitions>
 | 
				
			||||||
 | 
					                    <ColumnDefinition />
 | 
				
			||||||
 | 
					                    <ColumnDefinition />
 | 
				
			||||||
 | 
					                    <ColumnDefinition />
 | 
				
			||||||
 | 
					                </Grid.ColumnDefinitions>
 | 
				
			||||||
 | 
					                <StackPanel Orientation="Horizontal" Grid.Column="1" HorizontalAlignment="Center">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    <!--<Button
 | 
				
			||||||
 | 
					                            Margin="2"
 | 
				
			||||||
 | 
					                            Style="{StaticResource MaterialDesignRaisedAccentButton}"
 | 
				
			||||||
 | 
					                            Visibility="{Binding Status,Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnVisible}"
 | 
				
			||||||
 | 
					                            materialDesign:ButtonProgressAssist.IsIndicatorVisible="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnLoading}"
 | 
				
			||||||
 | 
					                            materialDesign:ButtonProgressAssist.IsIndeterminate="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnLoading}"
 | 
				
			||||||
 | 
					                            Content="取药"
 | 
				
			||||||
 | 
					                            Command="{Binding OpenDrawer}">
 | 
				
			||||||
 | 
					                    </Button>-->
 | 
				
			||||||
 | 
					                    <Button
 | 
				
			||||||
 | 
					                            Margin="2"
 | 
				
			||||||
 | 
					                            Style="{StaticResource MaterialDesignRaisedAccentButton}"
 | 
				
			||||||
 | 
					                            Visibility="{Binding Status,Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnVisible}"
 | 
				
			||||||
 | 
					                            materialDesign:ButtonProgressAssist.IsIndicatorVisible="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnLoading}"
 | 
				
			||||||
 | 
					                            materialDesign:ButtonProgressAssist.IsIndeterminate="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=opearBtnLoading}"
 | 
				
			||||||
 | 
					                            Content="取药"
 | 
				
			||||||
 | 
					                            Command="{Binding OpenDrawer}">
 | 
				
			||||||
 | 
					                    </Button>
 | 
				
			||||||
 | 
					                    <Button
 | 
				
			||||||
 | 
					                            Margin="2"
 | 
				
			||||||
 | 
					                            Visibility="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=CompleteBtn}"
 | 
				
			||||||
 | 
					                            Style="{StaticResource MaterialDesignRaisedAccentButton}"
 | 
				
			||||||
 | 
					                            Content="完成"
 | 
				
			||||||
 | 
					                            Command="{Binding TakeFinish}"/>
 | 
				
			||||||
 | 
					                    <Button
 | 
				
			||||||
 | 
					                            Margin="2"
 | 
				
			||||||
 | 
					                            Visibility="{Binding Status, Converter={StaticResource StatusConverter}, ConverterParameter=CancelBtn}"
 | 
				
			||||||
 | 
					                            Style="{StaticResource MaterialDesignRaisedButton}"
 | 
				
			||||||
 | 
					                            Background="Orange"
 | 
				
			||||||
 | 
					                            BorderBrush="Orange"
 | 
				
			||||||
 | 
					                            Content="取消"
 | 
				
			||||||
 | 
					                            Command="{Binding CancleTake}" />
 | 
				
			||||||
 | 
					                </StackPanel>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            </Grid>
 | 
				
			||||||
 | 
					        </Grid>
 | 
				
			||||||
 | 
					    </materialDesign:Card>
 | 
				
			||||||
 | 
					</UserControl>
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,28 @@
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using System.Windows;
 | 
				
			||||||
 | 
					using System.Windows.Controls;
 | 
				
			||||||
 | 
					using System.Windows.Data;
 | 
				
			||||||
 | 
					using System.Windows.Documents;
 | 
				
			||||||
 | 
					using System.Windows.Input;
 | 
				
			||||||
 | 
					using System.Windows.Media;
 | 
				
			||||||
 | 
					using System.Windows.Media.Imaging;
 | 
				
			||||||
 | 
					using System.Windows.Navigation;
 | 
				
			||||||
 | 
					using System.Windows.Shapes;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace DM_Weight.Views.Dialog
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// AddToJiaoJieNewDialog.xaml 的交互逻辑
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
 | 
					    public partial class AddToJiaoJieNewDialog : UserControl
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public AddToJiaoJieNewDialog()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            InitializeComponent();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue