添加录屏功能,添加可多次加药,毒麻柜无药则显示无库存或未绑定,对应的药品先不补
This commit is contained in:
		
							parent
							
								
									02c626d829
								
							
						
					
					
						commit
						3e34ffe912
					
				| 
						 | 
					@ -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_xx;userid=root;password=root" />
 | 
						<add name="database" connectionString="server=192.168.50.84;port=3306;database=xiangtanTest;userid=root;password=root" />
 | 
				
			||||||
  </connectionStrings>
 | 
					  </connectionStrings>
 | 
				
			||||||
	<!--<runtime>
 | 
						<!--<runtime>
 | 
				
			||||||
		--><!--配置之后,Appdomain.CurrentDomain.UnhandledException 事件的 IsTerminating 就变成了 false 啦!也就是说,程序并不会因为这次的异常而崩溃退出。--><!--
 | 
							--><!--配置之后,Appdomain.CurrentDomain.UnhandledException 事件的 IsTerminating 就变成了 false 啦!也就是说,程序并不会因为这次的异常而崩溃退出。--><!--
 | 
				
			||||||
| 
						 | 
					@ -37,7 +37,7 @@
 | 
				
			||||||
		<!-- 按处方还药或者按取药记录还药 1:处方(ReturnDrugWindow2)2:药品(ReturnDrugWindow)-->
 | 
							<!-- 按处方还药或者按取药记录还药 1:处方(ReturnDrugWindow2)2:药品(ReturnDrugWindow)-->
 | 
				
			||||||
		<add key="returnDrugMode" value="1" />
 | 
							<add key="returnDrugMode" value="1" />
 | 
				
			||||||
		<!-- 自动退出时间,单位秒,为0时不自动退出 -->
 | 
							<!-- 自动退出时间,单位秒,为0时不自动退出 -->
 | 
				
			||||||
		<add key="autoExit" value="0"/>
 | 
							<add key="autoExit" value="10"/>
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		<!-- 无操作退出录像时间,单位秒,为0时不退出录像 -->
 | 
							<!-- 无操作退出录像时间,单位秒,为0时不退出录像 -->
 | 
				
			||||||
		<add key="stopRecord" value="180"/>
 | 
							<add key="stopRecord" value="180"/>
 | 
				
			||||||
| 
						 | 
					@ -54,9 +54,9 @@
 | 
				
			||||||
		<!-- 抽屉串口使用的协议232或者485 -->
 | 
							<!-- 抽屉串口使用的协议232或者485 -->
 | 
				
			||||||
		<add key="DrawerProtocol" value="485" />
 | 
							<add key="DrawerProtocol" value="485" />
 | 
				
			||||||
		<!-- 抽屉串口的串口号 -->
 | 
							<!-- 抽屉串口的串口号 -->
 | 
				
			||||||
		<add key="DrawerPortPath" value="COM1" />
 | 
							<add key="DrawerPortPath" value="COM2" />
 | 
				
			||||||
		<!-- can总线串口的串口号 -->
 | 
							<!-- can总线串口的串口号 -->
 | 
				
			||||||
		<add key="CanBusPortPath" value="COM31" />
 | 
							<add key="CanBusPortPath" value="COM5" />
 | 
				
			||||||
		<!-- 条码枪串口的串口号 -->
 | 
							<!-- 条码枪串口的串口号 -->
 | 
				
			||||||
		<add key="ScanCodePortPath" value="COM7" />
 | 
							<add key="ScanCodePortPath" value="COM7" />
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
| 
						 | 
					@ -99,7 +99,7 @@
 | 
				
			||||||
		<!-- 指纹机号码 -->
 | 
							<!-- 指纹机号码 -->
 | 
				
			||||||
		<add  key="machineNumber" value="1"/>
 | 
							<add  key="machineNumber" value="1"/>
 | 
				
			||||||
		<!-- 指纹机ip -->
 | 
							<!-- 指纹机ip -->
 | 
				
			||||||
		<add  key="fingerIp" value="192.168.50.201"/>
 | 
							<add  key="fingerIp" value="192.168.50.59"/>
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		<!-- 多处方取药 0:不启用 1:启用-->
 | 
							<!-- 多处方取药 0:不启用 1:启用-->
 | 
				
			||||||
		<add  key="MultiOrder" value="1"/>
 | 
							<add  key="MultiOrder" value="1"/>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,6 +12,8 @@ namespace DM_Weight.Converter
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        //是否给交接柜补药已补药的则不可勾选,未补药的可勾选以进行补药:0未补1已补
 | 
					        //是否给交接柜补药已补药的则不可勾选,未补药的可勾选以进行补药:0未补1已补
 | 
				
			||||||
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
 | 
					        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if (value != null)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                int status = int.Parse(value.ToString());
 | 
					                int status = int.Parse(value.ToString());
 | 
				
			||||||
                if (parameter.ToString() == "EnableState")
 | 
					                if (parameter.ToString() == "EnableState")
 | 
				
			||||||
