From f42e4c5c9f91d983ae2e87d3b6b600d1c8e54087 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期一, 03 十一月 2025 15:07:34 +0800
Subject: [PATCH] 优化盘点
---
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs | 49 ++++++++++++++++++++++++++++++++-----------------
1 files changed, 32 insertions(+), 17 deletions(-)
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs"
index 44d2925..f61e1a2 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs"
@@ -60,6 +60,11 @@
_materielInfoService = materielInfoService;
_locationInfoService = locationInfoService;
}
+ public override WebResponseContent UpdateData(SaveModel saveModel)
+ {
+ return base.UpdateData(saveModel);
+ }
+
#region 鍒涘缓鍑哄簱鍗�
/// <summary>
/// 鍒涘缓鍑哄簱鍗�
@@ -350,7 +355,7 @@
#region 鏁翠欢浼樺厛鍒嗛厤澶т欢搴�,璁″垝搴撳瓨,娣诲姞鍑哄簱浠诲姟
foreach (var item in dt_InventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ))
{
- if (xs <= 0) break;
+ if (xs <= 0 || item.AvailableQuantity <= 0) break;
decimal outqty = 0;
while (item.AvailableQuantity > 0 && xs > 0)
{
@@ -431,7 +436,9 @@
if (orderDetailLK != null)
{
#region 娣诲姞鍑哄簱浠诲姟銆佷慨鏀瑰簱瀛樹俊鎭�
- Dt_InventoryInfo inventoryInfo = dt_InventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).First();
+ Dt_InventoryInfo? inventoryInfo = dt_InventoryInfos.FirstOrDefault(x => x.WarehouseCode == WareCodeLK);
+ if (inventoryInfo == null)
+ throw new Exception($"鏈壘鍒扮墿鏂欑紪鍙枫�恵detail.goods_no}銆戠墿鏂欐壒娆°�恵detail.batch_num}銆戝湪绔嬪簱涓殑搴撳瓨淇℃伅锛涙墍闇�鏁伴噺銆恵orderDetailLK.Order_qty}銆戣琛ヨ揣");
inventoryInfo.AvailableQuantity -= orderDetailLK.Order_qty;
inventoryInfo.OutboundQuantity += orderDetailLK.Order_qty;
Dt_SupplyTask supplyTask = new Dt_SupplyTask()
@@ -515,7 +522,7 @@
{
//鎵惧簱瀛樻壒娆′俊鎭�
Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First();
- var Qty = Math.Abs(inventory_Batch.StockQuantity - inventory_Batch.SupplyQuantity);
+ var Qty = Math.Abs(inventory_Batch.SupplyQuantity);
if (Qty != item.order_qty) throw new Exception($"鐩樹簭鍑哄簱鍗曘�恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑鐩樹簭鏁伴噺鏈夎");
//鎵炬墍鏈夊簱瀛�
List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList();
@@ -539,7 +546,7 @@
Creater = App.User.UserName,
LocationCode = inventoryInfo.LocationCode,
OrderNo = order.order_no,
- StockQuantity = Math.Abs(inventoryInfo.StockQuantity - inventoryInfo.SupplyQuantity),
+ StockQuantity = Math.Abs(inventoryInfo.SupplyQuantity),
SupplyQuantity = 0,
Remark = "鐩樹簭鍏ュ簱"
};
@@ -547,11 +554,13 @@
supplyTask_Hties.Add(supplyTask_Hty);
}
#endregion
- inventoryInfo.StockQuantity = inventoryInfo.SupplyQuantity;
+ inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity;
+ inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity;
inventoryInfo.SupplyQuantity = 0;
inventoryInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
}
- inventory_Batch.StockQuantity = inventory_Batch.SupplyQuantity;
+ inventory_Batch.StockQuantity += inventory_Batch.SupplyQuantity;
+ inventory_Batch.AvailableQuantity = inventory_Batch.StockQuantity;
inventory_Batch.SupplyQuantity = 0;
infosUp.AddRange(inventoryInfos);
batchesUp.Add(inventory_Batch);
@@ -602,17 +611,20 @@
{
//鎵惧簱瀛樻壒娆′俊鎭�
Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First();
- var Qty = Math.Abs(inventory_Batch.StockQuantity - inventory_Batch.SupplyQuantity);
+ var Qty = Math.Abs(inventory_Batch.SupplyQuantity);
if (Qty != item.order_qty) throw new Exception($"鐩樹簭鍑哄簱鍗曘�恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑鐩樹簭鏁伴噺鏈夎");
//鎵炬墍鏈夊簱瀛�
List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList();
//鑾峰彇绔嬪簱鐩樼偣宸紓鏁�.銆傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘��
var inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).First();
- var LkQty = Math.Abs(inventoryLK.StockQuantity - inventoryLK.SupplyQuantity);
+ //var LkQty = Math.Abs(inventoryLK.SupplyQuantity);
+ var LkQty = inventoryLK.SupplyQuantity;
//鑾峰彇澶т欢搴撶洏鐐瑰樊寮傛暟
var inventoryDJ = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList();
- var DJQty = Math.Abs(inventoryDJ.Sum(x => x.StockQuantity) - inventoryDJ.Sum(x => x.SupplyQuantity));
- if (LkQty + DJQty != Qty) throw new Exception($"銆恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑鐗╂枡淇℃伅涓庣墿鏂欐壒娆′俊鎭洏鐩堟暟閲忎笉绗�");
+ //var DJQty = Math.Abs(inventoryDJ.Sum(x => x.SupplyQuantity));
+ var DJQty = inventoryDJ.Sum(x => x.SupplyQuantity);
+ var count = Math.Abs(LkQty + DJQty);
+ if (count != Qty) throw new Exception($"銆恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑鐗╂枡淇℃伅涓庣墿鏂欐壒娆′俊鎭洏浜忔暟閲忎笉绗�");
if (LkQty == 0)//绔嬪簱鏃犲樊寮�
{
#region 搴撳瓨銆佸簱瀛樻壒娆″钩璐�
@@ -636,7 +648,7 @@
Creater = App.User.UserName,
LocationCode = inventoryInfo.LocationCode,
OrderNo = order.order_no,
- StockQuantity = Math.Abs(inventoryInfo.StockQuantity - inventoryInfo.SupplyQuantity),
+ StockQuantity = Math.Abs(inventoryInfo.SupplyQuantity),
SupplyQuantity = 0,
Remark = "鐩樹簭鍏ュ簱"
};
@@ -644,12 +656,14 @@
supplyTask_Hties.Add(supplyTask_Hty);
}
#endregion
- inventoryInfo.StockQuantity = inventoryInfo.SupplyQuantity;
+ inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity;
+ inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity;
inventoryInfo.SupplyQuantity = 0;
inventoryInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
}
//_inventoryInfoService.UpdateData(inventoryInfos);
- inventory_Batch.StockQuantity = inventory_Batch.SupplyQuantity;
+ inventory_Batch.StockQuantity += inventory_Batch.SupplyQuantity;
+ inventory_Batch.AvailableQuantity = inventory_Batch.StockQuantity;
inventory_Batch.SupplyQuantity = 0;
//_inventory_BatchServices.UpdateData(inventory_Batch);
infosUp.AddRange(inventoryInfos);
@@ -707,7 +721,7 @@
Creater = App.User.UserName,
LocationCode = inventoryInfo.LocationCode,
OrderNo = order.order_no,
- StockQuantity = Math.Abs(inventoryInfo.StockQuantity - inventoryInfo.SupplyQuantity),
+ StockQuantity = Math.Abs(inventoryInfo.SupplyQuantity),
SupplyQuantity = 0,
Remark = "鐩樹簭鍑哄簱"
};
@@ -715,7 +729,8 @@
supplyTask_Hties.Add(supplyTask_Hty);
}
#endregion
- inventoryInfo.StockQuantity = inventoryInfo.SupplyQuantity;
+ inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity;
+ inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity;
inventoryInfo.SupplyQuantity = 0;
inventoryInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
}
@@ -752,7 +767,7 @@
deliveryOrdersAdd.Add(cabinOrder);
}
#endregion
-
+ //杩欓噷
#region 鍒涘缓绔嬪簱鐩樼偣鍗�
var entityOrder = new Dt_DeliveryOrder
{
@@ -766,7 +781,7 @@
Details = order.details.Select(d => new Dt_DeliveryOrderDetail
{
Goods_no = d.goods_no,
- Order_qty = LkQty,
+ Order_qty = Math.Abs(LkQty), //缁欎笅娓竁CS鐨勬槸瑕佹暣鏁�
Batch_num = d.batch_num,
Exp_date = d.exp_date,
Reservoirarea = WareCodeLK,
--
Gitblit v1.9.3