From 2c60540518b5f2071987dcbe6aa237af4b97c77a Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期一, 12 五月 2025 23:49:52 +0800 Subject: [PATCH] 修复了一些已知问题 --- Tiger.Business.WMS/Common/Preparation.cs | 135 +++++++++++++++++++++++---------------------- 1 files changed, 69 insertions(+), 66 deletions(-) diff --git a/Tiger.Business.WMS/Common/Preparation.cs b/Tiger.Business.WMS/Common/Preparation.cs index f942fbc..bb6c782 100644 --- a/Tiger.Business.WMS/Common/Preparation.cs +++ b/Tiger.Business.WMS/Common/Preparation.cs @@ -1,4 +1,5 @@ -锘縰sing Rhea.Common; +锘縰sing Microsoft.IdentityModel.Tokens; +using Rhea.Common; using SqlSugar; using System; using System.Collections.Generic; @@ -45,33 +46,33 @@ /// <returns></returns> public ApiAction<ScanOutput> AddOrder(BIZ_WMS_PREP.BIZ_TYPEs bizType, string orderNo) { - lock(AddOrderLock) + lock (AddOrderLock) { - var action = new ApiAction<ScanOutput>(new ScanOutput()); - - // 鏌ヨ鏄惁宸插瓨鍦ㄥ鏂欎换鍔� - var src = MainDB.Queryable<BIZ_WMS_PREP_SRC>().Where(q => q.SOURCE_ORDER == orderNo && - SqlFunc.Subqueryable<BIZ_WMS_PREP>().Where(p => p.STATUS < BIZ_WMS_PREP.STATUSs.Sended.GetValue()).Any()).First(); - if (Order.IsNullOrEmpty()) - { - if (!src.IsNullOrEmpty()) - { - Order = MainDB.Queryable<BIZ_WMS_PREP>().Where(q => q.ORDER_NO == src.ORDER_NO).IncludesAllFirstLayer().First(); + var action = new ApiAction<ScanOutput>(new ScanOutput()); + + // 鏌ヨ鏄惁宸插瓨鍦ㄥ鏂欎换鍔� + var src = MainDB.Queryable<BIZ_WMS_PREP_SRC>().Where(q => q.SOURCE_ORDER == orderNo && + SqlFunc.Subqueryable<BIZ_WMS_PREP>().Where(p => p.STATUS < BIZ_WMS_PREP.STATUSs.Sended.GetValue()).Any()).First(); + if (Order.IsNullOrEmpty()) + { + if (!src.IsNullOrEmpty()) + { + Order = MainDB.Queryable<BIZ_WMS_PREP>().Where(q => q.ORDER_NO == src.ORDER_NO).IncludesAllFirstLayer().First(); //action.LocaleMsg = Biz.L("澶囨枡浠诲姟[{0}娣诲姞]鍗曟嵁[{1}]鎴愬姛锛岃閫夋嫨澶囨枡鐨勭墿鏂欒"); action.LocaleMsg = Biz.L("WMS.Out_BIZ_WMS_PREP.AddOrder.LoadSuccess", Order?.ORDER_NO, orderNo); return action; - } - else - { - Order = new BIZ_WMS_PREP() - { + } + else + { + Order = new BIZ_WMS_PREP() + { AUTH_ORG = OrgCode, ORDER_NO = $"MP{DateTime.Now:yyMMdd}{(DateTime.Now - DateTime.Today).TotalSeconds:00000}", - BIZ_TYPE = bizType.GetValue(), - STATUS = BIZ_WMS_PREP.STATUSs.Init.GetValue(), - }; - } - } + BIZ_TYPE = bizType.GetValue(), + STATUS = BIZ_WMS_PREP.STATUSs.Init.GetValue(), + }; + } + } //鍚堝苟鍙戞枡鍙�傜敤浜庡寘瑁呰溅闂村伐鍗曞彂鏂欙紝闆呰揪鍖呰杞﹂棿缂栫爜锛�1002310010030758 else if (Order.WS_CODE != "1002310010030758") { @@ -81,25 +82,25 @@ return action; } - if (!src.IsNullOrEmpty() && src.ORDER_NO != Order.ORDER_NO) - { - action.IsSuccessed = false; - //action.LocaleMsg = Biz.L("鍗曟嵁[{0}]宸插睘浜庡鏂欎换鍔{1}]锛屾棤娉曟坊鍔犲埌褰撳墠澶囨枡浠诲姟[{2}]涓紝濡傞渶鍒囨崲澶囨枡涓氬姟锛岃閫�鍑哄悗閲嶆柊閫夋嫨"); - action.LocaleMsg = Biz.L("WMS.Out_BIZ_WMS_PREP.AddOrder.NoFound", orderNo, src.ORDER_NO, Order.ORDER_NO); - return action; - } + if (!src.IsNullOrEmpty() && src.ORDER_NO != Order.ORDER_NO) + { + action.IsSuccessed = false; + //action.LocaleMsg = Biz.L("鍗曟嵁[{0}]宸插睘浜庡鏂欎换鍔{1}]锛屾棤娉曟坊鍔犲埌褰撳墠澶囨枡浠诲姟[{2}]涓紝濡傞渶鍒囨崲澶囨枡涓氬姟锛岃閫�鍑哄悗閲嶆柊閫夋嫨"); + action.LocaleMsg = Biz.L("WMS.Out_BIZ_WMS_PREP.AddOrder.NoFound", orderNo, src.ORDER_NO, Order.ORDER_NO); + return action; + } // 鏌ヨ鍗曟嵁鏄庣粏锛屽苟鍚堝苟鍒板鏂欏崟鐨勫鏂欐槑缁嗕腑 - var dtls = bizType.GetPickList(orderNo); - if (dtls.Sum(q => q.QTY_ACT_REQ) <= 0) - { - action.IsSuccessed = false; - //action.LocaleMsg = Biz.L("鍗曟嵁[{0}]鏈壘鍒伴渶瑕佸鏂欑殑琛屾槑缁嗭紝璇锋壂鎻忔纭殑鍗曟嵁"); - action.LocaleMsg = Biz.L("WMS.Out_BIZ_WMS_PREP.AddOrder.NoNeedPrep", orderNo); - return action; - } + var srcDtls = bizType.GetPickList(orderNo); + if (srcDtls.Sum(q => q.QTY_ACT_REQ) <= 0) + { + action.IsSuccessed = false; + //action.LocaleMsg = Biz.L("鍗曟嵁[{0}]鏈壘鍒伴渶瑕佸鏂欑殑琛屾槑缁嗭紝璇锋壂鎻忔纭殑鍗曟嵁"); + action.LocaleMsg = Biz.L("WMS.Out_BIZ_WMS_PREP.AddOrder.NoNeedPrep", orderNo); + return action; + } //鍚堝苟鍙戞枡鍙�傜敤浜庡寘瑁呰溅闂村伐鍗曞彂鏂� - if (src.IsNullOrEmpty() && Order.BIZ_TYPE == BIZ_WMS_PREP.BIZ_TYPEs.WorkOrder.GetValue()) + if (!src.IsNullOrEmpty() && Order.BIZ_TYPE == BIZ_WMS_PREP.BIZ_TYPEs.WorkOrder.GetValue()) { var wo = Biz.Db.Queryable<BIZ_MES_WO>().Where(q => q.ORDER_NO == orderNo).First(); //闆呰揪鍖呰杞﹂棿缂栫爜锛�1002310010030758 @@ -129,48 +130,50 @@ ADD_TIME = DateTime.Now, }; Order.SourceOrders.Add(srcOrder); - foreach (var dtl in dtls) + foreach (var sdtl in srcDtls) { - dtl.AUTH_ORG = OrgCode; - var pdtl = Order.Details.Where(q => q.ITEM_CODE == dtl.ITEM_CODE).FirstOrDefault(); + sdtl.AUTH_ORG = OrgCode; + var pdtl = Order.Details.Where(q => q.ITEM_CODE == sdtl.ITEM_CODE).FirstOrDefault(); if (pdtl.IsNullOrEmpty()) { - pdtl = new () + pdtl = new() { AUTH_ORG = OrgCode, ORDER_NO = Order.ORDER_NO, - ORDER_LINE = (Order.Details.Max(q => q.LINE_CODE.ToInt32()) + 1).ToString(), - ITEM_CODE = dtl.ITEM_CODE, - SUBITEM_CODE = dtl.SUBITEM_CODE, - UNIT = dtl.UNIT, - PLAN_LOSS_QTY = dtl.PLAN_LOSS_QTY, - PLAN_LOSS_RATE = dtl.PLAN_LOSS_RATE, - IS_CALC_LOSS = dtl.IS_CALC_LOSS, - IS_WHOLE = dtl.IS_WHOLE, - SOURCE_CODE = dtl.SOURCE_CODE, - SOURCE_ORDER = dtl.SOURCE_ORDER, - SOURCE_LINE = dtl.SOURCE_LINE, + ORDER_LINE = Order.Details.IsNullOrEmpty() ? "1" : (Order.Details.Max(q => q.ORDER_LINE.ToInt32()) + 1).ToString(), + ITEM_CODE = sdtl.ITEM_CODE, + SUBITEM_CODE = sdtl.SUBITEM_CODE, + UNIT = sdtl.UNIT, + PLAN_LOSS_QTY = sdtl.PLAN_LOSS_QTY, + PLAN_LOSS_RATE = sdtl.PLAN_LOSS_RATE, + IS_CALC_LOSS = sdtl.IS_CALC_LOSS, + IS_WHOLE = sdtl.IS_WHOLE, + SOURCE_CODE = sdtl.SOURCE_CODE, + SOURCE_ORDER = sdtl.SOURCE_ORDER, + SOURCE_LINE = sdtl.SOURCE_LINE, STATUS = BIZ_WMS_PREP_DTL.STATUSs.UnCalc.GetValue(), - FTY_CODE = dtl.FTY_CODE, - WS_CODE = dtl.WS_CODE, - LINE_CODE = dtl.LINE_CODE, - POST_CODE = dtl.POST_CODE, - OPER_CODE = dtl.OPER_CODE, - SEGMENT = dtl.SEGMENT, - SMT_NO = dtl.SMT_NO, - STATION_NO = dtl.STATION_NO, - FEEDER_NO = dtl.FEEDER_NO, - FEEDER_TYPE = dtl.FEEDER_TYPE, + FTY_CODE = sdtl.FTY_CODE, + WS_CODE = sdtl.WS_CODE, + LINE_CODE = sdtl.LINE_CODE, + POST_CODE = sdtl.POST_CODE, + OPER_CODE = sdtl.OPER_CODE, + SEGMENT = sdtl.SEGMENT, + SMT_NO = sdtl.SMT_NO, + STATION_NO = sdtl.STATION_NO, + FEEDER_NO = sdtl.FEEDER_NO, + FEEDER_TYPE = sdtl.FEEDER_TYPE, }; Order.Details.Add(pdtl); } - pdtl.QTY_REQ += dtl.QTY_ACT_REQ; - Order.SourceDetails.Add(dtl); + pdtl.QTY_REQ += sdtl.QTY_ACT_REQ; + sdtl.ORDER_NO = pdtl.ORDER_NO; + sdtl.ORDER_LINE = pdtl.ORDER_LINE; + Order.SourceDetails.Add(sdtl); } var srcInfo = Order.SourceOrders.Select(q => new { q.SOURCE_CODE, q.SOURCE_ORDER }).DistinctBy(q => q.SOURCE_ORDER).OrderBy(q => q.SOURCE_ORDER); Order.SOURCE_CODE = string.Join(",", srcInfo.Select(q => q.SOURCE_CODE)); Order.SOURCE_ORDER = string.Join(",", srcInfo.Select(q => q.SOURCE_ORDER)); - + //浣跨敤缁熶竴鐨勪簨鍔B瀵硅薄 var db = Biz.Db; var dbTran = db.UseTran(() => -- Gitblit v1.9.3