public virtual CheckResult CheckData() { CheckResult result = new CheckResult(); if (errorEpcNumber > 0) { result.UpdateMessage(Consts.Default.EPC_WEI_ZHU_CE); result.InventoryResult = false; } if (mainEpcNumber != addEpcNumber && addEpcNumber > 0) { result.UpdateMessage(Consts.Default.TWO_NUMBER_ERROR); result.InventoryResult = false; } if (addEpcNumber == 0) { if (tagDetailList.Exists(i => !string.IsNullOrEmpty(i.BARCD_ADD))) { result.UpdateMessage(Consts.Default.TWO_NUMBER_ERROR); result.InventoryResult = false; } } /* * if (epcList.Count == 0) * { * result.UpdateMessage(Consts.Default.WEI_SAO_DAO_EPC); * result.InventoryResult = false; * }*/ return(result); }
void checkPeibi(ref CheckResult cr) { string sapre = ""; string sapmsg = ""; string peibi = ""; string BARCD = tagDetailList.FirstOrDefault(i => !string.IsNullOrEmpty(i.BARCD)).BARCD; if (string.IsNullOrEmpty(BARCD)) { cr.UpdateMessage("无可用条码"); cr.InventoryResult = false; return; } List <CMatQty> re = SAPDataService.Z_EW_RFID_058B(BARCD, ref sapre, ref sapmsg, ref peibi); if (re.Count > 0) { if (hasDif(duibi(re))) { cr.UpdateMessage(string.Format("配比不符")); cr.InventoryResult = false; } } else { cr.UpdateMessage(string.Format("无配比信息 BARCD:{0}", BARCD)); cr.InventoryResult = false; } if (!string.IsNullOrEmpty(peibi)) { mPackmat = peibi; } }
public virtual CheckResult CheckData() { CheckResult result = new CheckResult(); if (errorEpcNumber > 0) { result.UpdateMessage(Consts.Default.EPC_WEI_ZHU_CE); result.InventoryResult = false; } if (mainEpcNumber != addEpcNumber && addEpcNumber > 0) { result.UpdateMessage(Consts.Default.TWO_NUMBER_ERROR); result.InventoryResult = false; } if (boxNoList.Count > 0) { boxNoList.Clear(); result.UpdateMessage(Consts.Default.XIANG_MA_BU_YI_ZHI); result.InventoryResult = false; } if (epcList.Count == 0) { result.UpdateMessage(Consts.Default.WEI_SAO_DAO_EPC); result.InventoryResult = false; } return(result); }
bool checkSame(ref CheckResult result) { bool re = false; YKBoxInfo box = mBoxList == null ? null : mBoxList.Find(i => i.Hu == lblHu.Text); if (box != null && box.Status != null && box.Status == "S" && box.SapStatus == "S") { re = true; //上次检测结果为正常, bool isAllSame = true; bool isAllNotSame = true; List <YKBoxDetailInfo> lastCheckDetail = box.Details; if (lastCheckDetail != null && lastCheckDetail.Count > 0) { if (lastCheckDetail.Count != epcList.Count) { isAllSame = false; } foreach (YKBoxDetailInfo item in lastCheckDetail) { if (!epcList.Contains(item.Epc)) { isAllSame = false; break; } else { isAllNotSame = false; } } } else { isAllSame = false; isAllNotSame = true; } if (isAllSame) { result.IsRecheck = true; } else if (isAllNotSame) { //两批EPC对比,完全不一样,示为箱码重复使用 result.UpdateMessage(Consts.Default.XIANG_MA_CHONG_FU_SHI_YONG); result.InventoryResult = false; } if (lastCheckDetail.Count > 0 && !isAllSame && !isAllNotSame) { result.UpdateMessage(Consts.Default.EPC_YI_SAO_MIAO); result.InventoryResult = false; } } return(re); }
public override void StopInventory() { if (isInventory) { Invoke(new Action(() => { label11_status.Text = "停止扫描"; })); isInventory = false; reader.StopInventory(); CheckResult checkResult = check(); if (checkResult.InventoryResult) { checkResult.UpdateMessage(Consts.Default.RIGHT); } Invoke(new Action(() => { lblInventoryRe.Text = checkResult.Message; })); //play sound playSound(checkResult.InventoryResult); if (checkResult.InventoryResult) { SetInventoryResult(1); } else { SetInventoryResult(1); } } }
public virtual CheckResult CheckData() { CheckResult result = new CheckResult(); if (errorEpcNumber > 0) { result.UpdateMessage(Consts.Default.EPC_WEI_ZHU_CE); result.InventoryResult = false; } /* * if (mainEpcNumber != addEpcNumber && tagDetailList.Exists(i => !string.IsNullOrEmpty(i.BARCD_ADD))) * { * result.UpdateMessage(Consts.Default.TWO_NUMBER_ERROR); * result.InventoryResult = false; * } */ int checkAdd2Re = checkAdd2(); if (checkAdd2Re == 1) { result.UpdateMessage("主副条码数量不一致"); result.InventoryResult = false; } if (checkAdd2Re == 2) { result.UpdateMessage("主条码和副2条码数量不一致"); result.InventoryResult = false; } if (boxNoList.Count > 0) { boxNoList.Clear(); result.UpdateMessage(Consts.Default.XIANG_MA_BU_YI_ZHI); result.InventoryResult = false; } if (epcList.Count == 0) { result.UpdateMessage(Consts.Default.WEI_SAO_DAO_EPC); result.InventoryResult = false; } return(result); }
public virtual CheckResult CheckData() { CheckResult result = new CheckResult(); if (mErrorEpcNumber > 0) { result.UpdateMessage(Consts.Default.EPC_WEI_ZHU_CE); result.InventoryResult = false; } if (mMainEpcNumber != mAddEpcNumber && mAddEpcNumber > 0) { result.UpdateMessage(Consts.Default.TWO_NUMBER_ERROR); result.InventoryResult = false; } if (mAddEpcNumber == 0) { if (mTagDetailList.Exists(i => !string.IsNullOrEmpty(i.BARCD_ADD))) { result.UpdateMessage(Consts.Default.TWO_NUMBER_ERROR); result.InventoryResult = false; } } if (mBoxNoList.Count > 0) { mBoxNoList.Clear(); result.UpdateMessage(Consts.Default.XIANG_MA_BU_YI_ZHI); result.InventoryResult = false; } if (mEpcList.Count == 0) { result.UpdateMessage(Consts.Default.WEI_SAO_DAO_EPC); result.InventoryResult = false; } return(result); }
public CheckResult baseCheck() { CheckResult result = new CheckResult(); if (errorEpcNumber > 0) { result.UpdateMessage(Consts.Default.EPC_WEI_ZHU_CE); result.InventoryResult = false; } if (boxNoList.Count > 0) { boxNoList.Clear(); result.UpdateMessage(Consts.Default.XIANG_MA_BU_YI_ZHI); result.InventoryResult = false; } if (epcList.Count == 0) { result.UpdateMessage(Consts.Default.WEI_SAO_DAO_EPC); result.InventoryResult = false; } return(result); }
public override void StopInventory() { if (isInventory) { Invoke(new Action(() => { label11_status.Text = "停止扫描"; })); isInventory = false; reader.StopInventory(); CheckResult checkResult = check(label17_currentHu.Text); if (checkResult.InventoryResult) { checkResult.UpdateMessage(Consts.Default.RIGHT); } Invoke(new Action(() => { lblInventoryRe.Text = checkResult.InventoryResult ? "正常" : "异常"; })); CJJBox curBox = getCurBox(checkResult); if (checkResult.Message.Contains(HAS_SAOMIAO_CHONGTOU) || checkResult.Message.Contains(WEI_SAO_DAO_XIANGHU) || checkResult.Message.Contains(Consts.Default.XIANG_MA_BU_YI_ZHI) || checkResult.Message.Contains(HAS_SAOMIAO_YICHANG)) { } else { //上传 saveAndUpdate(curBox); } //add grid addgrid(curBox); playSound(checkResult.InventoryResult); if (checkResult.InventoryResult) { SetInventoryResult(1); } else { SetInventoryResult(1); } } }
public override void StopInventory() { if (isInventory) { Invoke(new Action(() => { label11_status.Text = "停止扫描"; })); isInventory = false; reader.StopInventory(); List <CDianShangQty> qty = new List <CDianShangQty>(); CheckResult checkResult = check(label17_currentHu.Text, out qty); if (checkResult.InventoryResult) { checkResult.UpdateMessage(Consts.Default.RIGHT); } Invoke(new Action(() => { lblInventoryRe.Text = checkResult.InventoryResult ? "正常" : "异常"; })); CDianShangBox curBox = getCurBox(checkResult, qty); saveRecord(curBox); if (checkResult.InventoryResult) { PrintRightTag(getTags(), label17_currentHu.Text); //上传 saveAndUpdate(curBox); } //add grid addgrid(curBox); playSound(curBox.inventoryRe == "S" && curBox.sapRe == SUCCESS); if (checkResult.InventoryResult) { SetInventoryResult(1); } else { SetInventoryResult(1); } } }
CheckResult check(string hu) { CheckResult re = CheckData(); if (button3_start.Enabled) { re.UpdateMessage("请点击开始按钮"); re.InventoryResult = false; } if (string.IsNullOrEmpty(hu)) { re.UpdateMessage(WEI_SAO_DAO_XIANGHU); re.InventoryResult = false; } //是否已经扫描过了 if (mCurDanBoxList.Exists(i => i.hu == hu && i.inventoryRe == "S" && i.sapRe == "S")) { if (boxSame(hu)) { re.UpdateMessage(HAS_SAOMIAO_CHONGTOU); re.InventoryResult = false; } else { re.UpdateMessage(HAS_SAOMIAO_YICHANG); re.InventoryResult = false; } } //不在本单,直接返回 if (!mJiaoJieDan.huData.ContainsKey(hu)) { re.UpdateMessage(XIANGHAO_BUZAI_BENDAN); re.InventoryResult = false; } if (!duibi(hu)) { re.UpdateMessage(XIANGHAO_DATA_BUFU); re.InventoryResult = false; } return(re); }
public override CheckResult CheckData() { CheckResult result = new CheckResult(); try { result = base.CheckData(); //检查商品已扫描,重投,箱码重复使用 if (string.IsNullOrEmpty(lblHu.Text.Trim())) { result.UpdateMessage(Consts.Default.WEI_SAO_DAO_XIANG_MA); result.InventoryResult = false; string hu = LocalDataService.GetNewErrorHu(SysConfig.DeviceNO); Invoke(new Action(() => { lblHu.Text = hu; })); } if (tagDetailList.Count > 0) { if (checkSame()) { result.UpdateMessage("重投"); result.InventoryResult = false; return(result); } if (dmLabel1_peibi.DM_Key == DMSkin.Controls.DMLabelKey.正确) { checkPeibi(ref result); return(result); } if (tagDetailList.First().LIFNRS != null && tagDetailList.First().LIFNRS.Count > 1) { result.UpdateMessage(Consts.Default.JIAO_JIE_HAO_BU_YI_ZHI); result.InventoryResult = false; } if (lblCheckSku.DM_Key == DMSkin.Controls.DMLabelKey.正确) { if (tagDetailList.Select(i => i.MATNR).Distinct().Count() > 10) { result.UpdateMessage(Consts.Default.SHANG_PIN_DA_YU_SHI); result.InventoryResult = false; } } if (lblCheckPinSe.DM_Key == DMSkin.Controls.DMLabelKey.正确) { if (tagDetailList != null && tagDetailList.Count > 0) { TagDetailInfo t = tagDetailList[0]; foreach (var v in tagDetailList) { if (v.ZSATNR == t.ZSATNR && v.ZCOLSN == t.ZCOLSN) { } else { result.UpdateMessage(Consts.Default.PIN_SE_BU_FU); result.InventoryResult = false; break; } } } } if (ExistsSameEpc()) { result.UpdateMessage(Consts.Default.EPC_YI_SAO_MIAO); result.InventoryResult = false; } if (GetCurrentReceiveMode() == ReceiveMode.品色装箱) { if (!IsOnePinSe()) { result.UpdateMessage(Consts.Default.DUO_GE_PIN_SE); result.InventoryResult = false; } } if (GetCurrentReceiveMode() == ReceiveMode.规格装箱) { if (!IsOneSku()) { result.UpdateMessage(Consts.Default.DUO_GE_SHANG_PIN); result.InventoryResult = false; } int pxqty = 0; MaterialInfo material = materialList.Find(i => i.MATNR == tagDetailList.First().MATNR); if (material.PUT_STRA == "ADM1" || cboTarget.Text == "BDMX") { pxqty = material.PXQTY; mPackmat = material.PXMAT; } else { pxqty = material.PXQTY_FH; mPackmat = material.PXMAT_FH; } /* * 如果设备信息中配置了带G开头的权限信息 * 且对应的AUTH_VALUE的值与当前选择的源存储类型一致 * 则取收货箱规 */ if (mGAuthList?.Count > 0 && mGAuthList.Exists(i => i.AUTH_VALUE == cboSource.Text)) { pxqty = material.PXQTY; } if (lblUseBoxStandard.DM_Key == DMSkin.Controls.DMLabelKey.正确) { if (mainEpcNumber != pxqty) { mIsFull = false; result.UpdateMessage(Consts.Default.BU_FU_HE_XIANG_GUI + string.Format("({0})", pxqty)); result.InventoryResult = false; } else { mIsFull = true; } } else { if (mainEpcNumber > pxqty) { result.UpdateMessage(Consts.Default.SHU_LIANG_DA_YU_XIANG_GUI + string.Format("({0})", pxqty)); result.InventoryResult = false; } } } else { if (shouldCheckNum()) { //075接口获取数量对比 string sapRe = ""; string sapMsg = ""; int re = SAPDataService.RFID_075F(lblHu.Text, ref sapRe, ref sapMsg); if (sapRe == "E") { result.UpdateMessage(string.Format("未获取到装箱数据 {0}", lblHu.Text)); result.InventoryResult = false; } else { if (mainEpcNumber != re) { result.UpdateMessage(string.Format("装箱数量错误 {0}-{1}", re, mainEpcNumber)); result.InventoryResult = false; } } } } if (lblUseBoxStandard.DM_Key != DMSkin.Controls.DMLabelKey.正确) { mPackmat = cboPxmat.SelectedValue.CastTo("未选择包材"); } } } catch (Exception ex) { Log4netHelper.LogError(ex); } if (result.InventoryResult) { result.UpdateMessage(Consts.Default.RIGHT); } return(result); }
CheckResult check(string hu) { CheckResult re = CheckData(); if (button3_start.Enabled) { re.UpdateMessage("请点击开始按钮"); re.InventoryResult = false; } if (string.IsNullOrEmpty(hu)) { re.UpdateMessage(WEI_SAO_DAO_XIANGHU); re.InventoryResult = false; return(re); } //是否已经扫描过了 if (mCurDanBoxList.Exists(i => i.hu == hu && i.inventoryRe == "S" && i.sapRe == SUCCESS)) { if (boxSame(hu)) { re.UpdateMessage(HAS_SAOMIAO_CHONGTOU); re.InventoryResult = false; } else { re.UpdateMessage(HAS_SAOMIAO_YICHANG); re.InventoryResult = false; } } //epc 是否扫描过了 string sameEpcHu = ""; if (sameEpc(out sameEpcHu)) { re.UpdateMessage(string.Format("商品已扫描 {0}", sameEpcHu)); re.InventoryResult = false; } List <string> notInDoc = checkInDoc(); if (notInDoc.Count > 0) { string msg = ""; foreach (var v in notInDoc) { msg += v; msg += " "; } re.UpdateMessage(msg + " 不在本单"); re.InventoryResult = false; } Dictionary <string, int> moreBar = checkTagQty(); if (moreBar.Count > 0) { string msg = ""; foreach (var v in moreBar) { msg += string.Format(v.Key + "超量" + v.Value); msg += " "; } re.UpdateMessage(msg); re.InventoryResult = false; } return(re); }
CheckResult check() { CheckResult re = baseCheck(); try { string hu = getBoxNo(); if (string.IsNullOrEmpty(hu)) { re.InventoryResult = false; re.UpdateMessage("未扫到箱号"); } CDianShangOutDocInfo doc = getDoc(hu); if (string.IsNullOrEmpty(doc.mDoc)) { re.InventoryResult = false; re.UpdateMessage("箱号无绑定信息"); } if (re.InventoryResult == false) { grid.Rows.Insert(0, hu, doc.mDoc, "", "", "", "", "", "", "", re.Message); grid.Rows[0].DefaultCellStyle.BackColor = Color.OrangeRed; return(re); } //重投 商品已扫描 if (doc.mHuDetail.ContainsKey(hu)) { re.InventoryResult = false; re.UpdateMessage("重投"); } foreach (var v in doc.mHuDetail.Values) { if (v.Select(i => i.EPC).ToList().Intersect(epcList).Count() > 0) { re.InventoryResult = false; re.UpdateMessage("商品已扫描"); } } if (re.InventoryResult == false) { grid.Rows.Insert(0, hu, doc.mDoc, "", "", "", "", "", "", "", re.Message); grid.Rows[0].DefaultCellStyle.BackColor = Color.OrangeRed; return(re); } List <CTagSumDif> tagDif = getChaYi(doc, hu); foreach (var v in tagDif) { if (v.qty_diff != 0 || v.qty_add_diff != 0) { re.InventoryResult = false; re.UpdateMessage("明细不一致"); break; } } if (re.InventoryResult) { re.UpdateMessage("正常"); } //add grid foreach (var v in tagDif) { grid.Rows.Insert(0, hu, doc.mDoc, v.zsatnr, v.zcolsn, v.zsiztx, v.qty, v.qty_diff, v.qty_add, v.qty_add_diff, re.Message); if (v.qty_diff != 0 || v.qty_add_diff != 0) { grid.Rows[0].DefaultCellStyle.BackColor = Color.OrangeRed; } } //if ok,save sql if (re.InventoryResult) { doc.mHuDetail[hu] = tagDetailList.ToList(); saveDoc(doc); } //print if (re.InventoryResult) { string huCount = string.Format("{0}-{1}", doc.mHu.Count, doc.mHuDetail.Count); printOKLabel(hu, huCount, doc.WHAreaId, doc.mDocTime, doc.OrigBillId, doc.mDoc, mainEpcNumber.ToString()); } else { printErrorLabelMulti(hu, doc.mDoc, tagDif); } } catch (Exception ex) { Log4netHelper.LogError(ex); } return(re); }
public override CheckResult CheckData() { CheckResult result = new CheckResult(); try { result = base.CheckData(); //检查商品已扫描,重投,箱码重复使用 if (string.IsNullOrEmpty(lblHu.Text.Trim())) { result.UpdateMessage(Consts.Default.WEI_SAO_DAO_XIANG_MA); result.InventoryResult = false; string hu = LocalDataService.GetNewErrorHu(SysConfig.DeviceNO); Invoke(new Action(() => { lblHu.Text = hu; })); } if (tagDetailList.Count > 0) { if (tagDetailList.First().LIFNRS?.Count > 1) { result.UpdateMessage(Consts.Default.JIAO_JIE_HAO_BU_YI_ZHI); result.InventoryResult = false; } else { lifnr = tagDetailList.First().LIFNRS?.FirstOrDefault(); } YKBoxInfo box = boxList == null ? null : boxList.Find(i => i.Hu == lblHu.Text); if (box != null && box.Status != null && box.Status == "S" && box.SapStatus == "S") { //上次检测结果为正常, bool isAllSame = true; bool isAllNotSame = true; List <YKBoxDetailInfo> lastCheckDetail = box.Details; if (lastCheckDetail != null && lastCheckDetail.Count > 0) { if (lastCheckDetail.Count != epcList.Count) { isAllSame = false; } foreach (YKBoxDetailInfo item in lastCheckDetail) { if (!epcList.Contains(item.Epc)) { isAllSame = false; break; } else { isAllNotSame = false; } } } else { isAllSame = false; isAllNotSame = true; } if (isAllSame) { result.IsRecheck = true; } else if (isAllNotSame) { //两批EPC对比,完全不一样,示为箱码重复使用 result.UpdateMessage(Consts.Default.XIANG_MA_CHONG_FU_SHI_YONG); result.InventoryResult = false; } if (lastCheckDetail.Count > 0 && !isAllSame && !isAllNotSame) { result.UpdateMessage(Consts.Default.EPC_YI_SAO_MIAO); result.InventoryResult = false; } } else { if (tagDetailList.Select(i => i.MATNR).Distinct().Count() > 10) { if (lblCheckSku.DM_Key == DMSkin.Controls.DMLabelKey.正确) { result.UpdateMessage(Consts.Default.SHANG_PIN_DA_YU_SHI); result.InventoryResult = false; } } if (lblCheckPinSe.DM_Key == DMSkin.Controls.DMLabelKey.正确) { if (!string.IsNullOrEmpty(currentZsatnr) && !string.IsNullOrEmpty(currentZcolsn)) { if (tagDetailList?.First().ZSATNR != currentZsatnr || tagDetailList?.First().ZCOLSN != currentZcolsn) { result.UpdateMessage(Consts.Default.PIN_SE_BU_FU); result.InventoryResult = false; } } } if (ExistsSameEpc()) { result.UpdateMessage(Consts.Default.EPC_YI_SAO_MIAO); result.InventoryResult = false; } if (GetCurrentReceiveMode() == ReceiveMode.品色装箱) { if (!IsOnePinSe()) { result.UpdateMessage(Consts.Default.DUO_GE_PIN_SE); result.InventoryResult = false; } } if (GetCurrentReceiveMode() == ReceiveMode.规格装箱) { if (!IsOneSku()) { result.UpdateMessage(Consts.Default.DUO_GE_SHANG_PIN); result.InventoryResult = false; } int pxqty = 0; MaterialInfo material = materialList.Find(i => i.MATNR == tagDetailList.First().MATNR); if (material.PUT_STRA == "ADM1" || cboTarget.Text == "BDMX") { pxqty = material.PXQTY; packmat = material.PXMAT; } else { pxqty = material.PXQTY_FH; packmat = material.PXMAT_FH; } /* * 如果设备信息中配置了带G开头的权限信息 * 且对应的AUTH_VALUE的值与当前选择的源存储类型一致 * 则取收货箱规 */ if (GAuthList?.Count > 0 && GAuthList.Exists(i => i.AUTH_VALUE == cboSource.Text)) { pxqty = material.PXQTY; } if (lblUseBoxStandard.DM_Key == DMSkin.Controls.DMLabelKey.正确) { if (mainEpcNumber != pxqty) { isFull = false; result.UpdateMessage(Consts.Default.BU_FU_HE_XIANG_GUI + string.Format("({0})", pxqty)); result.InventoryResult = false; } else { isFull = true; } } else { if (mainEpcNumber > pxqty) { result.UpdateMessage(Consts.Default.SHU_LIANG_DA_YU_XIANG_GUI + string.Format("({0})", pxqty)); result.InventoryResult = false; } } } else { if (shouldCheckNum()) { //075接口获取数量对比 string sapRe = ""; string sapMsg = ""; int re = SAPDataService.RFID_075F(lblHu.Text, ref sapRe, ref sapMsg); if (sapRe == "E") { result.UpdateMessage(string.Format("未获取到装箱数据 {0}", lblHu.Text)); result.InventoryResult = false; } else { if (mainEpcNumber != re) { result.UpdateMessage(string.Format("装箱数量错误 {0}-{1}", re, mainEpcNumber)); result.InventoryResult = false; } } } } if (lblUseBoxStandard.DM_Key != DMSkin.Controls.DMLabelKey.正确) { packmat = cboPxmat.SelectedValue.CastTo("未选择包材"); } } } } catch (Exception ex) { Log4netHelper.LogError(ex); result.InventoryResult = false; result.IsRecheck = false; result.Message = ex.ToString(); } if (result.InventoryResult || result.IsRecheck) { result.UpdateMessage(result.IsRecheck ? Consts.Default.CHONG_TOU : Consts.Default.RIGHT); } lblResult.Text = result.Message; return(result); }
/// <summary> /// 检查数据 /// </summary> /// <returns></returns> public override CheckResult CheckData() { CheckResult cr = new CheckResult(); if (string.IsNullOrEmpty(this.lblHU.Text.Trim())) { cr.UpdateMessage(WEI_SAO_DAO_XIANG_MA); cr.InventoryResult = false; } else { if (this.currentBox != null && this.currentBox.Count > 0) { //检查当前箱子是否是当前选择的发运日期 if (this.currentBox[0].SHIPDATE != shipDate) { cr.UpdateMessage(BU_SHU_YU_DA_QIAN_FA_YUN_RI_QI); cr.InventoryResult = false; } } } if (this.lblErrorNum.Text.Trim() != "0") { cr.UpdateMessage(EPC_WEI_ZHU_CE); cr.InventoryResult = false; } if (this.epcList.Count == 0) { cr.UpdateMessage(WEI_SAO_DAO_EPC); cr.InventoryResult = false; } if (this.boxNoList.Count > 0) { boxNoList.Clear(); cr.UpdateMessage(XIANG_MA_BU_YI_ZHI); cr.InventoryResult = false; } List <string> matnrList = new List <string>(); if (tagDetailList != null) { tagDetailList.ForEach(new Action <TagDetailInfo>((tag) => { if (!matnrList.Contains(tag.MATNR)) { matnrList.Add(tag.MATNR); } if (!lvtagList.Exists(i => i.MATNR == tag.MATNR)) { lvtagList.Add(new ListViewTagInfo( tag.MATNR, tag.ZSATNR, tag.ZCOLSN, tag.ZSIZTX, tag.CHARG, tagDetailList.FindAll(x => x.MATNR == tag.MATNR && !x.IsAddEpc).Count)); } })); } //判断当前读取的标签信息中,是否是多SKU if (matnrList.Count > 1) { isMultiSku = true; } else { isMultiSku = false; } if (this.currentBox != null) { currentBox.ForEach(new Action <EbBoxInfo>((box) => { if (!matnrList.Contains(box.PRODUCTNO)) { matnrList.Add(box.PRODUCTNO); } })); } foreach (string matnr in matnrList) { List <TagDetailInfo> scanList = tagDetailList == null ? null : tagDetailList.FindAll(i => i.MATNR == matnr); int scanCount = scanList == null ? 0 : scanList.Count; List <EbBoxInfo> currentBoxList = currentBox == null ? null : currentBox.FindAll(i => i.PRODUCTNO == matnr); int boxCount = currentBoxList == null ? 0 : currentBoxList.Sum(i => i.QTY); int diff = scanCount - boxCount; if (diff != 0) { if (currentBoxList != null && currentBoxList.Count > 0) { //存在差异,记录错误信息 cr.InventoryResult = false; EbBoxErrorRecordInfo error = new EbBoxErrorRecordInfo(); error.DIFF = diff; error.HU = currentBoxList[0].HU; error.PRODUCTNO = currentBoxList[0].PRODUCTNO; error.REMARK = cr.Message; if (scanList != null && scanList.Count > 0) { error.ZCOLSN = scanList[0].ZCOLSN; error.ZSATNR = scanList[0].ZSATNR; error.ZSIZTX = scanList[0].ZSIZTX; } else if (currentBoxList != null && currentBoxList.Count > 0) { MaterialInfo material = materialList.Find(i => i.MATNR == currentBoxList[0].PRODUCTNO); if (material != null) { error.ZCOLSN = material.ZCOLSN; error.ZSATNR = material.ZSATNR; error.ZSIZTX = material.ZSIZTX; } else { error.ZCOLSN = ""; error.ZSATNR = ""; error.ZSIZTX = ""; } } else { error.ZCOLSN = ""; error.ZSATNR = ""; error.ZSIZTX = ""; } EnqueueUploadData(error); } else { cr.InventoryResult = false; EbBoxErrorRecordInfo error = new EbBoxErrorRecordInfo(); error.DIFF = diff; error.HU = this.lblHU.Text; error.REMARK = cr.Message; if (scanList != null && scanList.Count > 0) { error.PRODUCTNO = scanList[0].MATNR; error.ZCOLSN = scanList[0].ZCOLSN; error.ZSATNR = scanList[0].ZSATNR; error.ZSIZTX = scanList[0].ZSIZTX; } else { error.PRODUCTNO = ""; error.ZCOLSN = ""; error.ZSATNR = ""; error.ZSIZTX = ""; } EnqueueUploadData(error); } } if (this.currentBox == null || this.currentBox.Count <= 0) { cr.UpdateMessage(WEI_ZHAO_DAO_DANG_QIAN_XIANG_SHU_JU); cr.InventoryResult = false; } } if (matnrList.Count == 0) { EbBoxErrorRecordInfo error = new EbBoxErrorRecordInfo(); error.DIFF = 0; error.HU = this.lblHU.Text; error.REMARK = cr.Message; error.PRODUCTNO = ""; error.ZCOLSN = ""; error.ZSATNR = ""; error.ZSIZTX = ""; EnqueueUploadData(error); } if (cr.InventoryResult) { if (isMultiSku) { //多SKU,走异常口,显示正常 cr.UpdateMessage("正常"); SetInventoryResult(3); } else { //单SKU SetInventoryResult(1); } } else { SetInventoryResult(3); } return(cr); }
CheckResult check(string hu, out List <CDianShangQty> qtys) { CheckResult re = CheckData(); qtys = new List <CDianShangQty>(); if (button3_start.Enabled) { re.UpdateMessage("请点击开始按钮"); re.InventoryResult = false; } if (string.IsNullOrEmpty(hu)) { re.UpdateMessage(WEI_SAO_DAO_XIANGHU); re.InventoryResult = false; return(re); } //是否已经扫描过了 if (mCurDanBoxList.Exists(i => i.hu == hu && i.inventoryRe == "S" && i.sapRe == SUCCESS)) { if (boxSame(hu)) { re.UpdateMessage(HAS_SAOMIAO_CHONGTOU); re.InventoryResult = false; } else { re.UpdateMessage(HAS_SAOMIAO_YICHANG); re.InventoryResult = false; } } //epc 是否扫描过了 string sameEpcHu = ""; if (sameEpc(out sameEpcHu)) { re.UpdateMessage(string.Format("商品已扫描 {0}", sameEpcHu)); re.InventoryResult = false; } List <string> notInDoc = checkInDoc(); if (notInDoc.Count > 0) { string msg = ""; foreach (var v in notInDoc) { msg += v; msg += " "; } re.UpdateMessage(msg + " 不在本单"); re.InventoryResult = false; } /* * Dictionary<string, int> moreBar = checkTagQty(); * if(moreBar.Count>0) * { * string msg = ""; * foreach(var v in moreBar) * { * msg += string.Format(v.Key + "超量" + v.Value); * msg += " "; * } * re.UpdateMessage(msg); * re.InventoryResult = false; * }*/ List <string> matList = tagDetailList.Select(i => i.MATNR).Distinct().ToList(); foreach (var v in matList) { int curQty = 0; foreach (var box in mCurDanBoxList) { if (box.inventoryRe == "S" && box.sapRe == SUCCESS) { curQty += box.tags.Count(j => j.MATNR == v && !j.IsAddEpc); } } CDianShangQty dsq = new CDianShangQty(); dsq.mat = v; dsq.curQty = tagDetailList.Count(i => i.MATNR == v && !i.IsAddEpc); dsq.hasQty = curQty; if (mJiaoJieDan.dsData.Exists(i => i.barcd == v)) { dsq.allQty = mJiaoJieDan.dsData.FirstOrDefault(i => i.barcd == v).qty; } qtys.Add(dsq); } foreach (var v in qtys) { if (v.allQty > 0 && v.curQty + v.hasQty > v.allQty) { re.UpdateMessage("超量"); re.InventoryResult = false; break; } } return(re); }
public override CheckResult CheckData() { CheckResult result = base.CheckData(); if (getBoxNo() == "") { result.UpdateMessage(HU_IS_NULL); result.InventoryResult = false; } if (!mDocData.docData.Exists(i => i.hu == getBoxNo())) { result.UpdateMessage(BU_ZAI_BEN_XIANG); result.InventoryResult = false; } if (result.Message.Contains(HU_IS_NULL) || result.Message.Contains(Consts.Default.XIANG_MA_BU_YI_ZHI)) { //直接返回 addGrid(result); return(result); } List <CChaYi> chayi = piPei3(getBoxNo()); foreach (var v in chayi) { if (v.barChaYiQty != 0 || v.barAddChaYiQty != 0) { result.UpdateMessage(BU_PIPEI); result.InventoryResult = false; break; } } if (result.InventoryResult) { result.UpdateMessage(Consts.Default.RIGHT); } foreach (var v in chayi) { v.inventoryRe = result.InventoryResult; v.msg = result.Message; } ShowLoading("正在打印..."); //print bool isHZ = false; Utils.CPrintData printData = getPrintData(chayi, result, ref isHZ); if (result.InventoryResult && printData.beizhu == "") { } else { Utils.PrintHelper.PrintTag(printData); } CCancelUpload uploadData = new CCancelUpload(); uploadData.lgnum = SysConfig.LGNUM; uploadData.boxno = getBoxNo(); uploadData.subuser = SysConfig.CurrentLoginUser.UserId; uploadData.inventoryRe = result.InventoryResult; uploadData.equipID = SysConfig.DeviceInfo.EQUIP_HLA; uploadData.loucheng = SysConfig.DeviceInfo.LOUCENG; uploadData.docno = mDocNo; uploadData.dianshuBoCi = mDianShuBoCi.ToString(); uploadData.epcList.AddRange(epcList); uploadData.tagDetailList = tagDetailList.ToList(); uploadData.isHZ = isHZ; ShowLoading("正在上传SAP..."); string sapRe = ""; string sapMsg = ""; uploadSAP(uploadData, out sapRe, out sapMsg); playSound(result.InventoryResult && sapRe == "S"); foreach (var v in chayi) { v.sapMsg = sapMsg; v.sapRe = sapRe; } ShowLoading("正在保存到本地..."); //save to local saveToLocal(mDocNo, getBoxNo(), result.InventoryResult ? "S" : "E", result.Message, chayi); addGrid(chayi); return(result); }