From 080741e0b917dc382ecba31c4b19fca1aa772bfd Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期二, 15 四月 2025 17:43:13 +0800 Subject: [PATCH] 增加上架单据信息 --- Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs | 98 +++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 82 insertions(+), 16 deletions(-) diff --git a/Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs b/Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs index 1cd1a9b..03fb3e0 100644 --- a/Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs +++ b/Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs @@ -21,6 +21,7 @@ /// </summary> public class In_BIZ_U9_RECEIPT : WmsTask, IIn_BIZ_U9_RECEIPT { + public IIn_BIZ_U9_RECEIPT Init(string id, string userCode, string apiHost, string orgCode) { base.Init(id, userCode, apiHost, orgCode); @@ -29,7 +30,7 @@ } #region Propertys & Variables - + public string CurOrderNo { get; set; } #endregion #region Functions @@ -63,7 +64,7 @@ catch (Exception ex) { //鍙栨秷褰撳墠鎿嶄綔 - ResetScan(); + ResetTrans(); //action.CatchExceptionWithLog(ex, $"鎵弿[{input.SN}]寮傚父"); action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.Scan.ScanException", input.SN)); } @@ -106,6 +107,14 @@ action.LocaleMsg = Biz.L("WMS.Default.ScanItem.ItemCodeNotExistsOrNotActive", inv.ItemInfo.ITEM_CODE.IsNullOrEmpty(inv.Barcode.ItemCode)); return SetOutPutMqttMsg(action, input.Locale); } + //榛樿鍌ㄤ綅楠岃瘉 + if (!inv.ItemInfo.DEFAULT_LOCATION.IsNullOrEmpty() && inv.ItemInfo.DEFAULT_LOCATION != CurScanShelf.LocationCode) + { + action.IsSuccessed = false; + //action.LocaleMsg = Biz.L("鐗╂枡[{0}]鍙厑璁镐笂鏋跺埌鍌ㄤ綅[{0}]锛岃閲嶆柊鎵弿鍌ㄤ綅"); + action.LocaleMsg = Biz.L("WMS.Default.ScanItem.DefaultLocationError", inv.ItemInfo.ITEM_CODE, inv.ItemInfo.DEFAULT_LOCATION); + return SetOutPutMqttMsg(action, input.Locale); + } CurInvItem = inv; } @@ -135,11 +144,21 @@ } //浠嶶9鑾峰彇鏀惰揣鍗曡淇℃伅 var u9Dtl = Biz.DataSource["YadaU9C"].Client.Queryable<mes_ReturnedDocInfo>().Where(x => x.RcvId == receipt.ID.ToDouble() && x.DocLineNo == receiptDtl.LINE_NO.ToDouble() && x.SplitFlag != 1).First(); + //鏀惰揣鍗曠殑鐘舵�佸垽鏂槸鍚﹀凡鎻愪氦IQC瀹℃牳锛屾湭閫氳繃IQC涓嶈兘涓婃灦 + if (!u9Dtl.IsNullOrEmpty() && u9Dtl.Status != 3) + { + action.IsSuccessed = false; + //action.LocaleMsg = Biz.L("鏀惰揣鍗曡鐘舵�乕{0}]寮傚父锛岃鍏堟彁浜QC妫�楠岀粨鏋�"); + action.LocaleMsg = Biz.L("WMS.In_BIZ_U9_RECEIPT.ScanItem.U9StatusException", u9Dtl.StatusName); + return SetOutPutMqttMsg(action, input.Locale); + } if (!u9Dtl.IsNullOrEmpty() && u9Dtl.RcvQtyTU != receiptDtl.QTY_OK) { receiptDtl.ID = u9Dtl.RcvLineId.ToString(); receiptDtl.QTY_OK = u9Dtl.RcvQtyTU; receiptDtl.QTY_NG = receiptDtl.QTY - receiptDtl.QTY_OK; + receiptDtl.ERP_STATUS_CODE = u9Dtl.Status.ToString(); + receiptDtl.ERP_STATUS_NAME = u9Dtl.StatusName; } var nLocation = new WMS_LOCATION(); @@ -171,6 +190,7 @@ action.LocaleMsg = Biz.L($"WMS.Default.ScanShelf.ItemAlreadyExistsInLocation", nLocation.LOCATION_CODE, locationData.SN); return SetOutPutMqttMsg(action, input.Locale); } + CurScanShelf.Location = nLocation; CurScanShelf.LocationCode = nLocation.LOCATION_CODE; } else @@ -192,9 +212,11 @@ action.IsSuccessed = false; //action.LocaleMsg = Biz.L("鍌ㄤ綅[{0}]鍙兘瀛樻斁涓�涓墿鏂�"); action.LocaleMsg = Biz.L("WMS.Default.ScanItem.LocationSingleFailure", nLocation.LOCATION_CODE); - ResetScan(); + ResetTrans(); return SetOutPutMqttMsg(action, input.Locale); } + + CurOrderNo = receipt.ORDER_NO; //鎵ц涓婃灦鏁版嵁澶勭悊 foreach (var item in CurInvItem.Items) @@ -223,7 +245,7 @@ { action.IsSuccessed = false; action.LocaleMsg = putonResult.LocaleMsg; - ResetScan(); + ResetTrans(); return SetOutPutMqttMsg(action, input.Locale); } @@ -289,17 +311,28 @@ var db = GetCommitDB(); //鏁版嵁淇濆瓨閫昏緫 db.Updateable(receipt, UserCode).UpdateColumns(q => new { q.STATUS, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand(); - db.Updateable(receiptDtl, UserCode).UpdateColumns(q => new { q.ID, q.STATUS, q.QTY_IN, q.QTY_OK, q.QTY_NG, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand(); + db.Updateable(receiptDtl, UserCode).UpdateColumns(q => new { q.ID, q.STATUS, q.QTY_IN, q.QTY_OK, q.QTY_NG, q.ERP_STATUS_CODE, q.ERP_STATUS_NAME, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand(); db.Updateable(receiptSn, UserCode).UpdateColumns(q => new { q.STATUS, q.IS_IN, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand(); }); //瀹屾垚鎵�鏈夊鐞嗗悗浣跨敤浜嬪姟淇濆瓨鏁版嵁 - action = DoIfFinish(action, input.Locale); + action = DoIfFinish(action, input.Locale, () => + { + //璁剧疆褰撳墠鐗╂枡鐨勯粯璁ゅ偍浣� + if (CurInvItem.ItemInfo.DEFAULT_LOCATION.IsNullOrEmpty()) + { + SetDefaultLocation(MainDB, CurInvItem.ItemInfo, nLocation); + } + }); + //if (!action.Data.Data.IsNullOrEmpty() && action.Data.Data is DefaultInStoreOutput) + //{ + // (action.Data.Data as DefaultInStoreOutput).OrderInfo = receipt; + //} } catch (Exception ex) { //鍙栨秷褰撳墠鎿嶄綔 - ResetScan(); + ResetTrans(); //action.CatchExceptionWithLog(ex, $"鎵弿鏉$爜[{input.SN}]澶嶆牳寮傚父"); action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.ScanItem.ScanException", input.SN)); } @@ -390,7 +423,7 @@ catch (Exception ex) { //鍙栨秷褰撳墠鎿嶄綔 - ResetScan(); + ResetTrans(); //action.CatchExceptionWithLog(ex, $"鎵弿璐ф灦/鍌ㄤ綅[{0}]寮傚父"); action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.ScanShelf.ScanException", Code)); } @@ -431,29 +464,62 @@ action.LocaleMsg = Biz.L("WMS.Default.ScanItem.PutOnSucceeded", CurInvItem.SN, CurInvItem.Location.LOCATION_CODE); //閲嶇疆宸ュ簭 - ResetScanInfo(); + ResetScan(); return SetOutPutMqttMsg(action, locale); + } + + /// <summary> + /// 鑾峰彇闇�瑕佷笂鏋剁殑鏀惰揣鍗曞垪琛紙甯﹀垎椤碉級 + /// </summary> + /// <returns></returns> + public async Task<ApiAction<PageAble<BIZ_U9_RECEIPT>>> GetOrderList(BaseInputWithPage input) + { + var action = new ApiAction<PageAble<BIZ_U9_RECEIPT>>(); + var query = Biz.DataSource["YadaU9C"].Client.Queryable<mes_ReturnedDocInfo>().Where(q => q.Status == 3) + .WhereIF(!input.OrderNo.IsNullOrEmpty(), q => q.DocNo.Contains(input.OrderNo)) + .OrderBy(q => q.DocNo).ToPage(input.pageIndex, input.pageSize); + + action.Data = await MainDB.Queryable<BIZ_U9_RECEIPT>().Where(q => query.data.Select(o => o.DocNo).Contains(q.ORDER_NO)).ToPageAsync(input.pageIndex, input.pageSize); + foreach (var order in action.Data.data) + { + order.ERP_STATUS_CODE = query.data.FirstOrDefault(q => q.DocNo == order.ORDER_NO)?.Status.ToString(); + order.ERP_STATUS_NAME = query.data.FirstOrDefault(q => q.DocNo == order.ORDER_NO)?.StatusName; + } + MainDB.Updateable(action.Data.data, UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.ERP_STATUS_CODE, q.ERP_STATUS_NAME }).ExecuteCommand(); + return action; + } + + /// <summary> + /// 鑾峰彇褰撳墠鏀惰揣鍗曚俊鎭� + /// </summary> + /// <returns></returns> + public async Task<ApiAction<BIZ_U9_RECEIPT>> GetCurOrder() + { + var action = new ApiAction<BIZ_U9_RECEIPT>(); + action.Data = MainDB.Queryable<BIZ_U9_RECEIPT>().Where(q => q.ORDER_NO == CurOrderNo).IncludesAllFirstLayer().First(); + return action; } #endregion /// <summary> - /// 閲嶇疆褰撳墠鎿嶄綔锛屾湁闇�瑕佸垯閲嶅啓姝ゆ柟娉� + /// 閲嶇疆浜嬪姟鏁版嵁锛屾湁闇�瑕佸垯閲嶅啓姝ゆ柟娉� /// </summary> - public override void ResetScan() + public override void ResetTrans() { - base.ResetScan(); - ResetScanInfo(); + ResetScan(); CurScanShelf = null; + base.ResetTrans(); } /// <summary> - /// 閲嶇疆鎵爜淇℃伅 + /// 閲嶇疆鏈鎵爜淇℃伅 /// </summary> - public void ResetScanInfo() + public override void ResetScan() { - Command = null; + Command = "Normal"; CurInvItem = null; + base.ResetScan(); } public override bool Close(bool needSaveHistoryLog = false) -- Gitblit v1.9.3