/// <summary> /// 获取所有RFID类型的吊牌数据 /// </summary> /// <returns></returns> public static List <HLATagInfo> GetAllRfidHlaTagList() { string sql = "SELECT * FROM dbo.taginfo WHERE ISNULL(RFID_EPC,'')!=''"; DataTable table = DBHelper.GetTable(sql, false); if (table != null && table.Rows.Count > 0) { List <HLATagInfo> list = new List <HLATagInfo>(); foreach (DataRow row in table.Rows) { HLATagInfo item = new HLATagInfo(); item.MATNR = row["MATNR"].ToString(); item.BARCD = row["BARCD"].ToString(); item.BARCD_ADD = row["BARCD_ADD"].ToString(); item.BARDL = row["BARDL"].ToString(); item.CHARG = row["CHARG"].ToString(); item.Id = long.Parse(row["Id"].ToString()); item.RFID_ADD_EPC = row["RFID_ADD_EPC"].ToString(); item.RFID_EPC = row["RFID_EPC"].ToString(); list.Add(item); } return(list); } return(null); }
string getBarAdd(string bar, out string pin, out string se, out string gui) { pin = ""; se = ""; gui = ""; TagDetailInfo ti = tagDetailList.FirstOrDefault(i => i.BARCD == bar); if (ti != null) { pin = ti.ZSATNR; se = ti.ZCOLSN; gui = ti.ZSIZTX; return(ti.BARCD_ADD); } HLATagInfo t = hlaTagList.FirstOrDefault(i => i.BARCD == bar); if (t != null) { MaterialInfo mi = materialList.FirstOrDefault(i => i.MATNR == t.MATNR); if (mi != null) { pin = mi.ZSATNR; se = mi.ZCOLSN; gui = mi.ZSIZTX; } return(t.BARCD_ADD); } return(""); }
/// <summary> /// 获取吊牌详细信息 /// </summary> /// <param name="epc"></param> /// <returns></returns> private TagDetailInfo getTagDetailInfoByEpc(string epc) { if (string.IsNullOrEmpty(epc) || epc.Length < 20) { return(null); } string rfidEpc = epc.Substring(0, 14) + "000000"; string rfidAddEpc = rfidEpc.Substring(0, 14); HLATagInfo tag = null; if (tagList.ContainsKey(rfidEpc)) { tag = tagList[rfidEpc]; } if (tag == null && tagList.ContainsKey(rfidAddEpc)) { tag = tagList[rfidAddEpc]; } if (tag == null) { return(null); } else { MaterialInfo mater = materialList.ContainsKey(tag.MATNR) ? materialList[tag.MATNR] : null; if (mater == null) { return(null); } else { TagDetailInfo item = new TagDetailInfo(); item.RFID_EPC = tag.RFID_EPC; item.RFID_ADD_EPC = tag.RFID_ADD_EPC; item.CHARG = tag.CHARG; item.MATNR = tag.MATNR; item.BARCD = tag.BARCD; item.ZSATNR = mater.ZSATNR; item.ZCOLSN = mater.ZCOLSN; item.ZSIZTX = mater.ZSIZTX; item.PXQTY = mater.PXQTY; item.EPC = epc; //判断是否为辅条码epc if (rfidEpc == item.RFID_EPC) { item.IsAddEpc = false; } else { item.IsAddEpc = true; } return(item); } } }
/// <summary> /// 获取吊牌详细信息 /// </summary> /// <param name="epc"></param> /// <returns></returns> public static TagDetailInfo GetTagDetailInfoByEpc(string epc) { if (string.IsNullOrEmpty(epc) || epc.Length < 20) { return(null); } List <HLATagInfo> tagList = Cache.Instance[CacheKey.TAG] as List <HLATagInfo>; List <MaterialInfo> materialList = Cache.Instance[CacheKey.MATERIAL] as List <MaterialInfo>; string rfidEpc = epc.Substring(0, 14) + "000000"; string rfidAddEpc = rfidEpc.Substring(0, 14); HLATagInfo tag = tagList != null?tagList.FirstOrDefault(i => i.RFID_EPC == rfidEpc || i.RFID_ADD_EPC == rfidAddEpc) : null; if (tag == null) { return(null); } else { MaterialInfo mater = materialList != null?materialList.FirstOrDefault(i => i.MATNR == tag.MATNR) : null; if (mater == null) { return(null); } else { TagDetailInfo item = new TagDetailInfo(); item.EPC = epc; item.RFID_EPC = tag.RFID_EPC; item.RFID_ADD_EPC = tag.RFID_ADD_EPC; item.CHARG = tag.CHARG; item.MATNR = tag.MATNR; item.BARCD = tag.BARCD; item.ZSATNR = mater.ZSATNR; item.ZCOLSN = mater.ZCOLSN; item.ZSIZTX = mater.ZSIZTX; item.PXQTY = mater.PXQTY; //判断是否为辅条码epc if (rfidEpc == item.RFID_EPC) { item.IsAddEpc = false; } else { item.IsAddEpc = true; } return(item); } } }
string getBarAdd(string bar) { TagDetailInfo ti = tagDetailList.FirstOrDefault(i => i.BARCD == bar); if (ti != null) { return(ti.BARCD_ADD); } HLATagInfo t = hlaTagList.FirstOrDefault(i => i.BARCD == bar); if (t != null) { return(t.BARCD_ADD); } return(""); }
public TagDetailInfo GetTagDetailInfoByBar(string bar) { if (string.IsNullOrEmpty(bar)) { return(null); } if (hlaTagList == null || materialList == null) { return(null); } List <HLATagInfo> tags = hlaTagList.FindAll(i => i.BARCD.ToUpper() == bar.ToUpper() || (i.BARCD_ADD.ToUpper() == bar.ToUpper())); if (tags == null || tags.Count == 0) { return(null); } else { HLATagInfo tag = tags.First(); MaterialInfo mater = materialList.FirstOrDefault(i => i.MATNR == tag.MATNR); if (mater == null) { return(null); } else { TagDetailInfo item = new TagDetailInfo(); item.EPC = ""; item.RFID_EPC = tag.RFID_EPC; item.RFID_ADD_EPC = tag.RFID_ADD_EPC; item.CHARG = tag.CHARG; item.MATNR = tag.MATNR; item.BARCD = tag.BARCD; item.BARCD_ADD = tag.BARCD_ADD; item.ZSATNR = mater.ZSATNR; item.ZCOLSN = mater.ZCOLSN; item.ZSIZTX = mater.ZSIZTX; item.ZCOLSN_WFG = mater.ZCOLSN_WFG; item.PXQTY = mater.PXQTY; item.PXQTY_FH = mater.PXQTY_FH; item.PACKMAT = mater.PXMAT; item.PACKMAT_FH = mater.PXMAT_FH; item.PUT_STRA = mater.PUT_STRA; item.BRGEW = mater.BRGEW; item.MAKTX = mater.MAKTX; if (bar.ToUpper() == item.BARCD.ToUpper()) { item.IsAddEpc = false; } else { item.IsAddEpc = true; } item.LIFNRS = new List <string>(); foreach (HLATagInfo t in tags) { if (!string.IsNullOrEmpty(t.LIFNR)) { if (!item.LIFNRS.Contains(t.LIFNR)) { item.LIFNRS.Add(t.LIFNR); } } } return(item); } } }
public TagDetailInfo GetTagDetailInfoByEpc(string epc) { if (string.IsNullOrEmpty(epc) || epc.Length < 20) { return(null); } string rfidEpc = epc.Substring(0, 14) + "000000"; string rfidAddEpc = rfidEpc.Substring(0, 14); if (hlaTagList == null || materialList == null) { return(null); } List <HLATagInfo> tags = hlaTagList.FindAll(i => i.RFID_EPC == rfidEpc || i.RFID_ADD_EPC == rfidAddEpc); if (tags == null || tags.Count == 0) { return(null); } else { HLATagInfo tag = tags.First(); MaterialInfo mater = materialList.FirstOrDefault(i => i.MATNR == tag.MATNR); if (mater == null) { return(null); } else { TagDetailInfo item = new TagDetailInfo(); item.EPC = epc; item.RFID_EPC = tag.RFID_EPC; item.RFID_ADD_EPC = tag.RFID_ADD_EPC; item.CHARG = tag.CHARG; item.MATNR = tag.MATNR; item.BARCD = tag.BARCD; item.BARCD_ADD = tag.BARCD_ADD; item.ZSATNR = mater.ZSATNR; item.ZCOLSN = mater.ZCOLSN; item.ZSIZTX = mater.ZSIZTX; item.ZCOLSN_WFG = mater.ZCOLSN_WFG; item.PXQTY = mater.PXQTY; item.PXQTY_FH = mater.PXQTY_FH; item.PACKMAT = mater.PXMAT; item.PACKMAT_FH = mater.PXMAT_FH; item.PUT_STRA = mater.PUT_STRA; item.BRGEW = mater.BRGEW; item.MAKTX = mater.MAKTX; if (rfidEpc == item.RFID_EPC) { item.IsAddEpc = false; } else { item.IsAddEpc = true; } item.LIFNRS = new List <string>(); foreach (HLATagInfo t in tags) { if (!string.IsNullOrEmpty(t.LIFNR)) { if (!item.LIFNRS.Contains(t.LIFNR)) { item.LIFNRS.Add(t.LIFNR); } } } return(item); } } }
public List <CTagSumDif> duibi(List <CMatQty> std) { List <CTagSumDif> re = new List <CTagSumDif>(); if (std != null && std.Count > 0) { List <string> matList = tagDetailList.Select(i => i.MATNR).Distinct().ToList(); foreach (var v in matList) { TagDetailInfo ti = tagDetailList.FirstOrDefault(i => i.MATNR == v); if (std.Exists(i => i.mat == v)) { bool hasAdd = !string.IsNullOrEmpty(ti.BARCD_ADD); int stdQty = std.First(i => i.mat == v).qty; CTagSumDif d = new CTagSumDif(ti.MATNR, ti.BARCD, ti.BARCD_ADD, ti.ZSATNR, ti.ZCOLSN, ti.ZSIZTX , tagDetailList.Count(i => i.MATNR == v && !i.IsAddEpc), tagDetailList.Count(i => i.MATNR == v && i.IsAddEpc) , tagDetailList.Count(i => i.MATNR == v && !i.IsAddEpc) - stdQty , tagDetailList.Count(i => i.MATNR == v && i.IsAddEpc) - (hasAdd ? stdQty : 0)); re.Add(d); } else { CTagSumDif d = new CTagSumDif(ti.MATNR, ti.BARCD, ti.BARCD_ADD, ti.ZSATNR, ti.ZCOLSN, ti.ZSIZTX , tagDetailList.Count(i => i.MATNR == v && !i.IsAddEpc), tagDetailList.Count(i => i.MATNR == v && i.IsAddEpc) , tagDetailList.Count(i => i.MATNR == v && !i.IsAddEpc), tagDetailList.Count(i => i.MATNR == v && i.IsAddEpc)); re.Add(d); } } foreach (var v in std) { if (!matList.Exists(i => i == v.mat)) { MaterialInfo mi = materialList.FirstOrDefault(i => i.MATNR == v.mat); HLATagInfo ti = hlaTagList.FirstOrDefault(i => i.MATNR == v.mat); bool hasAdd = false; if (ti != null && !string.IsNullOrEmpty(ti.BARCD_ADD)) { hasAdd = true; } CTagSumDif d = new CTagSumDif(v.mat, ti != null ? ti.BARCD : "", ti != null ? ti.BARCD_ADD : "" , mi != null ? mi.ZSATNR : "", mi != null ? mi.ZCOLSN : "", mi != null ? mi.ZSIZTX : "" , 0, 0 , 0 - v.qty, 0 - (hasAdd ? v.qty : 0)); re.Add(d); } } } else { List <string> matList = tagDetailList.Select(i => i.MATNR).Distinct().ToList(); foreach (var v in matList) { TagDetailInfo ti = tagDetailList.FirstOrDefault(i => i.MATNR == v); CTagSumDif d = new CTagSumDif(ti.MATNR, ti.BARCD, ti.BARCD_ADD, ti.ZSATNR, ti.ZCOLSN, ti.ZSIZTX , tagDetailList.Count(i => i.MATNR == v && !i.IsAddEpc), tagDetailList.Count(i => i.MATNR == v && i.IsAddEpc) , tagDetailList.Count(i => i.MATNR == v && !i.IsAddEpc), tagDetailList.Count(i => i.MATNR == v && i.IsAddEpc)); re.Add(d); } } return(re); }
private void dateMatTagButton_Click(object sender, EventArgs e) { matProgressBar.Value = 0; if (eDateTime.Value.Date < sDateTime.Value.Date) { matLogLabel.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " " + "结束日期必须大于等于开始日期"; return; } dateMatTagButton.Enabled = false; new Thread(new ThreadStart(() => { List <HLATagInfo> tagList = SAPDataService.GetHLATagInfoListByDate(SysConfig.LGNUM, sDateTime.Value.Date.ToString("yyyyMMdd"), eDateTime.Value.Date.ToString("yyyyMMdd")); #if DEBUG HLATagInfo t = tagList.FirstOrDefault(i => i.MATNR == "HTXAD1R088A88014"); #endif if (tagList == null) { matLogLabel.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " " + "下载出错"; return; } Invoke(new Action(() => { matProgressBar.Maximum = tagList.Count; })); int tagFailCount = 0; foreach (HLATagInfo tag in tagList) { Invoke(new Action(() => { matProgressBar.Value++; })); if (!string.IsNullOrEmpty(tag.RFID_EPC)) { if (!LocalDataService.SaveTagInfo(tag)) { tagFailCount++; } } } string log = string.Format("下载吊牌{0}条,同步失败{1}条" , tagList.Count, tagFailCount); Invoke(new Action(() => { matLogLabel.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " " + log; if (tagFailCount > 0) { matLogLabel.BackColor = Color.Red; } else { matLogLabel.BackColor = Color.White; } })); Invoke(new Action(() => { dateMatTagButton.Enabled = true; })); })).Start(); }