wangxinhui
2025-03-15 efaf0b8aeb26aca6536a4b384c912cc3cac4d070
´úÂë¹ÜÀí/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)
                {
@@ -200,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();
                    }