From ffb5bb3a68ae74ed3a1765baf946336cead3bb0d Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期一, 23 六月 2025 09:00:37 +0800
Subject: [PATCH] 货位同侧移库,干膜货位大小托分配优化,WCS任务接收优化等

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs |   54 +++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 47 insertions(+), 7 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs"
index 8486575..a5ebece 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs"
@@ -1,5 +1,6 @@
 锘�
 using AutoMapper;
+using Newtonsoft.Json;
 using System;
 using System.Collections.Generic;
 using System.Globalization;
@@ -15,6 +16,9 @@
 using WIDESEA_Core.Helper;
 using WIDESEA_DTO;
 using WIDESEA_DTO.Basic;
+using WIDESEA_DTO.QMS;
+using WIDESEA_External.Model;
+using WIDESEA_External.QMSService;
 using WIDESEA_IBasicRepository;
 using WIDESEA_ICheckRepository;
 using WIDESEA_IInboundRepository;
@@ -32,8 +36,10 @@
         private readonly IBasicRepository _basicRepository;
         private readonly ICheckOrderRepository _checkOrderRepository;
         private readonly IStockRepository _stockRepository;
+        private readonly ISupplierInfoRepository _supplierInfoRepository;
+        private readonly IInvokeQMSService _invokeQMSService;
 
-        public ReceiveOrderDetailService(IReceiveOrderDetailRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IInboundRepository inboundRepository, IBasicRepository basicRepository, ICheckOrderRepository checkOrderRepository, IStockRepository stockRepository) : base(BaseDal)
+        public ReceiveOrderDetailService(IReceiveOrderDetailRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IInboundRepository inboundRepository, IBasicRepository basicRepository, ICheckOrderRepository checkOrderRepository, IStockRepository stockRepository,ISupplierInfoRepository supplierInfoRepository,IInvokeQMSService invokeQMSService) : base(BaseDal)
         {
             _mapper = mapper;
             _unitOfWorkManage = unitOfWorkManage;
@@ -41,6 +47,8 @@
             _basicRepository = basicRepository;
             _checkOrderRepository = checkOrderRepository;
             _stockRepository = stockRepository;
+            _supplierInfoRepository = supplierInfoRepository;
+            _invokeQMSService = invokeQMSService;
         }
 
         private static object _rowNoLocker = new object();
@@ -64,10 +72,10 @@
                 {
                     return WebResponseContent.Instance.Error($"璇ュ崟鎹凡鏀惰揣瀹屾垚");
                 }
-
+                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == receiveOrder.WarehouseId);
                 MatSerNumAnalysisModel model = CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, serNum);
-                //鏀惰揣澧炲姞鎵规鍗℃帶
-                //鏌ヨ鏀惰揣鏄庣粏鏄惁鏈夊瓨鍦ㄥ悓涓�涓壒娆�
+                Dt_SupplierInfo supplierInfo = _supplierInfoRepository.QueryFirst(x => x.SupplierCode == receiveOrder.SuppliersId);
+                //鏀惰揣澧炲姞鎵规鍗℃帶,鏌ヨ鏀惰揣鏄庣粏鏄惁鏈夊瓨鍦ㄥ悓涓�涓壒娆�
                 Dt_ReceiveOrderDetail receiveOrderDetailOld = _inboundRepository.ReceiveOrderDetailRepository.QueryFirst(x => x.LotNo == model.LotNo && x.MaterielCode == model.MaterielCode);
                 Dt_ReceiveOrder? receiveOrderOld = null;
                 if (receiveOrderDetailOld!=null)
@@ -174,6 +182,7 @@
                             if (materielInfo.IsCheck == WhetherEnum.True)
                             {
                                 Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
+                                checkOrder.OrderType = CheckTypeEnum.ReceiveCheck.ObjToInt();
                                 checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
                                 checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
                                 checkOrder.ReceiveDetailRowNo = receiveOrderDetail.RowNo;
@@ -320,10 +329,10 @@
                         }
                         _inboundRepository.ReceiveOrderRepository.UpdateData(receiveOrder);
                         _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrderDetail);
-                        #region 娉ㄩ噴
                         if (materielInfo.IsCheck == WhetherEnum.True)
                         {
                             Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
+                            checkOrder.OrderType = CheckTypeEnum.ReceiveCheck.ObjToInt();
                             checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
                             checkOrder.Result = CheckAcceptEnum.NotCheckAccept.ToString();
                             checkOrder.QualifiedQuantity = 0;
@@ -333,9 +342,40 @@
                             checkOrder.MaterielSpec = materielInfo.MaterielSpec;
                             checkOrder.ReturnQuantity = 0;
                             checkOrder.DefectedQuantity = 0;
-                            _checkOrderRepository.AddData(checkOrder);
+                            int id = _checkOrderRepository.AddData(checkOrder);
+                            QMSReceiveCheckModel qMSReceiveCheck = new QMSReceiveCheckModel()
+                            {
+                                UniqueTag = id.ToString(),
+                                EntryNumber = receiveOrder.ReceiveOrderNo,
+                                MaterialCode = receiveOrderDetail.MaterielCode,
+                                MaterialName = receiveOrderDetail.MaterielName,
+                                Quantity = (decimal)receiveOrderDetail.ReceivedQuantity,
+                                SupplierCode = receiveOrder.SuppliersId,
+                                SupplierName = supplierInfo.SupplierName,
+                                BatchNumber = receiveOrderDetail.LotNo,
+                                DeliveryNumber = receiveOrder.DeliveryCode,
+                                PurchaseNumber = receiveOrderDetail.PurchaseOrderNo,
+                                RowNumber = receiveOrderDetail.RowNo,
+                                WarehouseCode = warehouse.WarehouseCode,
+                                ReceiptDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                                Remark = " "
+                            };
+                            //璋冪敤QMS鏉ユ枡妫�楠屾帴鍙�
+                            string response = _invokeQMSService.InvokeReceiveCheckApi(qMSReceiveCheck);
+                            MesResponseContent mesResponseContent = response.DeserializeObject<MesResponseContent>();
+                            if (!mesResponseContent.BSucc)
+                            {
+                                throw new Exception(mesResponseContent.StrMsg);
+                            }
+                            ReceiveResultDTO? receiveResult = JsonConvert.DeserializeObject<ReceiveResultDTO>(mesResponseContent.Content.ToString());
+                            if (receiveResult == null)
+                            {
+                                throw new Exception("鎺ユ敹QMS缁撴灉澶辫触");
+                            }
+                            Dt_CheckOrder _CheckOrder = _checkOrderRepository.QueryFirst(x => x.CheckOrderId == id);
+                            _CheckOrder.CheckOrderNo = receiveResult.InspectionNumber;
+                            _checkOrderRepository.UpdateData(_CheckOrder);
                         }
-                        #endregion
                         _unitOfWorkManage.CommitTran();
                     }
 

--
Gitblit v1.9.3