using CommunityToolkit.Mvvm.Input; using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Command; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using SlnMesnac.Model.domain; using SlnMesnac.WPF.Page; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; namespace SlnMesnac.WPF.ViewModel { public partial class TonerBoxingViewModel : ViewModelBase { private ISqlSugarClient? sqlSugarClient; private readonly ILogger _logger; public TonerBoxingViewModel() { sqlSugarClient = App.ServiceProvider.GetService(); SelectWindow.RefreshMsgEvent += RefreshMessage; _logger = App.ServiceProvider.GetService>()!; } #region 界面属性定义 private string _boxCode = ""; public string BoxCode { get { return _boxCode; } set { if (_boxCode != value) { _boxCode = value; RaisePropertyChanged(nameof(BoxCode)); OnBoxCodeChanged(); // 调用处理逻辑 } } } //提示信息 private string _msg = ""; public string Msg { get { return _msg; } set { if (_msg != value) { _msg = value; RaisePropertyChanged(nameof(Msg)); } } } #endregion 界面属性定义 [RelayCommand] private void Confirm() { Msg = ""; BoxCode = ""; } private void OnBoxCodeChanged() { if (_boxCode.Length == 12) { _boxCode = _boxCode.ToUpper(); if (_boxCode.StartsWith("SH")) { SelectWindow selectWindow = new SelectWindow(_boxCode); selectWindow.ShowDialog(); } else { Msg = "编码规则有误,请检查是否SHX/SHS开头的12位编码"; } } } private void RefreshMessage(string Message, string code) { Msg = Message; _boxCode = ""; WmsPalletInfo? wmsPalletInfo = sqlSugarClient.Queryable().First(x => x.PalletInfoCode == code); if (wmsPalletInfo != null) { string flag = wmsPalletInfo.TonerFlag == 1 ? "是" : "否"; Msg += $"库存:{wmsPalletInfo.Amount},是否携带色粉:{flag}"; } _logger.LogInformation($"料箱{code}人工操作记录:" + Msg); } //[RelayCommand] //private void Confirm() //{ // if (string.IsNullOrEmpty(BoxCode)) // { // MessageBox.Show("请先扫描或输入装色粉料箱条码"); // return; // } // //校验料箱编码规则 // if (BoxCode.Length != 12 || !BoxCode.StartsWith("SH")) // { // MessageBox.Show("编码规则有误,请检查是否SHX/SHS开头的12位编码"); // return; // } // //RFID条码 // Console.WriteLine(BoxCode); // WmsPalletInfo palletInfo = new WmsPalletInfo(); // palletInfo.PalletInfoCode = BoxCode; // // palletInfo.Barcode = "SF0000001"; // palletInfo.UpdatedTime = DateTime.Now; // palletInfo.UpdatedBy = "wpf"; // palletInfo.CreatedTime = DateTime.Now; // palletInfo.CreatedBy = "wpf"; // int count = sqlSugarClient.Insertable(palletInfo).ExecuteCommand(); // if (count > 0) // { // MessageBox.Show("装色粉料箱条码录入成功"); // } // else // { // MessageBox.Show("录入失败"); // } // BoxCode = ""; //} } }