From fb745c842df36edc5101291a7f239c11c97bcc2f Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期四, 11 九月 2025 16:46:33 +0800 Subject: [PATCH] 最新代码更新,BST,MES部分 --- 项目代码/WMS/WMSServices/WIDESEA_InboundService/PurchaseBSTOrderService.cs | 65 +++++++++++++++++++++++++------- 1 files changed, 51 insertions(+), 14 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/PurchaseBSTOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/PurchaseBSTOrderService.cs" index 0c37854..b5470ba 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/PurchaseBSTOrderService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/PurchaseBSTOrderService.cs" @@ -15,7 +15,7 @@ using WIDESEA_Core.Enums; using WIDESEA_Core.Helper; using WIDESEA_DTO; -using WIDESEA_DTO.Basic; +using WIDESEA_DTO.ERP; using WIDESEA_IBasicRepository; using WIDESEA_IInboundRepository; using WIDESEA_IInboundService; @@ -67,6 +67,8 @@ List<Dt_PurchaseBSTOrder> purchaseAddBSTOrders = new List<Dt_PurchaseBSTOrder>(); List<Dt_PurchaseBSTOrder> purchaseUpdateBSTOrders = new List<Dt_PurchaseBSTOrder>(); List<Dt_PurchaseBSTOrder> purchaseDeleteBSTOrders = new List<Dt_PurchaseBSTOrder>(); + List<Dt_PurchaseBSTOrderDetail> purchaseBSTOrderDetailsDel = new List<Dt_PurchaseBSTOrderDetail>(); + //鏂板 if (bSTPurchaseOrderDTOsAdd.Count>0) { //鍒ゆ柇渚涘簲鍟� @@ -83,41 +85,73 @@ } //楠岃瘉鏉$爜閲嶅 List<Dt_PurchaseBSTOrderDetail> purchaseBSTOrderDetails = OldpurchaseBSTOrders.SelectMany(x => x.Details).ToList(); - List<PaperReceiptDetailsItem> paperReceiptDetailsItems = bSTPurchaseOrderDTOsAdd.SelectMany(x => x.PaperReceiptDetails).ToList(); - var ExistDetail = purchaseBSTOrderDetails.FirstOrDefault(x => paperReceiptDetailsItems.Select(x => x.Barcode).Contains(x.Barcode)); + List<PaperReceiptDetailsItem> paperReceiptDetailsItemsAdd = bSTPurchaseOrderDTOsAdd.SelectMany(x => x.PaperReceiptDetails).ToList(); + var ExistDetail = purchaseBSTOrderDetails.FirstOrDefault(x => paperReceiptDetailsItemsAdd.Select(x => x.Barcode).Contains(x.Barcode)); if (ExistDetail!=null) { return content.Error($"閲囪喘鏉$爜{nameof(ExistDetail.Barcode)}:{ExistDetail.Barcode}宸插瓨鍦�"); } //鍒ゆ柇鏄惁瀛樺湪鐗╂枡 - PaperReceiptDetailsItem? paperReceiptDetailsItem = paperReceiptDetailsItems.FirstOrDefault(x => !materielInfos.Select(x => x.MaterialSourceId).Contains(x.MaterialId)); + PaperReceiptDetailsItem? paperReceiptDetailsItem = paperReceiptDetailsItemsAdd.FirstOrDefault(x => !materielInfos.Select(x => x.MaterialSourceId).Contains(x.MaterialId)); if (paperReceiptDetailsItem!=null) { - return content.Error($"閲囪喘鏉$爜{nameof(ExistDetail.Barcode)}:{ExistDetail.Barcode}鐗╂枡Id:{paperReceiptDetailsItem.MaterialId}涓嶅瓨鍦�"); + return content.Error($"閲囪喘鏉$爜{nameof(paperReceiptDetailsItem.Barcode)}:{paperReceiptDetailsItem.Barcode}鐗╂枡Id:{paperReceiptDetailsItem.MaterialId}涓嶅瓨鍦�"); } foreach (var item in bSTPurchaseOrderDTOsAdd) { + if (bSTPurchaseOrderDTOsUpdate.FirstOrDefault(x=>x.PaperReceiptId== item.PaperReceiptId)!=null) + { + continue; + } List<Dt_PurchaseBSTOrderDetail> bSTOrderDetails = item.PaperReceiptDetails.Select(x=>_mapper.Map<Dt_PurchaseBSTOrderDetail>(x)).ToList(); Dt_PurchaseBSTOrder purchaseBSTOrder = _mapper.Map<Dt_PurchaseBSTOrder>(item); purchaseBSTOrder.Details = bSTOrderDetails; purchaseAddBSTOrders.Add(purchaseBSTOrder); } } - + //鏇存柊 if (bSTPurchaseOrderDTOsUpdate.Count > 0) { - List<Dt_PurchaseBSTOrder>? ExistUpdatePurchase = OldpurchaseBSTOrders.Where(x => bSTPurchaseOrderDTOsUpdate.Select(x => x.PaperReceiptId).Contains(x.PaperReceiptId)).ToList(); - //鏇存柊鐨勫崟鎹槸鍚﹀瓨鍦� - if (ExistUpdatePurchase.Count == bSTPurchaseOrderDTOsUpdate.Count) - { + //瀛樺湪鐨勯噰璐崟 + List<Dt_PurchaseBSTOrder>? ExistpurchaseBSTOrders = OldpurchaseBSTOrders.Where(x => bSTPurchaseOrderDTOsUpdate.Select(x => x.PaperReceiptId).Contains(x.PaperReceiptId)).Distinct().ToList(); - } - else + foreach (var item in bSTPurchaseOrderDTOsUpdate) { - BSTPurchaseOrderDTO? bSTPurchaseOrderDTO = bSTPurchaseOrderDTOsUpdate.FirstOrDefault(x => !ExistUpdatePurchase.Select(x => x.PaperReceiptId).Contains(x.PaperReceiptId)); - return content.Error($"鏈壘鍒版寚瀹氶噰璐敹璐у崟{nameof(BSTPurchaseOrderDTO.PaperReceiptId)}:{bSTPurchaseOrderDTO?.PaperReceiptId}"); + Dt_PurchaseBSTOrder? purchaseBSTOrderUpdate = ExistpurchaseBSTOrders.FirstOrDefault(x => x.PaperReceiptId == item.PaperReceiptId); + //濡傛灉璁㈠崟宸插瓨鍦ㄥ垯杩涜鏇存敼 + if (purchaseBSTOrderUpdate != null) + { + if (purchaseBSTOrderUpdate.PurchaseOrderStatus!=InOrderStatusEnum.鏈紑濮�.ObjToInt()) + { + return content.Error($"閲囪喘{nameof(purchaseBSTOrderUpdate.PaperReceiptId)}:{purchaseBSTOrderUpdate.PaperReceiptId}璁㈠崟鍏ュ簱涓紝涓嶅彲鏇存敼"); + } + purchaseBSTOrderDetailsDel.AddRange(purchaseBSTOrderUpdate.Details); + + //鏇存柊 + List<Dt_PurchaseBSTOrderDetail> bSTOrderDetails = item.PaperReceiptDetails.Select(x => _mapper.Map<Dt_PurchaseBSTOrderDetail>(x)).ToList(); + bSTOrderDetails.ForEach(x => + { + x.PurchaseBSTOrderId = purchaseBSTOrderUpdate.Id; + }); + purchaseBSTOrderUpdate.Details = bSTOrderDetails; + purchaseBSTOrderUpdate.PaperReceiptId = item.PaperReceiptId; + purchaseBSTOrderUpdate.PaperReceiptNo = item.PaperReceiptNo; + purchaseBSTOrderUpdate.VendNo = item.VendNo; + purchaseBSTOrderUpdate.ReceiptDate = DateTimeOffset.FromUnixTimeMilliseconds(item.ReceiptDate).DateTime; + purchaseBSTOrderUpdate.TotalProcurementLength = item.TotalProcurementLength; + purchaseUpdateBSTOrders.Add(purchaseBSTOrderUpdate); + } + else //濡傛灉涓嶅瓨鍦ㄥ垯杩涜鏂板 + { + List<Dt_PurchaseBSTOrderDetail> bSTOrderDetails = item.PaperReceiptDetails.Select(x => _mapper.Map<Dt_PurchaseBSTOrderDetail>(x)).ToList(); + Dt_PurchaseBSTOrder purchaseBSTOrder = _mapper.Map<Dt_PurchaseBSTOrder>(item); + purchaseBSTOrder.Details = bSTOrderDetails; + purchaseAddBSTOrders.Add(purchaseBSTOrder); + } } + } + //鍒犻櫎 if (bSTPurchaseOrderDTOsDel.Count>0) { List<Dt_PurchaseBSTOrder>? ExistDelPurchase = OldpurchaseBSTOrders.Where(x => bSTPurchaseOrderDTOsDel.Select(x => x.PaperReceiptId).Contains(x.PaperReceiptId)).ToList(); @@ -132,8 +166,11 @@ return content.Error($"鏈壘鍒版寚瀹氶噰璐敹璐у崟{nameof(BSTPurchaseOrderDTO.PaperReceiptId)}:{bSTPurchaseOrderDTO?.PaperReceiptId}"); } } + //鏇存柊鏁版嵁 _unitOfWorkManage.BeginTran(); BaseDal.Db.InsertNav(purchaseAddBSTOrders).Include(x => x.Details).ExecuteCommand(); + _purchaseBSTOrderDetailRepository.DeleteData(purchaseBSTOrderDetailsDel); + BaseDal.Db.UpdateNav(purchaseUpdateBSTOrders).Include(x => x.Details).ExecuteCommand(); _unitOfWorkManage.CommitTran(); content.OK("鎺ユ敹鎴愬姛"); } -- Gitblit v1.9.3