| 
						 | 
					@ -36,6 +38,7 @@ namespace DM_Weight.Converter
 | 
				
			||||||
                        return "已取药待入库";
 | 
					                        return "已取药待入库";
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            return "";
 | 
					            return "";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,25 @@
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Globalization;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using System.Windows;
 | 
				
			||||||
 | 
					using System.Windows.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace DM_Weight.Converter
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    internal class TakeQuantityEnabelConverter : IValueConverter
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        //-1未绑定
 | 
				
			||||||
 | 
					        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return (int)value == -1 ? Visibility.Collapsed : Visibility.Visible;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return Binding.DoNothing;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,24 @@
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Globalization;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using System.Windows;
 | 
				
			||||||
 | 
					using System.Windows.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace DM_Weight.Converter
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    internal class TakeQuantityVisiable: IValueConverter
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return (int)(value) <0 ? Visibility.Collapsed : Visibility.Visible;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            throw new NotImplementedException();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -71,6 +71,7 @@
 | 
				
			||||||
    <PackageReference Include="MaterialDesignThemes" Version="4.8.0" />
 | 
					    <PackageReference Include="MaterialDesignThemes" Version="4.8.0" />
 | 
				
			||||||
    <PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.39" />
 | 
					    <PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.39" />
 | 
				
			||||||
    <PackageReference Include="Prism.Unity" Version="8.1.97" />
 | 
					    <PackageReference Include="Prism.Unity" Version="8.1.97" />
 | 
				
			||||||
 | 
					    <PackageReference Include="ScreenRecorderLib" Version="6.5.1" />
 | 
				
			||||||
    <PackageReference Include="SharpPromise" Version="1.7.0" />
 | 
					    <PackageReference Include="SharpPromise" Version="1.7.0" />
 | 
				
			||||||
    <PackageReference Include="SqlSugarCore" Version="5.1.4.67" />
 | 
					    <PackageReference Include="SqlSugarCore" Version="5.1.4.67" />
 | 
				
			||||||
    <PackageReference Include="SuperSimpleTcp" Version="3.0.10" />
 | 
					    <PackageReference Include="SuperSimpleTcp" Version="3.0.10" />
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -112,7 +112,7 @@ namespace DM_Weight.Models
 | 
				
			||||||
        [SugarColumn(IsIgnore = true)]
 | 
					        [SugarColumn(IsIgnore = true)]
 | 
				
			||||||
        public string Location
 | 
					        public string Location
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            get => ColNo == 0 ? DrawerNo + "号交接柜" :ColNo==-1?"未绑定": DrawerNo + "-" + ColNo;
 | 
					            get => ColNo == 0 ? DrawerNo + "号交接柜" :ColNo==-1?"未绑定": ColNo == -2 ? "库存不足" : DrawerNo + "-" + ColNo;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private int _addQuantity = 0;
 | 
					        private int _addQuantity = 0;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -87,6 +87,9 @@ namespace DM_Weight.Port
 | 
				
			||||||
        // 是否正在操作中
 | 
					        // 是否正在操作中
 | 
				
			||||||
        public bool Operate { get; set; }
 | 
					        public bool Operate { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // 操作完抽屉是否点完成按钮
 | 
				
			||||||
 | 
					        public bool OperateFinish { get; set; } = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //冰箱是否正在操作中
 | 
					        //冰箱是否正在操作中
 | 
				
			||||||
        public bool FridgeOperate { get; set; }
 | 
					        public bool FridgeOperate { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -197,7 +200,7 @@ namespace DM_Weight.Port
 | 
				
			||||||
                    if (state)
 | 
					                    if (state)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        //抽屉全部关闭
 | 
					                        //抽屉全部关闭
 | 
				
			||||||
 | 
					                        OperateFinish = false;
 | 
				
			||||||
                        string _WindowName = WindowName;
 | 
					                        string _WindowName = WindowName;
 | 
				
			||||||
                        // 重新初始化数据
 | 
					                        // 重新初始化数据
 | 
				
			||||||
                        ResetData();
 | 
					                        ResetData();
 | 
				
			||||||
| 
						 | 
					@ -551,6 +554,7 @@ namespace DM_Weight.Port
 | 
				
			||||||
                        string _WindowName = WindowName;
 | 
					                        string _WindowName = WindowName;
 | 
				
			||||||
                        // 重新初始化数据
 | 
					                        // 重新初始化数据
 | 
				
			||||||
                        ResetData(); 
 | 
					                        ResetData(); 
 | 
				
			||||||
 | 
					                        OperateFinish = false;
 | 
				
			||||||
                        // 返回消息  抽屉已经关闭
 | 
					                        // 返回消息  抽屉已经关闭
 | 
				
			||||||
                        _eventAggregator.GetEvent<PortUtilEvent>().Publish(new util.DeviceMsg()
 | 
					                        _eventAggregator.GetEvent<PortUtilEvent>().Publish(new util.DeviceMsg()
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
| 
						 | 
					@ -656,6 +660,7 @@ namespace DM_Weight.Port
 | 
				
			||||||
                            statue = 2;
 | 
					                            statue = 2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                            string _WindowName = WindowName;
 | 
					                            string _WindowName = WindowName;
 | 
				
			||||||
 | 
					                            OperateFinish = false;
 | 
				
			||||||
                            // 重新初始化数据
 | 
					                            // 重新初始化数据
 | 
				
			||||||
                            ResetData();
 | 
					                            ResetData();
 | 
				
			||||||
                            _eventAggregator.GetEvent<PortUtilEvent>().Publish(new util.DeviceMsg()
 | 
					                            _eventAggregator.GetEvent<PortUtilEvent>().Publish(new util.DeviceMsg()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -222,16 +222,18 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                    //.OrderBy(cs => cs.EffDate)
 | 
					                    //.OrderBy(cs => cs.EffDate)
 | 
				
			||||||
                    .OrderBy(cs => new { cs.EffDate, cs.DrawerNo, cs.ColNo })
 | 
					                    .OrderBy(cs => new { cs.EffDate, cs.DrawerNo, cs.ColNo })
 | 
				
			||||||
                    .ToList();
 | 
					                    .ToList();
 | 
				
			||||||
                if (HasQChannels == null || HasQChannels.Count <= 0)
 | 
					                //if (HasQChannels == null || HasQChannels.Count <= 0)
 | 
				
			||||||
 | 
					                //{
 | 
				
			||||||
 | 
					                //    msg.Add($"有药品未绑定,请先绑定");
 | 
				
			||||||
 | 
					                //    continue;
 | 
				
			||||||
 | 
					                //}
 | 
				
			||||||
 | 
					                if (HasQChannels != null && HasQChannels.Count > 0)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    msg.Add($"有药品未绑定,请先绑定");
 | 
					 | 
				
			||||||
                    continue;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                    int total = HasQChannels.Sum(it => it.Quantity);
 | 
					                    int total = HasQChannels.Sum(it => it.Quantity);
 | 
				
			||||||
                    int TakeQ = ChannelStocks[i].AddQuantity;
 | 
					                    int TakeQ = ChannelStocks[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];
 | 
				
			||||||
| 
						 | 
					@ -263,12 +265,30 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        channelStocks.AddRange(HasQChannels);
 | 
					                        channelStocks.AddRange(HasQChannels);
 | 
				
			||||||
 | 
					                    //}
 | 
				
			||||||
 | 
					                    //else
 | 
				
			||||||
 | 
					                    //{
 | 
				
			||||||
 | 
					                    //    //msg.Add($"药品【{HasQChannels[0].DrugInfo.DrugName}】库存不足,应取【{TakeQ}】库存【{total}】");
 | 
				
			||||||
 | 
					                    //    ChannelStock channel = ChannelStocks[i];
 | 
				
			||||||
 | 
					                    //    channel.ColNo = -2;
 | 
				
			||||||
 | 
					                    //    channel.Quantity = 0;
 | 
				
			||||||
 | 
					                    //    channel.ManuNo = null;
 | 
				
			||||||
 | 
					                    //    channel.EffDate = null;
 | 
				
			||||||
 | 
					                    //    channel.Quantity = total;
 | 
				
			||||||
 | 
					                    //    channel.TakeQuantity = 0;
 | 
				
			||||||
 | 
					                    //    channelStocks.Add(channel);
 | 
				
			||||||
 | 
					                    //}
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else
 | 
					                else
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    msg.Add($"药品【{HasQChannels[0].DrugInfo.DrugName}】库存不足,应取【{TakeQ}】库存【{total}】");
 | 
					                    ChannelStock channel = ChannelStocks[i];
 | 
				
			||||||
 | 
					                    channel.ColNo = -1;
 | 
				
			||||||
 | 
					                    channel.Quantity = 0;
 | 
				
			||||||
 | 
					                    channel.ManuNo = null;
 | 
				
			||||||
 | 
					                    channel.EffDate = null;
 | 
				
			||||||
 | 
					                    channel.TakeQuantity = 0;
 | 
				
			||||||
 | 
					                    channelStocks.Add(channel);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (msg.Count > 0)
 | 
					            if (msg.Count > 0)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
| 
						 | 
					@ -317,11 +337,24 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    enumerable = ChannelStocks.Where(cs => cs.TakeQuantity > 0).GroupBy(cs => cs.DrawerNo, cs => cs);
 | 
					                    enumerable = ChannelStocks.Where(cs => cs.TakeQuantity > 0).GroupBy(cs => cs.DrawerNo, cs => cs);
 | 
				
			||||||
 | 
					                    if (enumerable != null && enumerable.Count() > 0)
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
                        enumerator = enumerable.GetEnumerator();
 | 
					                        enumerator = enumerable.GetEnumerator();
 | 
				
			||||||
                        enumerator.MoveNext();
 | 
					                        enumerator.MoveNext();
 | 
				
			||||||
                        Status = 1;
 | 
					                        Status = 1;
 | 
				
			||||||
                        OpenOneByOne();
 | 
					                        OpenOneByOne();
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					                    else
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        AlertMsg alertMsg = new AlertMsg
 | 
				
			||||||
 | 
					                        {
 | 
				
			||||||
 | 
					                            Message = "没有可补药品!",
 | 
				
			||||||
 | 
					                            Type = MsgType.ERROR,
 | 
				
			||||||
 | 
					                        };
 | 
				
			||||||
 | 
					                        _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
				
			||||||
 | 
					                        return;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					@ -329,6 +362,8 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
        private void OpenOneByOne()
 | 
					        private void OpenOneByOne()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            IGrouping<int, ChannelStock> grouping = enumerator.Current;
 | 
					            IGrouping<int, ChannelStock> grouping = enumerator.Current;
 | 
				
			||||||
 | 
					            if (grouping != null)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
                int DrawerNo = grouping.Key;
 | 
					                int DrawerNo = grouping.Key;
 | 
				
			||||||
                List<ChannelStock> channelStocks = grouping.ToList();
 | 
					                List<ChannelStock> channelStocks = grouping.ToList();
 | 
				
			||||||
                channelStocks.ForEach(it => it.process = 1);
 | 
					                channelStocks.ForEach(it => it.process = 1);
 | 
				
			||||||
| 
						 | 
					@ -362,6 +397,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                _portUtil.DrawerNo = DrawerNo;
 | 
					                _portUtil.DrawerNo = DrawerNo;
 | 
				
			||||||
                _portUtil.Start();
 | 
					                _portUtil.Start();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private bool _isFinishClick = false;
 | 
					        private bool _isFinishClick = false;
 | 
				
			||||||
        // 完成按钮
 | 
					        // 完成按钮
 | 
				
			||||||
| 
						 | 
					@ -388,10 +424,11 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                            {
 | 
					                            {
 | 
				
			||||||
                                if (jjItem.DrugId == csItem.DrugId)
 | 
					                                if (jjItem.DrugId == csItem.DrugId)
 | 
				
			||||||
                                {
 | 
					                                {
 | 
				
			||||||
                                    if (jjItem.Quantity != csItem.Quantity)
 | 
					                                    if (jjItem.Quantity < csItem.Quantity)
 | 
				
			||||||
                                    {
 | 
					                                    {
 | 
				
			||||||
                                        SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c"));
 | 
					                                        SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c"));
 | 
				
			||||||
                                        SnackbarMessageQueue.Enqueue("输入药品数量与需要补药品数不一致!");
 | 
					                                        //SnackbarMessageQueue.Enqueue("输入药品数量与需要补药品数不一致!");
 | 
				
			||||||
 | 
					                                        SnackbarMessageQueue.Enqueue("输入药品数量大于需要补药数!");
 | 
				
			||||||
                                        _isFinishClick = false;
 | 
					                                        _isFinishClick = false;
 | 
				
			||||||
                                        return;
 | 
					                                        return;
 | 
				
			||||||
                                    }
 | 
					                                    }
 | 
				
			||||||
| 
						 | 
					@ -439,10 +476,12 @@ 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 == 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 == Jiaojie_ChannelStocks[i].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)
 | 
				
			||||||
                                {
 | 
					                                {
 | 
				
			||||||
 | 
					                                    int jjNeedQuantity = SqlSugarHelper.Db.Queryable<ChannelStock>().Where(cs => cs.DrawerNo == jiaoStock.DrawerNo && cs.DrugId == jiaoStock.DrugId && cs.MachineId == jiaoStock.MachineId).Sum(cs => cs.NeedNum);
 | 
				
			||||||
 | 
					                                    SqlSugarHelper.Db.Deleteable<ChannelStock>().Where(cs => cs.DrawerNo == jiaoStock.DrawerNo && cs.DrugId == jiaoStock.DrugId && cs.MachineId == jiaoStock.MachineId && cs.Quantity <= 0).ExecuteCommand();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                    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();
 | 
				
			||||||
| 
						 | 
					@ -466,6 +505,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                                                newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId;
 | 
					                                                newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId;
 | 
				
			||||||
                                                newStock.AddToJJNum = addNum;
 | 
					                                                newStock.AddToJJNum = addNum;
 | 
				
			||||||
                                                newStock.Id = jjStockManuNo.Id;
 | 
					                                                newStock.Id = jjStockManuNo.Id;
 | 
				
			||||||
 | 
					                                                newStock.State = 1;
 | 
				
			||||||
                                                //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;
 | 
				
			||||||
| 
						 | 
					@ -492,6 +532,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                                                newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId;
 | 
					                                                newStock.DrugId = Jiaojie_ChannelStocks[i].DrugId;
 | 
				
			||||||
                                                newStock.AddToJJNum = Jiaojie_ChannelStocks[i].NeedNum;
 | 
					                                                newStock.AddToJJNum = Jiaojie_ChannelStocks[i].NeedNum;
 | 
				
			||||||
                                                newStock.Id = jjStockManuNo.Id;
 | 
					                                                newStock.Id = jjStockManuNo.Id;
 | 
				
			||||||
 | 
					                                                newStock.State = 1;
 | 
				
			||||||
                                                //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;
 | 
				
			||||||
| 
						 | 
					@ -519,6 +560,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                                                newStock.MachineId = Jiaojie_ChannelStocks[i].MachineId;
 | 
					                                                newStock.MachineId = Jiaojie_ChannelStocks[i].MachineId;
 | 
				
			||||||
                                                newStock.DrawerType = 1;
 | 
					                                                newStock.DrawerType = 1;
 | 
				
			||||||
                                                newStock.NeedNum = 0;
 | 
					                                                newStock.NeedNum = 0;
 | 
				
			||||||
 | 
					                                                newStock.State = 1;
 | 
				
			||||||
                                                AddJJStock.Add(newStock);
 | 
					                                                AddJJStock.Add(newStock);
 | 
				
			||||||
                                                Jiaojie_ChannelStocks[i].NeedNum = Jiaojie_ChannelStocks[i].NeedNum - csStock.TakeQuantity;
 | 
					                                                Jiaojie_ChannelStocks[i].NeedNum = Jiaojie_ChannelStocks[i].NeedNum - csStock.TakeQuantity;
 | 
				
			||||||
                                                csStockList[j].CheckQuantity = csStockList[j].TakeQuantity;
 | 
					                                                csStockList[j].CheckQuantity = csStockList[j].TakeQuantity;
 | 
				
			||||||
| 
						 | 
					@ -539,6 +581,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                                                newStock.Id = Guid.NewGuid().ToString();
 | 
					                                                newStock.Id = Guid.NewGuid().ToString();
 | 
				
			||||||
                                                newStock.MachineId = Jiaojie_ChannelStocks[i].MachineId;
 | 
					                                                newStock.MachineId = Jiaojie_ChannelStocks[i].MachineId;
 | 
				
			||||||
                                                newStock.DrawerType = 1;
 | 
					                                                newStock.DrawerType = 1;
 | 
				
			||||||
 | 
					                                                newStock.State = 1;
 | 
				
			||||||
                                                AddJJStock.Add(newStock);
 | 
					                                                AddJJStock.Add(newStock);
 | 
				
			||||||
                                                csStockList[j].CheckQuantity = csStockList[j].TakeQuantity;
 | 
					                                                csStockList[j].CheckQuantity = csStockList[j].TakeQuantity;
 | 
				
			||||||
                                                csStockList[j].TakeQuantity = csStock.TakeQuantity - newStock.AddToJJNum;
 | 
					                                                csStockList[j].TakeQuantity = csStock.TakeQuantity - newStock.AddToJJNum;
 | 
				
			||||||
| 
						 | 
					@ -546,11 +589,18 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                                            }
 | 
					                                            }
 | 
				
			||||||
                                        }
 | 
					                                        }
 | 
				
			||||||
                                    }
 | 
					                                    }
 | 
				
			||||||
                                }
 | 
					                                    int addQuantity= AddJJStock.Where(aj => aj.DrugId == jiaoStock.DrugId).Sum(aj => aj.AddToJJNum);
 | 
				
			||||||
                                SqlSugarHelper.Db.Updateable<ChannelStock>()
 | 
					                                    int updateQuantity = UpdateJJStock.Where(aj => aj.DrugId == jiaoStock.DrugId).Sum(aj => aj.AddToJJNum);
 | 
				
			||||||
                                                 .SetColumns(cs => new ChannelStock() { NeedNum = 0 })
 | 
					                                   int iUpdateResult=  SqlSugarHelper.Db.Updateable<ChannelStock>()
 | 
				
			||||||
                                                 .Where(cs => cs.DrawerNo == Jiaojie_ChannelStocks[i].DrawerNo)
 | 
					                                                     .SetColumns(cs => new ChannelStock() { NeedNum = 0,State=1 })
 | 
				
			||||||
 | 
					                                                     .Where(cs => cs.DrawerNo == Jiaojie_ChannelStocks[i].DrawerNo && cs.DrugId == Jiaojie_ChannelStocks[i].DrugId && cs.MachineId == Jiaojie_ChannelStocks[i].MachineId)
 | 
				
			||||||
                                                     .ExecuteCommand();
 | 
					                                                     .ExecuteCommand();
 | 
				
			||||||
 | 
					                                    jiaoStock.NeedNum = jjNeedQuantity - (addQuantity + updateQuantity);
 | 
				
			||||||
 | 
					                                    int iUpdateResult2 = SqlSugarHelper.Db.Updateable(jiaoStock)
 | 
				
			||||||
 | 
					                                                    .UpdateColumns(it => new { it.NeedNum })
 | 
				
			||||||
 | 
					                                                     .ExecuteCommand();
 | 
				
			||||||
 | 
					                                }
 | 
				
			||||||
 | 
					                                
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                            //保存交接柜数据
 | 
					                            //保存交接柜数据
 | 
				
			||||||
| 
						 | 
					@ -561,6 +611,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                                {
 | 
					                                {
 | 
				
			||||||
                                    var ret = jj.First();
 | 
					                                    var ret = jj.First();
 | 
				
			||||||
                                    ret.AddToJJNum = jj.Sum(itx => itx.AddToJJNum);
 | 
					                                    ret.AddToJJNum = jj.Sum(itx => itx.AddToJJNum);
 | 
				
			||||||
 | 
					                                    ret.NeedNum = 0;
 | 
				
			||||||
                                    return ret;
 | 
					                                    return ret;
 | 
				
			||||||
                                }).ToList();
 | 
					                                }).ToList();
 | 
				
			||||||
                                SqlSugarHelper.Db.Insertable(AddJJStock).ExecuteCommand();
 | 
					                                SqlSugarHelper.Db.Insertable(AddJJStock).ExecuteCommand();
 | 
				
			||||||
| 
						 | 
					@ -572,11 +623,12 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                                {
 | 
					                                {
 | 
				
			||||||
                                    var ret = jj.First();
 | 
					                                    var ret = jj.First();
 | 
				
			||||||
                                    ret.AddToJJNum = jj.Sum(itx => itx.AddToJJNum);
 | 
					                                    ret.AddToJJNum = jj.Sum(itx => itx.AddToJJNum);
 | 
				
			||||||
 | 
					                                    ret.NeedNum = 0;
 | 
				
			||||||
                                    return ret;
 | 
					                                    return ret;
 | 
				
			||||||
                                }).ToList();
 | 
					                                }).ToList();
 | 
				
			||||||
                                for (int i = 0; i < UpdateJJStock.Count; i++)
 | 
					                                for (int i = 0; i < UpdateJJStock.Count; i++)
 | 
				
			||||||
                                {
 | 
					                                {
 | 
				
			||||||
                                    SqlSugarHelper.Db.Updateable<ChannelStock>().SetColumns(cs => new ChannelStock() { AddToJJNum = UpdateJJStock[i].AddToJJNum }).Where(cs => cs.Id == UpdateJJStock[i].Id).ExecuteCommand();
 | 
					                                    SqlSugarHelper.Db.Updateable<ChannelStock>().SetColumns(cs => new ChannelStock() { AddToJJNum = UpdateJJStock[i].AddToJJNum, State = 1 }).Where(cs => cs.Id == UpdateJJStock[i].Id).ExecuteCommand();
 | 
				
			||||||
                                }
 | 
					                                }
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -606,21 +658,21 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                                }
 | 
					                                }
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                            //更新交接柜状态为 已取药未入库(等在交接柜入库后再更新交接柜库存)
 | 
					                            //更新交接柜状态为 已取药未入库(等在交接柜入库后再更新交接柜库存)
 | 
				
			||||||
                            if (Jiaojie_ChannelStocks != null)
 | 
					                            //if (Jiaojie_ChannelStocks != null)
 | 
				
			||||||
                            {
 | 
					                            //{
 | 
				
			||||||
                                Jiaojie_ChannelStocks.ForEach(jj =>
 | 
					                            //    Jiaojie_ChannelStocks.ForEach(jj =>
 | 
				
			||||||
                                {
 | 
					                            //    {
 | 
				
			||||||
                                    //更新交接柜状态为 已取药未入库
 | 
					                            //        //更新交接柜状态为 已取药未入库
 | 
				
			||||||
                                    SqlSugarHelper.Db.Updateable(new ChannelList()
 | 
					                            //        SqlSugarHelper.Db.Updateable(new ChannelList()
 | 
				
			||||||
                                    {
 | 
					                            //        {
 | 
				
			||||||
                                        State = 1,
 | 
					                            //            State = 1,
 | 
				
			||||||
                                        Id = jj.ChannelLst.Id
 | 
					                            //            Id = jj.ChannelLst.Id
 | 
				
			||||||
                                    }).UpdateColumns(it => it.State).ExecuteCommand();
 | 
					                            //        }).UpdateColumns(it => it.State).ExecuteCommand();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                }
 | 
					                            //    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                    );
 | 
					                            //        );
 | 
				
			||||||
                            }
 | 
					                            //}
 | 
				
			||||||
                            return true;
 | 
					                            return true;
 | 
				
			||||||
                        });
 | 
					                        });
 | 
				
			||||||
                        if (f.Data)
 | 
					                        if (f.Data)
 | 
				
			||||||
