From f8b74ce69663bed763f9fbc5b251a5d2da9bb4c7 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期三, 09 四月 2025 18:26:11 +0800 Subject: [PATCH] 清点更新 --- Tiger.Business.WMS/Transaction/Yada/Count_BIZ_U9_ASN.cs | 76 +++++++++++++++++++++++++------------ 1 files changed, 51 insertions(+), 25 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 33359cd..864eb8d 100644 --- a/Tiger.Business.WMS/Transaction/Yada/Count_BIZ_U9_ASN.cs +++ b/Tiger.Business.WMS/Transaction/Yada/Count_BIZ_U9_ASN.cs @@ -67,7 +67,7 @@ catch (Exception ex) { //鍙栨秷褰撳墠鎿嶄綔 - ResetScan(); + ResetTrans(); //action.CatchExceptionWithLog(ex, $"鎵弿[{input.SN}]寮傚父"); action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.Scan.ScanException", input.SN)); } @@ -153,12 +153,19 @@ }); //瀹屾垚鎵�鏈夊鐞嗗悗浣跨敤浜嬪姟淇濆瓨鏁版嵁 - action = DoIfFinish(action, input.Locale); + action = DoIfFinish(action, input.Locale, () => + { + if (!OrderList.Contains(CurSn.First().ORDER_NO)) + { + OrderList.Add(CurSn.First().ORDER_NO); + } + ScanList.AddRange(CurSn); + }); } catch (Exception ex) { //鍙栨秷褰撳墠鎿嶄綔 - ResetScan(); + ResetTrans(); //action.CatchExceptionWithLog(ex, $"鎵弿鏉$爜[{0}]澶嶆牳寮傚父"); action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.ScanItem.ScanException", input.SN)); } @@ -169,17 +176,16 @@ /// 瀹屾垚鎵�鏈夊鐞嗗悗浣跨敤浜嬪姟淇濆瓨鏁版嵁 /// </summary> /// <param name="action"></param> + /// <param name="locale"></param> + /// <param name="doAfterSave"></param> /// <returns></returns> - public ApiAction<ScanOutput> DoIfFinish(ApiAction<ScanOutput> action, string locale) + public ApiAction<ScanOutput> DoIfFinish(ApiAction<ScanOutput> action, string locale, Action doAfterSave = null) { //淇濆瓨鏁版嵁搴� SaveCommitListToDB(); - if (!OrderList.Contains(CurSn.First().ORDER_NO)) - { - OrderList.Add(CurSn.First().ORDER_NO); - } - ScanList.AddRange(CurSn); + //淇濆瓨鏁版嵁鎴愬姛鍚庢墽琛� + doAfterSave?.Invoke(); // 杩斿洖鏁版嵁 action.Data.Data = ScanList; @@ -188,7 +194,7 @@ action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.CountSuccess", CurSn.First().SN); //閲嶇疆宸ュ簭 - ResetScan(); + ResetTrans(); return SetOutPutMqttMsg(action, locale); ; } @@ -396,12 +402,13 @@ return action; } - //鏌ヨ鏄惁娓呯偣瀹屾垚 + //鏌ヨ鏄惁瀛樺湪娓呯偣瀹屾垚鐨勮鏄庣粏锛屽鏋滄湁鍒欏厛鎻愪氦瀹屾垚鐨勮锛屽鏋滄病鏈夊垯鎶ラ敊 + var finishNotSubmit = order.Details.Where(q => SqlFunc.IsNullOrEmpty(q.RECEIVER_NO) && q.QTY == order.SnList.Where(s => s.LINE_NO == q.LINE_NO && (s.STATUS == WMS_ITEM.STATUSs.Counted.GetValue() || q.STATUS == WMS_ITEM.STATUSs.Rejected.GetValue())).Sum(s => s.QTY)).ToList(); var noFinish = order.Details.Where(q => q.QTY != order.SnList.Where(s => s.LINE_NO == q.LINE_NO && (s.STATUS == WMS_ITEM.STATUSs.Counted.GetValue() || q.STATUS == WMS_ITEM.STATUSs.Rejected.GetValue())).Sum(s => s.QTY)); - if (noFinish.Any()) + if (!finishNotSubmit.Any()) { action.IsSuccessed = false; - //action.LocaleMsg = Biz.L("閫佽揣鍗昜{0}]鏈竻鐐瑰畬鎴愶紝璇峰厛娓呯偣瀹屾垚锛屾湭瀹屾垚娓呯偣鐨勮鍙峰涓嬶細{1}"); + //action.LocaleMsg = Biz.L("閫佽揣鍗昜{0}]娌℃湁娓呯偣瀹屾垚鍙互鎻愪氦鐨勮锛屾湭瀹屾垚娓呯偣鐨勮鍙峰涓嬶細{1}"); action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.GenerateReceipt.NoFinishCounting", orderNo, string.Join("锛�", noFinish.Select(q => q.LINE_NO))); return action; } @@ -412,7 +419,7 @@ IsLogin = true, CreateRcvBySrcASNParam = new() { - aSNToRcvTransDTOs = order.Details.Select(q => new ASNToRcvTransDTO + aSNToRcvTransDTOs = finishNotSubmit.Select(q => new ASNToRcvTransDTO { ASNLineKey = q.ID, TransQty = new() { m_amount1 = q.QTY }, @@ -453,7 +460,7 @@ foreach (var item in list) { - var asnDtl = order.Details.First(q => q.ID == item.SrcASNDocLineId.ToString()); + var asnDtl = finishNotSubmit.First(q => q.ID == item.SrcASNDocLineId.ToString()); BIZ_U9_RECEIPT_DTL receiptDt = new() { ID = item.RcvLineId.ToString(), @@ -469,11 +476,19 @@ ASN_LINE_ID = item.SrcASNDocLineId.ToString(), ASN_LINE = asnDtl.LINE_NO, ERP_CODE = item.ItemCode1, + ERP_STATUS_CODE = item.Status.ToString(), + ERP_STATUS_NAME = item.StatusName, }; receipt.Details.Add(receiptDt); + asnDtl.STATUS = BIZ_U9_ASN.STATUSs.Finished.GetValue(); + asnDtl.RECEIVER_ID = item.RcvId.ToString(); + asnDtl.RECEIVER_NO = item.DocNo; + asnDtl.RECEIVER_LINE = item.DocLineNo.ToString(); + asnDtl.RECEIVER = UserCode; + asnDtl.RECEIVE_DATE = DateTime.Now; } - foreach (var sn in order.SnList) + foreach (var sn in order.SnList.Where(q=> finishNotSubmit.Any(s => s.LINE_NO == q.LINE_NO))) { var dtl = receipt.Details.First(q => q.ASN_LINE == sn.LINE_NO); BIZ_U9_RECEIPT_SN receiptSn = new() @@ -523,11 +538,12 @@ item.TRANS_NO = receipt.ORDER_NO; item.TRANS_LINE = receipt.SnList.First(q => q.SN == item.SN).LINE_NO; } - order.STATUS = BIZ_U9_ASN.STATUSs.Finished.GetValue(); - order.RECEIVER_ID = receipt.ID; - order.RECEIVER_NO = receipt.ORDER_NO; - order.RECEIVER = UserCode; - order.RECEIVE_DATE = DateTime.Now; + if (!noFinish.Any()) + { + order.STATUS = BIZ_U9_ASN.STATUSs.Finished.GetValue(); + order.RECEIVER = UserCode; + order.RECEIVE_DATE = DateTime.Now; + } //浣跨敤缁熶竴鐨勪簨鍔B瀵硅薄 var db = GetCommitDB(); @@ -537,6 +553,7 @@ db.Updateable(pkgs, UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.AUTH_ORG, q.TRANS_CODE, q.TRANS_NO, q.TRANS_LINE, q.SOURCE_CODE, q.SOURCE_ORDER, q.SOURCE_LINE }).ExecuteCommand(); db.Insertable(historys, UserCode).ExecuteCommand(); db.Updateable(order, UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS, q.RECEIVER, q.RECEIVE_DATE, q.RECEIVER_ID, q.RECEIVER_NO }).ExecuteCommand(); + db.Updateable(finishNotSubmit, UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS, q.RECEIVER, q.RECEIVE_DATE, q.RECEIVER_ID, q.RECEIVER_NO }).ExecuteCommand(); db.Insertable(receipt, UserCode).ExecuteCommand(); db.Insertable(receipt.Details, UserCode).ExecuteCommand(); db.Insertable(receipt.SnList, UserCode).ExecuteCommand(); @@ -564,15 +581,24 @@ #endregion /// <summary> - /// 閲嶇疆褰撳墠鎿嶄綔锛屾湁闇�瑕佸垯閲嶅啓姝ゆ柟娉� + /// 閲嶇疆浜嬪姟鏁版嵁锛屾湁闇�瑕佸垯閲嶅啓姝ゆ柟娉� + /// </summary> + public override void ResetTrans() + { + ResetScan(); + CurScanShelf = null; + base.ResetTrans(); + } + + /// <summary> + /// 閲嶇疆鏈鎵爜淇℃伅 /// </summary> public override void ResetScan() { - base.ResetScan(); - Command = null; + Command = "Normal"; CurInvItem = null; - CurScanShelf = null; CurSn = null; + base.ResetScan(); } public override bool Close(bool needSaveHistoryLog = false) -- Gitblit v1.9.3