From d6ce83b1f1bb87b88c11df1e0fe96169de5b571f Mon Sep 17 00:00:00 2001
From: hutongqing <hutongqing@hnkhzn.com>
Date: 星期一, 16 十二月 2024 16:31:28 +0800
Subject: [PATCH] ERP接口调用开发

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs |   77 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 76 insertions(+), 1 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs"
index ab95005..bca3a85 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs"
@@ -8,6 +8,9 @@
 using WIDESEA_Core;
 using WIDESEA_Core.BaseServices;
 using WIDESEA_Core.Helper;
+using WIDESEA_External.ERPService;
+using WIDESEA_External.Model;
+using WIDESEA_IBasicRepository;
 using WIDESEA_ICheckRepository;
 using WIDESEA_IInboundRepository;
 using WIDESEA_IInboundService;
@@ -19,11 +22,15 @@
     {
         private readonly ICheckOrderRepository _checkOrderRepository;
         private readonly IInboundRepository _inboundRepository;
+        private readonly IBasicRepository _basicRepository;
+        private readonly IInvokeERPService _invokeERPService;
 
-        public ReceiveOrderService(IReceiveOrderRepository BaseDal, ICheckOrderRepository checkOrderRepository, IInboundRepository inboundRepository) : base(BaseDal)
+        public ReceiveOrderService(IReceiveOrderRepository BaseDal, ICheckOrderRepository checkOrderRepository, IInboundRepository inboundRepository, IBasicRepository basicRepository, IInvokeERPService invokeERPService) : base(BaseDal)
         {
             _checkOrderRepository = checkOrderRepository;
             _inboundRepository = inboundRepository;
+            _basicRepository = basicRepository;
+            _invokeERPService = invokeERPService;
         }
 
         public override WebResponseContent AddData(SaveModel saveModel)
@@ -65,6 +72,74 @@
             return base.AddData(saveModel);
         }
 
+        public WebResponseContent FeedbackReceiveOrder(int orderId)
+        {
+            try
+            {
+                Dt_ReceiveOrder receiveOrder = BaseDal.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderId == orderId).Includes(x => x.Details).First();
+                if (receiveOrder == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒版敹璐у崟");
+                }
+                if (receiveOrder.Details == null || receiveOrder.Details.Count == 0)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒版敹璐у崟鏄庣粏");
+                }
+
+                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == receiveOrder.WarehouseId);
+                if (warehouse == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒颁粨搴撲俊鎭�");
+                }
+
+                List<RecevieOrderDetailModel> recevieOrderDetails = new List<RecevieOrderDetailModel>();
+                foreach (var item in receiveOrder.Details)
+                {
+                    RecevieOrderDetailModel recevieOrderDetail = new RecevieOrderDetailModel()
+                    {
+                        Currcode = "",
+                        IfInspection = item.IfInspection,
+                        Lotno = item.LotNo,
+                        MaterialsId = item.MaterielCode,
+                        PriceInTax = 0,
+                        PurchaseOrderCode = item.PurchaseOrderNo,
+                        PurchaseOrderSerno = item.PurchaseOrderDetailRowNo,
+                        QtyReceived = item.ReceivedQuantity,
+                        Serno = item.RowNo,
+                        Supplotno = "",
+                        Taxrate = ""
+                    };
+                    recevieOrderDetails.Add(recevieOrderDetail);
+                }
+
+                ERPReceiveModel receiveModel = new ERPReceiveModel()
+                {
+                    Code = receiveOrder.ReceiveOrderNo,
+                    CompanyId = "",
+                    DeliveryCode = receiveOrder.DeliveryCode,
+                    CustomerId = receiveOrder.CustomerId,
+                    CreatorId = receiveOrder.CustomerId,
+                    EndDate = receiveOrder.CreateDate,
+                    ReceiveDate = receiveOrder.CreateDate,
+                    PlantsId = "",
+                    SuppliersId = receiveOrder.SuppliersId,
+                    Type = "PO",
+                    UniqueTag = receiveOrder.ReceiveOrderId.ToString(),
+                    WarehouseCode = warehouse.WarehouseCode,
+                    Way = 1,
+                    Details = recevieOrderDetails
+                };
+
+                string response = _invokeERPService.InvokeMatReceiveApi(receiveModel);
+
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
         public WebResponseContent CreateInboundOrder(int receiveOrderId)
         {
             try

--
Gitblit v1.9.3