| 
						 | 
					@ -665,6 +717,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        Status = 0;
 | 
					                        Status = 0;
 | 
				
			||||||
                        _isFinishClick = false; 
 | 
					                        _isFinishClick = false; 
 | 
				
			||||||
 | 
					                        _portUtil.OperateFinish = true;
 | 
				
			||||||
                        //RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
 | 
					                        //RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
 | 
				
			||||||
                        RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
 | 
					                        RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
| 
						 | 
					@ -696,6 +749,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                _portUtil.ResetData();
 | 
					                _portUtil.ResetData();
 | 
				
			||||||
                Status = 0;
 | 
					                Status = 0;
 | 
				
			||||||
 | 
					                _portUtil.OperateFinish = true;
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        //检查是否是冰箱抽屉(冰箱抽屉打开时需要发送冰箱延迟报警的指令)
 | 
					        //检查是否是冰箱抽屉(冰箱抽屉打开时需要发送冰箱延迟报警的指令)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,13 +0,0 @@
 | 
				
			||||||
using System;
 | 
					 | 
				
			||||||
using System.Collections.Generic;
 | 
					 | 
				
			||||||
using System.Linq;
 | 
					 | 
				
			||||||
using System.Text;
 | 
					 | 
				
			||||||
using System.Threading.Tasks;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace DM_Weight.ViewModels
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public class AddToJiaoJieNewDialogViewModel
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -90,35 +90,6 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        private void RequestData()
 | 
					        private void RequestData()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            //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.BaseQuantity > cs.Quantity)
 | 
					 | 
				
			||||||
            //   .OrderBy(cs => cs.Chnguid)
 | 
					 | 
				
			||||||
            //   .OrderBy(cs => cs.DrawerNo)
 | 
					 | 
				
			||||||
            //   .ToList();
 | 
					 | 
				
			||||||
            ////ChannelStocks = ChannelStocks.GroupBy(it => new { it.DrawerNo, it.DrugId })
 | 
					 | 
				
			||||||
            ////    .Select(it =>
 | 
					 | 
				
			||||||
            ////    {
 | 
					 | 
				
			||||||
            ////        var ret = it.First();
 | 
					 | 
				
			||||||
            ////        ret.Quantity = it.Sum(itx => itx.Quantity); 
 | 
					 | 
				
			||||||
            ////        ret.NeedNum=it.Sum(itx => itx.NeedNum);
 | 
					 | 
				
			||||||
            ////        return ret;
 | 
					 | 
				
			||||||
            ////    }).Where(it=>it.BaseQuantity>it.Quantity)
 | 
					 | 
				
			||||||
            ////    .ToList();
 | 
					 | 
				
			||||||
            //ChannelStocks.ForEach(cs => cs.AddQuantity = cs.BaseQuantity - cs.Quantity);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            //ICollectionView vw = CollectionViewSource.GetDefaultView(ChannelStocks);
 | 
					 | 
				
			||||||
            //vw.GroupDescriptions.Add(new PropertyGroupDescription("ChannelLst"));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            //_ChannelLists = SqlSugarHelper.Db.Queryable<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();
 | 
					            ChannelStocks?.Clear();
 | 
				
			||||||
            _ChannelLists?.Clear();
 | 
					            _ChannelLists?.Clear();
 | 
				
			||||||
            //1)查询channel_stock所有要补药的药箱
 | 
					            //1)查询channel_stock所有要补药的药箱
 | 
				
			||||||
| 
						 | 
					@ -159,8 +130,8 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                    channelList.channelStocks.AddRange(ChannelStocks.Where(cs => cs.DrawerNo == DrawerNoList[i]&&(cs.NeedNum>0||cs.AddToJJNum>0)).ToList());
 | 
					                    channelList.channelStocks.AddRange(ChannelStocks.Where(cs => cs.DrawerNo == DrawerNoList[i]&&(cs.NeedNum>0||cs.AddToJJNum>0)).ToList());
 | 
				
			||||||
                    if (channelList != null)
 | 
					                    if (channelList != null)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if (channelList.channelStocks[0].AddToJJNum>0)
 | 
					                        //if (channelList.channelStocks[0].AddToJJNum>0)
 | 
				
			||||||
                            channelList.State=1; //表示有补药
 | 
					                        //    channelList.State=1; //表示有补药
 | 
				
			||||||
                        channelLists.Add(channelList);
 | 
					                        channelLists.Add(channelList);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
