diff --git a/DM_Weight/App.xaml.cs b/DM_Weight/App.xaml.cs index 7bfc8a8..817e5a2 100644 --- a/DM_Weight/App.xaml.cs +++ b/DM_Weight/App.xaml.cs @@ -103,7 +103,7 @@ namespace DM_Weight // 组态屏工具 //containerRegistry.RegisterSingleton(); // 录像机 - containerRegistry.RegisterSingleton(); + //containerRegistry.RegisterSingleton(); containerRegistry.Register(); diff --git a/DM_Weight/Converter/DrawerContentConverter.cs b/DM_Weight/Converter/DrawerContentConverter.cs new file mode 100644 index 0000000..f7d85be --- /dev/null +++ b/DM_Weight/Converter/DrawerContentConverter.cs @@ -0,0 +1,45 @@ +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 DrawerContentConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + //int iLength = value[0].ToString().Length; + //int ButtonDrawerNo = int.Parse(value[0].ToString().Substring(0, iLength-3)); + //int SelectedDrawerNo = int.Parse(value[1].ToString()); + //return ButtonDrawerNo == SelectedDrawerNo; + if (value!=null) + { + string name = value.ToString(); + string num = parameter.ToString(); + if (!string.IsNullOrEmpty(name)) + { + return num + " " + name; + } + else + return num; + } + else if(!string.IsNullOrEmpty(parameter.ToString())) + { + return parameter.ToString(); + } + else + + return ""; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/DM_Weight/Converter/DrawerSelectConverter.cs b/DM_Weight/Converter/DrawerSelectConverter.cs index 7dde271..7deb2d6 100644 --- a/DM_Weight/Converter/DrawerSelectConverter.cs +++ b/DM_Weight/Converter/DrawerSelectConverter.cs @@ -4,19 +4,25 @@ 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 DrawerSelectConverter : IMultiValueConverter { - public object Convert(object[] value, Type targetType, object parameter, CultureInfo culture) + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { - int iLength = value[0].ToString().Length; - int ButtonDrawerNo = int.Parse(value[0].ToString().Substring(0, iLength-3)); - int SelectedDrawerNo = int.Parse(value[1].ToString()); - return ButtonDrawerNo == SelectedDrawerNo; + if (!string.IsNullOrEmpty(values[0].ToString()) && values[0].ToString().Length >= 1) + { + + + int iLength = values[0].ToString().Length; + int ButtonDrawerNo = int.Parse(values[0].ToString().Substring(0, 1)); + int SelectedDrawerNo = int.Parse(values[1].ToString()); + return ButtonDrawerNo == SelectedDrawerNo; + } + return + false; } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) diff --git a/DM_Weight/Models/ChannelList.cs b/DM_Weight/Models/ChannelList.cs index e0ad1a7..89e870c 100644 --- a/DM_Weight/Models/ChannelList.cs +++ b/DM_Weight/Models/ChannelList.cs @@ -208,5 +208,9 @@ namespace DM_Weight.Models private string _drugSpec; [SugarColumn(ColumnName = "drug_manu_no")] public string DrugSpec { get=> _drugSpec;set=>SetProperty(ref _drugSpec, value); } + + private string _belongUserName; + [SugarColumn(IsIgnore =true)] + public string BelongUserName { get => _belongUserName;set=>SetProperty(ref _belongUserName, value); } } } diff --git a/DM_Weight/Port/ModbusHelper.cs b/DM_Weight/Port/ModbusHelper.cs index 5b4fdb2..ce87f4a 100644 --- a/DM_Weight/Port/ModbusHelper.cs +++ b/DM_Weight/Port/ModbusHelper.cs @@ -12,6 +12,7 @@ using System.Net; using System.Net.Sockets; using System.Runtime.InteropServices; using System.Text; +using System.Threading; using System.Threading.Tasks; namespace DM_Weight.Port @@ -24,7 +25,7 @@ namespace DM_Weight.Port private static ModbusHelper instance; private static readonly object objLock = new object(); private readonly ILog logger = LogManager.GetLogger(typeof(CheckOrderNewWindowViewModel)); - public ModbusHelper() + private ModbusHelper() { socket = MakeKeepALiveSocket(); client = new TcpClient(); @@ -62,6 +63,7 @@ namespace DM_Weight.Port this.Dispose(); //Debug.WriteLine($"获取所有箱子门状态出错,第{retryCount}次重试", exception); logger.Info($"获取所有箱子门状态出错,第{retryCount}次重试, 异常信息{exception}"); + Thread.Sleep(50); this.SetModusIpMaster(); // return TimeSpan.FromSeconds (1); }).Execute(() => @@ -76,6 +78,7 @@ namespace DM_Weight.Port flags[i] = r2[17 - i] == '1' ? true : false; } logger.Info($"获取所有箱子门状态返回:{string.Join(',',flags)}"); + Thread.Sleep(50); return flags; }); return bools; @@ -88,6 +91,7 @@ namespace DM_Weight.Port this.Dispose(); //Debug.WriteLine($"打开箱子出错,第{retryCount}次重试", exception); logger.Info($"打开箱子出错,第{retryCount}次重试,异常信息{exception}"); + Thread.Sleep(50); this.SetModusIpMaster(); //return TimeSpan.FromSeconds (1); })).Execute(() => diff --git a/DM_Weight/Port/PortUtil.cs b/DM_Weight/Port/PortUtil.cs index d055ab9..ff87b5b 100644 --- a/DM_Weight/Port/PortUtil.cs +++ b/DM_Weight/Port/PortUtil.cs @@ -230,7 +230,7 @@ namespace DM_Weight.Port logger.Info($"进行抽屉操作抽屉号【{DrawerNo}】类型【{BoardType}】库位【{string.Join(",", ColNos)}】窗口【{WindowName}】"); Operate = true; //开始录像 - _chkFunction.HIKStartDVRRecord(); + //_chkFunction.HIKStartDVRRecord(); logger.Info($"时间:{DateTime.Now}"); try { @@ -683,8 +683,8 @@ namespace DM_Weight.Port private readonly IEventAggregator _eventAggregator; - private CHKFunction _chkFunction; - public PortUtil(IEventAggregator eventAggregator, CHKFunction chkFunction) + //private CHKFunction _chkFunction; + public PortUtil(IEventAggregator eventAggregator) { _eventAggregator = eventAggregator; //try @@ -761,7 +761,7 @@ namespace DM_Weight.Port { logger.Error("温湿度串口打开错误" + e.Message); } - _chkFunction = chkFunction; + //_chkFunction = chkFunction; } diff --git a/DM_Weight/ViewModels/BindBoxPackageWindowViewModel.cs b/DM_Weight/ViewModels/BindBoxPackageWindowViewModel.cs index bbbc823..023c6fd 100644 --- a/DM_Weight/ViewModels/BindBoxPackageWindowViewModel.cs +++ b/DM_Weight/ViewModels/BindBoxPackageWindowViewModel.cs @@ -399,7 +399,7 @@ namespace DM_Weight.ViewModels //iNumber++; } - ModbusHelper.GetInstance().GetAllBoxState(); + //ModbusHelper.GetInstance().GetAllBoxState(); if (Status == 2) { Status = 3; diff --git a/DM_Weight/ViewModels/CheckOrderNewWindowViewModel.cs b/DM_Weight/ViewModels/CheckOrderNewWindowViewModel.cs index 2cf3762..7f01d92 100644 --- a/DM_Weight/ViewModels/CheckOrderNewWindowViewModel.cs +++ b/DM_Weight/ViewModels/CheckOrderNewWindowViewModel.cs @@ -238,8 +238,111 @@ namespace DM_Weight.ViewModels _eventAggregator = eventAggregator; } - private string? _searchValue; + #region 按钮归属变量 + private string _btn1User; + public string Btn1User { get => _btn1User; set => SetProperty(ref _btn1User, value); } + private string _btn2User; + public string Btn2User { get => _btn2User; set => SetProperty(ref _btn2User, value); } + private string _btn3User; + public string Btn3User { get => _btn3User; set => SetProperty(ref _btn3User, value); } + private string _btn4User; + public string Btn4User { get => _btn4User; set => SetProperty(ref _btn4User, value); } + private string _btn5User; + public string Btn5User { get => _btn5User; set => SetProperty(ref _btn5User, value); } + private string _btn6User; + public string Btn6User { get => _btn6User; set => SetProperty(ref _btn6User, value); } + private string _btn7User; + public string Btn7User { get => _btn7User; set => SetProperty(ref _btn7User, value); } + private string _btn8User; + public string Btn8User { get => _btn8User; set => SetProperty(ref _btn8User, value); } + private string _btn9User; + public string Btn9User { get => _btn9User; set => SetProperty(ref _btn9User, value); } + private string _btn10User; + public string Btn10User { get => _btn10User; set => SetProperty(ref _btn10User, value); } + private string _btn11User; + public string Btn11User { get => _btn11User; set => SetProperty(ref _btn11User, value); } + private string _btn12User; + public string Btn12User { get => _btn12User; set => SetProperty(ref _btn12User, value); } + private string _btn13User; + public string Btn13User { get => _btn13User; set => SetProperty(ref _btn13User, value); } + private string _btn14User; + public string Btn14User { get => _btn14User; set => SetProperty(ref _btn14User, value); } + private string _btn15User; + public string Btn15User { get => _btn15User; set => SetProperty(ref _btn15User, value); } + private string _btn16User; + public string Btn16User { get => _btn16User; set => SetProperty(ref _btn16User, value); } + private string _btn17User; + public string Btn17User { get => _btn17User; set => SetProperty(ref _btn17User, value); } + private string _btn18User; + public string Btn18User { get => _btn18User; set => SetProperty(ref _btn18User, value); } + #endregion + #region 设置按钮归属 + private void SetBtnUser(int drawerNo, string name) + { + //查询药箱归属并将名字显示出来 + switch (drawerNo) + { + case 1: + Btn1User = name; + break; + case 2: + Btn2User = name; + break; + case 3: + Btn3User = name; + break; + case 4: + Btn4User = name; + break; + case 5: + Btn5User = name; + break; + case 6: + Btn6User = name; + break; + case 7: + Btn7User = name; + break; + case 8: + Btn8User = name; + break; + case 9: + Btn9User = name; + break; + case 10: + Btn10User = name; + break; + case 11: + Btn11User = name; + break; + case 12: + Btn12User = name; + break; + case 13: + Btn13User = name; + break; + case 14: + Btn14User = name; + break; + case 15: + Btn15User = name; + break; + case 16: + Btn16User = name; + break; + case 17: + Btn17User = name; + break; + case 18: + Btn18User = name; + break; + } + } + #endregion + + + private string? _searchValue; /// /// 查询条件 查询字段值 /// @@ -716,7 +819,7 @@ namespace DM_Weight.ViewModels public bool KeepAlive => false; - public async void OpenBoxAction(string strDrawerNo) + public void OpenBoxAction(string strDrawerNo) { DrawerNo = Convert.ToInt32(strDrawerNo); MachineRecord machineRecord = new MachineRecord(); @@ -734,7 +837,6 @@ namespace DM_Weight.ViewModels RequestData(); Status = 1; _portUtil.SpeakAsync($"正在打开{DrawerNo + 1}号药箱"); - logger.Info($"正在打开{DrawerNo + 1}号药箱"); //记录开药箱日志 SqlSugarHelper.Db.Insertable(machineRecord).ExecuteCommand(); ModbusHelper.GetInstance().OpenBoxDoor(DrawerNo); @@ -744,6 +846,18 @@ namespace DM_Weight.ViewModels public void OnNavigatedTo(NavigationContext navigationContext) { RequestData(); + List listCls = SqlSugarHelper.Db.Queryable() + .LeftJoin((cl, ul) => ul.UserBarcode == cl.BelongUser) + .Where(cl => cl.MachineId == "DM5") + .GroupBy(cl=>cl.DrawerNo) + .Select((cl, ul) => new ChannelList { DrawerNo = cl.DrawerNo, BelongUserName = ul.Nickname }).ToList(); + if (listCls != null && listCls.Count>0) + { + for (int i = 0; i < listCls.Count; i++) + { + SetBtnUser(listCls[i].DrawerNo, listCls[i].BelongUserName); + } + } //_eventAggregator.GetEvent().Subscribe(DoMyPrismEvent); } diff --git a/DM_Weight/ViewModels/CheckOrderWindowViewModel.cs b/DM_Weight/ViewModels/CheckOrderWindowViewModel.cs index 166d680..8ef5e0b 100644 --- a/DM_Weight/ViewModels/CheckOrderWindowViewModel.cs +++ b/DM_Weight/ViewModels/CheckOrderWindowViewModel.cs @@ -79,7 +79,7 @@ namespace DM_Weight.ViewModels //抽屉号列表 public static List iList = new List(); //第几个抽屉号 - public static int iNumber = 1; + //public static int iNumber = 1; private List orderDetailList=new(); public List OrderDetailList { @@ -126,13 +126,13 @@ namespace DM_Weight.ViewModels public void OnNavigatedFrom(NavigationContext navigationContext) { // 取消消息订阅 - _eventAggregator.GetEvent().Unsubscribe(DoMyPrismEvent); + //_eventAggregator.GetEvent().Unsubscribe(DoMyPrismEvent); } public void OnNavigatedTo(NavigationContext navigationContext) { RequestData(); - _eventAggregator.GetEvent().Subscribe(DoMyPrismEvent); + //_eventAggregator.GetEvent().Subscribe(DoMyPrismEvent); } public DelegateCommand Query { @@ -184,99 +184,98 @@ namespace DM_Weight.ViewModels if (iList.Count > 0) { _portUtil.SpeakAsync("正在打开药箱"); - _portUtil.DrawerNo = iList[iNumber]; - iNumber++; + _portUtil.DrawerNo = iList[0]; Status = 1; _portUtil.OpenBox(); } } - void DoMyPrismEvent(DeviceMsg msg) - { - switch (msg.EventType) - { - // 药箱打开 - case EventType.DRAWEROPEN: - BtnEnable = false; - //记录开药箱日志 - SqlSugarHelper.Db.Insertable(new MachineRecord() - { - MachineId = "DM5", - DrawerNo = _portUtil.DrawerNo, - Operator = HomeWindowViewModel.Operator?.Id, - OperationTime = DateTime.Now, - Type = 55, - InvoiceId = "药箱打开", - }).ExecuteCommand(); + //void DoMyPrismEvent(DeviceMsg msg) + //{ + // switch (msg.EventType) + // { + // // 药箱打开 + // case EventType.DRAWEROPEN: + // BtnEnable = false; + // //记录开药箱日志 + // SqlSugarHelper.Db.Insertable(new MachineRecord() + // { + // MachineId = "DM5", + // DrawerNo = _portUtil.DrawerNo, + // Operator = HomeWindowViewModel.Operator?.Id, + // OperationTime = DateTime.Now, + // Type = 55, + // InvoiceId = "药箱打开", + // }).ExecuteCommand(); - if (iNumber < iList.Count) - { - _portUtil.DrawerNo = iList[iNumber]; - iNumber++; - if (Status == 1) - { - Status = 2; - } - _portUtil.OpenBox(); - } - else - { - iNumber = 0; - _portUtil.GetBoxStatus(); - } - break; - // 药箱关闭 - case EventType.DRAWERCLOSE: - //记录药箱操作日志 - SqlSugarHelper.Db.Insertable(new MachineRecord() - { - MachineId = "DM5", - DrawerNo = _portUtil.DrawerNo, - Operator = HomeWindowViewModel.Operator?.Id, - OperationTime = DateTime.Now, - Type = 55, - InvoiceId = "药箱关闭", - }).ExecuteCommand(); + // if (iNumber < iList.Count) + // { + // _portUtil.DrawerNo = iList[iNumber]; + // iNumber++; + // if (Status == 1) + // { + // Status = 2; + // } + // _portUtil.OpenBox(); + // } + // else + // { + // iNumber = 0; + // _portUtil.GetBoxStatus(); + // } + // break; + // // 药箱关闭 + // case EventType.DRAWERCLOSE: + // //记录药箱操作日志 + // SqlSugarHelper.Db.Insertable(new MachineRecord() + // { + // MachineId = "DM5", + // DrawerNo = _portUtil.DrawerNo, + // Operator = HomeWindowViewModel.Operator?.Id, + // OperationTime = DateTime.Now, + // Type = 55, + // InvoiceId = "药箱关闭", + // }).ExecuteCommand(); - if (Status == 2) - { - Status = 3; - } - BtnEnable = true; - _portUtil.Operate = false; + // if (Status == 2) + // { + // Status = 3; + // } + // BtnEnable = true; + // _portUtil.Operate = false; - //减库存,生成操作记录 - SaveDate(); + // //减库存,生成操作记录 + // SaveDate(); - break; - // 打开失败 - case EventType.OPENERROR: - AlertMsg alertMsg = new AlertMsg - { - Message = msg.Message, - Type = MsgType.ERROR - }; - _eventAggregator.GetEvent().Publish(alertMsg); + // break; + // // 打开失败 + // case EventType.OPENERROR: + // AlertMsg alertMsg = new AlertMsg + // { + // Message = msg.Message, + // Type = MsgType.ERROR + // }; + // _eventAggregator.GetEvent().Publish(alertMsg); - BtnEnable = true; - Status = 0; - _portUtil.Operate = false; + // BtnEnable = true; + // Status = 0; + // _portUtil.Operate = false; - //记录药箱操作日志 - SqlSugarHelper.Db.Insertable(new MachineRecord() - { - MachineId = "DM5", - DrawerNo = _portUtil.DrawerNo, - Operator = HomeWindowViewModel.Operator?.Id, - OperationTime = DateTime.Now, - Type = 55, - InvoiceId = "药箱打开失败", - }).ExecuteCommand(); - _portUtil.Operate = false; - break; - } - } + // //记录药箱操作日志 + // SqlSugarHelper.Db.Insertable(new MachineRecord() + // { + // MachineId = "DM5", + // DrawerNo = _portUtil.DrawerNo, + // Operator = HomeWindowViewModel.Operator?.Id, + // OperationTime = DateTime.Now, + // Type = 55, + // InvoiceId = "药箱打开失败", + // }).ExecuteCommand(); + // _portUtil.Operate = false; + // break; + // } + //} //减库存,生成操作记录 private void SaveDate() { diff --git a/DM_Weight/ViewModels/HomeWindowViewModel.cs b/DM_Weight/ViewModels/HomeWindowViewModel.cs index 6cd7175..1b32a0d 100644 --- a/DM_Weight/ViewModels/HomeWindowViewModel.cs +++ b/DM_Weight/ViewModels/HomeWindowViewModel.cs @@ -344,16 +344,16 @@ namespace DM_Weight.ViewModels public bool Is16Drawer { get => _is16Drawer; set => SetProperty(ref _is16Drawer, value); } public bool KeepAlive => false; private PortUtil _portUtil; - private CHKFunction _chkFunction; + //private CHKFunction _chkFunction; IEventAggregator _eventAggregator; - public HomeWindowViewModel(IRegionManager iRegionManager, PortUtil portUtil, IDialogService dialogService, IUnityContainer container, IEventAggregator eventAggregator, CHKFunction cHKFunction) + public HomeWindowViewModel(IRegionManager iRegionManager, PortUtil portUtil, IDialogService dialogService, IUnityContainer container, IEventAggregator eventAggregator) { _portUtil = portUtil; _regionManager = iRegionManager; _dialogService = dialogService; _container = container; this._eventAggregator = eventAggregator; - _chkFunction = cHKFunction; + //_chkFunction = cHKFunction; } public DelegateCommand OpenFingerDialog @@ -453,7 +453,7 @@ namespace DM_Weight.ViewModels // } //} //保存温湿度信息 - private async void GetWSD(object sender, ElapsedEventArgs e) + private void GetWSD(object sender, ElapsedEventArgs e) { TemperatureHumidityInfo temp = _portUtil.GetWSD(); if (temp != null) @@ -568,7 +568,7 @@ namespace DM_Weight.ViewModels FindDrawerCount(); int autoExit = Convert.ToInt32(ConfigurationManager.AppSettings["autoExit"] ?? "0"); - int stopRecord = Convert.ToInt32(ConfigurationManager.AppSettings["stopRecord"] ?? "0"); + //int stopRecord = Convert.ToInt32(ConfigurationManager.AppSettings["stopRecord"] ?? "0"); //if (autoExit > 0) //{ // System.Timers.Timer timer = new System.Timers.Timer(); @@ -623,25 +623,25 @@ namespace DM_Weight.ViewModels //WDTimer.Enabled = true; } #endregion - if (stopRecord > 0) - { - System.Timers.Timer timer = new System.Timers.Timer(); - timer.Interval = 1000; - timer.Elapsed += (sender, e) => - { + //if (stopRecord > 0) + //{ + // System.Timers.Timer timer = new System.Timers.Timer(); + // timer.Interval = 1000; + // timer.Elapsed += (sender, e) => + // { - //指定时间内无人操作鼠标键盘则停止录像 - if (!_portUtil.Operate && CheckComputerFreeState.GetLastInputTime() > stopRecord) - { - _chkFunction.HIKStopDVRRecord(); - } - }; - timer.Start(); - } - logger.Info($"当前时间:{DateTime.Now}\r\n获取录像机的时间"); - //获取录像机的时间 - _chkFunction.HIK_DVR_TIME(); - _chkFunction.HIKStartDVRRecord(); + // //指定时间内无人操作鼠标键盘则停止录像 + // if (!_portUtil.Operate && CheckComputerFreeState.GetLastInputTime() > stopRecord) + // { + // _chkFunction.HIKStopDVRRecord(); + // } + // }; + // timer.Start(); + //} + //logger.Info($"当前时间:{DateTime.Now}\r\n获取录像机的时间"); + ////获取录像机的时间 + //_chkFunction.HIK_DVR_TIME(); + //_chkFunction.HIKStartDVRRecord(); } //每次导航的时候,该实列用不用重新创建,true是不重新创建,false是重新创建 @@ -658,7 +658,7 @@ namespace DM_Weight.ViewModels } private void SetLoginOut() { - _chkFunction.HIKStopDVRRecord(); + //_chkFunction.HIKStopDVRRecord(); Operator = null; Reviewer = null; Application.Current.Dispatcher.Invoke(() => diff --git a/DM_Weight/ViewModels/LoginWindowViewModel.cs b/DM_Weight/ViewModels/LoginWindowViewModel.cs index d42cdf5..44f6087 100644 --- a/DM_Weight/ViewModels/LoginWindowViewModel.cs +++ b/DM_Weight/ViewModels/LoginWindowViewModel.cs @@ -65,7 +65,6 @@ namespace DM_Weight.ViewModels private FingerprintUtil _fingerprintUtil; private PortUtil _portUtil; - private CHKFunction _chkFunction; public Boolean LoginBtnEnable { get { return _loginBtnEnable; } set { SetProperty(ref _loginBtnEnable, value); } } public string Password { get { return password; } set { SetProperty(ref password, value); } } @@ -115,11 +114,10 @@ namespace DM_Weight.ViewModels // _regionManager = regionManager; // _eventAggregator = eventAggregator; //} - public LoginWindowViewModel(IRegionManager regionManager, IEventAggregator eventAggregator, PortUtil portUtil, CHKFunction chcFunction) + public LoginWindowViewModel(IRegionManager regionManager, IEventAggregator eventAggregator, PortUtil portUtil) { //_fingerprintUtil = fingerprintUtil; _portUtil = portUtil; - _chkFunction= chcFunction; _regionManager = regionManager; _eventAggregator = eventAggregator; } @@ -259,10 +257,10 @@ _exitCommand ??= new DelegateCommand(Exit); { //添加参数,键值对格式 keys.Add("operator", user); - 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(() => + //{ _regionManager.RequestNavigate("MainRegion", "HomeWindow", keys); - })); + //})); } // 双人登录模式 else @@ -275,10 +273,10 @@ _exitCommand ??= new DelegateCommand(Exit); keys.Add("reviewer", user); Reviewer = user; RaisePropertyChanged("Reviewer"); - 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(() => + //{ _regionManager.RequestNavigate("MainRegion", "HomeWindow", keys); - })); + //})); } else @@ -299,10 +297,10 @@ _exitCommand ??= new DelegateCommand(Exit); keys.Add("operator", user); Operator = user; RaisePropertyChanged("Operator"); - 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(() => + //{ _regionManager.RequestNavigate("MainRegion", "HomeWindow", keys); - })); + //})); } else @@ -360,14 +358,14 @@ _exitCommand ??= new DelegateCommand(Exit); void Exit() { - _chkFunction.HIKLoginOut(); + //_chkFunction.HIKLoginOut(); Process.GetCurrentProcess().Kill(); Environment.Exit(0); } void LoginEvent(FingerprintMsg msg) { - logger.Info(msg.ToString()); + logger.Info(msg.ToString()+ "LoginBtnEnable:"+ LoginBtnEnable); if (msg.Message.Equals("CONNECT")) { FingerMsg = !msg.Result; diff --git a/DM_Weight/ViewModels/MainWindowViewModel.cs b/DM_Weight/ViewModels/MainWindowViewModel.cs index 22ce93a..007258f 100644 --- a/DM_Weight/ViewModels/MainWindowViewModel.cs +++ b/DM_Weight/ViewModels/MainWindowViewModel.cs @@ -65,9 +65,9 @@ namespace DM_Weight.ViewModels private FingerprintUtil _fingerprintUtil; IRegionManager _regionManager; IUnityContainer _container; - private CHKFunction _cHKFunction; + //private CHKFunction _cHKFunction; private readonly ILog logger = LogManager.GetLogger(typeof(PortUtil)); - public MainWindowViewModel(IRegionManager regionManager, IUnityContainer container, IEventAggregator eventAggregator, FingerprintUtil fingerprintUtil, CHKFunction cHKFunction) + public MainWindowViewModel(IRegionManager regionManager, IUnityContainer container, IEventAggregator eventAggregator, FingerprintUtil fingerprintUtil) { //_portUtil = portUtil; this.eventAggregator = eventAggregator; @@ -75,15 +75,15 @@ namespace DM_Weight.ViewModels _fingerprintUtil = fingerprintUtil; _regionManager = regionManager; _container = container; - _cHKFunction = cHKFunction; + //_cHKFunction = cHKFunction; - 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(() => + //{ _container.RegisterType("LoginWindow"); - _regionManager.RequestNavigate("MainRegion", "LoginWindow"); + _regionManager.RegisterViewWithRegion("MainRegion", "LoginWindow"); - })); + //})); } diff --git a/DM_Weight/ViewModels/OpenBoxNewWindowViewModel.cs b/DM_Weight/ViewModels/OpenBoxNewWindowViewModel.cs index a1b049c..855fd91 100644 --- a/DM_Weight/ViewModels/OpenBoxNewWindowViewModel.cs +++ b/DM_Weight/ViewModels/OpenBoxNewWindowViewModel.cs @@ -11,6 +11,7 @@ using System; using System.Collections.Generic; using System.Drawing.Printing; using System.Linq; +using System.Security.Cryptography; using System.Security.Cryptography.Pkcs; using System.Text; using System.Threading; @@ -42,7 +43,7 @@ namespace DM_Weight.ViewModels public bool SelfEnable { get => _selfEnable; set => SetProperty(ref _selfEnable, value); } //名下药箱按钮显示内容 - private string _selfContent="打开药箱"; + private string _selfContent = "打开药箱"; public string SelfContent { get => _selfContent; set => SetProperty(ref _selfContent, value); } @@ -60,8 +61,47 @@ namespace DM_Weight.ViewModels //名下药箱状态 private int _selfStatus = 0; public int SelfStatus { get => _selfStatus; set => SetProperty(ref _selfStatus, value); } + + #region 按钮归属变量 + private string _btn1User; + public string Btn1User { get => _btn1User; set => SetProperty(ref _btn1User, value); } + private string _btn2User; + public string Btn2User { get => _btn2User; set => SetProperty(ref _btn2User, value); } + private string _btn3User; + public string Btn3User { get => _btn3User; set => SetProperty(ref _btn3User, value); } + private string _btn4User; + public string Btn4User { get => _btn4User; set => SetProperty(ref _btn4User, value); } + private string _btn5User; + public string Btn5User { get => _btn5User; set => SetProperty(ref _btn5User, value); } + private string _btn6User; + public string Btn6User { get => _btn6User; set => SetProperty(ref _btn6User, value); } + private string _btn7User; + public string Btn7User { get => _btn7User; set => SetProperty(ref _btn7User, value); } + private string _btn8User; + public string Btn8User { get => _btn8User; set => SetProperty(ref _btn8User, value); } + private string _btn9User; + public string Btn9User { get => _btn9User; set => SetProperty(ref _btn9User, value); } + private string _btn10User; + public string Btn10User { get => _btn10User; set => SetProperty(ref _btn10User, value); } + private string _btn11User; + public string Btn11User { get => _btn11User; set => SetProperty(ref _btn11User, value); } + private string _btn12User; + public string Btn12User { get => _btn12User; set => SetProperty(ref _btn12User, value); } + private string _btn13User; + public string Btn13User { get => _btn13User; set => SetProperty(ref _btn13User, value); } + private string _btn14User; + public string Btn14User { get => _btn14User; set => SetProperty(ref _btn14User, value); } + private string _btn15User; + public string Btn15User { get => _btn15User; set => SetProperty(ref _btn15User, value); } + private string _btn16User; + public string Btn16User { get => _btn16User; set => SetProperty(ref _btn16User, value); } + private string _btn17User; + public string Btn17User { get => _btn17User; set => SetProperty(ref _btn17User, value); } + private string _btn18User; + public string Btn18User { get => _btn18User; set => SetProperty(ref _btn18User, value); } + #endregion //抽屉号列表 - public static List iList = new List(); + public static ChannelList iList = new ChannelList(); //第几个抽屉号 //public static int iNumber = 1; private PortUtil _portUtil; @@ -418,10 +458,74 @@ namespace DM_Weight.ViewModels break; } } + #region 设置按钮归属 + private void SetBtnUser(int drawerNo, string name) + { + //查询药箱归属并将名字显示出来 + switch (drawerNo) + { + case 1: + Btn1User = name; + break; + case 2: + Btn2User = name; + break; + case 3: + Btn3User = name; + break; + case 4: + Btn4User = name; + break; + case 5: + Btn5User = name; + break; + case 6: + Btn6User = name; + break; + case 7: + Btn7User = name; + break; + case 8: + Btn8User = name; + break; + case 9: + Btn9User = name; + break; + case 10: + Btn10User = name; + break; + case 11: + Btn11User = name; + break; + case 12: + Btn12User = name; + break; + case 13: + Btn13User = name; + break; + case 14: + Btn14User = name; + break; + case 15: + Btn15User = name; + break; + case 16: + Btn16User = name; + break; + case 17: + Btn17User = name; + break; + case 18: + Btn18User = name; + break; + } + } + #endregion void RequestData() { - List chlList = SqlSugarHelper.Db.Queryable().Where(cl => cl.MachineId == "DM5").ToList();//.Select(cl => cl.BelongUser).First(); + List chlList = SqlSugarHelper.Db.Queryable() + .Where(cl => cl.MachineId == "DM5").ToList();//.Select(cl => cl.BelongUser).First(); if (chlList != null && chlList.Count > 0) { for (int i = 0; i < chlList.Count; i++) @@ -435,8 +539,21 @@ namespace DM_Weight.ViewModels if (chl.DrawerType == 1) { SetBtnEnable(chl.DrawerNo); + SetBtnUser(chl.DrawerNo, "公共药箱"); } - if (!string.IsNullOrEmpty(chl.BelongUser)&& chl.BelongUser == HomeWindowViewModel.Operator.UserBarcode) + else + { + if (chl != null && chl.BelongUser != null) + { + string userName = SqlSugarHelper.Db.Queryable().Where(ul => ul.UserBarcode == chl.BelongUser).First().Nickname; + SetBtnUser(chl.DrawerNo, userName); + } + else + { + SetBtnUser(chl.DrawerNo, ""); + } + } + if (!string.IsNullOrEmpty(chl.BelongUser) && chl.BelongUser == HomeWindowViewModel.Operator.UserBarcode) { SetBtnEnable(chl.DrawerNo); } @@ -496,40 +613,39 @@ namespace DM_Weight.ViewModels } private void SearchBox() { - iList = SqlSugarHelper.Db.Queryable().Where(cl => cl.MachineId == "DM5" && cl.DrawerType == this.DrawerType) - .WhereIF(this.DrawerType == 0, cl => cl.BelongUser == HomeWindowViewModel.Operator.UserBarcode).ToList(); + iList = SqlSugarHelper.Db.Queryable().Where(cl => cl.MachineId == "DM5" && cl.DrawerType == this.DrawerType && cl.DrawerNo == DrawerNo) + .WhereIF(this.DrawerType == 0, cl => cl.BelongUser == HomeWindowViewModel.Operator.UserBarcode).First(); // .Select(cl => cl.DrawerNo).ToList(); - if (iList.Count > 0) + if (iList != null) { //_portUtil.SpeakAsync("正在打开药箱"); //_portUtil.DrawerNo = iList[iNumber]; //iNumber++; //_portUtil.OpenBox(); - for (int i = 0; i < iList.Count; i++) + //for (int i = 0; i < iList.Count; i++) + //{ + ChannelList channelList = iList; + //记录开药箱日志 + SqlSugarHelper.Db.Insertable(new MachineRecord() { - ChannelList channelList = iList[i]; - //记录开药箱日志 - SqlSugarHelper.Db.Insertable(new MachineRecord() - { - MachineId = "DM5", - DrawerNo = channelList.DrawerNo, - Operator = HomeWindowViewModel.Operator?.Id, - OperationTime = DateTime.Now, - Type = 55, - InvoiceId = $"打开{iList[i].DrawerNo}号药箱", - OptionType= SelfContent.Substring(0,1)=="取"? 0:1 - }).ExecuteCommand(); - //记录药箱打开时间 - channelList.EffDate = DateTime.Now.ToString(); - channelList.DrawerState = SelfContent.Substring(0, 1) == "取" ? 0 : 1; - SqlSugarHelper.Db.Updateable(channelList).UpdateColumns(it => new { it.EffDate, it.DrawerState }).ExecuteCommand(); + MachineId = "DM5", + DrawerNo = channelList.DrawerNo, + Operator = HomeWindowViewModel.Operator?.Id, + OperationTime = DateTime.Now, + Type = 55, + InvoiceId = $"打开{DrawerNo}号药箱", + OptionType = SelfContent.Substring(0, 1) == "取" ? 0 : 1 + }).ExecuteCommand(); + //记录药箱打开时间 + channelList.EffDate = DateTime.Now.ToString(); + channelList.DrawerState = SelfContent.Substring(0, 1) == "取" ? 0 : 1; + SqlSugarHelper.Db.Updateable(channelList).UpdateColumns(it => new { it.EffDate, it.DrawerState }).ExecuteCommand(); - _portUtil.SpeakAsync($"正在打开{channelList.DrawerNo}号药箱"); - logger.Info($"正在打开{channelList.DrawerNo}号药箱"); - ModbusHelper.GetInstance().OpenBoxDoor(channelList.DrawerNo - 1); - Thread.Sleep(1000); - } + _portUtil.SpeakAsync($"正在打开{DrawerNo}号药箱"); + ModbusHelper.GetInstance().OpenBoxDoor(DrawerNo - 1); + //Thread.Sleep(1000); + //} SelfStatus = 0; PublicEnable = true; diff --git a/DM_Weight/Views/CheckOrderNewWindow.xaml b/DM_Weight/Views/CheckOrderNewWindow.xaml index c8586cd..c2d3f88 100644 --- a/DM_Weight/Views/CheckOrderNewWindow.xaml +++ b/DM_Weight/Views/CheckOrderNewWindow.xaml @@ -14,6 +14,7 @@ + @@ -58,26 +58,26 @@ -