using DevComponents.DotNetBar; using DevComponents.DotNetBar.Controls; using HH.WMS.Client.Common; using HH.WMS.Common; using HH.WMS.Entitys; using HH.WMS.Entitys.Basic; 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 HH.WMS.Client.frm { public partial class frmItemRemove : frmScanParent { public List RemoveList = new List(); /// /// 已扫唯一码(判断是否重复扫描) /// private List haveAlreadyScan = new List(); public frmItemRemove(List scanedWaitExecuteItems) { InitializeComponent(); this.KeyDown += frmItemRemove_KeyDown; this.ScanEnterEvent += frmUpShelves_ScanEnterEvent; this.ScanItemUniqueCodeEvent += frmItemRemove_ScanItemUniqueCodeEvent; this.dgv_RemoveData.AutoGenerateColumns = false; this.dgv_RemoveData.DataSource = scanedWaitExecuteItems; } void frmUpShelves_ScanEnterEvent(object sender, EventArgs e) { btnEnter_Click(sender, e); } private void btnEnter_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.OK; } /// /// 扫描唯一码 /// void frmItemRemove_ScanItemUniqueCodeEvent(object sender, ScanItemUniqueCodeEventArgs e) { #region 是否重复扫码判断 var scanCode = e.itemInfo.CN_S_UNIQUE_CODE; if (haveAlreadyScan != null && haveAlreadyScan.Contains(scanCode)) { //该唯一码已被扫过,请勿重复扫码 ***********无法判断此编码是否已存在于原容器中 MessageBoxEx.Show("该唯一码已被扫过,请勿重复扫码!"); return; } List waitRemoveData = (List)dgv_RemoveData.DataSource; var isHave = waitRemoveData.Where(x => x.CN_S_UNIQUE_CODE == scanCode).ToList(); if (isHave.Count > 0) { foreach (var item in waitRemoveData) { if (item.CN_S_UNIQUE_CODE == e.itemInfo.CN_S_UNIQUE_CODE && item.CN_S_ITEM_CODE == e.itemInfo.CN_S_ITEM_CODE) { RemoveList.Add(new TN_WM_B_TRAY_ITEM_MSTEntity() { TokenId = StaticUtil.TokenId, CN_GUID = Guid.NewGuid().ToString(), CN_S_UNIQUE_CODE = e.itemInfo.CN_S_UNIQUE_CODE, CN_S_ITEM_CODE = e.itemInfo.CN_S_ITEM_CODE, CN_S_LOT_NO = e.itemInfo.CN_S_LOT_NO, CN_S_ITEM_NAME = e.itemInfo.CN_S_ITEM_NAME, CN_S_FIGURE_NO = e.itemInfo.CN_S_FIGURE_NO, CN_F_QUANTITY = item.CN_F_QUANTITY, CN_S_ITEM_STATE = Constants.ItemState_Qualified , CN_S_MODEL = e.itemInfo.CN_S_MODEL, CN_S_OWNER = e.itemInfo.CN_S_OWNER }); item.CN_F_QUANTITY = item.CN_F_QUANTITY - e.itemInfo.CN_F_PACKING_QTY; } } waitRemoveData = waitRemoveData.Where(x => x.CN_F_QUANTITY > 0).ToList(); dgv_RemoveData.DataSource = waitRemoveData; } else { //判断该唯一码在不在待移除物料中 MessageBoxEx.Show("该条码不在待移除物料中!"); return; } #endregion } private void dgv_RemoveData_DataError(object sender, DataGridViewDataErrorEventArgs e) { //暂时不用实现此功能 } private void frmItemRemove_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { //TextBoxX txt = ((frmit)sender).txtCode; if (txtCode.Focused) { if (!string.IsNullOrEmpty(txtCode.Text.Trim())) { this.ScanCode(txtCode.Text.Trim()); txtCode.Clear(); } } //if(txtCode.) txtCode.Text.Trim() } } } }