diff --git a/DM_Weight/App.config b/DM_Weight/App.config
index cbce923..1194994 100644
--- a/DM_Weight/App.config
+++ b/DM_Weight/App.config
@@ -117,8 +117,8 @@
-
-
+
+
diff --git a/DM_Weight/Models/ChannelList.cs b/DM_Weight/Models/ChannelList.cs
index 89e870c..2268c8d 100644
--- a/DM_Weight/Models/ChannelList.cs
+++ b/DM_Weight/Models/ChannelList.cs
@@ -113,6 +113,12 @@ namespace DM_Weight.Models
{
get;set;
}
+ //归属用户的用户名
+ [SugarColumn(ColumnName = "commnet")]
+ public string BelongUserName
+ {
+ get;set;
+ }
//private int _addQuantity = 0;
//[SugarColumn(IsIgnore = true)]
//public int AddQuantity
@@ -209,8 +215,8 @@ namespace DM_Weight.Models
[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); }
+ //private string _belongUserName;
+ //[SugarColumn(IsIgnore =true)]
+ //public string BelongUserName { get => _belongUserName;set=>SetProperty(ref _belongUserName, value); }
}
}
diff --git a/DM_Weight/Port/MyBaseMessage.cs b/DM_Weight/Port/MyBaseMessage.cs
index 4a849cd..a593e2f 100644
--- a/DM_Weight/Port/MyBaseMessage.cs
+++ b/DM_Weight/Port/MyBaseMessage.cs
@@ -10,12 +10,12 @@ namespace DM_Weight.Port
{
public int addr { get; set; } = 1;
public short lockNo { get; set; }
- public short delay { get; set; } = 20;
+ public short delay { get; set; } = 2;
public int functionCode { get; set; } = 6;
public MyBaseMessage() { }
- public MyBaseMessage(short lockNo, int addr = 1, short delay = 20, int functionCode = 6)
+ public MyBaseMessage(short lockNo, int addr = 1, short delay = 2, int functionCode = 6)
{
this.addr = addr;
this.lockNo = lockNo;
diff --git a/DM_Weight/Port/SocketHelper.cs b/DM_Weight/Port/SocketHelper.cs
index 42eb96a..9305e74 100644
--- a/DM_Weight/Port/SocketHelper.cs
+++ b/DM_Weight/Port/SocketHelper.cs
@@ -68,8 +68,6 @@ namespace DM_Weight.Port
//}
};
-
-
acceptor.SessionClosed += (o, e) =>
{
logger.Info("SessionClosed");
diff --git a/DM_Weight/ViewModels/CheckOrderNewWindowViewModel.cs b/DM_Weight/ViewModels/CheckOrderNewWindowViewModel.cs
index 6c8e8ca..5e914a6 100644
--- a/DM_Weight/ViewModels/CheckOrderNewWindowViewModel.cs
+++ b/DM_Weight/ViewModels/CheckOrderNewWindowViewModel.cs
@@ -395,8 +395,9 @@ namespace DM_Weight.ViewModels
//}
//TotalCount = totalCount;
- PageCount = (int)Math.Ceiling((double)TotalCount / PageSize);
- if (currentList != null && currentList.EffDate != null && Convert.ToDateTime(currentList.EffDate).ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd"))
+ //PageCount = (int)Math.Ceiling((double)TotalCount / PageSize);
+ //if (currentList != null && currentList.EffDate != null && Convert.ToDateTime(currentList.EffDate).ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd"))
+ if (currentList != null && currentList.EffDate != null)
{
switch (DrawerNo)
{
@@ -905,17 +906,17 @@ namespace DM_Weight.ViewModels
}
else
{
- _socketHelper.OpenStatus = false;
- _socketHelper.IsMultiThread = false;
_socketHelper.dateTime = DateTime.Now;
+ //_socketHelper.OpenStatus = false;
+ _socketHelper.IsMultiThread = false;
stop();
}
}
else
{
- _socketHelper.OpenStatus = false;
- _socketHelper.IsMultiThread = false;
_socketHelper.dateTime = DateTime.Now;
+ //_socketHelper.OpenStatus = false;
+ _socketHelper.IsMultiThread = false;
stop();
}
iException = 0;
@@ -975,6 +976,7 @@ 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")
diff --git a/DM_Weight/ViewModels/HomeWindowViewModel.cs b/DM_Weight/ViewModels/HomeWindowViewModel.cs
index 6756ad2..3785cd6 100644
--- a/DM_Weight/ViewModels/HomeWindowViewModel.cs
+++ b/DM_Weight/ViewModels/HomeWindowViewModel.cs
@@ -25,6 +25,8 @@ using DM_Weight.msg;
using DM_Weight.HIKVISION;
using System.Threading;
using System.Diagnostics;
+using MaterialDesignThemes.Wpf;
+using System.Windows.Media;
namespace DM_Weight.ViewModels
{
@@ -148,7 +150,15 @@ namespace DM_Weight.ViewModels
// }
// }
// }
- SetProperty(ref _selectedChildMenu, value);
+ if (!_socketHelper.OpenStatus)
+ {
+ SetProperty(ref _selectedChildMenu, value);
+ }
+ else
+ {
+ ModbusHelper.SpeakAsync("请先关药箱");
+ return;
+ }
//}
}
}
@@ -216,20 +226,23 @@ namespace DM_Weight.ViewModels
_regionManager.RequestNavigate("ContentRegion", "ReturnDrugWindow");
}
}
- else if (SelectedChildMenu.PremissionPath.Equals("SettingMainWindow") || SelectedChildMenu.PremissionPath.Equals("SettingWindow"))
+ //else if (SelectedChildMenu.PremissionPath.Equals("SettingMainWindow") || SelectedChildMenu.PremissionPath.Equals("SettingWindow"))
+ //{
+ // if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"]) > 0)
+ // {
+ // _regionManager.RequestNavigate("ContentRegion", "SettingMainWindow");
+ // }
+ // else
+ // {
+ // _regionManager.RequestNavigate("ContentRegion", "SettingWindow");
+ // }
+ //}
+ //else
{
- if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"]) > 0)
+ System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
{
- _regionManager.RequestNavigate("ContentRegion", "SettingMainWindow");
- }
- else
- {
- _regionManager.RequestNavigate("ContentRegion", "SettingWindow");
- }
- }
- else
- {
- _regionManager.RequestNavigate("ContentRegion", SelectedChildMenu.PremissionPath);
+ _regionManager.RequestNavigate("ContentRegion", SelectedChildMenu.PremissionPath);
+ }));
}
}
}
@@ -255,9 +268,16 @@ namespace DM_Weight.ViewModels
// SelectedChildMenu = value.Children[0];
// }
//}
- SetProperty(ref _selectedMenu, value);
+ if (!_socketHelper.OpenStatus)
+ SetProperty(ref _selectedMenu, value);
+ else
+ {
+ ModbusHelper.SpeakAsync("请先关药箱");
+ return;
+ }
}
}
+ //PremissionDm? PreSelectedMenu;
private DelegateCommand _selectionCommon;
public DelegateCommand SelectionCommon
@@ -266,6 +286,17 @@ namespace DM_Weight.ViewModels
}
private void SelectionMethod()
{
+ //if (SelectedMenu != null && SelectedMenu.PremissionName != "退出")
+ //{
+ // PreSelectedMenu = SelectedMenu;
+ //}
+ //if (_socketHelper.OpenStatus)
+ //{
+ // if (PreSelectedMenu != null)
+ // {
+ // SelectedMenu = PreSelectedMenu;
+ // }
+ //}
//SelectedMenu = viewName.SelectedItem as PremissionDm;
//if (SelectedMenu.PremissionName == "退出")
//{
@@ -290,31 +321,19 @@ namespace DM_Weight.ViewModels
//bool[] boolArrs = ModbusHelper.GetInstance().GetAllBoxState();
//bool allTrue = Array.TrueForAll(boolArrs, b => b);
//false是关着,true是开着
- if (!_socketHelper.OpenStatus)
- //if (ModbusHelper.BoxOperate)
- {
- logger.Info($"用户【{Operator?.Nickname}】退出登录");
- Operator = null;
- Reviewer = null;
- _regionManager.RequestNavigate("MainRegion", "LoginWindow");
- }
- else
- {
- return;
- //还有药箱开着不能退出
- ModbusHelper.SpeakAsync("请关闭药箱后再退出");
- SelectedMenu = _premissionDmList[0];
- }
+ logger.Info($"用户【{Operator?.Nickname}】退出登录");
+ Operator = null;
+ Reviewer = null;
+ _regionManager.RequestNavigate("MainRegion", "LoginWindow");
}
-
else
{
//SelectedMenu.Children = SelectedMenu.Children;
//SelectedChildMenu = SelectedMenu.Children[0];
- //if (!_portUtil.Operate)
- //{
- _regionManager.RequestNavigate("ContentRegion", SelectedMenu.Children[0].PremissionPath);
- //}
+ if (!_socketHelper.OpenStatus)
+ {
+ _regionManager.RequestNavigate("ContentRegion", SelectedMenu.Children[0].PremissionPath);
+ }
}
}
#region 子菜单点击
@@ -347,6 +366,8 @@ namespace DM_Weight.ViewModels
IEventAggregator _eventAggregator;
//private ModbusHelper _modbusHelper;
SocketHelper _socketHelper;
+ //System.Timers.Timer timer;
+ //DispatcherTimer timerNew;
public HomeWindowViewModel(IRegionManager iRegionManager, PortUtil portUtil, IUnityContainer container, IDialogService dialogService, IEventAggregator eventAggregator, SocketHelper socketHelper)
{
_portUtil = portUtil;
@@ -355,8 +376,84 @@ namespace DM_Weight.ViewModels
_container = container;
this._eventAggregator = eventAggregator;
_socketHelper = socketHelper;
- //_chkFunction = cHKFunction;
- //_modbusHelper = modbusHelper;
+ //timerNew = new DispatcherTimer();
+ //int autoExit = Convert.ToInt32(ConfigurationManager.AppSettings["autoExit"] ?? "0");
+ //if (autoExit > 0)
+ //{
+ // timerNew.Interval =new TimeSpan(0, 0, 0, 1, 0); //autoExit * 1000;
+ // timerNew.Tick += (sender, e) =>
+ // {
+ // if (!_socketHelper.OpenStatus)
+ // {
+ // // 无人操作鼠标键盘
+ // if ((DateTime.Now - _socketHelper.dateTime).TotalSeconds > autoExit && CheckComputerFreeState.GetLastInputTime() > autoExit)
+ // {
+ // logger.Info($"设备内无人操作,用户【{Operator?.Nickname}】自动退出登录");
+ // Operator = null;
+ // Reviewer = null;
+ // //Application.Current.Dispatcher.Invoke(() =>
+ // //{
+ // //System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
+ // //{
+ // _regionManager.RequestNavigate("MainRegion", "LoginWindow");
+ // //}));
+ // //});
+ // timerNew.Stop();
+ // //timer.Dispose();
+ // }
+ // }
+ // else
+ // {
+ // _socketHelper.dateTime = DateTime.Now;
+ // }
+
+
+ // };
+ // timerNew.Start();
+ //}
+ int autoExit = Convert.ToInt32(ConfigurationManager.AppSettings["autoExit"] ?? "0");
+ if (autoExit > 0)
+ {
+ int interval= autoExit * 1000;
+ new PromiseUtil().taskAsyncLoop(interval, 0, async (options, next, stop) =>
+ {
+ try
+ {
+ if (!_socketHelper.OpenStatus)
+ {
+ // 无人操作鼠标键盘
+ if ((DateTime.Now - _socketHelper.dateTime).TotalSeconds > autoExit && CheckComputerFreeState.GetLastInputTime() > autoExit)
+ {
+ logger.Info($"设备内无人操作,用户【{Operator?.Nickname}】自动退出登录");
+ Operator = null;
+ Reviewer = null;
+ //Application.Current.Dispatcher.Invoke(() =>
+ //{
+ System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
+ {
+ _regionManager.RequestNavigate("MainRegion", "LoginWindow");
+ }));
+ //});
+ stop();
+ //timer.Dispose();
+ }
+ else
+ {
+ next();
+ }
+ }
+ else
+ {
+ _socketHelper.dateTime = DateTime.Now;
+ next();
+ }
+ }
+ catch (Exception ex)
+ {
+ logger.Info($"自动退出异常:{ex.Message}");
+ }
+ });
+ }
}
public DelegateCommand OpenFingerDialog
@@ -530,7 +627,6 @@ namespace DM_Weight.ViewModels
//接收导航传过来的参数
public void OnNavigatedTo(NavigationContext navigationContext)
{
-
_eventAggregator.GetEvent().Subscribe(SetLoginOut);
//_portUtil.dateTime = DateTime.Now;
//取出user
@@ -570,32 +666,6 @@ namespace DM_Weight.ViewModels
_regionManager.RequestNavigate("ContentRegion", premissions[0].Children[0].PremissionPath);
FindDrawerCount();
- int autoExit = Convert.ToInt32(ConfigurationManager.AppSettings["autoExit"] ?? "0");
- if (autoExit > 0)
- {
- System.Timers.Timer timer = new System.Timers.Timer();
- timer.Interval = autoExit* 1000;
- timer.Elapsed += (sender, e) =>
- {
- // 串口无人操作
- if (!_socketHelper.OpenStatus)
- {
- // 无人操作鼠标键盘
- if ((DateTime.Now - _socketHelper.dateTime).TotalSeconds > autoExit && CheckComputerFreeState.GetLastInputTime() > autoExit)
- {
- logger.Info($"设备内无人操作,用户【{Operator?.Nickname}】自动退出登录");
- Operator = null;
- Reviewer = null;
- Application.Current.Dispatcher.Invoke(() =>
- {
- _regionManager.RequestNavigate("MainRegion", "LoginWindow");
- timer.Stop();
- });
- }
- }
- };
- timer.Start();
- }
#region 温度查询定时
//int interval = Convert.ToInt32(ConfigurationManager.AppSettings["Interval"]);
//if (interval > 0)
@@ -608,29 +678,7 @@ namespace DM_Weight.ViewModels
// //WDTimer.AutoReset = true;
// //WDTimer.Enabled = true;
//}
- Task.Factory.StartNew(() =>
- {
- while (true)
- {
- TemperatureHumidityInfo temp = _portUtil.GetWSD();
- if (temp != null)
- {
- SqlSugarHelper.Db.Insertable(new TemperatureHumidityInfo()
- {
- GroupNo = temp.GroupNo,
- Temp = temp.Temp,
- Humi = temp.Humi,
- AddTime = DateTime.Now
- }).ExecuteCommand();
- logger.Info($"保存温湿度信息:{temp.Temp},{temp.Humi}");
- Task.Delay(1200000);//20分钟查一次
- }
- else
- {
- logger.Info("温湿度信息返回空");
- }
- }
- });
+
#endregion
//if (stopRecord > 0)
//{
@@ -691,7 +739,7 @@ namespace DM_Weight.ViewModels
}
catch (Exception ex)
{
- logger.Info($"自动退出异常:{ex.Message}");
+ logger.Info($"自动退出异常:{ex.Message}");
}
}
diff --git a/DM_Weight/ViewModels/LoginWindowViewModel.cs b/DM_Weight/ViewModels/LoginWindowViewModel.cs
index f21b754..ef2148f 100644
--- a/DM_Weight/ViewModels/LoginWindowViewModel.cs
+++ b/DM_Weight/ViewModels/LoginWindowViewModel.cs
@@ -120,11 +120,8 @@ namespace DM_Weight.ViewModels
_portUtil = portUtil;
_regionManager = regionManager;
_eventAggregator = eventAggregator;
- FingerMsg = !_fingerprintUtil.bIsConnected;
//FingerMsg = !FingerprintUtil.bIsConnected;
_eventAggregator.GetEvent().Subscribe(LoginEvent);
- logger.Info($"LoginWindowViewModel;FingerMsg:{_fingerprintUtil.bIsConnected}");
- _fingerprintUtil.FingerDisconnect();
}
private DelegateCommand? _loginCommand;
@@ -262,10 +259,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.Invoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
+ {
_regionManager.RequestNavigate("MainRegion", "HomeWindow", keys);
- //}));
+ }));
}
// 双人登录模式
else
@@ -278,10 +275,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.Invoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
+ {
_regionManager.RequestNavigate("MainRegion", "HomeWindow", keys);
- //}));
+ }));
}
else
@@ -302,10 +299,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.Invoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
+ {
_regionManager.RequestNavigate("MainRegion", "HomeWindow", keys);
- //}));
+ }));
}
else
@@ -451,6 +448,9 @@ _exitCommand ??= new DelegateCommand(Exit);
{
//FingerMsg = !_fingerprintUtil.bIsConnected;
//_eventAggregator.GetEvent().Subscribe(LoginEvent);
+ //logger.Info($"LoginWindowViewModel;FingerMsg:{_fingerprintUtil.bIsConnected}");
+ //_fingerprintUtil.FingerDisconnect();
+ //FingerMsg = !_fingerprintUtil.bIsConnected;
}
diff --git a/DM_Weight/ViewModels/MainWindowViewModel.cs b/DM_Weight/ViewModels/MainWindowViewModel.cs
index a21acc9..fa40760 100644
--- a/DM_Weight/ViewModels/MainWindowViewModel.cs
+++ b/DM_Weight/ViewModels/MainWindowViewModel.cs
@@ -19,6 +19,7 @@ using DM_Weight.HIKVISION;
using log4net.Repository.Hierarchy;
using log4net;
using System.Windows;
+using DM_Weight.Models;
namespace DM_Weight.ViewModels
{
@@ -67,11 +68,12 @@ namespace DM_Weight.ViewModels
IRegionManager _regionManager;
IUnityContainer _container;
//private CHKFunction _cHKFunction;
- private readonly ILog logger = LogManager.GetLogger(typeof(PortUtil));
+ private readonly ILog logger = LogManager.GetLogger(typeof(MainWindowViewModel));
SocketHelper _socketHelper;
- public MainWindowViewModel(IRegionManager regionManager, IUnityContainer container, IEventAggregator eventAggregator, FingerprintUtil fingerprintUtil, SocketHelper socketHelper)
+ private PortUtil _portUtil;
+ public MainWindowViewModel(IRegionManager regionManager, IUnityContainer container, IEventAggregator eventAggregator, FingerprintUtil fingerprintUtil, SocketHelper socketHelper, PortUtil portUtil)
{
- //_portUtil = portUtil;
+ _portUtil = portUtil;
this.eventAggregator = eventAggregator;
this.eventAggregator.GetEvent().Subscribe(doMyPrismEvent2);
_fingerprintUtil = fingerprintUtil;
@@ -85,6 +87,59 @@ namespace DM_Weight.ViewModels
_container.RegisterType