using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using SlnMesnac.Model.domain; using SlnMesnac.Model.dto.taskType; using SlnMesnac.Plc; using SlnMesnac.WPF.Library; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using SlnMesnac.Business.@base; using TouchSocket.Core; using static MaterialDesignThemes.Wpf.Theme.ToolBar; namespace SlnMesnac.WPF.Page { /// /// CreateMoveWindow.xaml 的交互逻辑 /// public partial class MannulResignBoxWindow : Window { private ISqlSugarClient? SqlSugarClient; public readonly PlcAbsractFactory workShop3Plc; public MannulResignBoxWindow() { InitializeComponent(); SqlSugarClient = App.ServiceProvider.GetService(); //BaseBusiness NewBase = new BaseBusiness(App.ServiceProvider); //workShop3Plc = NewBase.GetPlcByKey("workShop3Plc"); LoadLocations(); // 初始化 ComboBox 选项 } // 加载地点选项(3001-3024) private void LoadLocations() { for (int i = 301; i <= 312; i++) { this.StartComboBox.Items.Add(i.ToString() + "A"); this.StartComboBox.Items.Add(i.ToString() + "B"); } StartComboBox.Items.Add("异常库位3066"); } // 确认按钮点击事件 private void ConfirmButton_Click(object sender, RoutedEventArgs e) { string startCode = StartComboBox.SelectedItem?.ToString(); string BoxCode = BoxTextbox.Text .ToString(); if(SqlSugarClient == null) { MessageBox.Show("SqlSugarClient为空!"); return; } if (string.IsNullOrEmpty(startCode)) { MessageBox.Show("请输入入库库位"); return; } if (startCode == BoxCode) { MessageBox.Show("请检查格式!"); return; } if (startCode == "异常库位3066") { startCode = "3066"; } WmsBaseLocation? startLocation = SqlSugarClient.Queryable().Where(it => it.LocationCode == startCode).First(); WmsPalletInfo? wmsPalletInfo = SqlSugarClient.Queryable().InnerJoin((x,y) => x.Amount == 0 && y.LocationCode == startCode).First(); if (wmsPalletInfo == null) { MessageBox.Show("起点库位托盘未清空,无法入库!请检查!"); return; } try { SqlSugarClient.AsTenant().BeginTran(); //锁定库位 startLocation.LocationStatus = 0; startLocation.ContainerCode = BoxCode; SqlSugarClient.Updateable(startLocation).ExecuteCommand(); SqlSugarClient.AsTenant().CommitTran(); //workShop3Plc.writeBoolByAddress("DB100.DBX120.0", false); MessageBox.Show($"库位{startCode},入库{BoxCode}"); } catch (Exception ex) { MessageBox.Show($"生成入库任务提交事务异常:{ex.Message}"); SqlSugarClient.AsTenant().RollbackTran(); } this.Close(); } } }