using Mesnac.Action.ChemicalWeighing.Entity; using Mesnac.Action.ChemicalWeighing.Entity.material; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Mesnac.Action.ChemicalWeighing.BinManage { public partial class FrmBin : Form { #region 字段定义 private ActionType _actionType = ActionType.Add; //操作类型,0-为添加,1-为修改 private Pmt_Bin _bin = null; #endregion public FrmBin() { InitializeComponent(); } /// /// 构造方法 /// /// -1为修改 /// 传入的料仓信息 public FrmBin(ActionType actionType, Pmt_Bin bin) { InitializeComponent(); this._actionType = actionType; this._bin = bin; } /// /// 料仓信息 /// public Pmt_Bin Bin { get { return this._bin; } } /// /// 修改料仓信息 窗体加载时 将选中行的数据 /// /// /// private void FrmBin_Load(object sender, EventArgs e) { this.InitData(); } /// /// 初始化控件数据 /// public void InitData() { List lst = null; lst = BinHelper.GetXlMaterialList(); this.comboBox1.Items.Clear(); foreach (xl_material m in lst) { this.comboBox1.Items.Add(m); } //当操作类型为修改时,将选中行的数据填入到修改窗体的对应控件中 if (this._actionType == ActionType.Modify) { foreach (xl_material m in this.comboBox1.Items) { if (m.ID == this._bin.Material_ID) { this.comboBox1.SelectedItem = m; break; } } this.textBox1.Text = _bin.Bin_Serial.ToString(); this.txtBinName.Text = _bin.Bin_Name.ToString(); this.txtQRCode.Text = _bin.Bin_Code.ToString(); this.textWeight_Medium.Text = _bin.Station_Weight_Medium.ToString(); this.textWeight_Low.Text = _bin.Station_Weight_Low.ToString(); this.textWeight_Advance.Text = _bin.Station_Weight_Advance.ToString(); this.textSpeed_Hight.Text = _bin.Station_Speed_Hight.ToString(); this.textSpeed_Medium.Text = _bin.Station_Speed_Medium.ToString(); this.textSpeed_Low.Text = _bin.Station_Speed_Low.ToString(); } textBox1.Enabled = false; txtBinName.Enabled = false; } private void btnOK_Click(object sender, EventArgs e) { //获取包含所有料仓对象的集合 List list = BinHelper.getBinList(); if (string.IsNullOrEmpty(txtQRCode.Text)) { MessageBox.Show("请填写条码!!"); this.comboBox1.Focus(); return; } if (string.IsNullOrEmpty(comboBox1.Text)) { MessageBox.Show("请选择物料名!!"); this.comboBox1.Focus(); return; } if (string.IsNullOrEmpty(textWeight_Medium.Text)) { MessageBox.Show("请填写中速重量!!"); this.textWeight_Medium.Focus(); return; } if (string.IsNullOrEmpty(textWeight_Advance.Text)) { MessageBox.Show("请填写提前量!!"); this.comboBox1.Focus(); return; } if (string.IsNullOrEmpty(textSpeed_Hight.Text)) { MessageBox.Show("请填写高速速度!!"); this.comboBox1.Focus(); return; } if (string.IsNullOrEmpty(textSpeed_Medium.Text)) { MessageBox.Show("请填写中速速度!!"); this.comboBox1.Focus(); return; } if (string.IsNullOrEmpty(textSpeed_Low.Text)) { MessageBox.Show("请填写低速速度!!"); this.comboBox1.Focus(); return; } double mediumWeight = Convert.ToDouble(textWeight_Medium.Text); if (mediumWeight < 0 || mediumWeight > 60) { MessageBox.Show("中速重量要大于等于0,小于等于60!!"); this.textWeight_Medium.Focus(); return; } double lowWeight = Convert.ToDouble(textWeight_Low.Text); if (lowWeight < 0 || lowWeight > 60) { MessageBox.Show("低速重量要大于等于0,小于等于60!!"); this.textWeight_Low.Focus(); return; } double advWeight = Convert.ToDouble(textWeight_Advance.Text); if (lowWeight < 0 || advWeight > 60) { MessageBox.Show("提前量要大于等于0,小于等于60!!"); this.textWeight_Advance.Focus(); return; } double speedHight = Convert.ToDouble(textSpeed_Hight.Text); if (speedHight < 0 && speedHight > 50) { MessageBox.Show("高速速度要大于等于0,小于等于50!!"); this.textSpeed_Hight.Focus(); return; } double speedMedium = Convert.ToDouble(textSpeed_Medium.Text); if (speedMedium < 0 || speedMedium > 50) { MessageBox.Show("中速速度要大于等于0,小于等于50!!"); this.textSpeed_Medium.Focus(); return; } double speedLow = Convert.ToDouble(textSpeed_Low.Text); if (speedLow < 0 || speedLow > 50) { MessageBox.Show("低速速度要大于等于0,小于等于50!!"); this.textSpeed_Low.Focus(); return; } xl_material material = (xl_material)comboBox1.SelectedItem; Pmt_Bin bin = new Pmt_Bin { Bin_Serial = Convert.ToInt32(textBox1.Text), Bin_Name = txtBinName.Text, Bin_Code= txtQRCode.Text, Material_ID = material.ID, Station_Weight_Medium =decimal.Parse(textWeight_Medium.Text), Station_Weight_Low = decimal.Parse(textWeight_Low.Text), Station_Weight_Advance = decimal.Parse(textWeight_Advance.Text), Station_Speed_Hight = decimal.Parse(textSpeed_Hight.Text), Station_Speed_Medium = decimal.Parse(textSpeed_Medium.Text), Station_Speed_Low = decimal.Parse(textSpeed_Low.Text), }; //验证料仓中物料的唯一性 //当修改料仓中物料时,提交的物料ID和选中行的不一样时,需要验证唯一性 if (_actionType == ActionType.Modify && _bin.Material_ID != bin.Material_ID) { //物料唯一性验证 if (list.Exists(b => b.Material_ID == bin.Material_ID)) { MessageBox.Show("物料已存在于料仓中!!请更换物料!!"); return; } //条码唯一性验证 if (list.Exists(b => b.Bin_Code == bin.Bin_Code && b.Bin_Serial!= bin.Bin_Serial)) { MessageBox.Show("条码已存在于料仓中!!请更换物料!!"); return; } } this._bin = bin; this.DialogResult = System.Windows.Forms.DialogResult.OK; } } }