From a7ceaaa38a4394b82501ca60230e97d25a6871e3 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期六, 18 一月 2025 17:30:33 +0800 Subject: [PATCH] 1 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs | 58 ++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 34 insertions(+), 24 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" index 76ab96e..eb1fd26 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" @@ -49,7 +49,7 @@ { try { - Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == orderNo).Includes(x=>x.Details).First(); + Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == orderNo).Includes(x => x.Details).First(); if (receiveOrder == null) { return WebResponseContent.Instance.Error($"鏈壘鍒拌鏀惰揣鍗�"); @@ -68,11 +68,11 @@ return WebResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡鐨勪俊鎭�"); } //璇ユ敹璐у崟浠撳簱鏄惁鏈夎鐗╂枡 - if (materielInfo.WarehouseId!= receiveOrder.WarehouseId) + if (materielInfo.WarehouseId != receiveOrder.WarehouseId) { return WebResponseContent.Instance.Error($"璇ョ墿鏂欎笉灞炰簬璇ヤ粨搴�"); } - Dt_PurchaseOrder purchaseOrder = _inboundRepository.PurchaseOrderRepository.Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == model.PurchaseOrderNo).Includes(x=>x.Details).First(); + Dt_PurchaseOrder purchaseOrder = _inboundRepository.PurchaseOrderRepository.Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == model.PurchaseOrderNo).Includes(x => x.Details).First(); if (purchaseOrder == null) { return WebResponseContent.Instance.Error($"鏈壘鍒拌閲囪喘鍗�"); @@ -89,43 +89,49 @@ { return WebResponseContent.Instance.Error($"璇ラ噰璐崟鏀惰揣宸插畬鎴�"); } - Dt_PurchaseOrderDetail? purchaseOrderDetail = purchaseOrder.Details.FirstOrDefault(x => x.MaterielCode == model.MaterielCode && (x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt() || x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.Receiving.ObjToInt())); + Dt_PurchaseOrderDetail? purchaseOrderDetail = purchaseOrder.Details.Where(x => x.MaterielCode == model.MaterielCode && (x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt() || x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.Receiving.ObjToInt())).FirstOrDefault(); if (purchaseOrderDetail == null) { - if (purchaseOrder.Details.Count > 0) - { - return WebResponseContent.Instance.Error($"璇ユ槑缁嗘敹璐у凡瀹屾垚"); - } + return WebResponseContent.Instance.Error($"璇ラ噰璐崟鏄庣粏鏀惰揣宸插畬鎴�"); } - //鍒ゆ柇鏄惁瀛樺湪瀵瑰簲閲囪喘鏄庣粏鐨勬敹璐ф槑缁� - Dt_ReceiveOrderDetail? detail = receiveOrder.Details.FirstOrDefault(x => x.PurchaseOrderNo == model.PurchaseOrderNo && x.PurchaseOrderDetailRowNo == purchaseOrderDetail.RowNo); - if (detail != null && detail.ReceivedQuantity == purchaseOrderDetail.PurchaseDetailQuantity) + //鍒ゆ柇璇ラ噰璐崟鏄庣粏鏄惁宸插瓨鍦ㄦ槑缁� + List<Dt_ReceiveOrderDetail> details = receiveOrder.Details.Where(x => x.PurchaseOrderNo == model.PurchaseOrderNo && x.PurchaseOrderDetailRowNo == purchaseOrderDetail.RowNo && x.MaterielCode == model.MaterielCode).ToList(); + if (details.Count >0 && details.Sum(x=>x.ReceivedQuantity) == purchaseOrderDetail.PurchaseDetailQuantity) { - return WebResponseContent.Instance.Error($"璇ユ槑缁嗗凡鏀惰揣"); + return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏄庣粏宸叉敹璐�"); } - + //鑾峰彇鍏蜂綋鎵规 + Dt_ReceiveOrderDetail? detail = details.FirstOrDefault(x => x.LotNo == model.LotNo); lock (_rowNoLocker) { - if (detail!=null) + if (detail != null) { //鍘熸湁鏀惰揣鏄庣粏澧炲姞鏀惰揣鏁伴噺 detail.ReceivedQuantity += model.Quantity; - purchaseOrderDetail.PurchaseDetailReceiveQty = detail.ReceivedQuantity; + purchaseOrderDetail.PurchaseDetailReceiveQty += model.Quantity; if (purchaseOrderDetail.PurchaseDetailReceiveQty > purchaseOrderDetail.PurchaseDetailQuantity) { return WebResponseContent.Instance.Error($"閲囪喘鍗曡鐗╂枡鏁伴噺鍜屾敹璐ф暟閲忎笉涓�鑷�"); } - if(purchaseOrderDetail.PurchaseDetailReceiveQty ==purchaseOrderDetail.PurchaseDetailQuantity) + if (purchaseOrderDetail.PurchaseDetailReceiveQty == purchaseOrderDetail.PurchaseDetailQuantity) { purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Received.ObjToInt(); } - float sumQty = purchaseOrder.Details.Sum(x => x.PurchaseDetailReceiveQty) + model.Quantity; - _unitOfWorkManage.BeginTran(); + else + { + purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Receiving.ObjToInt(); + } + float sumQty = purchaseOrder.Details.Sum(x => x.PurchaseDetailReceiveQty); if (purchaseOrder.OrderQuantity == sumQty) { purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Received.ObjToInt(); - _inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder); } + else + { + purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Receiving.ObjToInt(); + } + _unitOfWorkManage.BeginTran(); + _inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder); BaseDal.UpdateData(detail); _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrderDetail); _unitOfWorkManage.CommitTran(); @@ -157,11 +163,11 @@ receiveOrder.ReceiveOrderStatus = ReceiveOrderStatusEnum.Receiving.ObjToInt(); } //鍒ゆ柇閲囪喘鏄庣粏鏁伴噺 - if (purchaseOrderDetail.PurchaseDetailQuantity<model.Quantity) + if (purchaseOrderDetail.PurchaseDetailQuantity < model.Quantity) { return WebResponseContent.Instance.Error($"璇锋牳瀵归噰璐崟璇ョ墿鏂欐暟閲�"); } - if (purchaseOrderDetail.PurchaseDetailReceiveQty>0) + if (purchaseOrderDetail.PurchaseDetailReceiveQty > 0) { purchaseOrderDetail.PurchaseDetailReceiveQty += model.Quantity; } @@ -169,7 +175,7 @@ { purchaseOrderDetail.PurchaseDetailReceiveQty = model.Quantity; } - if (purchaseOrderDetail.PurchaseDetailReceiveQty> purchaseOrderDetail.PurchaseDetailQuantity) + if (purchaseOrderDetail.PurchaseDetailReceiveQty > purchaseOrderDetail.PurchaseDetailQuantity) { return WebResponseContent.Instance.Error($"閲囪喘鍗曡鐗╂枡鏁伴噺鍜屾敹璐ф暟閲忎笉涓�鑷�"); } @@ -177,7 +183,11 @@ { purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Received.ObjToInt(); } - float sumQty = purchaseOrder.Details.Sum(x => x.PurchaseDetailReceiveQty) + model.Quantity; + else + { + purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Receiving.ObjToInt(); + } + float sumQty = purchaseOrder.Details.Sum(x => x.PurchaseDetailReceiveQty); //+ model.Quantity _unitOfWorkManage.BeginTran(); BaseDal.AddData(receiveOrderDetail); if (purchaseOrder.OrderQuantity == sumQty) @@ -201,7 +211,7 @@ #endregion _unitOfWorkManage.CommitTran(); } - + return WebResponseContent.Instance.OK(); } } -- Gitblit v1.9.3