From e974c93c984188524f15964529203db25ede3170 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期六, 15 三月 2025 16:07:58 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs | 108 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 90 insertions(+), 18 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 9f97d1b..ff6f7dc 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" @@ -72,6 +72,70 @@ { return WebResponseContent.Instance.Error($"璇ョ墿鏂欎笉灞炰簬璇ヤ粨搴�"); } + //鏃犻噰璐崟杩涜鏀惰揣 + if (receiveOrder.ReceiveOrderType != ReceiveOrderTypeEnum.PO.ObjToInt()) + { + //鑾峰彇鍏蜂綋鎵规鍙婄墿鏂� + Dt_ReceiveOrderDetail? detailNoPo = receiveOrder.Details.FirstOrDefault(x => x.LotNo == model.LotNo && x.MaterielCode == model.MaterielCode); + lock (_rowNoLocker) + { + if (detailNoPo != null) + { + //鍘熸湁鏀惰揣鏄庣粏澧炲姞鏀惰揣鏁伴噺 + detailNoPo.ReceivedQuantity += model.Quantity; + _unitOfWorkManage.BeginTran(); + BaseDal.UpdateData(detailNoPo); + _unitOfWorkManage.CommitTran(); + } + else + { + int rowNo = 0; + if (receiveOrder.Details.Count > 0) + { + rowNo = receiveOrder.Details.Max(x => x.RowNo); + } + Dt_ReceiveOrderDetail receiveOrderDetail = new Dt_ReceiveOrderDetail() + { + PurchaseOrderNo = model.PurchaseOrderNo, + ReceivedQuantity = model.Quantity, + MaterielCode = model.MaterielCode, + LotNo = model.LotNo, + MaterielName = materielInfo.MaterielName, + MaterielSpec = materielInfo.MaterielSpec, + ReceiveOrderId = receiveOrder.ReceiveOrderId, + PurchaseOrderDetailRowNo = rowNo + 1, + IfInspection = materielInfo.IsCheck.ObjToInt(), + CurrCode = "", + PriceInTax = 0, + TaxRate = "", + RowNo = rowNo + 1, + Unit = materielInfo.MaterielUnit + }; + if (receiveOrder.ReceiveOrderStatus == ReceiveOrderStatusEnum.NotStarted.ObjToInt()) + { + receiveOrder.ReceiveOrderStatus = ReceiveOrderStatusEnum.Receiving.ObjToInt(); + } + _unitOfWorkManage.BeginTran(); + _inboundRepository.ReceiveOrderDetailRepository.AddData(receiveOrderDetail); + _inboundRepository.ReceiveOrderRepository.UpdateData(receiveOrder); + #region 娉ㄩ噴 + if (materielInfo.IsCheck == WhetherEnum.True) + { + Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail); + checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo; + checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity; + checkOrder.ReceiveDetailRowNo = receiveOrderDetail.RowNo; + checkOrder.ScrappedQuantity = 0; + checkOrder.ReturnQuantity = 0; + checkOrder.DefectedQuantity = 0; + _checkOrderRepository.AddData(checkOrder); + } + #endregion + _unitOfWorkManage.CommitTran(); + } + return WebResponseContent.Instance.OK(); + } + } Dt_PurchaseOrder purchaseOrder = _inboundRepository.PurchaseOrderRepository.Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == model.PurchaseOrderNo).Includes(x => x.Details).First(); if (purchaseOrder == null) { @@ -89,25 +153,26 @@ { 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) { 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($"璇ユ敹璐у崟鏄庣粏宸叉敹璐�"); } - + //鑾峰彇鍏蜂綋鎵规鍙婄墿鏂� + Dt_ReceiveOrderDetail? detail = details.FirstOrDefault(x => x.LotNo == model.LotNo && x.MaterielCode==model.MaterielCode); lock (_rowNoLocker) { if (detail != null) { //鍘熸湁鏀惰揣鏄庣粏澧炲姞鏀惰揣鏁伴噺 detail.ReceivedQuantity += model.Quantity; - purchaseOrderDetail.PurchaseDetailReceiveQty = detail.ReceivedQuantity; + purchaseOrderDetail.PurchaseDetailReceiveQty += model.Quantity; if (purchaseOrderDetail.PurchaseDetailReceiveQty > purchaseOrderDetail.PurchaseDetailQuantity) { return WebResponseContent.Instance.Error($"閲囪喘鍗曡鐗╂枡鏁伴噺鍜屾敹璐ф暟閲忎笉涓�鑷�"); @@ -120,7 +185,7 @@ { purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Receiving.ObjToInt(); } - float sumQty = purchaseOrder.Details.Sum(x => x.PurchaseDetailReceiveQty); //+ model.Quantity; + float sumQty = purchaseOrder.Details.Sum(x => x.PurchaseDetailReceiveQty); if (purchaseOrder.OrderQuantity == sumQty) { purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Received.ObjToInt(); @@ -148,6 +213,8 @@ ReceivedQuantity = model.Quantity, MaterielCode = model.MaterielCode, LotNo = model.LotNo, + MaterielName=materielInfo.MaterielName, + MaterielSpec=materielInfo.MaterielSpec, ReceiveOrderId = receiveOrder.ReceiveOrderId, PurchaseOrderDetailRowNo = purchaseOrderDetail.RowNo, IfInspection = materielInfo.IsCheck.ObjToInt(), @@ -182,7 +249,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) @@ -193,16 +264,17 @@ _inboundRepository.ReceiveOrderRepository.UpdateData(receiveOrder); _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrderDetail); #region 娉ㄩ噴 - //if (materielInfo.IsCheck == WhetherEnum.True) - //{ - // Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail); - // checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo; - // checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity; - // checkOrder.ScrappedQuantity = 0; - // checkOrder.ReturnQuantity = 0; - // checkOrder.DefectedQuantity = 0; - // _checkOrderRepository.AddData(checkOrder); - //} + ////if (materielInfo.IsCheck == WhetherEnum.True) + ////{ + //// Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail); + //// checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo; + //// checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity; + //// checkOrder.ReceiveDetailRowNo = receiveOrderDetail.RowNo; + //// checkOrder.ScrappedQuantity = 0; + //// checkOrder.ReturnQuantity = 0; + //// checkOrder.DefectedQuantity = 0; + //// _checkOrderRepository.AddData(checkOrder); + ////} #endregion _unitOfWorkManage.CommitTran(); } -- Gitblit v1.9.3