From 2b25f973bb6d72ce6971d6f9c3cdccf51b7962ab Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期六, 06 九月 2025 14:27:08 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhiHuiQiCe/LongDeLiLiKu --- 项目代码/WMS/WMSServices/WIDESEA_InboundService/PurchaseBSTOrderService.cs | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 48 insertions(+), 2 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 9d625d1..0c37854 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" @@ -6,7 +6,9 @@ using System.Text; using System.Threading.Tasks; using WIDESEA_BasicRepository; +using WIDESEA_Common.MaterielEnum; using WIDESEA_Common.OrderEnum; +using WIDESEA_Common.WareHouseEnum; using WIDESEA_Core; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; @@ -57,21 +59,47 @@ List<BSTPurchaseOrderDTO> bSTPurchaseOrderDTOsUpdate = bSTPurchaseOrderDTOs.Where(x => x.Way == 2).ToList(); //鍒犻櫎 List<BSTPurchaseOrderDTO> bSTPurchaseOrderDTOsDel = bSTPurchaseOrderDTOs.Where(x => x.Way == 3).ToList(); - + //鑾峰彇鎵�鏈夌墿鏂� + List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x => x.WarehouseId == WarehouseEnum.LLDYL.ObjToInt() && x.MaterielInvOrgId == MaterielInvOrgEnum.鑰佸巶.ObjToInt() && x.MaterialSourceId != 0); + //鑾峰彇鎵�鏈変緵搴斿晢 + List<Dt_SupplierInfo> supplierInfos = _basicRepository.SupplierInfoRepository.QueryData(x => x.InvOrgId == MaterielInvOrgEnum.鑰佸巶.ObjToInt()); + List<Dt_PurchaseBSTOrder> purchaseAddBSTOrders = new List<Dt_PurchaseBSTOrder>(); List<Dt_PurchaseBSTOrder> purchaseUpdateBSTOrders = new List<Dt_PurchaseBSTOrder>(); List<Dt_PurchaseBSTOrder> purchaseDeleteBSTOrders = new List<Dt_PurchaseBSTOrder>(); if (bSTPurchaseOrderDTOsAdd.Count>0) { - //鍒ゆ柇閲嶅鎻掑叆 + //鍒ゆ柇渚涘簲鍟� + BSTPurchaseOrderDTO? bSTPurchaseOrderDTO = bSTPurchaseOrderDTOsAdd.FirstOrDefault(x => !supplierInfos.Select(x=>x.SupplierCode).Contains(x.VendNo)); + if (bSTPurchaseOrderDTO != null) + { + return content.Error($"閲囪喘{nameof(BSTPurchaseOrderDTO.PaperReceiptNo)}:{bSTPurchaseOrderDTO.PaperReceiptNo}渚涘簲鍟�:{bSTPurchaseOrderDTO.VendNo}涓嶅瓨鍦�"); + } + //鍒ゆ柇鍗曟嵁 Dt_PurchaseBSTOrder? ExistAddPurchase = OldpurchaseBSTOrders.FirstOrDefault(x => bSTPurchaseOrderDTOsAdd.Select(x => x.PaperReceiptId).Contains(x.PaperReceiptId)); if (ExistAddPurchase != null) { return content.Error($"閲囪喘鏀惰揣Id{nameof(BSTPurchaseOrderDTO.PaperReceiptId)}:{ExistAddPurchase.PaperReceiptId}宸插瓨鍦�"); } + //楠岃瘉鏉$爜閲嶅 + 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)); + if (ExistDetail!=null) + { + return content.Error($"閲囪喘鏉$爜{nameof(ExistDetail.Barcode)}:{ExistDetail.Barcode}宸插瓨鍦�"); + } + //鍒ゆ柇鏄惁瀛樺湪鐗╂枡 + PaperReceiptDetailsItem? paperReceiptDetailsItem = paperReceiptDetailsItems.FirstOrDefault(x => !materielInfos.Select(x => x.MaterialSourceId).Contains(x.MaterialId)); + if (paperReceiptDetailsItem!=null) + { + return content.Error($"閲囪喘鏉$爜{nameof(ExistDetail.Barcode)}:{ExistDetail.Barcode}鐗╂枡Id:{paperReceiptDetailsItem.MaterialId}涓嶅瓨鍦�"); + } foreach (var item in bSTPurchaseOrderDTOsAdd) { + 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); } } @@ -90,10 +118,28 @@ return content.Error($"鏈壘鍒版寚瀹氶噰璐敹璐у崟{nameof(BSTPurchaseOrderDTO.PaperReceiptId)}:{bSTPurchaseOrderDTO?.PaperReceiptId}"); } } + if (bSTPurchaseOrderDTOsDel.Count>0) + { + List<Dt_PurchaseBSTOrder>? ExistDelPurchase = OldpurchaseBSTOrders.Where(x => bSTPurchaseOrderDTOsDel.Select(x => x.PaperReceiptId).Contains(x.PaperReceiptId)).ToList(); + //鏇存柊鐨勫崟鎹槸鍚﹀瓨鍦� + if (ExistDelPurchase.Count == bSTPurchaseOrderDTOsDel.Count) + { + + } + else + { + BSTPurchaseOrderDTO? bSTPurchaseOrderDTO = bSTPurchaseOrderDTOsDel.FirstOrDefault(x => !ExistDelPurchase.Select(x => x.PaperReceiptId).Contains(x.PaperReceiptId)); + return content.Error($"鏈壘鍒版寚瀹氶噰璐敹璐у崟{nameof(BSTPurchaseOrderDTO.PaperReceiptId)}:{bSTPurchaseOrderDTO?.PaperReceiptId}"); + } + } + _unitOfWorkManage.BeginTran(); + BaseDal.Db.InsertNav(purchaseAddBSTOrders).Include(x => x.Details).ExecuteCommand(); + _unitOfWorkManage.CommitTran(); content.OK("鎺ユ敹鎴愬姛"); } catch (Exception ex) { + _unitOfWorkManage.RollbackTran(); content.Error(ex.Message); } return content; -- Gitblit v1.9.3