| 
						 | 
					@ -189,307 +160,6 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            get => new DelegateCommand(() => RequestData());
 | 
					            get => new DelegateCommand(() => RequestData());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        //一键补药
 | 
					 | 
				
			||||||
        //public DelegateCommand OpenDragCommand
 | 
					 | 
				
			||||||
        //{
 | 
					 | 
				
			||||||
        //    get => new DelegateCommand(() =>
 | 
					 | 
				
			||||||
        //    {
 | 
					 | 
				
			||||||
        //        try
 | 
					 | 
				
			||||||
        //        {
 | 
					 | 
				
			||||||
        //            Status = 1;
 | 
					 | 
				
			||||||
        //            IsEnable = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //            var varDrawerNO = SqlSugarHelper.Db.Queryable<ChannelStock>()
 | 
					 | 
				
			||||||
        //                           .Where(cs => cs.MachineId == (ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
 | 
					 | 
				
			||||||
        //                           .GroupBy(cs => cs.DrawerNo).Select(DrawerNo => DrawerNo).ToList();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //            iDrawerNoLst = varDrawerNO.Select(item => item.DrawerNo).ToList();
 | 
					 | 
				
			||||||
        //            CurrentNum = 0;
 | 
					 | 
				
			||||||
        //            _portUtil.SpeakAsync($"正在打开 {iDrawerNoLst[CurrentNum]} 号抽屉");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //            _portUtil.WindowName = "AddToJiaoJieWindow";
 | 
					 | 
				
			||||||
        //            _portUtil.Operate = true;
 | 
					 | 
				
			||||||
        //            //_portUtil.BoardType = singleChannels.Count > 0 ? singleChannels[0].BoardType : 1;
 | 
					 | 
				
			||||||
        //            //_portUtil.ColNos = singleChannels.Select(it => it.ColNo).ToArray();
 | 
					 | 
				
			||||||
        //            _portUtil.DrawerNo = iDrawerNoLst[CurrentNum];
 | 
					 | 
				
			||||||
        //            _portUtil.OpenAllDrawer();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //        }
 | 
					 | 
				
			||||||
        //        catch (Exception ex)
 | 
					 | 
				
			||||||
        //        {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //            AlertMsg alertMsg = new AlertMsg
 | 
					 | 
				
			||||||
        //            {
 | 
					 | 
				
			||||||
        //                Message = $"补药异常{ex.Message}",
 | 
					 | 
				
			||||||
        //                Type = MsgType.ERROR,
 | 
					 | 
				
			||||||
        //            };
 | 
					 | 
				
			||||||
        //            _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
					 | 
				
			||||||
        //            logger.Info($"AddToJiaoJieWindowViewModel异常:{ex.Message}");
 | 
					 | 
				
			||||||
        //            _portUtil.Operate = false;
 | 
					 | 
				
			||||||
        //        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //    });
 | 
					 | 
				
			||||||
        //}
 | 
					 | 
				
			||||||
        //void DoMyPrismEvent(DeviceMsg msg)
 | 
					 | 
				
			||||||
        //{
 | 
					 | 
				
			||||||
        //    if (msg.WindowName == "AddToJiaoJieWindow")
 | 
					 | 
				
			||||||
        //    {
 | 
					 | 
				
			||||||
        //        switch (msg.EventType)
 | 
					 | 
				
			||||||
        //        {
 | 
					 | 
				
			||||||
        //            // 抽屉打开
 | 
					 | 
				
			||||||
        //            case EventType.DRAWEROPEN:
 | 
					 | 
				
			||||||
        //                if (Status == 1)
 | 
					 | 
				
			||||||
        //                {
 | 
					 | 
				
			||||||
        //                    Status = 2;
 | 
					 | 
				
			||||||
        //                }
 | 
					 | 
				
			||||||
        //                CurrentNum += 1;
 | 
					 | 
				
			||||||
        //                if (CurrentNum < iDrawerNoLst.Count)
 | 
					 | 
				
			||||||
        //                {
 | 
					 | 
				
			||||||
        //                    _portUtil.WindowName = "AddToJiaoJieWindow";
 | 
					 | 
				
			||||||
        //                    _portUtil.Operate = true;
 | 
					 | 
				
			||||||
        //                    _portUtil.DrawerNo = iDrawerNoLst[CurrentNum];
 | 
					 | 
				
			||||||
        //                    _portUtil.OpenAllDrawer();
 | 
					 | 
				
			||||||
        //                }
 | 
					 | 
				
			||||||
        //                else
 | 
					 | 
				
			||||||
        //                {
 | 
					 | 
				
			||||||
        //                    _portUtil.GetAllDrawerLockState();
 | 
					 | 
				
			||||||
        //                }
 | 
					 | 
				
			||||||
        //                break;
 | 
					 | 
				
			||||||
        //            // 抽屉关闭
 | 
					 | 
				
			||||||
        //            case EventType.DRAWERCLOSE:
 | 
					 | 
				
			||||||
        //                if (Status == 2)
 | 
					 | 
				
			||||||
        //                {
 | 
					 | 
				
			||||||
        //                    Status = 3;
 | 
					 | 
				
			||||||
        //                }
 | 
					 | 
				
			||||||
        //                _portUtil.Operate = false;
 | 
					 | 
				
			||||||
        //                IsEnable = true;
 | 
					 | 
				
			||||||
        //                CurrentNum = 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //                break;
 | 
					 | 
				
			||||||
        //            // 数量变化
 | 
					 | 
				
			||||||
        //            case EventType.UPDATEQUANTITY:
 | 
					 | 
				
			||||||
        //                if (Status == 2)
 | 
					 | 
				
			||||||
        //                {
 | 
					 | 
				
			||||||
        //                    ChannelStocks.ForEach(it => it.AddQuantity = msg.Quantitys[it.ColNo - 1]);
 | 
					 | 
				
			||||||
        //                }
 | 
					 | 
				
			||||||
        //                break;
 | 
					 | 
				
			||||||
        //            // 打开失败
 | 
					 | 
				
			||||||
        //            case EventType.OPENERROR:
 | 
					 | 
				
			||||||
        //                AlertMsg alertMsg = new AlertMsg
 | 
					 | 
				
			||||||
        //                {
 | 
					 | 
				
			||||||
        //                    Message = msg.Message,
 | 
					 | 
				
			||||||
        //                    Type = MsgType.ERROR,
 | 
					 | 
				
			||||||
        //                };
 | 
					 | 
				
			||||||
        //                _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
					 | 
				
			||||||
        //                Status = 0;
 | 
					 | 
				
			||||||
        //                _portUtil.Operate = false;
 | 
					 | 
				
			||||||
        //                IsEnable = false;
 | 
					 | 
				
			||||||
        //                CurrentNum = 0;
 | 
					 | 
				
			||||||
        //                break;
 | 
					 | 
				
			||||||
        //        }
 | 
					 | 
				
			||||||
        //    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //}
 | 
					 | 
				
			||||||
        //完成按钮
 | 
					 | 
				
			||||||
        //public DelegateCommand AddFinish
 | 
					 | 
				
			||||||
        //{
 | 
					 | 
				
			||||||
        //    get => new DelegateCommand(() =>
 | 
					 | 
				
			||||||
        //    {
 | 
					 | 
				
			||||||
        //        if (ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).Count <= 0)
 | 
					 | 
				
			||||||
        //        {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //            AlertMsg alertMsg = new AlertMsg
 | 
					 | 
				
			||||||
        //            {
 | 
					 | 
				
			||||||
        //                Message = "请选择药箱",
 | 
					 | 
				
			||||||
        //                Type = MsgType.SUCCESS,
 | 
					 | 
				
			||||||
        //            };
 | 
					 | 
				
			||||||
        //            _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
					 | 
				
			||||||
        //            return;
 | 
					 | 
				
			||||||
        //        }
 | 
					 | 
				
			||||||
        //        List<ChannelStock> jiaojieStocks = new List<ChannelStock>();
 | 
					 | 
				
			||||||
        //        List<ChannelStock> cs = ChannelStocks.FindAll(cs => cs.ChannelLst.IsSelected).ToList();
 | 
					 | 
				
			||||||
        //        for (int i = 0; i < cs.Count; i++)
 | 
					 | 
				
			||||||
        //        {
 | 
					 | 
				
			||||||
        //            ChannelStock copy = TransExpV2<ChannelStock, ChannelStock>.Trans(cs[i]);
 | 
					 | 
				
			||||||
        //            jiaojieStocks.Add(copy);
 | 
					 | 
				
			||||||
        //        }
 | 
					 | 
				
			||||||
        //        csList = jiaojieStocks.FindAll(cs => cs.ChannelLst.IsSelected).GroupBy(cs => cs.DrugId).Select(g => new
 | 
					 | 
				
			||||||
        //        {
 | 
					 | 
				
			||||||
        //            DrugId = g.Key,
 | 
					 | 
				
			||||||
        //            AddQuantity = g.Sum(s => s.AddQuantity)
 | 
					 | 
				
			||||||
        //        }).Select(cs => new ChannelStock() { DrugId = cs.DrugId, AddQuantity = cs.AddQuantity }).ToList();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //        List<ChannelStock> channelStocks = new List<ChannelStock>();
 | 
					 | 
				
			||||||
        //        List<string> msg = new List<string>();
 | 
					 | 
				
			||||||
        //        for (int i = 0; i < csList.Count; i++)
 | 
					 | 
				
			||||||
        //        {
 | 
					 | 
				
			||||||
        //            List<ChannelStock> HasQChannels = SqlSugarHelper.Db.Queryable<ChannelStock>()
 | 
					 | 
				
			||||||
        //                .Includes<DrugInfo>(cs => cs.DrugInfo)
 | 
					 | 
				
			||||||
        //                .Where(cs => cs.Quantity > 0)
 | 
					 | 
				
			||||||
        //                .Where(cs => cs.DrawerType == 1)
 | 
					 | 
				
			||||||
        //                .Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM3"))
 | 
					 | 
				
			||||||
        //                .Where(cs => cs.DrugId == csList[i].DrugId)
 | 
					 | 
				
			||||||
        //                .OrderBy(cs => cs.EffDate)
 | 
					 | 
				
			||||||
        //                .OrderBy(cs => cs.DrawerNo)
 | 
					 | 
				
			||||||
        //                .ToList();
 | 
					 | 
				
			||||||
        //            int total = HasQChannels.Sum(it => it.Quantity);
 | 
					 | 
				
			||||||
        //            int TakeQ = csList[i].AddQuantity;
 | 
					 | 
				
			||||||
        //            // 说明数量足够
 | 
					 | 
				
			||||||
        //            if (total >= TakeQ)
 | 
					 | 
				
			||||||
        //            {
 | 
					 | 
				
			||||||
        //                for (int j = 0; TakeQ > 0; j++)
 | 
					 | 
				
			||||||
        //                {
 | 
					 | 
				
			||||||
        //                    ChannelStock stock = HasQChannels[j];
 | 
					 | 
				
			||||||
        //                    if (TakeQ > stock.Quantity)
 | 
					 | 
				
			||||||
        //                    {
 | 
					 | 
				
			||||||
        //                        stock.TakeQuantity = stock.Quantity;
 | 
					 | 
				
			||||||
        //                        channelStocks.Add(stock);
 | 
					 | 
				
			||||||
        //                        TakeQ -= stock.Quantity;
 | 
					 | 
				
			||||||
        //                    }
 | 
					 | 
				
			||||||
        //                    else
 | 
					 | 
				
			||||||
        //                    {
 | 
					 | 
				
			||||||
        //                        stock.TakeQuantity = TakeQ;
 | 
					 | 
				
			||||||
        //                        channelStocks.Add(stock);
 | 
					 | 
				
			||||||
        //                        TakeQ = 0;
 | 
					 | 
				
			||||||
        //                    }
 | 
					 | 
				
			||||||
        //                }
 | 
					 | 
				
			||||||
        //            }
 | 
					 | 
				
			||||||
        //            else
 | 
					 | 
				
			||||||
        //            {
 | 
					 | 
				
			||||||
        //                msg.Add($"药品【{ChannelStocks[i].DrugInfo.DrugName}】库存不足,应取【{TakeQ}】库存【{total}】");
 | 
					 | 
				
			||||||
        //            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //        }
 | 
					 | 
				
			||||||
        //        if (msg.Count > 0)
 | 
					 | 
				
			||||||
        //        {
 | 
					 | 
				
			||||||
        //            DialogParameters dialogParameters = new DialogParameters();
 | 
					 | 
				
			||||||
        //            dialogParameters.Add("msgInfo", msg);
 | 
					 | 
				
			||||||
        //            DialogServiceExtensions.ShowDialogHost(_dialogService, "ShowMessageDialog", dialogParameters, "RootDialog");
 | 
					 | 
				
			||||||
        //            return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //        }
 | 
					 | 
				
			||||||
        //        else
 | 
					 | 
				
			||||||
        //        {
 | 
					 | 
				
			||||||
        //            channelStocks.Sort((a, b) =>
 | 
					 | 
				
			||||||
        //            {
 | 
					 | 
				
			||||||
        //                if ((a.DrawerNo - b.DrawerNo) == 0)
 | 
					 | 
				
			||||||
        //                {
 | 
					 | 
				
			||||||
        //                    return a.ColNo - b.ColNo;
 | 
					 | 
				
			||||||
        //                }
 | 
					 | 
				
			||||||
        //                return a.DrawerNo - b.DrawerNo;
 | 
					 | 
				
			||||||
        //            });
 | 
					 | 
				
			||||||
        //        }
 | 
					 | 
				
			||||||
        //        List<ChannelStock> record = channelStocks.FindAll(it => it.TakeQuantity > 0).ToList();
 | 
					 | 
				
			||||||
        //        if (record.Count > 0)
 | 
					 | 
				
			||||||
        //        {
 | 
					 | 
				
			||||||
        //            string InvoiceId = "AddJiaoJie_" + CurrentTimeMillis();
 | 
					 | 
				
			||||||
        //            var f = SqlSugarHelper.Db.UseTran(() =>
 | 
					 | 
				
			||||||
        //            {
 | 
					 | 
				
			||||||
        //                for (int i = 0; i < record.Count; i++)
 | 
					 | 
				
			||||||
        //                {
 | 
					 | 
				
			||||||
        //                    ChannelStock it = record[i];
 | 
					 | 
				
			||||||
        //                    // 更新数据 库存信息
 | 
					 | 
				
			||||||
        //                    SqlSugarHelper.Db.Updateable(new ChannelStock()
 | 
					 | 
				
			||||||
        //                    {
 | 
					 | 
				
			||||||
        //                        Quantity = it.Quantity - it.TakeQuantity,
 | 
					 | 
				
			||||||
        //                        ManuNo = it.ManuNo,
 | 
					 | 
				
			||||||
        //                        EffDate = it.EffDate,
 | 
					 | 
				
			||||||
        //                        Id = it.Id,
 | 
					 | 
				
			||||||
        //                    }).UpdateColumns(it => new { it.Quantity, it.ManuNo, it.EffDate }).ExecuteCommand();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //                    //更新 交接柜 库存信息
 | 
					 | 
				
			||||||
        //                    List<ChannelStock> jiaojie = jiaojieStocks.Where(cs => cs.DrugId == it.DrugId).ToList();
 | 
					 | 
				
			||||||
        //                    if (jiaojie != null && jiaojie.Count > 0)
 | 
					 | 
				
			||||||
        //                    {
 | 
					 | 
				
			||||||
        //                        for (int j = 0; j < jiaojie.Count; j++)
 | 
					 | 
				
			||||||
        //                        {
 | 
					 | 
				
			||||||
        //                            // 更新数据 交接柜 库存信息
 | 
					 | 
				
			||||||
        //                            ChannelStock jiaojie_it = jiaojie[j];
 | 
					 | 
				
			||||||
        //                            SqlSugarHelper.Db.Updateable(new ChannelStock()
 | 
					 | 
				
			||||||
        //                            {
 | 
					 | 
				
			||||||
        //                                Quantity = jiaojie_it.BaseQuantity,
 | 
					 | 
				
			||||||
        //                                //ManuNo = it.ManuNo,
 | 
					 | 
				
			||||||
        //                                //EffDate = it.EffDate,
 | 
					 | 
				
			||||||
        //                                Id = jiaojie_it.Id,
 | 
					 | 
				
			||||||
        //                            }).UpdateColumns(jiaojie_it => new { jiaojie_it.Quantity }).ExecuteCommand();
 | 
					 | 
				
			||||||
        //                        }
 | 
					 | 
				
			||||||
        //                    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //                    // 保存数据 出库记录
 | 
					 | 
				
			||||||
        //                    SqlSugarHelper.Db.Insertable(new MachineRecord()
 | 
					 | 
				
			||||||
        //                    {
 | 
					 | 
				
			||||||
        //                        MachineId = it.MachineId,
 | 
					 | 
				
			||||||
        //                        DrawerNo = it.DrawerNo,
 | 
					 | 
				
			||||||
        //                        ColNo = it.ColNo,
 | 
					 | 
				
			||||||
        //                        DrugId = it.DrugId,
 | 
					 | 
				
			||||||
        //                        ManuNo = it.ManuNo,
 | 
					 | 
				
			||||||
        //                        EffDate = !String.IsNullOrEmpty(it.EffDate) ? DateTime.ParseExact(it.EffDate, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture) : null,
 | 
					 | 
				
			||||||
        //                        Operator = HomeWindowViewModel.Operator?.Id,
 | 
					 | 
				
			||||||
        //                        Reviewer = HomeWindowViewModel.Reviewer?.Id,
 | 
					 | 
				
			||||||
        //                        OperationTime = DateTime.Now,
 | 
					 | 
				
			||||||
        //                        Quantity = it.TakeQuantity,
 | 
					 | 
				
			||||||
        //                        Type = 2,
 | 
					 | 
				
			||||||
        //                        InvoiceId = InvoiceId
 | 
					 | 
				
			||||||
        //                    }).ExecuteCommand();
 | 
					 | 
				
			||||||
        //                }
 | 
					 | 
				
			||||||
        //                return true;
 | 
					 | 
				
			||||||
        //            });
 | 
					 | 
				
			||||||
        //            if (f.Data)
 | 
					 | 
				
			||||||
        //            {
 | 
					 | 
				
			||||||
        //                // 更新屏显库存
 | 
					 | 
				
			||||||
        //                List<ChannelStock> singleChannels = record.FindAll(it => it.BoardType != 5);
 | 
					 | 
				
			||||||
        //                if (singleChannels.Count > 0)
 | 
					 | 
				
			||||||
        //                {
 | 
					 | 
				
			||||||
        //                    singleChannels.ForEach(it =>
 | 
					 | 
				
			||||||
        //                    {
 | 
					 | 
				
			||||||
        //                        _portUtil.WriteQuantity(it.DrawerNo, it.ColNo, it.Quantity - it.TakeQuantity);
 | 
					 | 
				
			||||||
        //                    });
 | 
					 | 
				
			||||||
        //                }
 | 
					 | 
				
			||||||
        //                AlertMsg alertMsg = new AlertMsg
 | 
					 | 
				
			||||||
        //                {
 | 
					 | 
				
			||||||
        //                    Message = "补药完成,库存已更新",
 | 
					 | 
				
			||||||
        //                    Type = MsgType.SUCCESS,
 | 
					 | 
				
			||||||
        //                };
 | 
					 | 
				
			||||||
        //                _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
					 | 
				
			||||||
        //                RequestData();
 | 
					 | 
				
			||||||
        //            }
 | 
					 | 
				
			||||||
        //            if (!f.IsSuccess)
 | 
					 | 
				
			||||||
        //            {
 | 
					 | 
				
			||||||
        //                AlertMsg alertMsg = new AlertMsg
 | 
					 | 
				
			||||||
        //                {
 | 
					 | 
				
			||||||
        //                    Message = "补药操作失败,库存更新失败!",
 | 
					 | 
				
			||||||
        //                    Type = MsgType.ERROR,
 | 
					 | 
				
			||||||
        //                };
 | 
					 | 
				
			||||||
        //                _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
					 | 
				
			||||||
        //            }
 | 
					 | 
				
			||||||
        //        }
 | 
					 | 
				
			||||||
        //        else
 | 
					 | 
				
			||||||
        //        {
 | 
					 | 
				
			||||||
        //            AlertMsg alertMsg = new AlertMsg
 | 
					 | 
				
			||||||
        //            {
 | 
					 | 
				
			||||||
        //                Message = "补药数量有误",
 | 
					 | 
				
			||||||
        //                Type = MsgType.ERROR
 | 
					 | 
				
			||||||
        //            };
 | 
					 | 
				
			||||||
        //            _eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
 | 
					 | 
				
			||||||
        //        }
 | 
					 | 
				
			||||||
        //    });
 | 
					 | 
				
			||||||
        //}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //取消
 | 
					 | 
				
			||||||
        //public DelegateCommand CancleAdd
 | 
					 | 
				
			||||||
        //{
 | 
					 | 
				
			||||||
        //    get => new DelegateCommand(() =>
 | 
					 | 
				
			||||||
        //    {
 | 
					 | 
				
			||||||
        //        _portUtil.ResetData();
 | 
					 | 
				
			||||||
        //        Status = 0;
 | 
					 | 
				
			||||||
        //        IsEnable = true;
 | 
					 | 
				
			||||||
        //        CurrentNum = 0;
 | 
					 | 
				
			||||||
        //    });
 | 
					 | 
				
			||||||
        //}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public DelegateCommand RejectReport_Download
 | 
					        public DelegateCommand RejectReport_Download
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            get => new DelegateCommand(() =>
 | 
					            get => new DelegateCommand(() =>
 | 
				
			||||||
| 
						 | 
					@ -598,17 +268,17 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
        public DelegateCommand RowSelected => _rowSelected ??= new DelegateCommand(OpenOrderDialog);
 | 
					        public DelegateCommand RowSelected => _rowSelected ??= new DelegateCommand(OpenOrderDialog);
 | 
				
			||||||
        public async void OpenOrderDialog()
 | 
					        public async void OpenOrderDialog()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (_ChannelList != null && _ChannelList.channelStocks != null && _ChannelList.State == 0)
 | 
					            if (_ChannelList != null && _ChannelList.channelStocks != null && _ChannelList.channelStocks.Any(cs=>cs.State==0))
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                // 此处延时1毫秒,等待页面渲染
 | 
					                // 此处延时1毫秒,等待页面渲染
 | 
				
			||||||
                await Task.Delay(TimeSpan.FromMilliseconds(1));
 | 
					                await Task.Delay(TimeSpan.FromMilliseconds(1));
 | 
				
			||||||
                //选中药箱号下的所有药品id
 | 
					                //选中药箱号下的所有药品id
 | 
				
			||||||
                DialogParameters dialogParameters = new DialogParameters();
 | 
					                DialogParameters dialogParameters = new DialogParameters();
 | 
				
			||||||
                dialogParameters.Add("_ChannelStock", _ChannelList.channelStocks);
 | 
					                dialogParameters.Add("_ChannelStock", _ChannelList.channelStocks.Where(cs=>cs.State==0).ToList());
 | 
				
			||||||
                DialogServiceExtensions.ShowDialogHost(_dialogService, "AddToJiaoJieDialog", dialogParameters, DoDialogResult, "RootDialog");
 | 
					                DialogServiceExtensions.ShowDialogHost(_dialogService, "AddToJiaoJieDialog", dialogParameters, DoDialogResult, "RootDialog");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if(_ChannelList!=null&& _ChannelList.State == 1)
 | 
					            if(_ChannelList!=null)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                AlertMsg alertMsg = new AlertMsg
 | 
					                AlertMsg alertMsg = new AlertMsg
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -238,6 +238,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    Status = 0;
 | 
					                    Status = 0;
 | 
				
			||||||
                    _isFinishClick = false;
 | 
					                    _isFinishClick = false;
 | 
				
			||||||
 | 
					                    _portUtil.OperateFinish = true;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else
 | 
					                else
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -383,6 +383,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        Status = 0;
 | 
					                        Status = 0;
 | 
				
			||||||
                        _isFinishClick = false;
 | 
					                        _isFinishClick = false;
 | 
				
			||||||
 | 
					                        _portUtil.OperateFinish = true;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    else
 | 
					                    else
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
| 
						 | 
					@ -407,6 +408,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                _portUtil.ResetData();
 | 
					                _portUtil.ResetData();
 | 
				
			||||||
                Status = 0;
 | 
					                Status = 0;
 | 
				
			||||||
 | 
					                _portUtil.OperateFinish = true;
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -387,6 +387,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        Status = 0;
 | 
					                        Status = 0;
 | 
				
			||||||
                        _isFinishClick = false;
 | 
					                        _isFinishClick = false;
 | 
				
			||||||
 | 
					                        _portUtil.OperateFinish = true;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    else
 | 
					                    else
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
| 
						 | 
					@ -411,6 +412,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                _portUtil.ResetData();
 | 
					                _portUtil.ResetData();
 | 
				
			||||||
                Status = 0;
 | 
					                Status = 0;
 | 
				
			||||||
 | 
					                _portUtil.OperateFinish = true;
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -550,7 +550,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    try
 | 
					                    try
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if (!_portUtil.Operate)
 | 
					                        if (!_portUtil.Operate &&_portUtil.OperateFinish)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            // 无人操作鼠标键盘
 | 
					                            // 无人操作鼠标键盘
 | 
				
			||||||
                            if ((DateTime.Now - _portUtil.dateTime).TotalSeconds > autoExit && CheckComputerFreeState.GetLastInputTime() > autoExit)
 | 
					                            if ((DateTime.Now - _portUtil.dateTime).TotalSeconds > autoExit && CheckComputerFreeState.GetLastInputTime() > autoExit)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -425,7 +425,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                    Status = 0;
 | 
					                    Status = 0;
 | 
				
			||||||
                    _isFinishClick = false;
 | 
					                    _isFinishClick = false;
 | 
				
			||||||
                    RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
 | 
					                    RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
 | 
				
			||||||
 | 
					                    _portUtil.OperateFinish = true;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
| 
						 | 
					@ -444,6 +444,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                RequestData();
 | 
					                RequestData();
 | 
				
			||||||
                _portUtil.ResetData();
 | 
					                _portUtil.ResetData();
 | 
				
			||||||
                Status = 0;
 | 
					                Status = 0;
 | 
				
			||||||
 | 
					                _portUtil.OperateFinish = true;
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -479,6 +479,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                        Status = 0;
 | 
					                        Status = 0;
 | 
				
			||||||
                        _isFinishClick = false;
 | 
					                        _isFinishClick = false;
 | 
				
			||||||
                        RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
 | 
					                        RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
 | 
				
			||||||
 | 
					                        _portUtil.OperateFinish = true;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    else
 | 
					                    else
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
| 
						 | 
					@ -508,6 +509,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                _portUtil.ResetData();
 | 
					                _portUtil.ResetData();
 | 
				
			||||||
                Status = 0;
 | 
					                Status = 0;
 | 
				
			||||||
 | 
					                _portUtil.OperateFinish = true;
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,36 +1,41 @@
 | 
				
			||||||
using log4net;
 | 
					using DM_Weight.Finger;
 | 
				
			||||||
using log4net.Core;
 | 
					using DM_Weight.HIKVISION;
 | 
				
			||||||
using log4net.Repository.Hierarchy;
 | 
					 | 
				
			||||||
using Prism.Commands;
 | 
					 | 
				
			||||||
using Prism.Events;
 | 
					 | 
				
			||||||
using Prism.Ioc;
 | 
					 | 
				
			||||||
using Prism.Mvvm;
 | 
					 | 
				
			||||||
using Prism.Regions;
 | 
					 | 
				
			||||||
using System;
 | 
					 | 
				
			||||||
using System.Collections.Generic;
 | 
					 | 
				
			||||||
using System.ComponentModel;
 | 
					 | 
				
			||||||
using System.Configuration;
 | 
					 | 
				
			||||||
using System.Linq;
 | 
					 | 
				
			||||||
using System.Text;
 | 
					 | 
				
			||||||
using System.Threading.Tasks;
 | 
					 | 
				
			||||||
using System.Windows;
 | 
					 | 
				
			||||||
using DM_Weight.Finger;
 | 
					 | 
				
			||||||
using DM_Weight.Models;
 | 
					using DM_Weight.Models;
 | 
				
			||||||
using DM_Weight.msg;
 | 
					using DM_Weight.msg;
 | 
				
			||||||
using DM_Weight.Port;
 | 
					using DM_Weight.Port;
 | 
				
			||||||
using DM_Weight.util;
 | 
					using DM_Weight.util;
 | 
				
			||||||
using DM_Weight.Views;
 | 
					using DM_Weight.Views;
 | 
				
			||||||
using System.Collections.ObjectModel;
 | 
					using log4net;
 | 
				
			||||||
 | 
					using log4net.Core;
 | 
				
			||||||
 | 
					using log4net.Repository.Hierarchy;
 | 
				
			||||||
using Microsoft.Win32;
 | 
					using Microsoft.Win32;
 | 
				
			||||||
using System.Xml;
 | 
					using Prism.Commands;
 | 
				
			||||||
 | 
					using Prism.Events;
 | 
				
			||||||
 | 
					using Prism.Ioc;
 | 
				
			||||||
 | 
					using Prism.Mvvm;
 | 
				
			||||||
 | 
					using Prism.Regions;
 | 
				
			||||||
 | 
					using ScreenRecorderLib;
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Collections.ObjectModel;
 | 
				
			||||||
 | 
					using System.ComponentModel;
 | 
				
			||||||
 | 
					using System.Configuration;
 | 
				
			||||||
using System.Diagnostics;
 | 
					using System.Diagnostics;
 | 
				
			||||||
using DM_Weight.HIKVISION;
 | 
					using System.IO;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
using System.Security.AccessControl;
 | 
					using System.Security.AccessControl;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using System.Windows;
 | 
				
			||||||
 | 
					using System.Windows.Threading;
 | 
				
			||||||
 | 
					using System.Xml;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace DM_Weight.ViewModels
 | 
					namespace DM_Weight.ViewModels
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    public class LoginWindowViewModel : BindableBase, IRegionMemberLifetime, IConfirmNavigationRequest
 | 
					    public class LoginWindowViewModel : BindableBase, IRegionMemberLifetime, IConfirmNavigationRequest
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private readonly ILog logger = LogManager.GetLogger(typeof(LoginWindowViewModel));
 | 
					        private readonly ILog logger = LogManager.GetLogger(typeof(LoginWindowViewModel));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private string username;
 | 
					        private string username;
 | 
				
			||||||
| 
						 | 
					@ -357,6 +362,8 @@ _exitCommand ??= new DelegateCommand(Exit);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        void Exit()
 | 
					        void Exit()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					            //清录屏进程
 | 
				
			||||||
 | 
					            _eventAggregator.GetEvent<PrintScreenEvent>().Publish(2);
 | 
				
			||||||
            //_chkFunction.HIKLoginOut();
 | 
					            //_chkFunction.HIKLoginOut();
 | 
				
			||||||
            Process.GetCurrentProcess().Kill();
 | 
					            Process.GetCurrentProcess().Kill();
 | 
				
			||||||
            Environment.Exit(0);
 | 
					            Environment.Exit(0);
 | 
				
			||||||
| 
						 | 
					@ -463,8 +470,10 @@ _exitCommand ??= new DelegateCommand(Exit);
 | 
				
			||||||
        //接收导航传过来的参数  现在是在此处初始化了表格数据
 | 
					        //接收导航传过来的参数  现在是在此处初始化了表格数据
 | 
				
			||||||
        public void OnNavigatedTo(NavigationContext navigationContext)
 | 
					        public void OnNavigatedTo(NavigationContext navigationContext)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            //FingerMsg = !_fingerprintUtil.bIsConnected;
 | 
					            FingerMsg = !_fingerprintUtil.bIsConnected;
 | 
				
			||||||
            _eventAggregator.GetEvent<FingerprintEvent>().Subscribe(LoginEvent);
 | 
					            _eventAggregator.GetEvent<FingerprintEvent>().Subscribe(LoginEvent);
 | 
				
			||||||
 | 
					            //结束录屏
 | 
				
			||||||
 | 
					            _eventAggregator.GetEvent<PrintScreenEvent>().Publish(0);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -478,6 +487,11 @@ _exitCommand ??= new DelegateCommand(Exit);
 | 
				
			||||||
        public void OnNavigatedFrom(NavigationContext navigationContext)
 | 
					        public void OnNavigatedFrom(NavigationContext navigationContext)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            _eventAggregator.GetEvent<FingerprintEvent>().Unsubscribe(LoginEvent);
 | 
					            _eventAggregator.GetEvent<FingerprintEvent>().Unsubscribe(LoginEvent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #region 录屏
 | 
				
			||||||
 | 
					            //登录进来后开始录屏
 | 
				
			||||||
 | 
					            _eventAggregator.GetEvent<PrintScreenEvent>().Publish(1);
 | 
				
			||||||
 | 
					            #endregion
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        //手动实现调用配置的逻辑 规避修改配置文件后不起作用的问题
 | 
					        //手动实现调用配置的逻辑 规避修改配置文件后不起作用的问题
 | 
				
			||||||
        public string ReadAppSetting(string key)
 | 
					        public string ReadAppSetting(string key)
 | 
				
			||||||
| 
						 | 
					@ -489,5 +503,6 @@ _exitCommand ??= new DelegateCommand(Exit);
 | 
				
			||||||
            XmlNode node = doc.SelectSingleNode(xPath);
 | 
					            XmlNode node = doc.SelectSingleNode(xPath);
 | 
				
			||||||
            return node.Attributes["value"].Value.ToString();
 | 
					            return node.Attributes["value"].Value.ToString();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,26 +1,38 @@
 | 
				
			||||||
using MaterialDesignThemes.Wpf;
 | 
					using DM_Weight.Finger;
 | 
				
			||||||
 | 
					using DM_Weight.HIKVISION;
 | 
				
			||||||
 | 
					using DM_Weight.msg;
 | 
				
			||||||
 | 
					using DM_Weight.Port;
 | 
				
			||||||
 | 
					using DM_Weight.util;
 | 
				
			||||||
 | 
					using DM_Weight.Views;
 | 
				
			||||||
 | 
					using log4net;
 | 
				
			||||||
 | 
					using log4net.Repository.Hierarchy;
 | 
				
			||||||
 | 
					using MaterialDesignThemes.Wpf;
 | 
				
			||||||
using Prism.Commands;
 | 
					using Prism.Commands;
 | 
				
			||||||
using Prism.Events;
 | 
					using Prism.Events;
 | 
				
			||||||
using Prism.Mvvm;
 | 
					using Prism.Mvvm;
 | 
				
			||||||
using Prism.Regions;
 | 
					using Prism.Regions;
 | 
				
			||||||
 | 
					using ScreenRecorderLib;
 | 
				
			||||||
using System;
 | 
					using System;
 | 
				
			||||||
using System.Collections.Generic;
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.IO;
 | 
				
			||||||
using System.Linq;
 | 
					using System.Linq;
 | 
				
			||||||
using System.Text;
 | 
					using System.Text;
 | 
				
			||||||
using System.Threading.Tasks;
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
using System.Windows.Media;
 | 
					using System.Windows.Media;
 | 
				
			||||||
using DM_Weight.msg;
 | 
					 | 
				
			||||||
using DM_Weight.Port;
 | 
					 | 
				
			||||||
using DM_Weight.util;
 | 
					 | 
				
			||||||
using DM_Weight.Finger;
 | 
					 | 
				
			||||||
using DM_Weight.Views;
 | 
					 | 
				
			||||||
using Unity;
 | 
					using Unity;
 | 
				
			||||||
using DM_Weight.HIKVISION;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace DM_Weight.ViewModels
 | 
					namespace DM_Weight.ViewModels
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    internal class MainWindowViewModel : BindableBase
 | 
					    internal class MainWindowViewModel : BindableBase
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					        #region 录屏相关
 | 
				
			||||||
 | 
					        public Recorder _recorder;
 | 
				
			||||||
 | 
					        private string _outputFolder;
 | 
				
			||||||
 | 
					        private string _outputFilePath;
 | 
				
			||||||
 | 
					        public static MainWindowViewModel vm;
 | 
				
			||||||
 | 
					        #endregion
 | 
				
			||||||
 | 
					        private readonly ILog logger = LogManager.GetLogger(typeof(MainWindowViewModel));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private string _title = "Prism App";   //标题
 | 
					        private string _title = "Prism App";   //标题
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private ISnackbarMessageQueue _snackbarMessageQueue = new SnackbarMessageQueue(TimeSpan.FromSeconds(3));
 | 
					        private ISnackbarMessageQueue _snackbarMessageQueue = new SnackbarMessageQueue(TimeSpan.FromSeconds(3));
 | 
				
			||||||
| 
						 | 
					@ -66,9 +78,11 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
        //private CHKFunction _cHKFunction;
 | 
					        //private CHKFunction _cHKFunction;
 | 
				
			||||||
        public MainWindowViewModel(IRegionManager regionManager, IUnityContainer container, IEventAggregator eventAggregator, FingerprintUtil fingerprintUtil, ScreenUtil screenUtil)
 | 
					        public MainWindowViewModel(IRegionManager regionManager, IUnityContainer container, IEventAggregator eventAggregator, FingerprintUtil fingerprintUtil, ScreenUtil screenUtil)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					            vm = this;
 | 
				
			||||||
            //_portUtil = portUtil;
 | 
					            //_portUtil = portUtil;
 | 
				
			||||||
            this.eventAggregator = eventAggregator;
 | 
					            this.eventAggregator = eventAggregator;
 | 
				
			||||||
            this.eventAggregator.GetEvent<SnackbarEvent>().Subscribe(doMyPrismEvent2);
 | 
					            this.eventAggregator.GetEvent<SnackbarEvent>().Subscribe(doMyPrismEvent2);
 | 
				
			||||||
 | 
					            this.eventAggregator.GetEvent<PrintScreenEvent>().Subscribe(PrintScreen);
 | 
				
			||||||
            _screenUtil = screenUtil;
 | 
					            _screenUtil = screenUtil;
 | 
				
			||||||
            _fingerprintUtil = fingerprintUtil;
 | 
					            _fingerprintUtil = fingerprintUtil;
 | 
				
			||||||
            _regionManager = regionManager;
 | 
					            _regionManager = regionManager;
 | 
				
			||||||
| 
						 | 
					@ -106,5 +120,90 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
            SnackbarMessageQueue.Enqueue(msg.Message);
 | 
					            SnackbarMessageQueue.Enqueue(msg.Message);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #region 录屏
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// 录屏事件
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <param name="type">0停止录屏;1开始录屏;2退出软件清进程</param>
 | 
				
			||||||
 | 
					        void PrintScreen(int type)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if(type==0)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                StopPrintScreen();
 | 
				
			||||||
 | 
					                //删除7天前的录屏文件
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (Directory.Exists(_outputFolder))
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    var files = Directory.GetFiles(_outputFolder);
 | 
				
			||||||
 | 
					                    foreach (var file in files)
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        var fileInfo = new FileInfo(file);
 | 
				
			||||||
 | 
					                        if (fileInfo.CreationTime < DateTime.Now.AddDays(-7))
 | 
				
			||||||
 | 
					                        {
 | 
				
			||||||
 | 
					                            try
 | 
				
			||||||
 | 
					                            {
 | 
				
			||||||
 | 
					                                fileInfo.Delete();
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                            catch (Exception ex)
 | 
				
			||||||
 | 
					                            {
 | 
				
			||||||
 | 
					                                logger.Error($"删除录屏文件失败: {ex.Message}");
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else if (type == 1)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                StartPrintScreen();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else if (type == 2)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _recorder?.Dispose();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        #endregion
 | 
				
			||||||
 | 
					        void StopPrintScreen()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //退出登录结束录屏
 | 
				
			||||||
 | 
					            _recorder?.Stop();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        //录屏
 | 
				
			||||||
 | 
					        void StartPrintScreen()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 创建输出目录
 | 
				
			||||||
 | 
					            _outputFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "Log", "ScreenRecordings");
 | 
				
			||||||
 | 
					            if (!Directory.Exists(_outputFolder))
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                Directory.CreateDirectory(_outputFolder);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            // 生成输出文件名
 | 
				
			||||||
 | 
					            string timestamp = DateTime.Now.ToString("yyyyMMdd_HHmmss");
 | 
				
			||||||
 | 
					            _outputFilePath = Path.Combine(_outputFolder, $"{timestamp}.mp4");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 设置录制选项
 | 
				
			||||||
 | 
					            var options = new RecorderOptions();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 创建录制器实例
 | 
				
			||||||
 | 
					            _recorder = Recorder.CreateRecorder(options);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 设置事件处理
 | 
				
			||||||
 | 
					            _recorder.OnRecordingComplete += Recorder_OnRecordingComplete;
 | 
				
			||||||
 | 
					            _recorder.OnRecordingFailed += Recorder_OnRecordingFailed;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 开始录制
 | 
				
			||||||
 | 
					            _recorder.Record(_outputFilePath);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        //录制失败
 | 
				
			||||||
 | 
					        private void Recorder_OnRecordingFailed(object sender, RecordingFailedEventArgs e)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            logger.Info($"录制失败: {e.Error}");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        //录制完成
 | 
				
			||||||
 | 
					        private void Recorder_OnRecordingComplete(object sender, RecordingCompleteEventArgs e)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            logger.Info($"录制完成: {e.FilePath}");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -444,6 +444,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        Status = 0;
 | 
					                        Status = 0;
 | 
				
			||||||
                        _isFinishClick = false;
 | 
					                        _isFinishClick = false;
 | 
				
			||||||
 | 
					                        _portUtil.OperateFinish = true;
 | 
				
			||||||
                        //RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
 | 
					                        //RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
 | 
				
			||||||
                        RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
 | 
					                        RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
| 
						 | 
					@ -464,6 +465,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                _portUtil.ResetData();
 | 
					                _portUtil.ResetData();
 | 
				
			||||||
                Status = 0;
 | 
					                Status = 0;
 | 
				
			||||||
 | 
					                _portUtil.OperateFinish = true;
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -460,6 +460,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    Status = 0;
 | 
					                    Status = 0;
 | 
				
			||||||
                    _isFinishClick = false; 
 | 
					                    _isFinishClick = false; 
 | 
				
			||||||
 | 
					                    _portUtil.OperateFinish = true;
 | 
				
			||||||
                    RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
 | 
					                    RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
 | 
				
			||||||
                    //}
 | 
					                    //}
 | 
				
			||||||
                    //else
 | 
					                    //else
 | 
				
			||||||
| 
						 | 
					@ -490,6 +491,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                _portUtil.ResetData();
 | 
					                _portUtil.ResetData();
 | 
				
			||||||
                Status = 0;
 | 
					                Status = 0;
 | 
				
			||||||
 | 
					                _portUtil.OperateFinish = true;
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -497,6 +497,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        Status = 0;
 | 
					                        Status = 0;
 | 
				
			||||||
                        _isFinishClick = false;
 | 
					                        _isFinishClick = false;
 | 
				
			||||||
 | 
					                        _portUtil.OperateFinish = true;
 | 
				
			||||||
                        //RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
 | 
					                        //RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
 | 
				
			||||||
                        RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
 | 
					                        RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
| 
						 | 
					@ -528,6 +529,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                _portUtil.ResetData();
 | 
					                _portUtil.ResetData();
 | 
				
			||||||
                Status = 0;
 | 
					                Status = 0;
 | 
				
			||||||
 | 
					                _portUtil.OperateFinish = true;
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -398,6 +398,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                Status = 0;
 | 
					                Status = 0;
 | 
				
			||||||
                IsFinishClick = false;
 | 
					                IsFinishClick = false;
 | 
				
			||||||
 | 
					                _portUtil.OperateFinish = true;
 | 
				
			||||||
                RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
 | 
					                RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            }, () => !IsFinishClick && ReturnQuantity > 0).ObservesProperty(() => IsFinishClick).ObservesProperty(() => ReturnQuantity);
 | 
					            }, () => !IsFinishClick && ReturnQuantity > 0).ObservesProperty(() => IsFinishClick).ObservesProperty(() => ReturnQuantity);
 | 
				
			||||||
| 
						 | 
					@ -416,6 +417,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                IsFinishClick = false;
 | 
					                IsFinishClick = false;
 | 
				
			||||||
                _portUtil.ResetData();
 | 
					                _portUtil.ResetData();
 | 
				
			||||||
                Status = 0;
 | 
					                Status = 0;
 | 
				
			||||||
 | 
					                _portUtil.OperateFinish = true;
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -334,6 +334,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    Status = 0;
 | 
					                    Status = 0;
 | 
				
			||||||
                    IsFinishClick = false;
 | 
					                    IsFinishClick = false;
 | 
				
			||||||
 | 
					                    _portUtil.OperateFinish = true;
 | 
				
			||||||
                    RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
 | 
					                    RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
 | 
				
			||||||
                } else
 | 
					                } else
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
| 
						 | 
					@ -361,6 +362,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                IsFinishClick = false;
 | 
					                IsFinishClick = false;
 | 
				
			||||||
                _portUtil.ResetData();
 | 
					                _portUtil.ResetData();
 | 
				
			||||||
                Status = 0;
 | 
					                Status = 0;
 | 
				
			||||||
 | 
					                _portUtil.OperateFinish = true;
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -413,6 +413,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    Status = 0;
 | 
					                    Status = 0;
 | 
				
			||||||
                    _isFinishClick = false; 
 | 
					                    _isFinishClick = false; 
 | 
				
			||||||
 | 
					                    _portUtil.OperateFinish = true;
 | 
				
			||||||
                    RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
 | 
					                    RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
