wangxinhui
2024-12-26 bc3e001d093c3d6cbddc7e008aa99c12f850c1e5
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs
@@ -11,7 +11,9 @@
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Helper;
using WIDESEA_DTO;
using WIDESEA_DTO.Basic;
using WIDESEA_DTO.ERP;
using WIDESEA_External.ERPService;
using WIDESEA_External.Model;
using WIDESEA_IBasicRepository;
@@ -79,7 +81,11 @@
            return base.AddData(saveModel);
        }
        /// <summary>
        /// æ”¶è´§å®Œæˆå¹¶å›žä¼ ERP
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        public WebResponseContent FeedbackReceiveOrder(int orderId)
        {
            try
@@ -88,6 +94,10 @@
                if (receiveOrder == null)
                {
                    return WebResponseContent.Instance.Error($"未找到收货单");
                }
                if (receiveOrder.ReceiveOrderStatus==ReceiveOrderStatusEnum.Completed.ObjToInt())
                {
                    return WebResponseContent.Instance.Error($"收货单已完成");
                }
                if (receiveOrder.Details == null || receiveOrder.Details.Count == 0)
                {
@@ -112,10 +122,11 @@
                        PriceInTax = 0,
                        PurchaseOrderCode = item.PurchaseOrderNo,
                        PurchaseOrderSerno = item.PurchaseOrderDetailRowNo,
                        QtyReceived = item.ReceivedQuantity,
                        QtyRecieved = item.ReceivedQuantity.ObjToInt(),
                        Serno = item.RowNo,
                        Supplotno = "",
                        Taxrate = ""
                        Taxrate = "",
                    };
                    recevieOrderDetails.Add(recevieOrderDetail);
                }
@@ -123,23 +134,33 @@
                ERPReceiveModel receiveModel = new ERPReceiveModel()
                {
                    Code = receiveOrder.ReceiveOrderNo,
                    CompanyId = "",
                    CompanyId = "HATC",
                    DeliveryCode = receiveOrder.DeliveryCode,
                    CustomerId = receiveOrder.CustomerId,
                    CreatorId = receiveOrder.Creater,
                    EndDate = receiveOrder.CreateDate,
                    ReceiveDate = receiveOrder.CreateDate,
                    PlantsId = "",
                    CreatorId = "TC20082",//测试 receiveOrder.Creater
                    EntDate = receiveOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
                    ReceiveDate = receiveOrder.ReceiveDate.ToString("yyyy-MM-dd HH:mm:ss"),
                    PlantsId = "HA02",
                    SuppliersId = receiveOrder.SuppliersId,
                    Type = "PO",
                    Type = Enum.GetName(typeof(ReceiveOrderTypeEnum),receiveOrder.ReceiveOrderType),
                    UniqueTag = receiveOrder.ReceiveOrderId.ToString(),
                    WarehouseCode = warehouse.WarehouseCode,
                    Way = 1,
                    Details = recevieOrderDetails
                };
                string response = _invokeERPService.InvokeMatReceiveApi(receiveModel);
                //收货推送至ERP
                string Content = _invokeERPService.InvokeMatReceiveApi(receiveModel);
                ErpRequestContent erpRequest=Content.DeserializeObject<ErpRequestContent>();
                if (erpRequest.res==0)
                {
                    return WebResponseContent.Instance.Error(erpRequest.Data);
                }
                receiveOrder.ReceiveOrderStatus = ReceiveOrderStatusEnum.Completed.ObjToInt();
                receiveOrder.UploadStatus = WhetherEnum.True.ObjToInt();
                //更新收货单信息
                _unitOfWorkManage.BeginTran();
                BaseDal.UpdateData(receiveOrder);
                _unitOfWorkManage.CommitTran();
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
@@ -174,7 +195,11 @@
            }
            return content;
        }
        /// <summary>
        /// åˆ›å»ºå…¥åº“单
        /// </summary>
        /// <param name="receiveOrderId">收货单编号</param>
        /// <returns></returns>
        public WebResponseContent CreateInboundOrder(int receiveOrderId)
        {
            try
@@ -206,6 +231,7 @@
                Dt_InboundOrder inboundOrder = new Dt_InboundOrder()
                {
                    InboundOrderNo="TestInboundNo1",//测试
                    UpperOrderNo = receiveOrder.ReceiveOrderNo,
                    CreateType = OrderCreateTypeEnum.UpperSystemPush.ObjToInt(),
                    OrderStatus = InOrderStatusEnum.未开始.ObjToInt(),
@@ -311,20 +337,23 @@
                        if (materielInfo.IsCheck == WhetherEnum.True)
                        {
                            Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
                            checkOrder.CheckOrderNo = "TestCheckNo11";//测试
                            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);
                        }
                    }
                    receiveOrder = new Dt_ReceiveOrder()
                    {
                        ReceiveOrderNo= "TestReceiveOrderNo11",//测试
                        ReceiveOrderStatus = ReceiveOrderStatusEnum.Receiving.ObjToInt(),
                        CustomerId = "",
                        DeliveryCode = "",
                        DeliveryCode = "/",
                        ReceiveDate = DateTime.Now,
                        ReceiveOrderType = ReceiveOrderTypeEnum.PO.ObjToInt(),
                        SuppliersId = purchaseOrder.SupplierCode,
@@ -371,12 +400,14 @@
                        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);
                        }
                    }
@@ -395,11 +426,13 @@
                    Db.InsertNav(receiveOrder).Include(x => x.Details).ExecuteCommand();
                    checkOrders.ForEach(x => x.ReceiveOrderNo = receiveOrder.ReceiveOrderNo);
                }
                if (checkOrders.Count > 0)
                {
                _checkOrderRepository.AddData(checkOrders);
                }
                _inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder);
                _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrder.Details);
                _unitOfWorkManage.CommitTran();
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)