diff --git a/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs b/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs index 45ef2052..60c8605f 100644 --- a/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs +++ b/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs @@ -42,7 +42,10 @@ namespace Aucma.Core.CodeBinding.ViewModels private readonly ICodeBindingRecordServices? _codeBindingRecordServices; private readonly IBaseMaterialInfoServices? _baseMaterialInfoServices; private readonly IBaseBomInfoServices? _baseBomInfoServices; + // 静态变量存code1 private static string code1Str = string.Empty; + // 定时检测数据库有没有pad绑定未放行的数据 + System.Timers.Timer timer = new System.Timers.Timer(1000); public IndexPageViewModel() { _codeBindingRecordServices = App.ServiceProvider.GetService(); @@ -50,9 +53,46 @@ namespace Aucma.Core.CodeBinding.ViewModels _baseMaterialInfoServices = App.ServiceProvider.GetService(); MvCodeHelper.ReceiveCode1Event += receiveCode1; MvCodeHelper.ReceiveCode2Event += receiveCode2; - //receiveCode2("B23000000824"); + // pda手持检测plc放行定时器 + // StartPlcTimer(); LoadData(); + //receiveCode2("B23000000824"); + } + + /// + /// 开启定时器定时读取数据库并下发plc放行信号 + /// + private void StartPlcTimer() + { + if (!timer.Enabled) + { + timer.Elapsed += new System.Timers.ElapsedEventHandler(readDataSendPlc); + timer.AutoReset = true; + timer.Enabled = false; + timer.Start(); + } + } + /// + /// 定时读取plc扫码信号,放行完成反馈信号 + /// + private async void readDataSendPlc(object source, System.Timers.ElapsedEventArgs e) + { + List records =await _codeBindingRecordServices.QueryAsync(x => x.isPlcPass == 1 && x.RecordTime2 >= System.DateTime.Now.AddDays(-1), "RECORD_TIME2 desc"); + if (records != null && records.Count>0) + { + CodeBindingRecord record = records[0]; + // 下发plc放行信号 + if (SendPlcPass()) + { + record.isPlcPass = 2; + await _codeBindingRecordServices.UpdateAsync(record); + } + + } + + } + #region 加载DataGrid数据 private async void LoadData() { @@ -75,8 +115,7 @@ namespace Aucma.Core.CodeBinding.ViewModels }); } - } - + } } // 修改为统计近一天 private async void LoadCharts()