wangxinhui
2025-03-15 efaf0b8aeb26aca6536a4b384c912cc3cac4d070
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs
@@ -131,12 +131,17 @@
                        PriceInTax = 0,
                        PurchaseOrderCode = item.PurchaseOrderNo,
                        PurchaseOrderSerno = item.PurchaseOrderDetailRowNo,
                        QtyRecieved = item.ReceivedQuantity.ObjToInt(),
                        QtyRecieved = item.ReceivedQuantity,
                        Serno = item.RowNo,
                        Supplotno = "",
                        Supplotno = item.LotNo,
                        Taxrate = "",
                    };
                    if (receiveOrder.ReceiveOrderType!=ReceiveOrderTypeEnum.PO.ObjToInt())
                    {
                        recevieOrderDetail.Taxrate = "ZZ11";
                        recevieOrderDetail.Currcode = "RMB";
                    }
                    recevieOrderDetails.Add(recevieOrderDetail);
                }
@@ -158,12 +163,16 @@
                //更新收货单信息
                receiveOrder.ReceiveOrderStatus = ReceiveOrderStatusEnum.Completed.ObjToInt();
                receiveOrder.UploadStatus = WhetherEnum.True.ObjToInt();
                //收货推送至ER
                string response = _invokeERPService.InvokeMatReceiveApi(receiveModel);
                ErpRequestContent requestContent = response.DeserializeObject<ErpRequestContent>();
                if (requestContent.res == 1)
                {
                    receiveOrder.UploadStatus = WhetherEnum.True.ObjToInt();
                }
                BaseDal.UpdateData(receiveOrder);
                //创建入库单
                CreateInboundOrder(orderId);
                //收货推送至ERP æµ‹è¯•注释
                _invokeERPService.InvokeMatReceiveApi(receiveModel);
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
@@ -209,6 +218,10 @@
            try
            {
                Dt_ReceiveOrder receiveOrder = Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderId == receiveOrderId).Includes(x => x.Details).First();
                if (receiveOrder.UploadStatus!= WhetherEnum.True.ObjToInt())
                {
                    return WebResponseContent.Instance.Error($"该收货单来料上传ERP失败无法创建入库单据");
                }
                if (receiveOrder == null)
                {
                    return WebResponseContent.Instance.Error($"未找到该收货单信息");
@@ -221,17 +234,22 @@
                {
                    return WebResponseContent.Instance.Error($"该收货单未完成");
                }
                Dt_InboundOrder OldCreateOrder = _inboundRepository.InboundOrderRepository.QueryFirst(x => x.UpperOrderNo == receiveOrder.ReceiveOrderNo);
                if (receiveOrder.CreateInOrderStatus==WhetherEnum.True.ObjToInt() || OldCreateOrder!=null)
                {
                    return WebResponseContent.Instance.Error($"该收货单对应的入库单已存在");
                }
                #region æ³¨é‡Š
                //List<Dt_CheckOrder> checkOrders = _checkOrderRepository.QueryData(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo);
                //if (checkOrders.FirstOrDefault(x => x.CheckOrderStatus == CheckOrderStatusEnum.NotCheck.ObjToInt()) != null)
                //{
                //    return WebResponseContent.Instance.Error($"该收货单未质检完成");
                //}
                ////List<Dt_CheckOrder> checkOrders = _checkOrderRepository.QueryData(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo);
                ////if (checkOrders.FirstOrDefault(x => x.CheckOrderStatus == CheckOrderStatusEnum.NotCheck.ObjToInt()) != null)
                ////{
                ////    return WebResponseContent.Instance.Error($"该收货单未质检完成");
                ////}
                //if (checkOrders.FirstOrDefault(x => x.AuditStatus != AuditStatusEnum.Agree.ObjToInt()) != null)
                //{
                //    return WebResponseContent.Instance.Error($"该收货单质检结果审批未完成");
                //}
                ////if (checkOrders.FirstOrDefault(x => x.AuditStatus != AuditStatusEnum.Agree.ObjToInt()) != null)
                ////{
                ////    return WebResponseContent.Instance.Error($"该收货单质检结果审批未完成");
                ////}
                #endregion
                Dt_InboundOrder inboundOrder = new Dt_InboundOrder()
@@ -249,15 +267,15 @@
                {
                    float quantity = item.ReceivedQuantity;
                    #region æ³¨é‡Š
                    //if (item.IfInspection == WhetherEnum.True.ObjToInt())
                    //{
                    //    Dt_CheckOrder? checkOrder = checkOrders.FirstOrDefault(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo && x.ReceiveDetailRowNo == item.RowNo);
                    //    if (checkOrder == null)
                    //    {
                    //        return WebResponseContent.Instance.Error($"质检单数据错误");
                    //    }
                    //    quantity = checkOrder.QualifiedQuantity.GetValueOrDefault() + checkOrder.DefectedQuantity.GetValueOrDefault();
                    //}
                    ////if (item.IfInspection == WhetherEnum.True.ObjToInt())
                    ////{
                    ////    Dt_CheckOrder? checkOrder = checkOrders.FirstOrDefault(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo && x.ReceiveDetailRowNo == item.RowNo);
                    ////    if (checkOrder == null)
                    ////    {
                    ////        return WebResponseContent.Instance.Error($"质检单数据错误");
                    ////    }
                    ////    quantity = checkOrder.QualifiedQuantity.GetValueOrDefault() + checkOrder.DefectedQuantity.GetValueOrDefault();
                    ////}
                    #endregion
                    Dt_InboundOrderDetail detail = new Dt_InboundOrderDetail()
                    {
@@ -342,19 +360,19 @@
                        rowNo += 1;
                        receiveOrderDetails.Add(receiveOrderDetail);
                        #region æ³¨é‡Š
                        //if (materielInfo.IsCheck == WhetherEnum.True)
                        //{
                        //    Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
                        //    checkOrder.CheckOrderNo = "TestCheckNo21";//测试
                        //    checkOrder.ReceiveOrderNo = "";
                        //    checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
                        //    checkOrder.ScrappedQuantity = 0;
                        //    checkOrder.ReturnQuantity = 0;
                        //    checkOrder.DefectedQuantity = 0;
                        //    checkOrder.ReceiveDetailRowNo = rowNo;
                        //    checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt();
                        //    checkOrders.Add(checkOrder);
                        //}
                        if (materielInfo.IsCheck == WhetherEnum.True)
                        {
                            Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
                            checkOrder.CheckOrderNo = "TestCheckNo21";//测试
                            checkOrder.ReceiveOrderNo = "";
                            checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
                            checkOrder.ScrappedQuantity = 0;
                            checkOrder.ReturnQuantity = 0;
                            checkOrder.DefectedQuantity = 0;
                            checkOrder.ReceiveDetailRowNo = rowNo;
                            checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt();
                            checkOrders.Add(checkOrder);
                        }
                        #endregion
                    }
                    receiveOrder = new Dt_ReceiveOrder()
@@ -405,19 +423,19 @@
                        rowNo += 1;
                        receiveOrderDetails.Add(receiveOrderDetail);
                        //if (materielInfo.IsCheck == WhetherEnum.True)
                        //{
                        //    Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
                        //    checkOrder.CheckOrderNo = "Test-CheckNo1";//测试
                        //    checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
                        //    checkOrder.ScrappedQuantity = 0;
                        //    checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
                        //    checkOrder.ReturnQuantity = 0;
                        //    checkOrder.DefectedQuantity = 0;
                        //    checkOrder.ReceiveDetailRowNo = rowNo;
                        //    checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt();
                        //    checkOrders.Add(checkOrder);
                        //}
                        if (materielInfo.IsCheck == WhetherEnum.True)
                        {
                            Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
                            checkOrder.CheckOrderNo = "Test-CheckNo1";//测试
                            checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
                            checkOrder.ScrappedQuantity = 0;
                            checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
                            checkOrder.ReturnQuantity = 0;
                            checkOrder.DefectedQuantity = 0;
                            checkOrder.ReceiveDetailRowNo = rowNo;
                            checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt();
                            checkOrders.Add(checkOrder);
                        }
                    }
                }
@@ -434,10 +452,10 @@
                    Db.InsertNav(receiveOrder).Include(x => x.Details).ExecuteCommand();
                    checkOrders.ForEach(x => x.ReceiveOrderNo = receiveOrder.ReceiveOrderNo);
                }
                //if (checkOrders.Count > 0)
                //{
                //    _checkOrderRepository.AddData(checkOrders);
                //}
                if (checkOrders.Count > 0)
                {
                    _checkOrderRepository.AddData(checkOrders);
                }
                _inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder);
                _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrder.Details);
                _unitOfWorkManage.CommitTran();