From 571289345cb09c809de244fc61065971e0e5cdee Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期二, 11 三月 2025 11:40:23 +0800 Subject: [PATCH] 送货单事务增加生成收货单逻辑 --- Tiger.Model.Net/Entitys/WMS/BIZ_U9_ASN_DTL.cs | 21 + Tiger.Api/Language.db | 0 Tiger.Model.Net/Entitys/WMS/BIZ_U9_ASN.cs | 4 Tiger.Model.Net/Entitys/WMS/BIZ_U9_ASN_SN.cs | 110 +++++----- Tiger.Business.WMS/Transaction/Yada/Count_BIZ_U9_ASN.cs | 373 +++++++++++++++++++++++++++++---- Tiger.Model.Net/Entitys/WMS/BIZ_U9_RECEIPT.cs | 138 ++++++------ Tiger.Model.Net/Entitys/WMS/Api/Input_Entitys.cs | 4 7 files changed, 471 insertions(+), 179 deletions(-) diff --git a/Tiger.Api/Language.db b/Tiger.Api/Language.db index 4bd53f9..4361b20 100644 --- a/Tiger.Api/Language.db +++ b/Tiger.Api/Language.db Binary files differ 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 cf6b9c1..3d4ec59 100644 --- a/Tiger.Business.WMS/Transaction/Yada/Count_BIZ_U9_ASN.cs +++ b/Tiger.Business.WMS/Transaction/Yada/Count_BIZ_U9_ASN.cs @@ -13,6 +13,13 @@ using Tiger.Business.WMS.Sharetronic.Shelf; using Tiger.Model.MES.Yada; using static IronPython.SQLite.PythonSQLite; +using static Community.CsharpSqlite.Sqlite3; +using Tiger.Model.Entitys.MES.Position; +using MailKit.Search; +using static IronPython.Modules._ast; +using Tiger.Model.Entitys.MES.U9C; +using System.Security.Policy; +using Org.BouncyCastle.Asn1.X509; namespace Tiger.Business.WMS.Transaction { @@ -33,14 +40,15 @@ #region Propertys & Variables //private List<WmsOrder<BIZ_U9_ASN>> _OrderList { get; set; } = new(); private List<string> OrderList = new(); - private BIZ_U9_ASN_SN CurSn { get; set; } - #endregion + private BIZ_U9_ASN_SN CurSn = new(); + private List<BIZ_U9_ASN_SN> ScanList = new(); + #endregion - #region Functions - /// <summary> - /// 鍒濆鍖栨竻鐐规暟鎹� - /// </summary> - private void LoadData() + #region Functions + /// <summary> + /// 鍒濆鍖栨竻鐐规暟鎹� + /// </summary> + private void LoadData() { var orders = MainDB.Queryable<BIZ_U9_ASN>().Where(q => ("," + q.RECEIVER + ",").Contains("," + UserCode + ",")).ToList(); OrderList = orders.Select(q => q.ORDER_NO).ToList(); @@ -146,7 +154,6 @@ if (inv.Items.Count == 0) { - List<WMS_ITEM_HIS> ItemHistorys = new List<WMS_ITEM_HIS>(); WMS_ITEM Item; WMS_ITEM_PKG ItemPkgs; @@ -162,8 +169,6 @@ UNIT = inv.Barcode.Unit, }; - WMS_ITEM_HIS his = new(Item, $"閫佽揣鍗�(U9)娓呯偣"); - ItemHistorys.Add(his); ItemPkgs = new() { SN = inv.Barcode.SN, @@ -187,7 +192,6 @@ } inv.Items.Add(Item); - inv.History.Add(his); inv.Packages.Add(ItemPkgs); } //闆呰揪涓嶄粠鏉$爜涓婃洿鏂版暟閲� @@ -265,34 +269,42 @@ //鎵ц娓呯偣鏁版嵁澶勭悊 CurSn.STATUS = WMS_ITEM.STATUSs.Counted.GetValue(); CurSn.QTY = CurInvItem.Items.Sum(q => q.QTY); - foreach (var item in CurInvItem.Items) - { - item.STATUS = WMS_ITEM.STATUSs.Counted.GetValue(); - item.TRANS_CODE = nameof(BIZ_U9_ASN); - item.TRANS_NO = CurSn.ORDER_NO; - item.TRANS_LINE = CurSn.LINE_NO; - item.AUTH_ORG = CurSn.AUTH_ORG; - CurInvItem.History.Add(new WMS_ITEM_HIS(item, $"鏉$爜[{CurInvItem.SN}]娓呯偣鎴愬姛锛屾搷浣滃崟鎹甗{item.TRANS_NO}]")); - } + foreach (var item in CurInvItem.Items) + { + item.AUTH_ORG = CurSn.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; + CurInvItem.History.Add(new WMS_ITEM_HIS(item, $"鏉$爜[{CurInvItem.SN}]娓呯偣瀹屾垚锛屾搷浣滃崟鎹甗{item.TRANS_NO}]")); + } - //鍒涘缓鍙橀噺鍏嬮殕瀵硅薄鐢ㄤ簬浼犲叆DBSubmitAction涓繚瀛樺綋鍓嶉渶瑕佹殏瀛樼殑鏁版嵁鍊� - var _CurSn = CurSn.Clone(); + //鍒涘缓鍙橀噺鍏嬮殕瀵硅薄鐢ㄤ簬浼犲叆DBSubmitAction涓繚瀛樺綋鍓嶉渶瑕佹殏瀛樼殑鏁版嵁鍊� + var _CurSn = CurSn.Clone(); var _Items = CurInvItem.Items.Clone(); var _Packages = CurInvItem.Packages.Clone(); var _History = CurInvItem.History.Clone(); - AddCommitAction("Counted", () => + var _ItemsExt = CurInvItem.ItemsExt.Clone(); + AddCommitAction("Counted", () => { //浣跨敤缁熶竴鐨勪簨鍔B瀵硅薄 var db = GetCommitDB(); //鏁版嵁淇濆瓨閫昏緫 var t = db.Storageable(_Items, UserCode).ToStorage(); t.AsInsertable.ExecuteCommand(); - t.AsUpdateable.UpdateColumns(q => new { q.STATUS, q.TRANS_CODE, q.TRANS_NO, q.TRANS_LINE, q.AUTH_ORG, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand(); - db.Storageable(_Packages, UserCode).ToStorage().AsInsertable.ExecuteCommand(); + t.AsUpdateable.UpdateColumns(q => new { q.QTY, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand(); + var p = db.Storageable(_Packages, UserCode).ToStorage(); + p.AsInsertable.ExecuteCommand(); + p.AsUpdateable.UpdateColumns(q => new { q.QTY, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand(); + db.Storageable(_Packages, UserCode).ToStorage().AsInsertable.ExecuteCommand(); db.Insertable(_History, UserCode).ExecuteCommand(); - db.Storageable(_CurSn, 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.Storageable(_CurSn, UserCode).ExecuteCommand(); }); - //瀹屾垚鎵�鏈夊鐞嗗悗浣跨敤浜嬪姟淇濆瓨鏁版嵁 action = DoIfFinish(action, input.Locale); @@ -301,7 +313,7 @@ { //鍙栨秷褰撳墠鎿嶄綔 ResetScan(); - //action.CatchExceptionWithLog(ex, $"鎵弿鏉$爜[{input.SN}]澶嶆牳寮傚父"); + //action.CatchExceptionWithLog(ex, $"鎵弿鏉$爜[{0}]澶嶆牳寮傚父"); action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.ScanItem.ScanException", input.SN)); } return action; @@ -317,35 +329,298 @@ //淇濆瓨鏁版嵁搴� SaveCommitListToDB(); - // 杩斿洖鏁版嵁 - action.Data.Data = new DefaultInStoreOutput - { - Barcode = CurInvItem.SN, - MaterialCode = CurInvItem.ItemInfo.ITEM_CODE, - MaterialName = CurInvItem.ItemInfo.ITEM_NAME, - CurrentQty = CurInvItem.Items[0].QTY, - Unit = CurInvItem.Items[0].UNIT, - DateCode = CurInvItem.Items[0].PROD_DATE, - WarehouseCode = CurInvItem.Warehouse.WH_CODE, - RegionCode = CurInvItem.Region.REGION_CODE, - ShelfCode = CurInvItem.Shelf.SHELF_CODE, - LocationCode = CurInvItem.Location.LOCATION_CODE, - }; + if (!OrderList.Contains(CurSn.ORDER_NO)) + { + OrderList.Add(CurSn.ORDER_NO); + } + ScanList.Add(CurSn); - //action.LocaleMsg = Biz.L($"鎵弿鏉$爜[{0}]涓婃灦鍒板偍浣峓{1}]鎴愬姛"); - action.LocaleMsg = Biz.L("WMS.Default.ScanItem.PutOnSucceeded", CurInvItem.SN, CurInvItem.Location.LOCATION_CODE); + // 杩斿洖鏁版嵁 + action.Data.Data = ScanList; + + //action.LocaleMsg = Biz.L($"鏉$爜[{0}]娓呯偣鎴愬姛锛�"); + action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.CountSuccess", CurInvItem.SN); //閲嶇疆宸ュ簭 ResetScan(); return action; } - #endregion + /// <summary> + /// 鍒犻櫎褰撳墠鎵�鏈夊凡娓呯偣璁板綍 + /// </summary> + /// <returns></returns> + public async Task<ApiAction> DeleteScannedList() + { + var action = new ApiAction(); + try + { + foreach (var sn in ScanList) + { + sn.STATUS = WMS_ITEM.STATUSs.Incoming.GetValue(); + } - /// <summary> - /// 閲嶇疆褰撳墠鎿嶄綔锛屾湁闇�瑕佸垯閲嶅啓姝ゆ柟娉� - /// </summary> - public override void ResetScan() + var historys = new List<WMS_ITEM_HIS>(); + var items = await Biz.Db.Queryable<WMS_ITEM>().Where(q => ScanList.Select(s => s.SN).Contains(q.SN)).ToListAsync(); + foreach (var item in items) + { + var order = item.TRANS_CODE; + item.STATUS = WMS_ITEM.STATUSs.Incoming.GetValue(); + item.TRANS_CODE = item.SOURCE_CODE; + item.TRANS_NO = item.SOURCE_ORDER; + item.TRANS_LINE = item.SOURCE_LINE; + item.SOURCE_CODE = ""; + item.SOURCE_ORDER = ""; + item.SOURCE_LINE = ""; + historys.Add(new WMS_ITEM_HIS(item, $"鏉$爜[{item.SN}]鍙栨秷娓呯偣锛屾搷浣滃崟鎹甗{order}]")); + } + + //浣跨敤缁熶竴鐨勪簨鍔B瀵硅薄 + var db = GetCommitDB(); + var dbTran = db.UseTran(() => + { + db.Updateable(ScanList, UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS }).ExecuteCommandAsync(); + db.Updateable(items, UserCode).ExecuteCommand(); + db.Insertable(historys, UserCode).ExecuteCommand(); + }); + if (dbTran.IsSuccess) + { + ScanList.Clear(); + } + else + { + Logger.Default.Fatal(dbTran.ErrorException, "Database transaction save exception"); + //鎶涘嚭寮傚父 + throw dbTran.ErrorException; + } + } + catch (System.Exception ex) + { + //return action.CatchExceptionWithLog(ex, Biz.L("鍒犻櫎褰撳墠鎵�鏈夊凡娓呯偣璁板綍寮傚父")); + return action.CatchExceptionWithLog(ex, Biz.L("WMS.Count_BIZ_U9_ASN.DeleteScanListException")); + } + return action; + } + + /// <summary> + /// 鍒犻櫎褰撳墠鐢ㄦ埛鐨勫凡鎵崟涓褰� + /// </summary> + /// <returns></returns> + public async Task<ApiAction> DeleteScannedSn(BaseInput input) + { + var action = new ApiAction(); + try + { + var item = await Biz.Db.Queryable<WMS_ITEM>().Where(q => q.SN == input.SN).FirstAsync(); + var order = item.TRANS_CODE; + item.STATUS = WMS_ITEM.STATUSs.Incoming.GetValue(); + item.TRANS_CODE = item.SOURCE_CODE; + item.TRANS_NO = item.SOURCE_ORDER; + item.TRANS_LINE = item.SOURCE_LINE; + item.SOURCE_CODE = ""; + item.SOURCE_ORDER = ""; + item.SOURCE_LINE = ""; + //浣跨敤缁熶竴鐨勪簨鍔B瀵硅薄 + var db = GetCommitDB(); + var dbTran = db.UseTran(() => + { + db.Updateable<BIZ_U9_ASN_SN>(UserCode).SetColumns(q => q.STATUS == WMS_ITEM.STATUSs.Incoming.GetValue()) + .Where(q => q.SN == input.SN).ExecuteCommand(); + db.Updateable(item, UserCode).ExecuteCommand(); + db.Insertable(new WMS_ITEM_HIS(item, $"鏉$爜[{item.SN}]鍙栨秷娓呯偣锛屾搷浣滃崟鎹甗{order}]"), UserCode).ExecuteCommand(); + }); + if (dbTran.IsSuccess) + { + ScanList.RemoveAll(q => q.SN == input.SN); + } + else + { + Logger.Default.Fatal(dbTran.ErrorException, "Database transaction save exception"); + //鎶涘嚭寮傚父 + throw dbTran.ErrorException; + } + } + catch (System.Exception ex) + { + //return action.CatchExceptionWithLog(ex, Biz.L("鍒犻櫎宸叉竻鐐规潯鐮乕{0}]寮傚父")); + return action.CatchExceptionWithLog(ex, Biz.L("WMS.Count_BIZ_U9_ASN.DeleteScannedSnException", input.SN)); + } + return action; + } + + /// <summary> + /// 鑾峰彇鏈宸叉竻鐐圭殑鐗╂枡鍒楄〃锛堝甫鍒嗛〉锛� + /// </summary> + /// <returns></returns> + public async Task<PageAble<BIZ_U9_ASN_SN>> GetScannedList() + { + return await Task.FromResult(new PageAble<BIZ_U9_ASN_SN>() + { + data = ScanList, + totals = ScanList.Count(), + }); + } + + /// <summary> + /// 鑾峰彇褰撳墠鎵�鏈夊崟鎹俊鎭� + /// </summary> + /// <returns></returns> + public async Task<List<BIZ_U9_ASN>> GetOrderList() + { + var Orders = await Biz.Db.Queryable<BIZ_U9_ASN>().Where(q => OrderList.Contains(q.ORDER_NO)).IncludesAllFirstLayer().ToListAsync(); + if (!Orders.IsNullOrEmpty()) + { + foreach (var order in Orders) + { + foreach (var dtl in order.Details) + { + dtl.SnList = order.SnList.Where(q => q.LINE_NO == dtl.LINE_NO).ToList(); + dtl.QTY_COUNTED = dtl.SnList.Where(q => q.STATUS == WMS_ITEM.STATUSs.Counted.GetValue()).Sum(q => q.QTY); + } + } + } + return Orders; + } + + /// <summary> + /// 璁剧疆鏀惰揣鍗曟槑缁嗚禒鍝佹暟閲� + /// </summary> + /// <returns></returns> + public async Task<ApiAction> SetGiftQty(BaseInput input) + { + var action = new ApiAction(); + try + { + var dtl = input?.Data?.JsonToObject<BIZ_U9_ASN_DTL>(); + if ((dtl?.ID ?? "").IsNullOrEmpty()) + { + action.IsSuccessed = false; + //action.LocaleMsg = Biz.L($"鎻愪氦鐨勬敹璐у崟鏄庣粏ID涓嶈兘涓虹┖"); + action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.SetGiftQty.DetailIDIsNull"); + return action; + } + + //浣跨敤缁熶竴鐨勪簨鍔B瀵硅薄 + var db = GetCommitDB(); + await db.Updateable(dtl, UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.QTY_GIFT }).ExecuteCommandAsync(); + } + catch (System.Exception ex) + { + //return action.CatchExceptionWithLog(ex, Biz.L("璁剧疆鏀惰揣鍗曟槑缁嗚禒鍝佹暟閲忎负寮傚父")); + return action.CatchExceptionWithLog(ex, Biz.L("WMS.Count_BIZ_U9_ASN.SetGiftQtyException")); + } + return action; + } + + /// <summary> + /// 鐢熸垚鏀惰揣鍗曪細璋冪敤U9鏂板鏀惰揣鍗曟帴鍙� + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + public async Task<ApiAction> GenerateReceipt(BaseInput input) + { + var action = new ApiAction(); + var orderNo = input.Data; + try + { + var order = await Biz.Db.Queryable<BIZ_U9_ASN>().Where(q => q.ORDER_NO == orderNo).IncludesAllFirstLayer().FirstAsync(); + if (order.IsNullOrEmpty()) + { + action.IsSuccessed = false; + //action.LocaleMsg = Biz.L($"鎵句笉鍒伴�佽揣鍗昜{0}]鐨勫崟鎹俊鎭紝璇锋彁浜ゆ纭殑鍗曞彿"); + action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.GenerateReceipt.ASNNotExists", orderNo); + return action; + } + //楠岃瘉鏉$爜鏄惁姝g‘ + if (order.STATUS != BIZ_U9_ASN.STATUSs.Counting.GetValue()) + { + action.IsSuccessed = false; + //action.LocaleMsg = Biz.L("鐢熸垚鏀惰揣鍗曪細閫佽揣鍗曠姸鎬乕{0}]寮傚父"); + action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.GenerateReceipt.StatusException", order.STATUS.GetEnumDesc<BIZ_U9_ASN.STATUSs>()); + return action; + } + + //鏌ヨ鏄惁娓呯偣瀹屾垚 + var noFinish = order.Details.Where(q => q.QTY != order.SnList.Sum(s => s.QTY)); + if (noFinish.Any()) + { + action.IsSuccessed = false; + //action.LocaleMsg = Biz.L("娓呯偣鏁伴噺涓嶅");// Biz.L("WMS.InReceipt.ScanItem.CheckingDataToSubmit"); //$"娓呯偣鏁伴噺涓嶅"; + action.LocaleMsg = Biz.L($"閫佽揣鍗昜{0}]鏈竻鐐瑰畬鎴愶紝璇峰厛娓呯偣瀹屾垚"); + return action; + } + + var iInput = new CreateRcvBySrcASNInput + { + userId = UserCode, + IsLogin = true, + CreateRcvBySrcASNParam = new () + { + aSNToRcvTransDTOs = order.Details.Select(q => new ASNToRcvTransDTO { ASNLineKey = q.ID, TransQty = new() { m_amount1 = q.QTY + q.QTY_GIFT } }).ToList(), + } + }; + var result = await DI.Resolve<WMS_U9C>().CreateRcvBySrcASN(iInput); + if (!result.IsSuccessed) + { + action.IsSuccessed = false; + action.LocaleMsg = result.LocaleMsg; + return action; + } + + //鏍规嵁鎺ュ彛杩斿洖鏀惰揣鍗曞崟鍙锋煡璇㈠崟鎹槑缁嗭紝骞跺垱寤烘潯鐮佹槑缁� + var receipt = new BIZ_U9_RECEIPT(); + throw new NotImplementedException(); + + //鏇存柊搴撳瓨琛ㄤ俊鎭� + var items = Biz.Db.Queryable<WMS_ITEM>().Where(q => SqlFunc.Subqueryable<BIZ_U9_ASN_SN>().Where(s => s.SN == q.SN && s.ORDER_NO == order.ORDER_NO).Any()).ToList(); + var historys = new List<WMS_ITEM_HIS>(); + foreach (var item in items) + { + item.AUTH_ORG = CurSn.AUTH_ORG; + item.STATUS = WMS_ITEM.STATUSs.WaitIn.GetValue(); + item.TRANS_CODE = nameof(BIZ_U9_RECEIPT); + item.TRANS_NO = receipt.ORDER_NO; + item.TRANS_LINE = receipt.SnList.First(q => q.SN == item.SN).LINE_NO; + item.SOURCE_CODE = item.TRANS_CODE; + item.SOURCE_ORDER = item.TRANS_NO; + item.SOURCE_LINE = item.TRANS_LINE; + historys.Add(new WMS_ITEM_HIS(item, $"閫佽揣鍗昜{order.ORDER_NO}]鐨勬潯鐮乕{item.SN}]鐢熸垚鏀惰揣鍗昜{receipt.ORDER_NO}]锛屽緟妫�楠屽畬鎴愬悗鍙叆搴�")); + } + + //浣跨敤缁熶竴鐨勪簨鍔B瀵硅薄 + var db = GetCommitDB(); + var dbTran = db.UseTran(() => + { + db.Insertable(receipt, UserCode).ExecuteCommand(); + db.Insertable(receipt.Details, UserCode).ExecuteCommand(); + db.Insertable(receipt.SnList, UserCode).ExecuteCommand(); + }); + if (dbTran.IsSuccess) + { + //action.LocaleMsg = Biz.L($"閫佽揣鍗昜{0}]鐢熸垚鏀惰揣鍗昜{1}]鎴愬姛"); + action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.GenerateReceipt.Success", order.ORDER_NO, receipt.ORDER_NO); + } + else + { + Logger.Default.Fatal(dbTran.ErrorException, "Database transaction save exception"); + //鎶涘嚭寮傚父 + throw dbTran.ErrorException; + } + } + catch (System.Exception ex) + { + //return action.CatchExceptionWithLog(ex, Biz.L("閫佽揣鍗昜{0}]鐢熸垚鏀惰揣鍗曞紓甯�")); + return action.CatchExceptionWithLog(ex, Biz.L("WMS.Count_BIZ_U9_ASN.GenerateReceiptException", orderNo)); + } + return action; + } + + #endregion + + /// <summary> + /// 閲嶇疆褰撳墠鎿嶄綔锛屾湁闇�瑕佸垯閲嶅啓姝ゆ柟娉� + /// </summary> + public override void ResetScan() { base.ResetScan(); Command = null; diff --git a/Tiger.Model.Net/Entitys/WMS/Api/Input_Entitys.cs b/Tiger.Model.Net/Entitys/WMS/Api/Input_Entitys.cs index 9ba6667..ec05c5a 100644 --- a/Tiger.Model.Net/Entitys/WMS/Api/Input_Entitys.cs +++ b/Tiger.Model.Net/Entitys/WMS/Api/Input_Entitys.cs @@ -27,6 +27,10 @@ /// </summary> public string SN { get; set; } /// <summary> + /// 鏂欏彿 + /// </summary> + public string ItemCode { get; set; } + /// <summary> /// 褰撳墠鎿嶄綔闇�瑕佹彁浜ょ殑閫夐」 /// </summary> public Dictionary<string, string> Options { get; set; } = new Dictionary<string, string>(); diff --git a/Tiger.Model.Net/Entitys/WMS/BIZ_U9_ASN.cs b/Tiger.Model.Net/Entitys/WMS/BIZ_U9_ASN.cs index 5cf299d..88ec62d 100644 --- a/Tiger.Model.Net/Entitys/WMS/BIZ_U9_ASN.cs +++ b/Tiger.Model.Net/Entitys/WMS/BIZ_U9_ASN.cs @@ -136,9 +136,9 @@ public List<ClassA> ClassAList { get; set; } //娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull */ [Navigate(NavigateType.OneToMany, nameof(BIZ_U9_ASN_DTL.ORDER_NO), nameof(ORDER_NO), "GHOST_ROW = 0")]//涓�瀵逛竴 ClassAId鏄疊IZ_U9_ASN绫婚噷闈㈢殑澶栭敭ID瀛楁 - public BIZ_U9_ASN_DTL Details { get; set; } //娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull + public List<BIZ_U9_ASN_DTL> Details { get; set; } //娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull [Navigate(NavigateType.OneToMany, nameof(BIZ_U9_ASN_SN.ORDER_NO), nameof(ORDER_NO), "GHOST_ROW = 0")]//涓�瀵逛竴 ClassAId鏄疊IZ_U9_ASN绫婚噷闈㈢殑澶栭敭ID瀛楁 - public BIZ_U9_ASN_SN SnList { get; set; } //娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull + public List<BIZ_U9_ASN_SN> SnList { get; set; } //娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull #endregion #region 鏋氫妇鍙橀噺 diff --git a/Tiger.Model.Net/Entitys/WMS/BIZ_U9_ASN_DTL.cs b/Tiger.Model.Net/Entitys/WMS/BIZ_U9_ASN_DTL.cs index 7300c8e..1a1d903 100644 --- a/Tiger.Model.Net/Entitys/WMS/BIZ_U9_ASN_DTL.cs +++ b/Tiger.Model.Net/Entitys/WMS/BIZ_U9_ASN_DTL.cs @@ -73,10 +73,15 @@ /// </summary> [DisplayName("閫�璐ф暟閲�")] public double QTY_RETURN { get; set; } - /// <summary> - /// 鏄惁璧犲搧(Y/N) - /// </summary> - [DisplayName("鏄惁璧犲搧(Y/N)")] + /// <summary> + /// 璧犲搧鏁伴噺 + /// </summary> + [DisplayName("璧犲搧鏁伴噺")] + public double QTY_GIFT { get; set; } + /// <summary> + /// 鏄惁璧犲搧(Y/N) + /// </summary> + [DisplayName("鏄惁璧犲搧(Y/N)")] public string IS_GIFT { get; set; } /// <summary> /// 渚涘簲鍟嗙紪鐮� @@ -139,10 +144,14 @@ public string ITEM_NAME => ItemInfo?.ITEM_NAME; [SugarColumn(IsIgnore = true)] public string ITEM_DESC => ItemInfo?.ITEM_DESC; + [SugarColumn(IsIgnore = true)] + public double QTY_COUNTED { get; set; } = 0; + [SugarColumn(IsIgnore = true)] + public List<BIZ_U9_ASN_SN> SnList { get; set; } = new List<BIZ_U9_ASN_SN>(); #endregion - #region 澶栭敭灞炴�� - /*渚嬪瓙 + #region 澶栭敭灞炴�� + /*渚嬪瓙 //涓�瀵逛竴澶栭敭瀵艰埅 [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//涓�瀵逛竴 ClassAId鏄疊IZ_U9_ASN_DTL绫婚噷闈㈢殑澶栭敭ID瀛楁 public ClassA ClassA { get; set; } //娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull diff --git a/Tiger.Model.Net/Entitys/WMS/BIZ_U9_ASN_SN.cs b/Tiger.Model.Net/Entitys/WMS/BIZ_U9_ASN_SN.cs index 0ff548f..cd6ea8c 100644 --- a/Tiger.Model.Net/Entitys/WMS/BIZ_U9_ASN_SN.cs +++ b/Tiger.Model.Net/Entitys/WMS/BIZ_U9_ASN_SN.cs @@ -7,138 +7,138 @@ namespace Tiger.Model { /// <summary> - /// 实体:送货单(U9)条码明细 + /// 瀹炰綋锛氶�佽揣鍗�(U9)鏉$爜鏄庣粏 /// </summary> [Description("Primary:ID")] - [DisplayName("送货单(U9)条码明细")] + [DisplayName("閫佽揣鍗�(U9)鏉$爜鏄庣粏")] [Serializable] [SugarTable("BIZ_U9_ASN_SN")] public class BIZ_U9_ASN_SN : DbEntityWithAuth { - #region 构造函数 + #region 鏋勯�犲嚱鏁� /// <summary> - /// 实体:送货单(U9)条码明细 + /// 瀹炰綋锛氶�佽揣鍗�(U9)鏉$爜鏄庣粏 /// </summary> public BIZ_U9_ASN_SN() {} #endregion - #region 公共属性 + #region 鍏叡灞炴�� /// <summary> - /// 单据号 + /// 鍗曟嵁鍙� /// </summary> - [DisplayName("单据号")] + [DisplayName("鍗曟嵁鍙�")] public string ORDER_NO { get; set; } /// <summary> - /// 单据行号 + /// 鍗曟嵁琛屽彿 /// </summary> - [DisplayName("单据行号")] + [DisplayName("鍗曟嵁琛屽彿")] public string LINE_NO { get; set; } /// <summary> - /// 条码 + /// 鏉$爜 /// </summary> - [DisplayName("条码")] + [DisplayName("鏉$爜")] public string SN { get; set; } /// <summary> - /// 元条码 + /// 鍏冩潯鐮� /// </summary> - [DisplayName("元条码")] + [DisplayName("鍏冩潯鐮�")] public string META_SN { get; set; } /// <summary> - /// 物料编码 + /// 鐗╂枡缂栫爜 /// </summary> - [DisplayName("物料编码")] + [DisplayName("鐗╂枡缂栫爜")] public string ITEM_CODE { get; set; } /// <summary> - /// 状态(同WMS_ITEM状态) + /// 鐘舵��(鍚學MS_ITEM鐘舵��) /// </summary> - [DisplayName("状态(同WMS_ITEM状态)")] + [DisplayName("鐘舵��(鍚學MS_ITEM鐘舵��)")] public int STATUS { get; set; } /// <summary> - /// 数量 + /// 鏁伴噺 /// </summary> - [DisplayName("数量")] + [DisplayName("鏁伴噺")] public double QTY { get; set; } /// <summary> - /// 单位 + /// 鍗曚綅 /// </summary> - [DisplayName("单位")] + [DisplayName("鍗曚綅")] public string UNIT { get; set; } /// <summary> - /// 是否赠品(Y/N) + /// 鏄惁璧犲搧(Y/N) /// </summary> - [DisplayName("是否赠品(Y/N)")] + [DisplayName("鏄惁璧犲搧(Y/N)")] public string IS_GIFT { get; set; } /// <summary> - /// 是否良品(Y/N) + /// 鏄惁鑹搧(Y/N) /// </summary> - [DisplayName("是否良品(Y/N)")] + [DisplayName("鏄惁鑹搧(Y/N)")] public string IS_OK { get; set; } /// <summary> - /// 是否入库(Y/N) + /// 鏄惁鍏ュ簱(Y/N) /// </summary> - [DisplayName("是否入库(Y/N)")] + [DisplayName("鏄惁鍏ュ簱(Y/N)")] public string IS_IN { get; set; } /// <summary> - /// 是否退货(Y/N) + /// 鏄惁閫�璐�(Y/N) /// </summary> - [DisplayName("是否退货(Y/N)")] + [DisplayName("鏄惁閫�璐�(Y/N)")] public string IS_RETURN { get; set; } /// <summary> - /// 批次号 + /// 鎵规鍙� /// </summary> - [DisplayName("批次号")] + [DisplayName("鎵规鍙�")] public string LOTNO { get; set; } /// <summary> - /// 箱号 + /// 绠卞彿 /// </summary> - [DisplayName("箱号")] + [DisplayName("绠卞彿")] public string CARTON_NO { get; set; } /// <summary> - /// 栈板号 + /// 鏍堟澘鍙� /// </summary> - [DisplayName("栈板号")] + [DisplayName("鏍堟澘鍙�")] public string PALLET_NO { get; set; } /// <summary> - /// 备注 + /// 澶囨敞 /// </summary> - [DisplayName("备注")] + [DisplayName("澶囨敞")] public string REMARK { get; set; } #endregion - #region 虚拟属性 - /*例子 + #region 铏氭嫙灞炴�� + /*渚嬪瓙 [SugarColumn(IsIgnore = true)] public string FieldName { get; set; } */ #endregion - #region 外键属性 - /*例子 - //一对一外键导航 - [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BIZ_U9_ASN_SN类里面的外键ID字段 - public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null - //一对多外键导航 - [Navigate(NavigateType.OneToMany, nameof(ClassA.BIZ_U9_ASN_SNId))]//ClassA表中的BIZ_U9_ASN_SNId - public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null - //多对多外键导航 - [Navigate(typeof(MappingClass), nameof(MappingClass.BIZ_U9_ASN_SNId), nameof(MappingClass.ClassAId))]//注意顺序 - public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null + #region 澶栭敭灞炴�� + /*渚嬪瓙 + //涓�瀵逛竴澶栭敭瀵艰埅 + [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//涓�瀵逛竴 ClassAId鏄疊IZ_U9_ASN_SN绫婚噷闈㈢殑澶栭敭ID瀛楁 + public ClassA ClassA { get; set; } //娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull + //涓�瀵瑰澶栭敭瀵艰埅 + [Navigate(NavigateType.OneToMany, nameof(ClassA.BIZ_U9_ASN_SNId))]//ClassA琛ㄤ腑鐨凚IZ_U9_ASN_SNId + public List<ClassA> ClassAList { get; set; }//娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull + //澶氬澶氬閿鑸� + [Navigate(typeof(MappingClass), nameof(MappingClass.BIZ_U9_ASN_SNId), nameof(MappingClass.ClassAId))]//娉ㄦ剰椤哄簭 + public List<ClassA> ClassAList { get; set; } //娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull */ #endregion - #region 枚举变量 - /*例子 + #region 鏋氫妇鍙橀噺 + /*渚嬪瓙 public enum FieldNames { - [Description("枚举描述0")] + [Description("鏋氫妇鎻忚堪0")] Enum0, - [Description("枚举描述1")] + [Description("鏋氫妇鎻忚堪1")] Enum1, } */ #endregion - #region 公共方法 + #region 鍏叡鏂规硶 #endregion diff --git a/Tiger.Model.Net/Entitys/WMS/BIZ_U9_RECEIPT.cs b/Tiger.Model.Net/Entitys/WMS/BIZ_U9_RECEIPT.cs index 8679c2d..f9fd4d0 100644 --- a/Tiger.Model.Net/Entitys/WMS/BIZ_U9_RECEIPT.cs +++ b/Tiger.Model.Net/Entitys/WMS/BIZ_U9_RECEIPT.cs @@ -7,153 +7,157 @@ namespace Tiger.Model { /// <summary> - /// 实体:收货单(U9) + /// 瀹炰綋锛氭敹璐у崟(U9) /// </summary> [Description("Primary:ID")] - [DisplayName("收货单(U9)")] + [DisplayName("鏀惰揣鍗�(U9)")] [Serializable] [SugarTable("BIZ_U9_RECEIPT")] public class BIZ_U9_RECEIPT : DbEntityWithAuth { - #region 构造函数 + #region 鏋勯�犲嚱鏁� /// <summary> - /// 实体:收货单(U9) + /// 瀹炰綋锛氭敹璐у崟(U9) /// </summary> public BIZ_U9_RECEIPT() {} #endregion - #region 公共属性 + #region 鍏叡灞炴�� /// <summary> - /// 单据号 + /// 鍗曟嵁鍙� /// </summary> - [DisplayName("单据号")] + [DisplayName("鍗曟嵁鍙�")] public string ORDER_NO { get; set; } /// <summary> - /// 状态(0Init初始化|1Imported已导入|2Arrived已送达|3Counting清点中|4InQC检验中|5Storing上架中|6Review待审核|7Finished已完成|8Cancel已作废) + /// 鐘舵��(0Init鍒濆鍖東1Imported宸插鍏2Arrived宸查�佽揪|3Counting娓呯偣涓瓅4InQC妫�楠屼腑|5Storing涓婃灦涓瓅6Review寰呭鏍竱7Finished宸插畬鎴恷8Cancel宸蹭綔搴�) /// </summary> - [DisplayName("状态(0Init初始化|1Imported已导入|2Arrived已送达|3Counting清点中|4InQC检验中|5Storing上架中|6Review待审核|7Finished已完成|8Cancel已作废)")] + [DisplayName("鐘舵��(0Init鍒濆鍖東1Imported宸插鍏2Arrived宸查�佽揪|3Counting娓呯偣涓瓅4InQC妫�楠屼腑|5Storing涓婃灦涓瓅6Review寰呭鏍竱7Finished宸插畬鎴恷8Cancel宸蹭綔搴�)")] public int STATUS { get; set; } /// <summary> - /// 供应商编码 + /// 渚涘簲鍟嗙紪鐮� /// </summary> - [DisplayName("供应商编码")] + [DisplayName("渚涘簲鍟嗙紪鐮�")] public string SUPP_CODE { get; set; } /// <summary> - /// 供应商名称 + /// 渚涘簲鍟嗗悕绉� /// </summary> - [DisplayName("供应商名称")] + [DisplayName("渚涘簲鍟嗗悕绉�")] public string SUPP_NAME { get; set; } /// <summary> - /// 单据日期 + /// 鍗曟嵁鏃ユ湡 /// </summary> - [DisplayName("单据日期")] + [DisplayName("鍗曟嵁鏃ユ湡")] public DateTime ORDER_DATE { get; set; } = DateTime.MinValue; /// <summary> - /// 收货人 + /// 鏀惰揣浜� /// </summary> - [DisplayName("收货人")] + [DisplayName("鏀惰揣浜�")] public string RECEIVER { get; set; } /// <summary> - /// 收货日期 + /// 鏀惰揣鏃ユ湡 /// </summary> - [DisplayName("收货日期")] + [DisplayName("鏀惰揣鏃ユ湡")] public DateTime RECEIVE_DATE { get; set; } = DateTime.MinValue; /// <summary> - /// 送货单ID + /// 閫佽揣鍗旾D /// </summary> - [DisplayName("送货单ID")] + [DisplayName("閫佽揣鍗旾D")] public string ASN_ID { get; set; } /// <summary> - /// 送货单号 + /// 閫佽揣鍗曞彿 /// </summary> - [DisplayName("送货单号")] + [DisplayName("閫佽揣鍗曞彿")] public string ASN_NO { get; set; } /// <summary> - /// 备注 + /// 澶囨敞 /// </summary> - [DisplayName("备注")] + [DisplayName("澶囨敞")] public string REMARK { get; set; } /// <summary> - /// -1:未处理,0:同步处理完,>0:同步处理失败次数 + /// -1:鏈鐞嗭紝0:鍚屾澶勭悊瀹岋紝>0:鍚屾澶勭悊澶辫触娆℃暟 /// </summary> - [DisplayName("-1:未处理,0:同步处理完,>0:同步处理失败次数")] + [DisplayName("-1:鏈鐞嗭紝0:鍚屾澶勭悊瀹岋紝>0:鍚屾澶勭悊澶辫触娆℃暟")] public int HANDLED { get; set; } = -1; /// <summary> - /// 最后一次同步处理日期 + /// 鏈�鍚庝竴娆″悓姝ュ鐞嗘棩鏈� /// </summary> - [DisplayName("最后一次同步处理日期")] + [DisplayName("鏈�鍚庝竴娆″悓姝ュ鐞嗘棩鏈�")] public DateTime HANDLED_DATE { get; set; } = DateTime.MinValue; /// <summary> - /// 过账提交的JSON + /// 杩囪处鎻愪氦鐨凧SON /// </summary> - [DisplayName("过账提交的JSON")] + [DisplayName("杩囪处鎻愪氦鐨凧SON")] public string COMMIT_JSON { get; set; } /// <summary> - /// 过账提交的返回信息 + /// 杩囪处鎻愪氦鐨勮繑鍥炰俊鎭� /// </summary> - [DisplayName("过账提交的返回信息")] + [DisplayName("杩囪处鎻愪氦鐨勮繑鍥炰俊鎭�")] public string COMMIT_MSG { get; set; } - #endregion + #endregion - #region 虚拟属性 - /*例子 + #region 铏氭嫙灞炴�� + /*渚嬪瓙 [SugarColumn(IsIgnore = true)] public string FieldName { get; set; } */ - #endregion + #endregion - #region 外键属性 - /*例子 - //一对一外键导航 - [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BIZ_U9_RECEIPT类里面的外键ID字段 - public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null - //一对多外键导航 - [Navigate(NavigateType.OneToMany, nameof(ClassA.BIZ_U9_RECEIPTId))]//ClassA表中的BIZ_U9_RECEIPTId - public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null - //多对多外键导航 - [Navigate(typeof(MappingClass), nameof(MappingClass.BIZ_U9_RECEIPTId), nameof(MappingClass.ClassAId))]//注意顺序 - public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null + #region 澶栭敭灞炴�� + /*渚嬪瓙 + //涓�瀵逛竴澶栭敭瀵艰埅 + [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//涓�瀵逛竴 ClassAId鏄疊IZ_U9_RECEIPT绫婚噷闈㈢殑澶栭敭ID瀛楁 + public ClassA ClassA { get; set; } //娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull + //涓�瀵瑰澶栭敭瀵艰埅 + [Navigate(NavigateType.OneToMany, nameof(ClassA.BIZ_U9_RECEIPTId))]//ClassA琛ㄤ腑鐨凚IZ_U9_RECEIPTId + public List<ClassA> ClassAList { get; set; }//娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull + //澶氬澶氬閿鑸� + [Navigate(typeof(MappingClass), nameof(MappingClass.BIZ_U9_RECEIPTId), nameof(MappingClass.ClassAId))]//娉ㄦ剰椤哄簭 + public List<ClassA> ClassAList { get; set; } //娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull */ - #endregion + [Navigate(NavigateType.OneToMany, nameof(BIZ_U9_RECEIPT_DTL.ORDER_NO), nameof(ORDER_NO), "GHOST_ROW = 0")]//涓�瀵逛竴 ClassAId鏄疊IZ_U9_RECEIPT绫婚噷闈㈢殑澶栭敭ID瀛楁 + public List<BIZ_U9_RECEIPT_DTL> Details { get; set; } //娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull + [Navigate(NavigateType.OneToMany, nameof(BIZ_U9_RECEIPT_SN.ORDER_NO), nameof(ORDER_NO), "GHOST_ROW = 0")]//涓�瀵逛竴 ClassAId鏄疊IZ_U9_RECEIPT绫婚噷闈㈢殑澶栭敭ID瀛楁 + public List<BIZ_U9_RECEIPT_SN> SnList { get; set; } //娉ㄦ剰绂佹鎵嬪姩璧嬪�硷紝鍙兘鏄痭ull + #endregion - #region 枚举变量 - /*例子 + #region 鏋氫妇鍙橀噺 + /*渚嬪瓙 public enum FieldNames { - [Description("枚举描述0")] + [Description("鏋氫妇鎻忚堪0")] Enum0, - [Description("枚举描述1")] + [Description("鏋氫妇鎻忚堪1")] Enum1, } */ - /// <summary> - /// 枚举:状态(0Init初始化|1Imported已导入|2Arrived已送达|3Counting清点中|4InQC检验中|5Storing上架中|6Review待审核|7Finished已完成|8Cancel已作废) - /// </summary> - public enum STATUSs + /// <summary> + /// 鏋氫妇锛氱姸鎬�(0Init鍒濆鍖東1Imported宸插鍏2Arrived宸查�佽揪|3Counting娓呯偣涓瓅4InQC妫�楠屼腑|5Storing涓婃灦涓瓅6Review寰呭鏍竱7Finished宸插畬鎴恷8Cancel宸蹭綔搴�) + /// </summary> + public enum STATUSs { - [Description("初始化")] + [Description("鍒濆鍖�")] Init = 0, - [Description("已导入")] + [Description("宸插鍏�")] Imported = 1, - [Description("已送达")] + [Description("宸查�佽揪")] Arrived = 2, - [Description("清点中")] + [Description("娓呯偣涓�")] Counting = 3, - [Description("检验中")] + [Description("妫�楠屼腑")] InQC = 4, - [Description("上架中")] + [Description("涓婃灦涓�")] Storing = 5, - [Description("待审核")] + [Description("寰呭鏍�")] Review = 6, - [Description("已完成")] + [Description("宸插畬鎴�")] Finished = 7, - [Description("已作废")] + [Description("宸蹭綔搴�")] Cancel = 8, } #endregion - #region 公共方法 + #region 鍏叡鏂规硶 #endregion -- Gitblit v1.9.3