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#
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放行信号
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
}
|