diff --git a/DM_Weight/App.config b/DM_Weight/App.config
index 27b072d..26cbf26 100644
--- a/DM_Weight/App.config
+++ b/DM_Weight/App.config
@@ -37,7 +37,7 @@
-
+
diff --git a/DM_Weight/DM_Weight.csproj b/DM_Weight/DM_Weight.csproj
index aa44d2f..30703a6 100644
--- a/DM_Weight/DM_Weight.csproj
+++ b/DM_Weight/DM_Weight.csproj
@@ -1,7 +1,7 @@
- WinExe
+ Exe
net6.0-windows
enable
true
diff --git a/DM_Weight/Models/OrderInfo.cs b/DM_Weight/Models/OrderInfo.cs
index c71bd19..3684e95 100644
--- a/DM_Weight/Models/OrderInfo.cs
+++ b/DM_Weight/Models/OrderInfo.cs
@@ -252,7 +252,7 @@ namespace DM_Weight.Models
//麻醉师工号
- [SugarColumn(ColumnName = "doctorCode")]
+ [SugarColumn(ColumnName = "doctor_Code")]
public string DoctorCode { get; set; }
}
}
\ No newline at end of file
diff --git a/DM_Weight/Port/ModbusHelper.cs b/DM_Weight/Port/ModbusHelper.cs
index 98d5294..5b4fdb2 100644
--- a/DM_Weight/Port/ModbusHelper.cs
+++ b/DM_Weight/Port/ModbusHelper.cs
@@ -1,4 +1,7 @@
-using Modbus.Device;
+using DM_Weight.ViewModels;
+using log4net;
+using log4net.Repository.Hierarchy;
+using Modbus.Device;
using Polly;
using System;
using System.Collections.Generic;
@@ -20,6 +23,7 @@ namespace DM_Weight.Port
private TcpClient client;
private static ModbusHelper instance;
private static readonly object objLock = new object();
+ private readonly ILog logger = LogManager.GetLogger(typeof(CheckOrderNewWindowViewModel));
public ModbusHelper()
{
socket = MakeKeepALiveSocket();
@@ -56,7 +60,8 @@ namespace DM_Weight.Port
.Retry(3, (exception, retryCount) =>
{
this.Dispose();
- Debug.WriteLine($"获取所有箱子门状态出错,第{retryCount}次重试", exception);
+ //Debug.WriteLine($"获取所有箱子门状态出错,第{retryCount}次重试", exception);
+ logger.Info($"获取所有箱子门状态出错,第{retryCount}次重试, 异常信息{exception}");
this.SetModusIpMaster();
// return TimeSpan.FromSeconds (1);
}).Execute(() =>
@@ -70,6 +75,7 @@ namespace DM_Weight.Port
{
flags[i] = r2[17 - i] == '1' ? true : false;
}
+ logger.Info($"获取所有箱子门状态返回:{string.Join(',',flags)}");
return flags;
});
return bools;
@@ -80,13 +86,16 @@ namespace DM_Weight.Port
Policy.Handle().Retry(3, ((exception, retryCount) =>
{
this.Dispose();
- Debug.WriteLine($"打开箱子出错,第{retryCount}次重试", exception);
+ //Debug.WriteLine($"打开箱子出错,第{retryCount}次重试", exception);
+ logger.Info($"打开箱子出错,第{retryCount}次重试,异常信息{exception}");
this.SetModusIpMaster();
//return TimeSpan.FromSeconds (1);
})).Execute(() =>
{
+ logger.Info($"正在打开{boxNum}号药箱");
master.WriteSingleRegister(1, (ushort)boxNum, 14);
- Console.WriteLine($"开门指令已发送{(ushort)boxNum}");
+ logger.Info($"开门指令已发送{(ushort)boxNum}");
+ //Console.WriteLine($"开门指令已发送{(ushort)boxNum}");
bFlag = true;
});
return bFlag;
diff --git a/DM_Weight/Port/PortUtil.cs b/DM_Weight/Port/PortUtil.cs
index 5b38b1b..d055ab9 100644
--- a/DM_Weight/Port/PortUtil.cs
+++ b/DM_Weight/Port/PortUtil.cs
@@ -687,52 +687,52 @@ namespace DM_Weight.Port
public PortUtil(IEventAggregator eventAggregator, CHKFunction chkFunction)
{
_eventAggregator = eventAggregator;
- try
- {
- string DrawerPortPath = ConfigurationManager.AppSettings["DrawerPortPath"];
- logger.Info($"打开抽屉串口【{DrawerPortPath}】");
- drawerSerial = new SerialPort(DrawerPortPath, 9600, Parity.None, 8);
- drawerSerial.Open();
- logger.Info($"抽屉串口打开结果【{drawerSerial.IsOpen}】");
- }
- catch (Exception e)
- {
- logger.Error("抽屉串口打开错误" + e.Message);
- }
+ //try
+ //{
+ // string DrawerPortPath = ConfigurationManager.AppSettings["DrawerPortPath"];
+ // logger.Info($"打开抽屉串口【{DrawerPortPath}】");
+ // drawerSerial = new SerialPort(DrawerPortPath, 9600, Parity.None, 8);
+ // drawerSerial.Open();
+ // logger.Info($"抽屉串口打开结果【{drawerSerial.IsOpen}】");
+ //}
+ //catch (Exception e)
+ //{
+ // logger.Error("抽屉串口打开错误" + e.Message);
+ //}
- try
- {
- string ScanCodePortPath = ConfigurationManager.AppSettings["ScanCodePortPath"];
- logger.Info($"打开条码枪串口【{ScanCodePortPath}】");
- scanCodeSerial = new SerialPort(ScanCodePortPath, 9600, Parity.None, 8);
- scanCodeSerial.DataReceived += (object sender, System.IO.Ports.SerialDataReceivedEventArgs e) =>
- {
- string code = scanCodeSerial.ReadExisting();
- _eventAggregator.GetEvent().Publish(new util.DeviceMsg()
- {
- EventType = util.EventType.CODESCAN,
- Code = code,
- });
- };
- scanCodeSerial.Open();
- logger.Info($"条码枪串口打开结果【{scanCodeSerial.IsOpen}】");
- }
- catch (Exception e)
- {
- logger.Error("条码枪串口打开错误" + e.Message);
- }
- try
- {
- string FridgePortPath = ConfigurationManager.AppSettings["FridgePortPath"];
- logger.Info($"打开冰箱串口【{FridgePortPath}】");
- fridgeSerial = new SerialPort(FridgePortPath, 9600, Parity.None, 8);
- fridgeSerial.Open();
- logger.Info($"冰箱串口打开结果【{fridgeSerial.IsOpen}】");
- }
- catch (Exception e)
- {
- logger.Error("冰箱串口打开错误" + e.Message);
- }
+ //try
+ //{
+ // string ScanCodePortPath = ConfigurationManager.AppSettings["ScanCodePortPath"];
+ // logger.Info($"打开条码枪串口【{ScanCodePortPath}】");
+ // scanCodeSerial = new SerialPort(ScanCodePortPath, 9600, Parity.None, 8);
+ // scanCodeSerial.DataReceived += (object sender, System.IO.Ports.SerialDataReceivedEventArgs e) =>
+ // {
+ // string code = scanCodeSerial.ReadExisting();
+ // _eventAggregator.GetEvent().Publish(new util.DeviceMsg()
+ // {
+ // EventType = util.EventType.CODESCAN,
+ // Code = code,
+ // });
+ // };
+ // scanCodeSerial.Open();
+ // logger.Info($"条码枪串口打开结果【{scanCodeSerial.IsOpen}】");
+ //}
+ //catch (Exception e)
+ //{
+ // logger.Error("条码枪串口打开错误" + e.Message);
+ //}
+ //try
+ //{
+ // string FridgePortPath = ConfigurationManager.AppSettings["FridgePortPath"];
+ // logger.Info($"打开冰箱串口【{FridgePortPath}】");
+ // fridgeSerial = new SerialPort(FridgePortPath, 9600, Parity.None, 8);
+ // fridgeSerial.Open();
+ // logger.Info($"冰箱串口打开结果【{fridgeSerial.IsOpen}】");
+ //}
+ //catch (Exception e)
+ //{
+ // logger.Error("冰箱串口打开错误" + e.Message);
+ //}
if (_canBusExsit)
{
try
diff --git a/DM_Weight/ViewModels/CheckOrderNewWindowViewModel.cs b/DM_Weight/ViewModels/CheckOrderNewWindowViewModel.cs
index 12ce6c0..2cf3762 100644
--- a/DM_Weight/ViewModels/CheckOrderNewWindowViewModel.cs
+++ b/DM_Weight/ViewModels/CheckOrderNewWindowViewModel.cs
@@ -502,7 +502,7 @@ namespace DM_Weight.ViewModels
for (int j = 0; j < oi.OrderDetailList.Count; j++)
{
oi._OrderDetail = oi.OrderDetailList[j];
- int drawerNo= DrawerNo+1;
+ int drawerNo = DrawerNo + 1;
ChannelStock cs = SqlSugarHelper.Db.Queryable()
.Where(cs => cs.DrugId == oi._OrderDetail.DrugId
&& cs.ManuNo == oi._OrderDetail.SetManuNo
@@ -541,12 +541,12 @@ namespace DM_Weight.ViewModels
#region 记录 注射剂使用与交接记录报表
//查询发药时间
//MachineRecord SendMachineRecord = SqlSugarHelper.Db.Queryable().Where(mr => mr.DrawerNo == cs.DrawerNo && mr.Type == 2)
- //.OrderByDescending(mr => mr.OperationTime)
- //.First();
+ //.OrderByDescending(mr => mr.OperationTime)
+ //.First();
//string retUser = SqlSugarHelper.Db.Queryable().Where(cl => cl.MachineId == (ConfigurationManager.AppSettings["machineId"] ?? "DM5") && cl.DrawerNo == cs.DrawerNo)
//.Select(cl => cl.BelongUser).First();
- RejectionReport rejectionReport = SqlSugarHelper.Db.Queryable().Where(rp => rp.DrugId == cs.DrugId && rp.DrawerNo == cs.DrawerNo).OrderByDescending(rp=>rp.SendDate).First();
+ RejectionReport rejectionReport = SqlSugarHelper.Db.Queryable().Where(rp => rp.DrugId == cs.DrugId && rp.DrawerNo == cs.DrawerNo).OrderByDescending(rp => rp.SendDate).First();
//发药信息
//RejectionReport rejectionReport = new RejectionReport();
@@ -719,22 +719,24 @@ namespace DM_Weight.ViewModels
public async void OpenBoxAction(string strDrawerNo)
{
DrawerNo = Convert.ToInt32(strDrawerNo);
+ MachineRecord machineRecord = new MachineRecord();
+ machineRecord.MachineId = "DM5";
+ machineRecord.DrawerNo = DrawerNo;
+ machineRecord.Operator = HomeWindowViewModel.Operator?.Id;
+ machineRecord.OperationTime = DateTime.Now;
+ machineRecord.Type = 55;
+ machineRecord.InvoiceId = $"打开{DrawerNo + 1}号药箱";
+
+
if (DrawerNo > 0)
{
DrawerNo -= 1;
RequestData();
Status = 1;
_portUtil.SpeakAsync($"正在打开{DrawerNo + 1}号药箱");
+ logger.Info($"正在打开{DrawerNo + 1}号药箱");
//记录开药箱日志
- SqlSugarHelper.Db.Insertable(new MachineRecord()
- {
- MachineId = "DM5",
- DrawerNo = DrawerNo,
- Operator = HomeWindowViewModel.Operator?.Id,
- OperationTime = DateTime.Now,
- Type = 55,
- InvoiceId = $"打开{DrawerNo + 1}号药箱",
- }).ExecuteCommand();
+ SqlSugarHelper.Db.Insertable(machineRecord).ExecuteCommand();
ModbusHelper.GetInstance().OpenBoxDoor(DrawerNo);
}
}
@@ -755,72 +757,72 @@ namespace DM_Weight.ViewModels
// 取消消息订阅
//_eventAggregator.GetEvent().Unsubscribe(DoMyPrismEvent);
}
- void DoMyPrismEvent(DeviceMsg msg)
- {
- switch (msg.EventType)
- {
- // 药箱打开
- case EventType.DRAWEROPEN:
- if (Status == 1)
- {
- Status = 2;
- }
- //记录开药箱日志
- SqlSugarHelper.Db.Insertable(new MachineRecord()
- {
- MachineId = "DM5",
- DrawerNo = _portUtil.DrawerNo,
- Operator = HomeWindowViewModel.Operator?.Id,
- OperationTime = DateTime.Now,
- Type = 55,
- InvoiceId = $"打开{DrawerNo}号药箱",
- }).ExecuteCommand();
- _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();
+ //void DoMyPrismEvent(DeviceMsg msg)
+ //{
+ // switch (msg.EventType)
+ // {
+ // // 药箱打开
+ // case EventType.DRAWEROPEN:
+ // if (Status == 1)
+ // {
+ // Status = 2;
+ // }
+ // //记录开药箱日志
+ // SqlSugarHelper.Db.Insertable(new MachineRecord()
+ // {
+ // MachineId = "DM5",
+ // DrawerNo = _portUtil.DrawerNo,
+ // Operator = HomeWindowViewModel.Operator?.Id,
+ // OperationTime = DateTime.Now,
+ // Type = 55,
+ // InvoiceId = $"打开{DrawerNo}号药箱",
+ // }).ExecuteCommand();
+ // _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;
- }
- _portUtil.Operate = false;
- break;
- // 打开失败
- case EventType.OPENERROR:
- AlertMsg alertMsg = new AlertMsg
- {
- Message = msg.Message,
- Type = MsgType.ERROR
- };
- _eventAggregator.GetEvent().Publish(alertMsg);
+ // if (Status == 2)
+ // {
+ // Status = 3;
+ // }
+ // _portUtil.Operate = false;
+ // break;
+ // // 打开失败
+ // case EventType.OPENERROR:
+ // AlertMsg alertMsg = new AlertMsg
+ // {
+ // Message = msg.Message,
+ // Type = MsgType.ERROR
+ // };
+ // _eventAggregator.GetEvent().Publish(alertMsg);
- Status = 0;
+ // Status = 0;
- //记录药箱操作日志
- 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;
+ // }
+ //}
}
public class TotalDrug
{
diff --git a/DM_Weight/ViewModels/HomeWindowViewModel.cs b/DM_Weight/ViewModels/HomeWindowViewModel.cs
index 1e79d85..346e971 100644
--- a/DM_Weight/ViewModels/HomeWindowViewModel.cs
+++ b/DM_Weight/ViewModels/HomeWindowViewModel.cs
@@ -24,6 +24,7 @@ using Newtonsoft.Json.Linq;
using DM_Weight.msg;
using DM_Weight.HIKVISION;
using System.Threading;
+using System.Diagnostics;
namespace DM_Weight.ViewModels
{
@@ -286,10 +287,26 @@ namespace DM_Weight.ViewModels
//}
if (SelectedMenu != null && SelectedMenu.PremissionName == "退出")
{
- logger.Info($"用户【{Operator?.Nickname}】退出登录");
- Operator = null;
- Reviewer = null;
- _regionManager.RequestNavigate("MainRegion", "LoginWindow");
+ bool[] boolArrs = ModbusHelper.GetInstance().GetAllBoxState();
+ bool allTrue = Array.TrueForAll(boolArrs, b => b);
+ //false是关着,true是开着
+ if (!allTrue)
+ {
+ logger.Info($"用户【{Operator?.Nickname}】退出登录");
+ Operator = null;
+ Reviewer = null;
+ _regionManager.RequestNavigate("MainRegion", "LoginWindow");
+ }
+ else
+ {
+ //还有药箱开着不能退出
+ AlertMsg alertMsg = new AlertMsg
+ {
+ Message = "请关闭药箱后再退出系统",
+ Type = MsgType.ERROR
+ };
+ _eventAggregator.GetEvent().Publish(alertMsg);
+ }
}
else
{
@@ -349,24 +366,24 @@ namespace DM_Weight.ViewModels
});
}
- public DelegateCommand OpenRecoverCommand
- {
- get => new DelegateCommand(async () =>
- {
- try
- {
- _portUtil.WindowName = "HomeWindow";
- _portUtil.Operate = true;
- await _portUtil.OpenStorage();
- _portUtil.ResetData();
+ //public DelegateCommand OpenRecoverCommand
+ //{
+ // get => new DelegateCommand(async () =>
+ // {
+ // try
+ // {
+ // _portUtil.WindowName = "HomeWindow";
+ // _portUtil.Operate = true;
+ // await _portUtil.OpenStorage();
+ // _portUtil.ResetData();
- }
- catch (Exception ex)
- {
- logger.Info($"OpenRecoverCommand异常{ex.Message}");
- }
- });
- }
+ // }
+ // catch (Exception ex)
+ // {
+ // logger.Info($"OpenRecoverCommand异常{ex.Message}");
+ // }
+ // });
+ //}
public DelegateCommand OpenEditPasswordDialog
{
@@ -406,35 +423,35 @@ namespace DM_Weight.ViewModels
///
/// 获取温度信息
///
- private async void GetWD(object sender, ElapsedEventArgs e)
- {
- if (!_portUtil.FridgeOperate)
- {
- string retStr = string.Empty;
- byte[] data = null;
- float retT = await _portUtil.GetFridgeTemperature(1);
- Thread.Sleep(80);
- WD = $"恒温冷藏抽屉当前温度:{Math.Round((retT - 1.5), 2)}℃";
- }
- }
+ //private async void GetWD(object sender, ElapsedEventArgs e)
+ //{
+ // if (!_portUtil.FridgeOperate)
+ // {
+ // string retStr = string.Empty;
+ // byte[] data = null;
+ // float retT = await _portUtil.GetFridgeTemperature(1);
+ // Thread.Sleep(80);
+ // WD = $"恒温冷藏抽屉当前温度:{Math.Round((retT - 1.5), 2)}℃";
+ // }
+ //}
- private async void GetWD()
- {
- if (!_portUtil.FridgeOperate)
- {
- string retStr = string.Empty;
- byte[] data = null;
- float retT = await _portUtil.GetFridgeTemperature(1);
- Thread.Sleep(80);
- WD = $"恒温冷藏抽屉当前温度:{Math.Round((retT - 1.5), 2)}℃;";
- if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"]) > 1)
- {
- float retTemp = await _portUtil.GetFridgeTemperature(2);
- Thread.Sleep(80);
- WD += $"{retTemp}℃";
- }
- }
- }
+ //private async void GetWD()
+ //{
+ // if (!_portUtil.FridgeOperate)
+ // {
+ // string retStr = string.Empty;
+ // byte[] data = null;
+ // float retT = await _portUtil.GetFridgeTemperature(1);
+ // Thread.Sleep(80);
+ // WD = $"恒温冷藏抽屉当前温度:{Math.Round((retT - 1.5), 2)}℃;";
+ // if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"]) > 1)
+ // {
+ // float retTemp = await _portUtil.GetFridgeTemperature(2);
+ // Thread.Sleep(80);
+ // WD += $"{retTemp}℃";
+ // }
+ // }
+ //}
//保存温湿度信息
private async void GetWSD(object sender, ElapsedEventArgs e)
{
@@ -494,11 +511,11 @@ namespace DM_Weight.ViewModels
///
/// 查看冰箱温度
///
- public DelegateCommand CheckWDCommand { get => new DelegateCommand(CheckAction); }
- private void CheckAction()
- {
- GetWD();
- }
+ //public DelegateCommand CheckWDCommand { get => new DelegateCommand(CheckAction); }
+ //private void CheckAction()
+ //{
+ // GetWD();
+ //}
//这个方法用于拦截请求,continuationCallback(true)就是不拦截,continuationCallback(false)拦截本次操作
@@ -552,16 +569,31 @@ namespace DM_Weight.ViewModels
if (autoExit > 0)
{
System.Timers.Timer timer = new System.Timers.Timer();
- timer.Interval = 1000;
+ timer.Interval = 100;
timer.Elapsed += (sender, e) =>
{
// 串口无人操作
- if (!_portUtil.Operate)
+ bool[] boolArrs = ModbusHelper.GetInstance().GetAllBoxState();
+ bool allTrue = Array.TrueForAll(boolArrs, b => b==false);
+ logger.Info($"进入自动退出定时方法{allTrue}");
+ //false是关着,true是开着
+ if (allTrue)
{
+ //PerformanceCounter pc = new PerformanceCounter("System", "% Idle Time", true);
+ //float systemIdleTime = pc.NextValue();
+ //Console.WriteLine($"systemIdleTime:{systemIdleTime}");
+
+ //// 获取系统空闲时间
+ //TimeSpan idleTime = SystemInformation.IdleTime;
+ //// 打印空闲时间
+ //Console.WriteLine("系统空闲时间: " + idleTime.ToString());
+ long lTime = CheckComputerFreeState.GetLastInputTime();
+ logger.Info($"自动退出时间{lTime}");
// 30秒内无人操作鼠标键盘
- if ((DateTime.Now - _portUtil.dateTime).TotalSeconds > autoExit && CheckComputerFreeState.GetLastInputTime() > autoExit)
+ //if ((DateTime.Now - _portUtil.dateTime).TotalSeconds > autoExit && CheckComputerFreeState.GetLastInputTime() > autoExit)
+ if (lTime > autoExit)
{
- logger.Info($"设备30秒内无人操作,用户【{Operator?.Nickname}】自动退出登录");
+ logger.Info($"设备{autoExit}秒内无人操作,用户【{Operator?.Nickname}】自动退出登录");
_chkFunction.HIKStopDVRRecord();
Operator = null;
Reviewer = null;
diff --git a/DM_Weight/Views/HomeWindow.xaml b/DM_Weight/Views/HomeWindow.xaml
index 2b2bda4..40d17df 100644
--- a/DM_Weight/Views/HomeWindow.xaml
+++ b/DM_Weight/Views/HomeWindow.xaml
@@ -120,13 +120,13 @@
Header="修改密码" />
-
+
+ -->
diff --git a/DM_Weight/Views/OpenBoxNewWindow.xaml b/DM_Weight/Views/OpenBoxNewWindow.xaml
index 239a837..d41b5d6 100644
--- a/DM_Weight/Views/OpenBoxNewWindow.xaml
+++ b/DM_Weight/Views/OpenBoxNewWindow.xaml
@@ -86,7 +86,7 @@
-