Tiger.Business.WMS/Common/Barcode/Barcode.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Business.WMS/Common/Barcode/BarcodeAnalysis.Yada.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Business.WMS/Transaction/Yada/Count_BIZ_U9_ASN.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Tiger.Business.WMS/Common/Barcode/Barcode.cs
@@ -21,6 +21,16 @@ } /// <summary> /// 设置条码分析验证规则 /// </summary> public void SetAnalysisRule() { Analyses.Clear(); Analyses.Add(new YadaBarcode()); //Analyses.Add(new BarcodeAnalysis()); } /// <summary> /// 条码(解析后的条码) /// </summary> private List<BarcodeAnalysis> Analyses { get; set; } = new(); @@ -237,16 +247,6 @@ SubsidiaryMaterial, [Description("原材料")] RawMaterial, } /// <summary> /// 设置条码分析验证规则 /// </summary> public void SetAnalysisRule() { Analyses.Clear(); Analyses.Add(new YadaBarcode()); //Analyses.Add(new BarcodeAnalysis()); } /// <summary> Tiger.Business.WMS/Common/Barcode/BarcodeAnalysis.Yada.cs
@@ -30,6 +30,27 @@ if (!string.IsNullOrEmpty(Barcode.MetaSn)) { string[] parts = (Barcode.MetaSn ?? "").Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries); //箱条码 if (Barcode.MetaSn.StartsWith("Carton/")) { //收货箱条码:Carton/YDASN241000433/10/17010505.0064.00/ASN241000433/13957 //规则:Carton/单号/行号/料号/批号/流水号 if (parts.Length == 6) { Barcode.OrderNo = parts[1]; Barcode.OrderLine = parts[2]; Barcode.ItemCode = parts[3]; Barcode.LotNo = parts[4]; Barcode.SerialNoStr = parts[5]; Barcode.Type = Types.OuterPackage; Barcode.ItemType = ItemTypes.RawMaterial; result.Flag = Result.Flags.Success; } } //其他条码 else { //收货条码:YDASN241200964/10/12010102.0011.00/ASN241200964/1 //杂收条码:YDZS241200607/10/10150102.2226.00/ASN24120012750/0001 //规则:单号/行号/料号/批号/流水号 @@ -100,6 +121,7 @@ result.Flag = Result.Flags.Success; } } } result.Data = Barcode; return result; Tiger.Business.WMS/Transaction/Yada/Count_BIZ_U9_ASN.cs
@@ -33,7 +33,7 @@ #region Propertys & Variables //private List<WmsOrder<BIZ_U9_ASN>> _OrderList { get; set; } = new(); private List<string> OrderList = new(); private BIZ_U9_ASN_SN CurSn = new(); private List<BIZ_U9_ASN_SN> CurSn = new(); private List<BIZ_U9_ASN_SN> ScanList = new(); #endregion @@ -100,7 +100,19 @@ action.LocaleMsg = Biz.L("WMS.WmsItem.Barcode.IllegalFailure", input.SN); return action; } CurSn = MainDB.Queryable<BIZ_U9_ASN_SN>().Where(q => q.SN == barcode.SN).First(); if (barcode.Type == Barcode.Types.OuterPackage) { CurSn = MainDB.Queryable<BIZ_U9_ASN_SN>().Where(q => q.CARTON_NO == barcode.SN).ToList(); } else { CurSn = MainDB.Queryable<BIZ_U9_ASN_SN>().Where(q => q.SN == barcode.SN).ToList(); foreach (var sn in CurSn) { sn.META_SN = input.SN; } } if (CurSn.IsNullOrEmpty()) { @@ -109,22 +121,22 @@ action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.SnNotExists", input.SN); return action; } if (CurSn.AUTH_ORG != input.AuthOption.CurOrg) if (CurSn.First().AUTH_ORG != input.AuthOption.CurOrg) { action.IsSuccessed = false; //action.LocaleMsg = Biz.L($"条码所属组织[{0}]与当前登录组织[{1}]不一致,请重新选择组织"); action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.OrgNotCorrect", CurSn.AUTH_ORG, input.AuthOption.CurOrg); action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.OrgNotCorrect", CurSn.First().AUTH_ORG, input.AuthOption.CurOrg); return action; } //验证条码是否正确 if (CurSn.STATUS > WMS_ITEM.STATUSs.Incoming.GetValue()) if (CurSn.First().STATUS > WMS_ITEM.STATUSs.Incoming.GetValue()) { action.IsSuccessed = false; //action.LocaleMsg = Biz.L("状态[{0}]异常,请重新扫描"); action.LocaleMsg = Biz.L("WMS.Default.ScanItem.StatusException", CurSn.STATUS.GetEnumDesc<WMS_ITEM.STATUSs>()); action.LocaleMsg = Biz.L("WMS.Default.ScanItem.StatusException", CurSn.First().STATUS.GetEnumDesc<WMS_ITEM.STATUSs>()); return action; } CurSn.META_SN = input.SN; Result<IInventory> result = WMS_ITEM_Biz.WmsItem.Get(barcode.SN, input.AuthOption, true); if (!result.IsSuccessed) @@ -258,20 +270,24 @@ } //执行清点数据处理 CurSn.STATUS = WMS_ITEM.STATUSs.Counted.GetValue(); CurSn.QTY = CurInvItem.Items.Sum(q => q.QTY); CurSn.RECEIVER = UserCode; CurSn.RECEIVE_DATE = DateTime.Now; foreach (var sn in CurSn) { sn.STATUS = WMS_ITEM.STATUSs.Counted.GetValue(); sn.QTY = CurInvItem.Items.Where(q => q.SN == sn.SN).Sum(q => q.QTY); sn.RECEIVER = UserCode; sn.RECEIVE_DATE = DateTime.Now; } foreach (var item in CurInvItem.Items) { item.AUTH_ORG = CurSn.AUTH_ORG; var sn = CurSn.First(q => q.SN == item.SN); item.AUTH_ORG = sn.AUTH_ORG; item.STATUS = WMS_ITEM.STATUSs.Counted.GetValue(); item.SOURCE_CODE = item.TRANS_CODE; item.SOURCE_ORDER = item.TRANS_NO; item.SOURCE_LINE = item.TRANS_LINE; item.TRANS_CODE = nameof(BIZ_U9_ASN); item.TRANS_NO = CurSn.ORDER_NO; item.TRANS_LINE = CurSn.LINE_NO; item.TRANS_NO = sn.ORDER_NO; item.TRANS_LINE = sn.LINE_NO; CurInvItem.History.Add(new WMS_ITEM_HIS(item, $"条码[{CurInvItem.SN}]清点完成,操作单据[{item.TRANS_NO}]")); } @@ -295,7 +311,7 @@ db.Storageable(_Packages, UserCode).ToStorage().AsInsertable.ExecuteCommand(); db.Insertable(_History, UserCode).ExecuteCommand(); var e = db.Storageable(_ItemsExt, UserCode).ToStorage().AsInsertable.ExecuteCommand();//不存在插入 db.Updateable<BIZ_U9_ASN>(UserCode).SetColumns(q => q.STATUS == BIZ_U9_ASN.STATUSs.Counting.GetValue()).Where(q => q.ORDER_NO == _CurSn.ORDER_NO).ExecuteCommand(); db.Updateable<BIZ_U9_ASN>(UserCode).SetColumns(q => q.STATUS == BIZ_U9_ASN.STATUSs.Counting.GetValue()).Where(q => q.ORDER_NO == _CurSn.First().ORDER_NO).ExecuteCommand(); db.Storageable(_CurSn, UserCode).ExecuteCommand(); }); @@ -322,11 +338,11 @@ //保存数据库 SaveCommitListToDB(); if (!OrderList.Contains(CurSn.ORDER_NO)) if (!OrderList.Contains(CurSn.First().ORDER_NO)) { OrderList.Add(CurSn.ORDER_NO); OrderList.Add(CurSn.First().ORDER_NO); } ScanList.Add(CurSn); ScanList.AddRange(CurSn); // 返回数据 action.Data.Data = ScanList; Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs
@@ -123,12 +123,12 @@ action.LocaleMsg = Biz.L("WMS.In_BIZ_U9_RECEIPT.ScanItem.ReceiptDtlStatusException", receiptDtl.LINE_NO, receiptDtl.STATUS.GetEnumDesc<BIZ_U9_RECEIPT.STATUSs>()); return action; } var receiptSn = receipt.SnList.First(q => q.SN == CurInvItem.SN); if (receiptSn.STATUS != WMS_ITEM.STATUSs.WaitIn.GetValue()) var receiptSn = receipt.SnList.Where(q => CurInvItem.Items.Any(i => i.SN == q.SN)).ToList(); if (receiptSn.Any(q => q.STATUS != WMS_ITEM.STATUSs.WaitIn.GetValue())) { action.IsSuccessed = false; //action.LocaleMsg = Biz.L("收货单中条码[{0}]状态[{1}]异常,请扫描正确的条码"); action.LocaleMsg = Biz.L("WMS.In_BIZ_U9_RECEIPT.ScanItem.ReceiptSnStatusException", receiptSn.SN, receiptSn.STATUS.GetEnumDesc<WMS_ITEM.STATUSs>()); action.LocaleMsg = Biz.L("WMS.In_BIZ_U9_RECEIPT.ScanItem.ReceiptSnStatusException", CurInvItem.SN, receiptSn.First(q => q.STATUS != WMS_ITEM.STATUSs.WaitIn.GetValue()).STATUS.GetEnumDesc<WMS_ITEM.STATUSs>()); return action; } @@ -189,6 +189,7 @@ //执行上架数据处理 foreach (var item in CurInvItem.Items) { item.IS_LOCKED = "Y"; item.SOURCE_CODE = item.TRANS_CODE; item.SOURCE_ORDER = item.TRANS_NO; item.SOURCE_LINE = item.TRANS_LINE; @@ -206,8 +207,11 @@ } //更新单据信息 receiptSn.STATUS = WMS_ITEM.STATUSs.InStore.GetValue(); receiptSn.IS_IN = "Y"; foreach(var sn in receiptSn) { sn.STATUS = WMS_ITEM.STATUSs.InStore.GetValue(); sn.IS_IN = "Y"; } //如果当前行上架完成标记为待审核 receiptDtl.QTY_IN = receipt.SnList.Where(q => q.LINE_NO == receiptDtl.LINE_NO).Sum(q => q.QTY); if (receiptDtl.QTY_IN == receiptDtl.QTY)