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.

194 lines
7.2 KiB
C#

using CommunityToolkit.Mvvm.ComponentModel;
using System;
using System.Collections.ObjectModel;
using log4net;
using Aucma.Core.DoorFoam.Common;
using LiveCharts;
using System.Collections.Generic;
using Admin.Core.Model;
using Admin.Core.Service;
using LiveCharts.Wpf;
using Admin.Core.IService;
using Microsoft.Extensions.DependencyInjection;
using System.Threading.Tasks;
using System.Windows.Controls;
using System.Collections;
using Aucma.Core.DoorFoam.Models;
using System.Reflection.Emit;
using NPOI.SS.Formula.Functions;
using System.Threading;
using System.Windows.Threading;
using static Admin.Core.Service.CodeBindingRecordServices;
using System.Windows.Data;
using System.Windows;
using System.Linq;
using Aucma.Core.CodeBinding;
/*
* 首页信息
*/
namespace Aucma.Core.DoorFoam.ViewModels
{
public partial class IndexPageViewModel : ObservableObject
{
private static readonly log4net.ILog log = LogManager.GetLogger(typeof(IndexPageViewModel));
private readonly codeBindingBusiness _codeBindingBusiness;
private readonly IDoorFoamRecordServices? _doorFoamRecordServices;
private readonly ICodeBindingRecordServices? _codeBindingRecordServices;
public IndexPageViewModel()
{
_codeBindingRecordServices = App.ServiceProvider.GetService<ICodeBindingRecordServices>();
_doorFoamRecordServices = App.ServiceProvider.GetService<IDoorFoamRecordServices>();
_codeBindingBusiness = new codeBindingBusiness(_codeBindingRecordServices);
// var list = _codeBindingRecordServices.FirstAsync().Result;
_codeBindingBusiness.RefreshCode1Event += RefreshCode1;
_codeBindingBusiness.RefreshCode2Event += RefreshCode2;
LoadData();
// 程序运行 5 秒后添加新数据项
add();
}
#region 加载DataGrid数据
private void LoadData()
{
ListItems.Add(new ReaderInfo() { No = 1, BoxCode ="42423444", ProductCode = "8659452123", BindingResult = "成功", RecordTime = System.DateTime.Now.ToString()});
}
private async void add()
{
await Task.Delay(5000);
ListItems.Add(new ReaderInfo() { No = 2, BoxCode = "42423444", ProductCode = "8659452123", BindingResult = "成功", RecordTime = System.DateTime.Now.ToString() });
ListItems.Add(new ReaderInfo() { No = 3, BoxCode = "42423444", ProductCode = "8659452123", BindingResult = "成功", RecordTime = System.DateTime.Now.ToString() });
ListItems.Add(new ReaderInfo() { No = 4, BoxCode = "42423444", ProductCode = "8659452123", BindingResult = "成功", RecordTime = System.DateTime.Now.ToString() });
ListItems.Add(new ReaderInfo() { No = 5, BoxCode = "42423444", ProductCode = "8659452123", BindingResult = "成功", RecordTime = System.DateTime.Now.ToString() });
ListItems.Add(new ReaderInfo() { No = 6, BoxCode = "42423444", ProductCode = "8659452123", BindingResult = "成功", RecordTime = System.DateTime.Now.ToString() });
ListItems.Add(new ReaderInfo() { No = 7, BoxCode = "42423444", ProductCode = "8659452123", BindingResult = "成功", RecordTime = System.DateTime.Now.ToString() });
ListItems.Add(new ReaderInfo() { No = 8, BoxCode = "42423444", ProductCode = "8659452123", BindingResult = "成功", RecordTime = System.DateTime.Now.ToString() }); ListItems.Add(new ReaderInfo() { No = 1, BoxCode = "42423444", ProductCode = "8659452123", BindingResult = "成功", RecordTime = System.DateTime.Now.ToString() });
ListItems.Add(new ReaderInfo() { No = 9, BoxCode = "42423444", ProductCode = "8659452123", BindingResult = "成功", RecordTime = System.DateTime.Now.ToString() });
ListItems.Add(new ReaderInfo() { No = 10, BoxCode = "42423444", ProductCode = "8659452123", BindingResult = "成功", RecordTime = System.DateTime.Now.ToString() });
}
#endregion
#region 参数定义
/// <summary>
/// 条码1
/// </summary>
private string code1 = string.Empty;
public string Code1
{
get { return code1; }
set
{
code1 = value;
OnPropertyChanged(nameof(Code1));
}
}
/// <summary>
/// 条码1扫描时间
/// </summary>
private string code1Time = string.Empty;
public string Code1Time
{
get { return code1Time; }
set
{
code1Time = value;
OnPropertyChanged(nameof(Code1Time));
}
}
/// <summary>
/// 条码2
/// </summary>
private string code2= string.Empty;
public string Code2
{
get { return code2; }
set
{
code2 = value;
OnPropertyChanged(nameof(Code2));
}
}
/// <summary>
/// 条码2扫描时间
/// </summary>
private string code2Time;
public string Code2Time
{
get { return code2Time; }
set
{
code2Time = value;
OnPropertyChanged(nameof(Code2Time));
}
}
/// <summary>
/// 绑定提示信息
/// </summary>
private string bindingInfo;
public string BindingInfo
{
get { return bindingInfo; }
set
{
bindingInfo = value;
OnPropertyChanged(nameof(BindingInfo));
}
}
#endregion
#region 初始化datagrid
private ObservableCollection<ReaderInfo> listItems = new ObservableCollection<ReaderInfo>() { };
public ObservableCollection<ReaderInfo> ListItems
{
get { return listItems; }
set
{
listItems = value;
OnPropertyChanged();//属性通知
}
}
#endregion
/// <summary>
/// code1扫码信息刷新
/// </summary>
/// <param name="materialType"></param>
private void RefreshCode1(string code1,string time)
{
Code1 = code1;
Code1Time = time;
}
/// <summary>
/// code2扫码信息及表格记录刷新
/// </summary>
/// <param name="materialType"></param>
private void RefreshCode2(CodeBindingRecord record)
{
Code2 = record.ProductCode;
Code2Time = record.RecordTime2.ToString();
if ("成功".Equals(record.BindingResult))
{
BindingInfo = "条码【" + record.BoxCode + "】与SN码【" + record.ProductCode + "】绑定成功";
}
else
{
BindingInfo = "条码【" + record.BoxCode + "】与SN码【" + record.ProductCode + "】绑定失败";
}
Application.Current.Dispatcher.Invoke(() =>
{
ListItems.Add(new ReaderInfo() { No = record.ObjId, BoxCode = record.BoxCode, ProductCode = record.ProductCode, BindingResult = record.BindingResult, RecordTime = record.RecordTime2.ToString() });
});
}
}
}