using Admin.Core.Common; using Admin.Core.IRepository; using Admin.Core.IService; using Admin.Core.Model; using Admin.Core.Service; using Aucma.Core.PLc; using CommunityToolkit.Mvvm.ComponentModel; using log4net; using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Reflection.Emit; using System.Text; using System.Threading; using System.Threading.Tasks; namespace Aucma.Core.CodeBinding { /// /// 条码绑定业务逻辑 /// public sealed class codeBindingBusiness { #region 对象引用 /// /// 日志信息 /// /// private static readonly log4net.ILog log = LogManager.GetLogger(typeof(CodeBindingRecordServices)); private ICodeBindingRecordServices? _codeBindingRecordServices; #endregion #region 委托事件 /// /// code1扫码信息刷新 /// /// public delegate void RefreshCode1(string Code1, string time); public event RefreshCode1 RefreshCode1Event; /// /// code2扫码信息刷新,记录表更新 /// /// public delegate void RefreshCode2(CodeBindingRecord record); public event RefreshCode2 RefreshCode2Event; #endregion public codeBindingBusiness(ICodeBindingRecordServices _codeBindingRecordServices) { _codeBindingRecordServices = _codeBindingRecordServices; var list = _codeBindingRecordServices.FirstAsync().Result; Task.Run(() => { //plc使用 var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("后板Plc")); Thread.Sleep(1000); receiveCode1("11335577"); }); } private codeBindingBusiness() { //Task.Run(() => //{ // Thread.Sleep(5000); // _codeBindingRecordServices = App.ServiceProvider.GetService(); // _codeBindingRecordServices.FirstAsync(); //}); //Task.Run(() => //{ // Thread.Sleep(1000); // receiveCode1("11335577"); //}); } /// /// 条码绑定,条码1处理 /// /// private void receiveCode1(string code1) { log.Info("进入条码1处理函数receiveCode1,code1:" + code1); DateTime time = System.DateTime.Now; string strTime = time.ToString(); // 1.刷新界面条码信息 RefreshCode1Event?.Invoke(code1,strTime); // 2.创建任务更新数据库条码1 CodeBindingRecord codeRecord = new CodeBindingRecord(); codeRecord.BoxCode = code1; codeRecord.BoxName = "去数据库查询"; codeRecord.RecordTime1 = time; codeRecord.RecordTime2 = time; codeRecord.ProductCode = "扫码枪扫描"; codeRecord.BindingResult = "成功"; Thread.Sleep(10000); RefreshCode2Event?.Invoke(codeRecord); // _codeBindingRecordServices.AddAsync(codeRecord); //log.Info("条码1记录更新"); } /// /// 条码绑定,条码2处理 /// /// private void receiveCode2(string code2) { log.Info("进入条码2处理函数receiveCode1,code2:" + code2); // 1.刷新界面信息 // 2.数据库匹配条码1并绑定 CodeBindingRecord record = _codeBindingRecordServices.QueryByTime().Result; record.ProductCode = code2; record.RecordTime2 = System.DateTime.Now; // 产品入库? // 3.下发plc放行信号 } } }