You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

136 lines
4.1 KiB
C#

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
{
/// <summary>
/// 条码绑定业务逻辑
/// </summary>
public sealed class codeBindingBusiness
{
#region 对象引用
/// <summary>
/// 日志信息
/// </summary>
/// <param name="Code1"></param>
private static readonly log4net.ILog log = LogManager.GetLogger(typeof(CodeBindingRecordServices));
private ICodeBindingRecordServices? _codeBindingRecordServices;
#endregion
#region 委托事件
/// <summary>
/// code1扫码信息刷新
/// </summary>
/// <param name="Code1"></param>
public delegate void RefreshCode1(string Code1, string time);
public event RefreshCode1 RefreshCode1Event;
/// <summary>
/// code2扫码信息刷新,记录表更新
/// </summary>
/// <param name="Code1"></param>
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<ICodeBindingRecordServices>();
// _codeBindingRecordServices.FirstAsync();
//});
//Task.Run(() =>
//{
// Thread.Sleep(1000);
// receiveCode1("11335577");
//});
}
/// <summary>
/// 条码绑定,条码1处理
/// </summary>
/// <param name="materialType"></param>
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记录更新");
}
/// <summary>
/// 条码绑定,条码2处理
/// </summary>
/// <param name="materialType"></param>
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放行信号
}
}
}