using DevComponents.DotNetBar; using HH.WMS.Entitys.Basic; using HH.WMS.Client.Common; using Newtonsoft.Json; 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; using DevComponents.DotNetBar.Controls; using HH.WMS.Entitys.Common; using HH.WMS.Entitys; namespace HH.WMS.Client.frm { public partial class frmTemplet : DevComponents.DotNetBar.Metro.MetroForm { public delegate void ScanTrayEventHander(object sender, ScanTrayEventArgs e); public event ScanTrayEventHander ScanTrayEvent; public delegate void ScanItemEventHander(object sender, ScanItemEventArgs e); public event ScanItemEventHander ScanItemEvent; public delegate void ScanItemUniqueCodeEventHander(object sender, ScanItemUniqueCodeEventArgs e); public event ScanItemUniqueCodeEventHander ScanItemUniqueCodeEvent; public delegate void ScanEnterEventHander(object sender, EventArgs e); public event ScanEnterEventHander ScanEnterEvent; public delegate void ScanLocationEventHander(object sender, ScanLocationEventArgs e); public event ScanLocationEventHander ScanLocationEvent; public frmTemplet() { InitializeComponent(); } private void frmTemplet_Load(object sender, EventArgs e) { if (!DesignMode) { lblWork.Text = "分拣台:" + StaticUtil.WorkBench; lblUser.Text = StaticUtil.User.userName; lblItemStock.Text = "仓库:" + StaticUtil.StockCode; } } private void btnItemHome_Click(object sender, EventArgs e) { this.Close(); } private void btnItemExit_Click(object sender, EventArgs e) { Application.Exit(); } public void AddMenu(ButtonItem item) { this.bar.Items.Add(item,1); } public void ScanCode(string code) { OperateResult results ; string str =""; if (code == "Enter") { this.ScanEnterEvent(code, null); return; } TN_AB_B_NUMRULEEntity rule = StaticUtil.Numrules.Find(x=>(code.StartsWith(x.CN_S_RULE_FIX) && x.CN_N_RULE_NUM==0) || (code.StartsWith(x.CN_S_RULE_FIX) && x.CN_N_RULE_NUM==code.Length)); if(rule!=null) { switch(rule.CN_S_RULE_NAME) { case "托盘码": str = WebApiManager.HttpWMS_Get("/api/Tray/GetModel?trayCode=" + code); results = JsonConvert.DeserializeObject(str); if(results.Success) { this.ScanTrayEvent(code, new ScanTrayEventArgs() { trayInfo = JsonConvert.DeserializeObject(results.Data.ToString()) }); return; } else { MessageBoxEx.Show("未找到该容器!"); return; } case "物料编码": str = WebApiManager.HttpWMS_Get("/api/Item/GetItemModel?itemCode=" + code); results = JsonConvert.DeserializeObject(str); if(results.Success) { this.ScanItemEvent(code, new ScanItemEventArgs() { itemInfo = JsonConvert.DeserializeObject(results.Data.ToString()) }); return; } else { MessageBoxEx.Show("未找到该物料!"); return; } case "物料唯一码": break; case "货位码": //str = WebApiManager.HttpWMS_Get("/api/Item/GetItemModel?itemCode=" + code); //results = JsonConvert.DeserializeObject(str); //if(results.Success) //{ // this.ScanLocationEvent(code, new ScanLocationEventArgs() { itemInfo = JsonConvert.DeserializeObject(results.Data.ToString()) }); // return; //} //else //{ // MessageBoxEx.Show("未找到该货位!"); // return; //} break; } } str = WebApiManager.HttpWMS_Get("/api/ScanCode/AnalysisCode?barCode=" + code); results = JsonConvert.DeserializeObject(str); if (results.Success) { ScanCodeClass scc = JsonConvert.DeserializeObject(results.Data.ToString()); switch (scc.Type) { case "1": ScanItemUniqueCodeEvent(code,new ScanItemUniqueCodeEventArgs(){ itemInfo =scc.PrintBarCode }); return; case "2": return; case "3": return; case "4": this.ScanItemEvent(code, new ScanItemEventArgs() { itemInfo = scc.Item.itemEntity }); return; case "5": return; } } MessageBoxEx.Show("无效码值!"); return; } public class ScanTrayEventArgs : EventArgs { public TN_WM_B_TRAY_INFOEntity trayInfo { get; set; } } public class ScanItemEventArgs : EventArgs { public AutoBomItemEntity itemInfo { get; set; } } public class ScanItemUniqueCodeEventArgs : EventArgs { public MONGO_PRINT_BARCODE itemInfo { get; set; } } public class ScanLocationEventArgs : EventArgs { public AutoBomLocationEntity Location { get; set; } } public void frmTemplet_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { TextBoxX txt=((frmUpShelves)sender).txtCode; if (txt.Focused) { ScanCode(txt.Text.Trim()); txt.Clear(); } //if(txtCode.) txtCode.Text.Trim() } } } }