From 57148c2264abe80bd3b472f2980104d90dad5c61 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期六, 13 九月 2025 08:35:32 +0800 Subject: [PATCH] 合并,接口优化等 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs | 70 +++++++++++++++++++++++++++++----- 1 files changed, 59 insertions(+), 11 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..bf5bd87 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; @@ -8,6 +9,7 @@ using System.Threading.Tasks; using WIDESEA_Common.CommonEnum; using WIDESEA_Common.OrderEnum; +using WIDESEA_Common.WareHouseEnum; using WIDESEA_Core; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; @@ -15,6 +17,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 +37,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 +48,8 @@ _basicRepository = basicRepository; _checkOrderRepository = checkOrderRepository; _stockRepository = stockRepository; + _supplierInfoRepository = supplierInfoRepository; + _invokeQMSService = invokeQMSService; } private static object _rowNoLocker = new object(); @@ -54,6 +63,7 @@ { try { + //鑾峰彇鏀惰揣鍗� Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == orderNo).Includes(x => x.Details).First(); if (receiveOrder == null) { @@ -64,10 +74,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) @@ -89,6 +99,7 @@ { return WebResponseContent.Instance.Error($"搴撳瓨{stockInfo.PalletCode}涓壒娆model.LotNo}宸插瓨鍦�"); } + //鏃ユ湡鏍煎紡楠岃瘉 if (model!=null) { string format = "yyyy-MM-dd"; // 鐩爣鏍煎紡 @@ -174,6 +185,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; @@ -265,8 +277,8 @@ ReceivedQuantity = model.Quantity, MaterielCode = model.MaterielCode, LotNo = model.LotNo, - MaterielName=materielInfo.MaterielName, - MaterielSpec=materielInfo.MaterielSpec, + MaterielName = materielInfo.MaterielName, + MaterielSpec = materielInfo.MaterielSpec, ReceiveOrderId = receiveOrder.ReceiveOrderId, PurchaseOrderDetailRowNo = purchaseOrderDetail.RowNo, IfInspection = materielInfo.IsCheck.ObjToInt(), @@ -274,7 +286,8 @@ PriceInTax = 0, TaxRate = "", RowNo = rowNo + 1, - Unit = purchaseOrderDetail.Unit + Unit = purchaseOrderDetail.Unit, + IsCheckOk = WhetherEnum.False.ObjToInt() }; if (receiveOrder.ReceiveOrderStatus == ReceiveOrderStatusEnum.NotStarted.ObjToInt()) { @@ -320,10 +333,12 @@ } _inboundRepository.ReceiveOrderRepository.UpdateData(receiveOrder); _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrderDetail); - #region 娉ㄩ噴 - if (materielInfo.IsCheck == WhetherEnum.True) + //鐗╂枡妫�楠屼笂浼� + if (materielInfo.IsCheck == WhetherEnum.True && (warehouse.WarehouseCode != WarehouseEnum.HA152.ToString() && warehouse.WarehouseCode != WarehouseEnum.HA58.ToString())) { + //鏀惰揣缁撴灉涓婃姤 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 +348,42 @@ 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); + } + //QMS鍥炰紶缁撴灉 + 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