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.

139 lines
4.2 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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<TonerBoxingViewModel> _logger;
public TonerBoxingViewModel()
{
sqlSugarClient = App.ServiceProvider.GetService<ISqlSugarClient>();
SelectWindow.RefreshMsgEvent += RefreshMessage;
_logger = App.ServiceProvider.GetService<ILogger<TonerBoxingViewModel>>()!;
}
#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<WmsPalletInfo>().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<WmsPalletInfo>(palletInfo).ExecuteCommand();
// if (count > 0)
// {
// MessageBox.Show("装色粉料箱条码录入成功");
// }
// else
// {
// MessageBox.Show("录入失败");
// }
// BoxCode = "";
//}
}
}