From 57148c2264abe80bd3b472f2980104d90dad5c61 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期六, 13 九月 2025 08:35:32 +0800 Subject: [PATCH] 合并,接口优化等 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs | 37 +++++++++++++++++++++++++++++++++---- 1 files changed, 33 insertions(+), 4 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs" index 6a77d8a..afc0bc2 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs" @@ -3,8 +3,10 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using WIDESEA_Common.CommonEnum; using WIDESEA_Common.OrderEnum; using WIDESEA_Common.StockEnum; +using WIDESEA_Common.WareHouseEnum; using WIDESEA_Core; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; @@ -12,6 +14,7 @@ using WIDESEA_Core.Helper; using WIDESEA_External.Model; using WIDESEA_IApprovalRepository; +using WIDESEA_IBasicRepository; using WIDESEA_ICheckRepository; using WIDESEA_ICheckService; using WIDESEA_IInboundRepository; @@ -31,7 +34,10 @@ private readonly IPurchaseOrderDetailRepository _purchaseOrderDetailRepository; private readonly IOutboundRepository _outboundRepository; private readonly IStockRepository _stockRepository; - public CheckOrderResultService(ICheckOrderResultRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, ICheckOrderRepository checkOrderRepository, IReceiveOrderRepository receiveOrderRepository, ICheckOrderService checkOrderService, IPurchaseOrderRepository purchaseOrderRepository, IPurchaseOrderDetailRepository purchaseOrderDetailRepository, IOutboundRepository outboundRepository, IStockRepository stockRepository) : base(BaseDal) + private readonly IWarehouseRepository _warehouseRepository; + private readonly IReceiveOrderDetailRepository _receiveOrderDetailRepository; + + public CheckOrderResultService(ICheckOrderResultRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, ICheckOrderRepository checkOrderRepository, IReceiveOrderRepository receiveOrderRepository, ICheckOrderService checkOrderService, IPurchaseOrderRepository purchaseOrderRepository, IPurchaseOrderDetailRepository purchaseOrderDetailRepository, IOutboundRepository outboundRepository, IStockRepository stockRepository,IWarehouseRepository warehouseRepository, IReceiveOrderDetailRepository receiveOrderDetailRepository) : base(BaseDal) { _checkOrderRepository = checkOrderRepository; _unitOfWorkManage = unitOfWorkManage; @@ -41,6 +47,8 @@ _purchaseOrderDetailRepository = purchaseOrderDetailRepository; _outboundRepository = outboundRepository; _stockRepository = stockRepository; + _warehouseRepository=warehouseRepository; + _receiveOrderDetailRepository = receiveOrderDetailRepository; } /// <summary> @@ -61,6 +69,7 @@ { return content.Error($"鏈壘鍒拌璐ㄦ鍗�"); } + Dt_Warehouse warehouse = _warehouseRepository.QueryFirst(x => x.WarehouseId == checkOrder.WarehouseId); Dt_ReceiveOrder receiveOrder = _receiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == checkOrder.ReceiveOrderNo).Includes(x => x.Details).First(); if (receiveOrder.ReceiveOrderStatus!=ReceiveOrderStatusEnum.Completed.ObjToInt()) { @@ -178,6 +187,8 @@ { return content.Error($"鏈壘鍒拌璐ㄦ鍗�"); } + Dt_Warehouse warehouse = _warehouseRepository.QueryFirst(x => x.WarehouseId == checkOrder.WarehouseId); + //鑾峰彇鏀惰揣鍗� Dt_ReceiveOrder receiveOrder = _receiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == checkOrder.ReceiveOrderNo).Includes(x => x.Details).First(); if (receiveOrder.ReceiveOrderStatus != ReceiveOrderStatusEnum.Completed.ObjToInt()) { @@ -203,6 +214,7 @@ { return content.Error($"鏈壘鍒扮己闄风被鍨�"); } + //妫�楠岀粨鏋� checkOrderResult = new Dt_CheckOrderResult() { Quantity = (float)Convert.ToDecimal(eRPCheckResult.Quantity), @@ -212,7 +224,7 @@ Note = eRPCheckResult.Note, SampleCount = 0, }; - //鑾峰彇瀵瑰簲閲囪喘鍗� + //鑾峰彇瀵瑰簲閲囪喘鍗曟墸闄ゆ敹璐ф暟閲� Dt_ReceiveOrderDetail receiveOrderDetail = receiveOrder.Details.First(x => x.RowNo == checkOrder.ReceiveDetailRowNo); purchaseOrder = _purchaseOrderRepository.Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == receiveOrderDetail.PurchaseOrderNo).Includes(x => x.Details).Where(x => x.Details.Any(v => v.RowNo == receiveOrderDetail.PurchaseOrderDetailRowNo)).First(); if (purchaseOrder == null) @@ -226,6 +238,7 @@ } purchaseOrderDetail.PurchaseDetailReceiveQty -= (float)Convert.ToDecimal(eRPCheckResult.Quantity); } + //鍒ゆ柇妫�楠屽悎鏍肩粨鏋� if (checkModel.Result == CheckAcceptEnum.Accept.ToString()) { checkOrder.Result = CheckAcceptEnum.Accept.ToString(); @@ -239,17 +252,33 @@ return content.Error("鏈壘鍒版楠岀被鍨�"); } checkOrder.CheckOrderStatus = CheckOrderStatusEnum.Checked.ObjToInt(); + List<Dt_ReceiveOrderDetail> receiveOrderDetails = new List<Dt_ReceiveOrderDetail>(); + //鏍规嵁妫�楠屾暟閲忔墸闄ゅ悎鏍兼暟閲� if (checkOrderResult != null) { checkOrder.QualifiedQuantity = checkOrder.ReceivedQuantity - checkOrderResult.Quantity; + //鏇存柊鏀惰揣妫�楠屽悎鏍兼爣璇� + if (warehouse.WarehouseCode == WarehouseEnum.HA152.ToString() || warehouse.WarehouseCode == WarehouseEnum.HA58.ToString()) + { + receiveOrderDetails = receiveOrder.Details.Where(x=>x.RowNo==checkOrder.ReceiveDetailRowNo).OrderByDescending(x => x.RowNo).Take((int)checkOrderResult.Quantity).ToList(); + receiveOrderDetails.ForEach(x => + { + x.IsCheckOk = WhetherEnum.True.ObjToInt(); + }); + } } else { checkOrder.QualifiedQuantity = checkOrder.ReceivedQuantity; } checkOrder.CheckUserName = App.User.UserName; + _unitOfWorkManage.BeginTran(); - + if (receiveOrderDetails.Count > 0) + { + _receiveOrderDetailRepository.UpdateData(receiveOrderDetails); + } + //鏇存柊閲囪喘鍗� if (checkOrderResult != null && purchaseOrder != null && purchaseOrderDetail != null) { BaseDal.AddData(checkOrderResult); @@ -298,7 +327,7 @@ try { Dt_CheckOrder checkOrder = _checkOrderRepository.QueryFirst(x => x.CheckOrderId == checkOrderId); - //鑾峰彇璐ㄦ鍗曞搴旂殑鏀惰揣鍗� + //鑾峰彇璐ㄦ鍗� if (checkOrder == null) { return content.Error($"鏈壘鍒拌璐ㄦ鍗�"); -- Gitblit v1.9.3