| 
						 | 
					@ -433,6 +434,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                RequestData();
 | 
					                RequestData();
 | 
				
			||||||
                _portUtil.ResetData();
 | 
					                _portUtil.ResetData();
 | 
				
			||||||
                Status = 0;
 | 
					                Status = 0;
 | 
				
			||||||
 | 
					                _portUtil.OperateFinish = true;
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -383,6 +383,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    Status = 0;
 | 
					                    Status = 0;
 | 
				
			||||||
                    _isFinishClick = false;
 | 
					                    _isFinishClick = false;
 | 
				
			||||||
 | 
					                    _portUtil.OperateFinish = true;
 | 
				
			||||||
                    RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
 | 
					                    RequestClose?.Invoke(new DialogResult(ButtonResult.OK));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
| 
						 | 
					@ -402,6 +403,7 @@ namespace DM_Weight.ViewModels
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                _portUtil.ResetData();
 | 
					                _portUtil.ResetData();
 | 
				
			||||||
                Status = 0;
 | 
					                Status = 0;
 | 
				
			||||||
 | 
					                _portUtil.OperateFinish = true;
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -263,9 +263,21 @@
 | 
				
			||||||
                            </DataTemplate>
 | 
					                            </DataTemplate>
 | 
				
			||||||
                        </GridViewColumn.CellTemplate>
 | 
					                        </GridViewColumn.CellTemplate>
 | 
				
			||||||
                    </GridViewColumn>
 | 
					                    </GridViewColumn>
 | 
				
			||||||
                    <GridViewColumn Width="100"
 | 
					                    <GridViewColumn Width="130"
 | 
				
			||||||
                          DisplayMemberBinding="{Binding State,Converter={StaticResource StockStatusConverter},ConverterParameter=TextState}"
 | 
					                          Header="状态">
 | 
				
			||||||
                          Header="状态"/>
 | 
					                        <GridViewColumn.CellTemplate>
 | 
				
			||||||
 | 
					                            <DataTemplate>
 | 
				
			||||||
 | 
					                                <ListBox ItemsSource="{Binding channelStocks}"  materialDesign:ListBoxItemAssist.ShowSelection="False">
 | 
				
			||||||
 | 
					                                    <ListBox.ItemTemplate>
 | 
				
			||||||
 | 
					                                        <DataTemplate>
 | 
				
			||||||
 | 
					                                            <TextBlock Width="130" Text="{Binding State,Converter={StaticResource StockStatusConverter},ConverterParameter=TextState}"> 
 | 
				
			||||||
 | 
					                                            </TextBlock>
 | 
				
			||||||
 | 
					                                        </DataTemplate>
 | 
				
			||||||
 | 
					                                    </ListBox.ItemTemplate>
 | 
				
			||||||
 | 
					                                </ListBox>
 | 
				
			||||||
 | 
					                            </DataTemplate>
 | 
				
			||||||
 | 
					                        </GridViewColumn.CellTemplate>
 | 
				
			||||||
 | 
					                    </GridViewColumn>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    <!--<GridViewColumn Width="200"
 | 
					                    <!--<GridViewColumn Width="200"
 | 
				
			||||||
             DisplayMemberBinding="{Binding Drug.DrugName}"
 | 
					             DisplayMemberBinding="{Binding Drug.DrugName}"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,6 +15,7 @@
 | 
				
			||||||
             mc:Ignorable="d" >
 | 
					             mc:Ignorable="d" >
 | 
				
			||||||
    <UserControl.Resources>
 | 
					    <UserControl.Resources>
 | 
				
			||||||
        <convert:StatusConverter x:Key="StatusConverter" />
 | 
					        <convert:StatusConverter x:Key="StatusConverter" />
 | 
				
			||||||
 | 
					        <convert:TakeQuantityVisiable x:Key="TakeQuantityVisiable" />
 | 
				
			||||||
    </UserControl.Resources>
 | 
					    </UserControl.Resources>
 | 
				
			||||||
    <materialDesign:Card Padding="0">
 | 
					    <materialDesign:Card Padding="0">
 | 
				
			||||||
        <Grid>
 | 
					        <Grid>
 | 
				
			||||||
