From 208ba32323f73ade277e230b78fde2db04f860ac Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期日, 02 十一月 2025 17:25:54 +0800
Subject: [PATCH] 优化处理出库单逻辑
---
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Check.cs | 40 +++++++++++++++++++++++++---------------
1 files changed, 25 insertions(+), 15 deletions(-)
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Check.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Check.cs"
index bb3deea..996a1fc 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Check.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Check.cs"
@@ -44,14 +44,21 @@
{
foreach (var items in inventoryInfos.GroupBy(x => x.WarehouseCode))
{
- Dt_DeliveryOrder deliveryOrder = new Dt_DeliveryOrder()
+ Dt_DeliveryOrder? deliveryOrder = deliveryOrders.Where(x => x.Warehouse_no == items.Key).FirstOrDefault();
+ bool isNull = false;
+ if (deliveryOrder == null)
{
- Out_no = item.MaterielCode + "_" + item.BatchNo,
- Out_type = "20",
- OutStatus = "鏂板缓",
- Warehouse_no = items.Key,
- Details = new List<Dt_DeliveryOrderDetail>()
- };
+ isNull = true;
+ deliveryOrder = new Dt_DeliveryOrder()
+ {
+ //Out_no = item.MaterielCode + "_" + item.BatchNo,
+ Out_no = $"PD{items.Key}{DateTime.Now.ToString("yyMMddHHmmss")}",
+ Out_type = "20",
+ OutStatus = "鏂板缓",
+ Warehouse_no = items.Key,
+ Details = new List<Dt_DeliveryOrderDetail>()
+ };
+ }
var Status = items.Key == "001" ? 0 : 2;//鍒ゆ柇鏄惁涓虹珛搴撳尯鍩�
Dt_DeliveryOrderDetail deliveryOrderDetail = new Dt_DeliveryOrderDetail()
{
@@ -66,7 +73,7 @@
Reservoirarea = items.Key
};
deliveryOrder.Details.Add(deliveryOrderDetail);
- deliveryOrders.Add(deliveryOrder);
+ if (isNull) deliveryOrders.Add(deliveryOrder);
#region 鍒涘缓鐩樼偣浠诲姟
foreach (var inventory in items)
{
@@ -254,15 +261,15 @@
#endregion
#region 鍒ゆ柇褰撳墠鐗╂枡鎵规鐨勭洏鐐逛换鍔℃槸鍚﹀叏閮ㄥ畬鎴�
- List<Dt_SupplyTask> supplyTasks = _supplyTaskService.Repository.QueryData(x => x.MaterielCode == supplyTask.MaterielCode && x.BatchNo == supplyTask.BatchNo && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt() && x.WarehouseCode == supplyTask.WarehouseCode).ToList();
- List<Dt_SupplyTask> supplyTasks1 = _supplyTaskService.Repository.QueryData(x => x.MaterielCode == supplyTask.MaterielCode && x.BatchNo == supplyTask.BatchNo && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt()).ToList();
+ List<Dt_SupplyTask> supplyTasks = _supplyTaskService.Repository.QueryData(x => x.MaterielCode == supplyTask.MaterielCode && x.BatchNo == supplyTask.BatchNo && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt() && x.WarehouseCode == supplyTask.WarehouseCode && x.TaskId != supplyTask.TaskId).ToList();
+ List<Dt_SupplyTask> supplyTasks1 = _supplyTaskService.Repository.QueryData(x => x.MaterielCode == supplyTask.MaterielCode && x.BatchNo == supplyTask.BatchNo && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt() && x.TaskId != supplyTask.TaskId).ToList();
Dt_Inventory_Batch inventory_Batch = new Dt_Inventory_Batch();
List<Dt_InventoryInfo> inventoryInfos = new List<Dt_InventoryInfo>();
if (supplyTasks1.Count < 1)
{
#region 鏌ユ壘搴撳瓨
- inventoryInfos = _inventoryInfoService.Repository.QueryData(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no);
- var SupplyQuantitys = inventoryInfos.Sum(x => x.SupplyQuantity);
+ inventoryInfos = _inventoryInfoService.Repository.QueryData(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no && x.Id != inventoryInfo.Id);
+ var SupplyQuantitys = inventoryInfos.Sum(x => x.SupplyQuantity) + supplyTask.SupplyQuantity;
#endregion
#region 搴撳瓨鎵规
@@ -276,6 +283,9 @@
item.SupplyQuantity = 0;
item.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
}
+ inventoryInfo.StockQuantity = supplyTask.SupplyQuantity;
+ inventoryInfo.SupplyQuantity = 0;
+ inventoryInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
}
else
{
@@ -295,19 +305,19 @@
});
_deliveryOrderDetailServices.Repository.DeleteAndMoveIntoHty(cabinOrder.Details, OperateTypeEnum.鑷姩瀹屾垚);
cabinOrder.Details = null;
- Repository.DeleteAndMoveIntoHty(cabinOrder, OperateTypeEnum.鑷姩瀹屾垚);
+ BaseDal.DeleteAndMoveIntoHty(cabinOrder, OperateTypeEnum.鑷姩瀹屾垚);
#endregion
}
else
{
- Repository.UpdateData(cabinOrder);
+ BaseDal.UpdateData(cabinOrder);
_deliveryOrderDetailServices.Repository.UpdateData(cabinOrderDetail);
}
#endregion
_inventoryInfoService.UpdateData(inventoryInfo);
_supplyTaskService.Repository.DeleteAndMoveIntoHty(supplyTask, OperateTypeEnum.鑷姩瀹屾垚);
- if (inventoryInfos.Count > 1)
+ if (inventoryInfos.Count >= 1)
{
_inventoryInfoService.UpdateData(inventoryInfos);
_inventory_BatchServices.UpdateData(inventory_Batch);
--
Gitblit v1.9.3