diff --git a/SlnMesnac.RfidUpload.Model/RfidInfo.cs b/SlnMesnac.RfidUpload.Model/RfidInfo.cs
new file mode 100644
index 0000000..d43e7d2
--- /dev/null
+++ b/SlnMesnac.RfidUpload.Model/RfidInfo.cs
@@ -0,0 +1,31 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Security.Principal;
+using System.Text;
+
+namespace SlnMesnac.RfidUpload.Model
+{
+
+ [SugarTable("RFID_INFO")]
+ public class RfidInfo
+ {
+ // 该特性指定此属性对应数据库表中的 id 列
+ // IsIdentity = true 表示该列是自增列
+ // IsPrimaryKey = true 表示该列是主键
+ [SugarColumn(ColumnName = "id", IsIdentity = true, IsPrimaryKey = true)]
+ public int Id { get; set; }
+
+ // 用于存储调拨单号
+ [SugarColumn(ColumnName = "dbdh")]
+ public string Dbdh { get; set; }
+
+ // 用于存储RFID
+ [SugarColumn(ColumnName = "result")]
+ public string Result { get; set; }
+
+ //时间
+ [SugarColumn(ColumnName = "recordtime")]
+ public string RecordTime { get; set; }
+ }
+}
diff --git a/SlnMesnac.RfidUpload.UI/App.xaml.cs b/SlnMesnac.RfidUpload.UI/App.xaml.cs
index 3533401..e7f474b 100644
--- a/SlnMesnac.RfidUpload.UI/App.xaml.cs
+++ b/SlnMesnac.RfidUpload.UI/App.xaml.cs
@@ -1,4 +1,7 @@
-using System.Windows;
+using System.Threading.Tasks;
+using System;
+using System.Windows;
+using SlnMesnac.RfidUpload.NLog;
namespace SlnMesnac.RfidUpload.UI
{
@@ -7,5 +10,85 @@ namespace SlnMesnac.RfidUpload.UI
///
public partial class App : Application
{
+ private static readonly LogHelper logger = LogHelper.Instance;
+ public App()
+ {
+ //UI线程未捕获异常处理事件(UI主线程)
+ this.DispatcherUnhandledException += App_DispatcherUnhandledException;
+
+ //非UI线程未捕获异常处理事件(例如自己创建的一个子线程)
+ AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
+ //Task线程内未捕获异常处理事件
+ TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;//Task异常
+
+
+ }
+
+
+ void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
+ {
+
+ try
+ {
+ logger.Error(e.Exception.Message);
+ HandleException(e.Exception);
+ }
+ catch (Exception ex)
+ {
+ HandleException(ex);
+ }
+ finally
+ {
+ e.Handled = true;
+ }
+ }
+ private static void HandleException(Exception ex)
+ {
+ logger.Error(ex.Message);
+ //Logger log = new Logger();
+ //log.Log(ex.ToString());
+ }
+ //非UI线程未捕获异常处理事件(例如自己创建的一个子线程)
+ private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
+ {
+ try
+ {
+
+ var exception = e.ExceptionObject as Exception;
+ if (exception != null)
+ {
+ HandleException(exception);
+ }
+ }
+ catch (Exception ex)
+ {
+ HandleException(ex);
+ }
+ finally
+ {
+ //ignore
+ }
+ }
+ private static void TaskScheduler_UnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e)
+ {
+ try
+ {
+ var exception = e.Exception as Exception;
+ if (exception != null)
+ {
+ HandleException(exception);
+ }
+ }
+ catch (Exception ex)
+ {
+ HandleException(ex);
+ }
+ finally
+ {
+ e.SetObserved();
+ }
+ }
+
+
}
}
diff --git a/SlnMesnac.RfidUpload.UI/viewModel/MainWindowViewModel.cs b/SlnMesnac.RfidUpload.UI/viewModel/MainWindowViewModel.cs
index fd8d216..f558800 100644
--- a/SlnMesnac.RfidUpload.UI/viewModel/MainWindowViewModel.cs
+++ b/SlnMesnac.RfidUpload.UI/viewModel/MainWindowViewModel.cs
@@ -24,6 +24,8 @@ using SlnMesnac.RfidUpload.UI.TempData;
using slnmesnac.rfidupload.Repository;
using TouchSocket.Core;
using System.Windows.Interop;
+using static Dm.net.buffer.ByteArrayBuffer;
+using System.IO;
namespace SlnMesnac.RfidUpload.UI.viewModel
{
@@ -49,85 +51,7 @@ namespace SlnMesnac.RfidUpload.UI.viewModel
private Institution Institution;
#region 参数定义
- ///
- /// 串口
- ///
- //private ObservableCollection _serialPortItems = new ObservableCollection();
- //public ObservableCollection SerialPortItems
- //{
- // get { return _serialPortItems; }
- // set { _serialPortItems = value; RaisePropertyChanged(() => SerialPortItems); }
- //}
- //private string _selectedSerialPortItems = string.Empty;
- //public string SelectedSerialPortItems
- //{
- // get { return _selectedSerialPortItems; }
- // set { _selectedSerialPortItems = value; RaisePropertyChanged(() => SelectedSerialPortItems); }
- //}
-
- /////
- ///// 波特率
- /////
- //private ObservableCollection _baudRateItems = new ObservableCollection() { 9600, 115200 };
- //public ObservableCollection BaudRateItems
- //{
- // get { return _baudRateItems; }
- // set { _baudRateItems = value; RaisePropertyChanged(() => BaudRateItems); }
- //}
- //private int _selectedBaudRateItems = 115200;
- //public int SelectedBaudRateItems
- //{
- // get { return _selectedBaudRateItems; }
- // set { _selectedBaudRateItems = value; RaisePropertyChanged(() => SelectedBaudRateItems); }
- //}
-
- /////
- ///// 数据位
- /////
- //private ObservableCollection _dataBitsItems = new ObservableCollection() { 2, 4, 6, 8 };
- //public ObservableCollection DataBitsItems
- //{
- // get { return _dataBitsItems; }
- // set { _dataBitsItems = value; RaisePropertyChanged(() => DataBitsItems); }
- //}
- //private int _selectedDataBitsItems = 8;
- //public int SelectedDataBitsItems
- //{
- // get { return _selectedDataBitsItems; }
- // set { _selectedDataBitsItems = value; RaisePropertyChanged(() => SelectedDataBitsItems); }
- //}
-
- /////
- /////停止位
- /////
- //private ObservableCollection _stopBitsItems = new ObservableCollection() { 0, 1, 2, 3, 4 };
- //public ObservableCollection StopBitsItems
- //{
- // get { return _stopBitsItems; }
- // set { _stopBitsItems = value; RaisePropertyChanged(() => StopBitsItems); }
- //}
- //private int _selectedStopBitsItems = 1;
- //public int SelectedStopBitsItems
- //{
- // get { return _selectedStopBitsItems; }
- // set { _selectedStopBitsItems = value; RaisePropertyChanged(() => SelectedStopBitsItems); }
- //}
-
- /////
- /////校验位
- /////
- //private ObservableCollection _parityItems = new ObservableCollection() { "None", "Odd", "Even", "Mark", "Space" };
- //public ObservableCollection ParityItems
- //{
- // get { return _parityItems; }
- // set { _parityItems = value; RaisePropertyChanged(() => ParityItems); }
- //}
- //private string _selectedParityItems = "None";
- //public string SelectedParityItems
- //{
- // get { return _selectedParityItems; }
- // set { _selectedParityItems = value; RaisePropertyChanged(() => SelectedParityItems); }
- //}
+
///
/// 标签数量
@@ -288,8 +212,8 @@ namespace SlnMesnac.RfidUpload.UI.viewModel
FinishCommand = new RelayCommand(Finish);
ReUploadRecordCommand = new RelayCommand(ReUploadRecord);
this.Init();
-
- test();
+
+ // test();
}
private void ReUploadRecord()
@@ -313,15 +237,59 @@ namespace SlnMesnac.RfidUpload.UI.viewModel
}
+ ///
+ /// 清除日志文件
+ ///
+ private void DeleteLogsLogic()
+ {
+ try
+ {
+ //获取当前程序运行目录下的logs文件夹
+ string logPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Log");
+ string[] strings = Directory.GetDirectories(logPath);
+ foreach (string s in strings)
+ {
+ string dirName = Path.GetFileName(s);
+ if (!string.IsNullOrEmpty(dirName))
+ {
+ if (DateTime.TryParse(dirName, out DateTime dt))
+ {
+ if (dt < DateTime.Now.AddDays(-10))
+ {
+ Directory.Delete(s, true);
+
+ }
+ }
+ }
+ }
+
+ }
+ catch
+ {
+
+ }
+
+ }
+
+
private void Init()
{
+
+ DeleteLogsLogic();
+ GetRfidList();
TouchSocketService service = new TouchSocketService();
service.AddTouchSocketAsync(appConfig.RFIDAddress);
WorkModelParam = Convert.ToInt32(appConfig.workModel);
+ Task.Run(() =>
+ {
+ Thread.Sleep(1000 * 10);
+ throw new Exception("test");
+
+ });
}
@@ -557,20 +525,7 @@ namespace SlnMesnac.RfidUpload.UI.viewModel
}
- ///
- /// 清空标签信息列表
- ///
- private void EmptyFiles()
- {
- No = 0;
- labelItems.Clear();
- LabelCountParam = 0;
-
-
- MainPageTipMessage = "";
-
-
- }
+
private void SystemSet()
{
@@ -617,6 +572,54 @@ namespace SlnMesnac.RfidUpload.UI.viewModel
}
}
+ ///
+ /// 清空标签信息列表
+ ///
+ private void EmptyFiles()
+ {
+ No = 0;
+ labelItems.Clear();
+ LabelCountParam = 0;
+
+
+ MainPageTipMessage = "";
+
+ sqliteHelper.DeleteRFIDList();
+ GetRfidList();
+
+ }
+
+ ///
+ /// 从数据库加载到界面
+ ///
+ private void GetRfidList()
+ {
+ No = 0;
+ labelItems.Clear();
+ LabelCountParam = 0;
+
+
+ List rfidInfos = sqliteHelper.GetRFIDList();
+ if(rfidInfos != null&& rfidInfos.Count > 0)
+ {
+ foreach (var item in rfidInfos)
+ {
+ App.Current.Dispatcher.BeginInvoke((Action)(() =>
+ {
+ int no = labelItems.Count;
+ DataGridEnt dataGridEnt = new DataGridEnt();
+ dataGridEnt.no = ++no;
+ dataGridEnt.dbdh = _transferOrderInfo.dbdh;
+ dataGridEnt.result = item.Result;
+ dataGridEnt.recordtime = DateTime.Now;
+ labelItems.Add(dataGridEnt);
+ LabelInfoDataGrid = labelItems;
+
+ LabelCountParam += 1;
+ }));
+ }
+ }
+ }
///
@@ -625,6 +628,11 @@ namespace SlnMesnac.RfidUpload.UI.viewModel
///
private void RefreshLabelInfoDataGrid(string code)
{
+ RfidInfo rfidInfo = new RfidInfo();
+ rfidInfo.Dbdh = _transferOrderInfo.dbdh;
+ rfidInfo.Result = code;
+ rfidInfo.RecordTime = DateTime.Now.ToString();
+ sqliteHelper.InsertRFID(rfidInfo);
bool IsHas = labelItems.Any(x => x.result == code);
if (IsHas)
diff --git a/slnmesnac.rfidupload.Repository/SqlSugarHelper.cs b/slnmesnac.rfidupload.Repository/SqlSugarHelper.cs
index 3e2bd13..4a4d98b 100644
--- a/slnmesnac.rfidupload.Repository/SqlSugarHelper.cs
+++ b/slnmesnac.rfidupload.Repository/SqlSugarHelper.cs
@@ -67,6 +67,8 @@ namespace slnmesnac.rfidupload.Repository
});
}
+
+ #region 数据重传表相关操作
///
/// 插入记录
///
@@ -118,13 +120,51 @@ namespace slnmesnac.rfidupload.Repository
///
///
///
- public int updateRecordByFfjhNo(string ffjhNo,bool uploadResult)
+ public int updateRecordByFfjhNo(string ffjhNo, bool uploadResult)
{
int flag = uploadResult ? 1 : 0;
string sql = $"UPDATE UPLOAD_RECORD SET isSuccess = {flag} WHERE ffjhNo = {ffjhNo}";
int result = db.Updateable(sql).ExecuteCommand();
return result;
}
+ #endregion
+
+
+ #region RFID数据表相关操作
+ ///
+ /// 查询记录列表--不包含strList字段
+ ///
+ ///
+ ///
+ public List GetRFIDList()
+ {
+ List list;
+ list = db.Queryable().ToList();
+ return list;
+ }
+
+ ///
+ /// 删除所有RFID
+ ///
+ ///
+ ///
+ public bool DeleteRFIDList()
+ {
+ int count = db.Deleteable().ExecuteCommand();
+ return count>0? true : false;
+ }
+
+ ///
+ /// 插入一条RFID
+ ///
+ ///
+ ///
+ public int InsertRFID(RfidInfo record)
+ {
+ int result = db.Insertable(record).ExecuteCommand();
+ return result;
+ }
+ #endregion
}
}
\ No newline at end of file