wangxinhui
2025-03-31 a6e0ea9ce13e791f3edae4edffeb3be3ccb760be
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs
@@ -68,7 +68,7 @@
                MatSerNumAnalysisModel model = CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, serNum);
                //收货增加批次卡控
                //查询收货明细是否有存在同一个批次
                Dt_ReceiveOrderDetail receiveOrderDetailOld = _inboundRepository.ReceiveOrderDetailRepository.QueryFirst(x => x.LotNo == model.LotNo);
                Dt_ReceiveOrderDetail receiveOrderDetailOld = _inboundRepository.ReceiveOrderDetailRepository.QueryFirst(x => x.LotNo == model.LotNo && x.MaterielCode == model.MaterielCode);
                Dt_ReceiveOrder? receiveOrderOld = null;
                if (receiveOrderDetailOld!=null)
                {
@@ -79,7 +79,7 @@
                    return WebResponseContent.Instance.Error($"收货单号{receiveOrderOld.ReceiveOrderNo}中批次{model.LotNo}已存在");
                }
                //查询库存批次是否有存在同一个批次
                Dt_StockInfoDetail stockInfoDetail = _stockRepository.StockInfoDetailRepository.QueryFirst(x => x.BatchNo == model.LotNo);
                Dt_StockInfoDetail stockInfoDetail = _stockRepository.StockInfoDetailRepository.QueryFirst(x => x.BatchNo == model.LotNo && x.MaterielCode == model.MaterielCode);
                Dt_StockInfo? stockInfo = null;
                if (stockInfoDetail!=null)
                {
@@ -205,7 +205,7 @@
                {
                    return WebResponseContent.Instance.Error($"该采购单收货已完成");
                }
                Dt_PurchaseOrderDetail? purchaseOrderDetail = purchaseOrder.Details.Where(x => x.MaterielCode == model.MaterielCode && (x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt() || x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.Receiving.ObjToInt())).FirstOrDefault();
                Dt_PurchaseOrderDetail? purchaseOrderDetail = purchaseOrder.Details.Where(x => x.MaterielCode == model.MaterielCode && (x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt() || x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.Receiving.ObjToInt())).OrderBy(x=>x.Id).FirstOrDefault();
                if (purchaseOrderDetail == null)
                {
                    return WebResponseContent.Instance.Error($"该采购单明细收货已完成");
@@ -227,7 +227,7 @@
                        purchaseOrderDetail.PurchaseDetailReceiveQty += model.Quantity;
                        if (purchaseOrderDetail.PurchaseDetailReceiveQty > purchaseOrderDetail.PurchaseDetailQuantity)
                        {
                            return WebResponseContent.Instance.Error($"采购单该物料数量和收货数量不一致");
                            return WebResponseContent.Instance.Error($"采购单行号{purchaseOrderDetail.RowNo}物料{purchaseOrderDetail.MaterielCode}数量溢出:{purchaseOrderDetail.PurchaseDetailReceiveQty - purchaseOrderDetail.PurchaseDetailQuantity}");
                        }
                        if (purchaseOrderDetail.PurchaseDetailReceiveQty == purchaseOrderDetail.PurchaseDetailQuantity)
                        {
@@ -295,7 +295,7 @@
                        }
                        if (purchaseOrderDetail.PurchaseDetailReceiveQty > purchaseOrderDetail.PurchaseDetailQuantity)
                        {
                            return WebResponseContent.Instance.Error($"采购单该物料数量和收货数量不一致");
                            return WebResponseContent.Instance.Error($"采购单行号{purchaseOrderDetail.RowNo}物料{purchaseOrderDetail.MaterielCode}数量溢出:{purchaseOrderDetail.PurchaseDetailReceiveQty - purchaseOrderDetail.PurchaseDetailQuantity}");
                        }
                        if (purchaseOrderDetail.PurchaseDetailQuantity == purchaseOrderDetail.PurchaseDetailReceiveQty)
                        {
@@ -313,20 +313,27 @@
                            purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Received.ObjToInt();
                            _inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder);
                        }
                        if(purchaseOrder.PurchaseOrderStatus== PurchaseOrderStatusEnum.NotReceived.ObjToInt())
                        {
                            purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Receiving.ObjToInt();
                            _inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder);
                        }
                        _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.ReceiveDetailRowNo = receiveOrderDetail.RowNo;
                        ////    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.Result = CheckAcceptEnum.NotCheckAccept.ToString();
                            checkOrder.QualifiedQuantity = 0;
                            checkOrder.ReceiveDetailRowNo = receiveOrderDetail.RowNo;
                            checkOrder.WarehouseId = receiveOrder.WarehouseId;
                            checkOrder.ScrappedQuantity = 0;
                            checkOrder.ReturnQuantity = 0;
                            checkOrder.DefectedQuantity = 0;
                            _checkOrderRepository.AddData(checkOrder);
                        }
                        #endregion
                        _unitOfWorkManage.CommitTran();
                    }