| 
						 | 
					@ -105,7 +106,8 @@
 | 
				
			||||||
                    <DataGridTemplateColumn  Header="取出数量">
 | 
					                    <DataGridTemplateColumn  Header="取出数量">
 | 
				
			||||||
                        <DataGridTemplateColumn.CellTemplate>
 | 
					                        <DataGridTemplateColumn.CellTemplate>
 | 
				
			||||||
                            <DataTemplate>
 | 
					                            <DataTemplate>
 | 
				
			||||||
                                <TextBox Width="80" Style="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}">
 | 
					                                <TextBox Width="80" Style="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}" 
 | 
				
			||||||
 | 
					                                         Visibility="{Binding ColNo,Converter={StaticResource TakeQuantityVisiable}}">
 | 
				
			||||||
                                    <TextBox.Text>
 | 
					                                    <TextBox.Text>
 | 
				
			||||||
                                        <Binding Path="TakeQuantity" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
 | 
					                                        <Binding Path="TakeQuantity" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
 | 
				
			||||||
                                        </Binding>
 | 
					                                        </Binding>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,174 +0,0 @@
 | 
				
			||||||
<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>
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,28 +0,0 @@
 | 
				
			||||||
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();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,10 @@
 | 
				
			||||||
using Prism.Events;
 | 
					using DM_Weight.msg;
 | 
				
			||||||
 | 
					using DM_Weight.util;
 | 
				
			||||||
 | 
					using DM_Weight.ViewModels;
 | 
				
			||||||
 | 
					using Prism.Events;
 | 
				
			||||||
