From 733c975cd8647f6d006736f1863bad731e32e6fb Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期日, 26 十月 2025 17:15:52 +0800
Subject: [PATCH] 上传最新代码,ERP接口,MES接口优化,WMS业务优化等
---
项目代码/WMS/WMSServices/WIDESEA_InboundService/PurchaseBSTOrderService.cs | 73 +++++++++++++++++++++++++++++-------
1 files changed, 59 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..369453e 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,81 @@
}
//楠岃瘉鏉$爜閲嶅
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);
+ bSTOrderDetails.ForEach(x =>
+ {
+ x.MaterielName = materielInfos.FirstOrDefault(t => t.MaterialSourceId == x.MaterialId)?.MaterielName;
+ });
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);
+ bSTOrderDetails.ForEach(x =>
+ {
+ x.MaterielName = materielInfos.FirstOrDefault(t => t.MaterialSourceId == x.MaterialId)?.MaterielName;
+ });
+ 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 +174,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