From 9e5eb7707c9a42e2515a583b40078d2d7685e2d0 Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期三, 19 三月 2025 00:51:42 +0800 Subject: [PATCH] 优化清点上架支持扫箱条码 --- Tiger.Business.WMS/Transaction/Yada/Count_BIZ_U9_ASN.cs | 52 ++++++++++++++++++++++++++++++++++------------------ 1 files changed, 34 insertions(+), 18 deletions(-) diff --git a/Tiger.Business.WMS/Transaction/Yada/Count_BIZ_U9_ASN.cs b/Tiger.Business.WMS/Transaction/Yada/Count_BIZ_U9_ASN.cs index f41ef28..bf58099 100644 --- a/Tiger.Business.WMS/Transaction/Yada/Count_BIZ_U9_ASN.cs +++ b/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,8 +100,20 @@ 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()) { action.IsSuccessed = false; @@ -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; } //楠岃瘉鏉$爜鏄惁姝g‘ - 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; -- Gitblit v1.9.3