diff --git a/DM_Weight/App.config b/DM_Weight/App.config index c46c327..57a9162 100644 --- a/DM_Weight/App.config +++ b/DM_Weight/App.config @@ -124,5 +124,6 @@ + \ No newline at end of file diff --git a/DM_Weight/Converter/DrawerSelectConverter.cs b/DM_Weight/Converter/DrawerSelectConverter.cs index c9224cd..459370f 100644 --- a/DM_Weight/Converter/DrawerSelectConverter.cs +++ b/DM_Weight/Converter/DrawerSelectConverter.cs @@ -13,10 +13,11 @@ namespace DM_Weight.Converter { 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 iLength = value[0].ToString().Length; + int iLength = value[0].ToString().IndexOf("号药箱"); + int ButtonDrawerNo = int.Parse(value[0].ToString().Substring(0, iLength)); int SelectedDrawerNo = int.Parse(value[1].ToString()); - return ButtonDrawerNo == SelectedDrawerNo+1; + return ButtonDrawerNo == SelectedDrawerNo; } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) diff --git a/DM_Weight/Port/ModbusHelper.cs b/DM_Weight/Port/ModbusHelper.cs index 5b4fdb2..eb2bf65 100644 --- a/DM_Weight/Port/ModbusHelper.cs +++ b/DM_Weight/Port/ModbusHelper.cs @@ -56,6 +56,10 @@ namespace DM_Weight.Port public bool[] GetAllBoxState() { + if (ConfigurationManager.AppSettings["test"]!=null&&ConfigurationManager.AppSettings["test"].ToString().Equals("Y")) + { + return new bool[] { false,false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false}; + } bool[] bools = Policy.Handle() .Retry(3, (exception, retryCount) => { @@ -82,6 +86,10 @@ namespace DM_Weight.Port } public bool OpenBoxDoor(int boxNum) { + if (ConfigurationManager.AppSettings["test"] != null && ConfigurationManager.AppSettings["test"].ToString().Equals("Y")) + { + return true; + } bool bFlag=false; Policy.Handle().Retry(3, ((exception, retryCount) => { diff --git a/DM_Weight/ViewModels/CheckOrderNewWindowViewModel.cs b/DM_Weight/ViewModels/CheckOrderNewWindowViewModel.cs index a838b07..41c0d8c 100644 --- a/DM_Weight/ViewModels/CheckOrderNewWindowViewModel.cs +++ b/DM_Weight/ViewModels/CheckOrderNewWindowViewModel.cs @@ -775,7 +775,7 @@ namespace DM_Weight.ViewModels RequestData(); Status = 1; _portUtil.SpeakAsync($"正在打开{DrawerNo + 1}号药箱"); - logger.Info($"正在打开{DrawerNo + 1}号药箱"); + //logger.Info($"正在打开{DrawerNo + 1}号药箱"); //记录开药箱日志 SqlSugarHelper.Db.Insertable(machineRecord).ExecuteCommand(); ModbusHelper.GetInstance().OpenBoxDoor(DrawerNo); diff --git a/DM_Weight/ViewModels/CheckSelfOrderWindowViewModel.cs b/DM_Weight/ViewModels/CheckSelfOrderWindowViewModel.cs index b6c3d0d..463932d 100644 --- a/DM_Weight/ViewModels/CheckSelfOrderWindowViewModel.cs +++ b/DM_Weight/ViewModels/CheckSelfOrderWindowViewModel.cs @@ -24,7 +24,7 @@ namespace DM_Weight.ViewModels internal class CheckSelfOrderWindowViewModel : BindableBase, INavigationAware, IRegionMemberLifetime { private readonly ILog logger = LogManager.GetLogger(typeof(CheckOrderNewWindowViewModel)); - System.Timers.Timer CheckBoxStatusTimer; + //System.Timers.Timer CheckBoxStatusTimer; private int _drawerType = -1; public int DrawerType @@ -755,16 +755,16 @@ namespace DM_Weight.ViewModels SqlSugarHelper.Db.Insertable(machineRecord).ExecuteCommand(); ModbusHelper.GetInstance().OpenBoxDoor(DrawerNo); SetBtnEnable(DrawerNo + 1, false); - if (CheckBoxStatusTimer is null) - { - CheckBoxStatusTimer = new System.Timers.Timer(); - } - if (!CheckBoxStatusTimer.Enabled) - { - CheckBoxStatusTimer.Elapsed += new System.Timers.ElapsedEventHandler(GetAllBoxState); - CheckBoxStatusTimer.Interval = 3000; - CheckBoxStatusTimer.Start(); - } + //if (CheckBoxStatusTimer is null) + //{ + // CheckBoxStatusTimer = new System.Timers.Timer(); + //} + //if (!CheckBoxStatusTimer.Enabled) + //{ + // CheckBoxStatusTimer.Elapsed += new System.Timers.ElapsedEventHandler(GetAllBoxState); + // CheckBoxStatusTimer.Interval = 3000; + // CheckBoxStatusTimer.Start(); + //} //记录药箱打开时间 ChannelList channelList = SqlSugarHelper.Db.Queryable().Where(cl => cl.MachineId == "DM5" && cl.DrawerNo == DrawerNo + 1).First(); if (channelList != null && (channelList.EffDate is null || Convert.ToDateTime(channelList.EffDate).ToString("yyyy-MM-dd") != DateTime.Now.ToString("yyyy-MM-dd"))) @@ -890,6 +890,7 @@ namespace DM_Weight.ViewModels get => new DelegateCommand(() => { GetUseBox(); + CheckOrderAction(); }); } @@ -1112,7 +1113,7 @@ namespace DM_Weight.ViewModels RequestData(); AlertMsg alertMsg = new AlertMsg { - Message = "所选单子已核对完成", + Message = "所选单子已确认", Type = MsgType.SUCCESS, }; _eventAggregator.GetEvent().Publish(alertMsg); @@ -1204,16 +1205,16 @@ namespace DM_Weight.ViewModels logger.Info($"正在打开{drawerNo}号药箱"); ModbusHelper.GetInstance().OpenBoxDoor(drawerNo - 1); SetBtnEnable(drawerNo, false); - if (CheckBoxStatusTimer is null) - { - CheckBoxStatusTimer = new System.Timers.Timer(); - } - if (!CheckBoxStatusTimer.Enabled) - { - CheckBoxStatusTimer.Elapsed += new System.Timers.ElapsedEventHandler(GetAllBoxState); - CheckBoxStatusTimer.Interval = 3000; - CheckBoxStatusTimer.Start(); - } + //if (CheckBoxStatusTimer is null) + //{ + // CheckBoxStatusTimer = new System.Timers.Timer(); + //} + //if (!CheckBoxStatusTimer.Enabled) + //{ + // CheckBoxStatusTimer.Elapsed += new System.Timers.ElapsedEventHandler(GetAllBoxState); + // CheckBoxStatusTimer.Interval = 3000; + // CheckBoxStatusTimer.Start(); + //} //记录药箱打开时间 ChannelList channelList = SqlSugarHelper.Db.Queryable().Where(cl => cl.MachineId == "DM5" && cl.DrawerNo == drawerNo).First(); if (channelList != null && (channelList.EffDate is null || Convert.ToDateTime(channelList.EffDate).ToString("yyyy-MM-dd") != DateTime.Now.ToString("yyyy-MM-dd"))) @@ -1225,24 +1226,24 @@ namespace DM_Weight.ViewModels } } - private void GetAllBoxState(object sender, ElapsedEventArgs e) - { - //查询药箱是否关闭,如果已经关闭则按钮可用,可继续开该编号的药箱 - if (DrawerNo >= 0) - { - bool[] boolArrs = ModbusHelper.GetInstance().GetAllBoxState(); - bool allFalse = Array.TrueForAll(boolArrs, b => b == false); - if (allFalse) - { - if (CheckBoxStatusTimer.Enabled) - { - CheckBoxStatusTimer.Stop(); - } - } - //设置对应药箱按钮可用状态 - SetBtnEnable(DrawerNo, !boolArrs[DrawerNo]); - } - } + //private void GetAllBoxState(object sender, ElapsedEventArgs e) + //{ + // //查询药箱是否关闭,如果已经关闭则按钮可用,可继续开该编号的药箱 + // if (DrawerNo >= 0) + // { + // bool[] boolArrs = ModbusHelper.GetInstance().GetAllBoxState(); + // bool allFalse = Array.TrueForAll(boolArrs, b => b == false); + // if (allFalse) + // { + // if (CheckBoxStatusTimer.Enabled) + // { + // CheckBoxStatusTimer.Stop(); + // } + // } + // //设置对应药箱按钮可用状态 + // SetBtnEnable(DrawerNo, !boolArrs[DrawerNo]); + // } + //} public bool IsNavigationTarget(NavigationContext navigationContext) { diff --git a/DM_Weight/Views/CheckSelfOrderWindow.xaml b/DM_Weight/Views/CheckSelfOrderWindow.xaml index b1fed28..7bcf3a8 100644 --- a/DM_Weight/Views/CheckSelfOrderWindow.xaml +++ b/DM_Weight/Views/CheckSelfOrderWindow.xaml @@ -33,7 +33,7 @@ - + @@ -156,7 +156,7 @@ SelectedItem="{Binding selectOrderInfo}" materialDesign:ListViewAssist.HeaderRowBackground="#31ccec" materialDesign:DataGridAssist.ColumnHeaderPadding="10" - materialDesign:ListViewAssist.ListViewItemPadding="13"> + materialDesign:ListViewAssist.ListViewItemPadding="3">