using Prism.Ioc;
 | 
					using Prism.Ioc;
 | 
				
			||||||
using Prism.Regions;
 | 
					using Prism.Regions;
 | 
				
			||||||
 | 
					using ScreenRecorderLib;
 | 
				
			||||||
using System;
 | 
					using System;
 | 
				
			||||||
using System.Collections.Generic;
 | 
					using System.Collections.Generic;
 | 
				
			||||||
using System.Linq;
 | 
					using System.Linq;
 | 
				
			||||||
| 
						 | 
					@ -16,8 +20,6 @@ using System.Windows.Media.Imaging;
 | 
				
			||||||
using System.Windows.Shapes;
 | 
					using System.Windows.Shapes;
 | 
				
			||||||
using Unity;
 | 
					using Unity;
 | 
				
			||||||
using Unity.Lifetime;
 | 
					using Unity.Lifetime;
 | 
				
			||||||
using DM_Weight.msg;
 | 
					 | 
				
			||||||
using DM_Weight.util;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace DM_Weight.Views
 | 
					namespace DM_Weight.Views
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -28,9 +30,11 @@ namespace DM_Weight.Views
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        //IRegionManager _regionManager;
 | 
					        //IRegionManager _regionManager;
 | 
				
			||||||
        //IUnityContainer _container;
 | 
					        //IUnityContainer _container;
 | 
				
			||||||
 | 
					        MainWindowViewModel vms;
 | 
				
			||||||
        public MainWindow()
 | 
					        public MainWindow()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            InitializeComponent();
 | 
					            InitializeComponent();
 | 
				
			||||||
 | 
					            vms = MainWindowViewModel.vm;
 | 
				
			||||||
            //_regionManager = regionManager;
 | 
					            //_regionManager = regionManager;
 | 
				
			||||||
            //_container = container;
 | 
					            //_container = container;
 | 
				
			||||||
            //System.Windows.Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
 | 
					            //System.Windows.Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
 | 
				
			||||||
| 
						 | 
					@ -42,6 +46,11 @@ namespace DM_Weight.Views
 | 
				
			||||||
            //}));
 | 
					            //}));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        protected override void OnClosed(EventArgs e)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            vms._recorder?.Dispose();
 | 
				
			||||||
 | 
					            base.OnClosed(e);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
       
 | 
					       
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,14 @@
 | 
				
			||||||
 | 
					using DM_Weight.Models;
 | 
				
			||||||
 | 
					using Prism.Events;
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace DM_Weight.msg
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    internal class PrintScreenEvent : PubSubEvent<int>
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue