From 2b49f7643d15b74889d190f216630559006ed93a Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期一, 01 十二月 2025 09:48:43 +0800
Subject: [PATCH] pad和后端的优化
---
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs | 44 +++++++++++++++++++++++++++++++-------------
1 files changed, 31 insertions(+), 13 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 97ae41b..41040f9 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"
@@ -207,7 +207,7 @@
{
WebResponseContent webResponseContent = new WebResponseContent();
try
- {
+ {
Dt_Tactics tactics = _tacticsService.Repository.QueryFirst(x => x.TacticeName == "鍑哄簱绛栫暐");
#region 鐗规畩搴撴埧鍑哄簱
string WareCodeMJ = WarehouseEnum.楹荤簿搴�.ObjToInt().ToString("000");
@@ -247,6 +247,7 @@
Dt_Inventory_Batch? inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.Goods_no && x.BatchNo == item.Batch_num).FirstOrDefault();
if (inventory_Batch == null) throw new Exception($"鏈壘鍒板嚭搴撳崟鍙枫�恵entityOrder.Out_no}銆戜腑鐗╂枡缂栧彿銆恵item.Goods_no}銆戠墿鏂欐壒娆°�恵item.Batch_num}銆戠殑搴撳瓨鎵规淇℃伅");
if (inventory_Batch.AvailableQuantity < item.Order_qty) throw new Exception($"鍑哄簱鍗曞彿銆恵entityOrder.Out_no}銆戜腑鐗╂枡缂栧彿銆恵item.Goods_no}銆戠墿鏂欐壒娆°�恵item.Batch_num}銆戠殑搴撳瓨鎵规淇℃伅鍙敤鏁伴噺涓嶈冻");
+ if (inventory_Batch.SupplyQuantity > 0) throw new Exception($"鍑哄簱鍗曞彿銆恵entityOrder.Out_no}銆戜腑鐗╂枡缂栧彿銆恵item.Goods_no}銆戠墿鏂欐壒娆°�恵item.Batch_num}銆戠殑搴撳瓨鎵规淇℃伅瀛樺湪鏈畬鎴愮殑鐩樼偣浠诲姟锛屾棤娉曞垱寤哄嚭搴撳崟");
inventory_Batch.AvailableQuantity -= item.Order_qty;
inventory_Batch.OutboundQuantity += item.Order_qty;
List<Dt_InventoryInfo> dt_InventoryInfos = InventoryInfos.Where(x => x.MaterielCode == item.Goods_no && x.BatchNo == item.Batch_num).ToList();
@@ -280,6 +281,7 @@
OrderNo = entityOrder.Out_no,
StockQuantity = InventoryInfo.AvailableQuantity,
SupplyQuantity = 0,
+ Modifier= InventoryInfo.ValidityPeriod,//鏈夋晥鏈熸
Remark = "鍑哄簱"
};
supplyTasks.Add(supplyTask);
@@ -324,6 +326,7 @@
#endregion
else
{
+
string WareCodeDJ = WarehouseEnum.澶т欢搴�.ObjToInt().ToString("000");
string WareCodeLK = WarehouseEnum.绔嬪簱.ObjToInt().ToString("000");
#region 鍒涘缓澶т欢搴撱�佺珛搴撳嚭搴撳ご琛�
@@ -354,19 +357,20 @@
List<Dt_Inventory_Batch> batchesUp = new List<Dt_Inventory_Batch>();
List<Dt_InventoryInfo> inventoryInfosUp = new List<Dt_InventoryInfo>();
List<Dt_SupplyTask> supplyTasks = new List<Dt_SupplyTask>();
- List<Dt_MaterielInfo> materielInfos = _materielInfoService.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode));
- var inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode));
- var InventoryInfos = _inventoryInfoService.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode) && x.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt() && x.AvailableQuantity > 0 && (x.WarehouseCode == WareCodeDJ || x.WarehouseCode == WareCodeLK));
+ List<Dt_MaterielInfo> materielInfos = _materielInfoService.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode)).ToList();
+ var inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode)).ToList();
+ var InventoryInfos = _inventoryInfoService.Repository.QueryData(x => outorder.details.Select(e => e.goods_no).Contains(x.MaterielCode) && x.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt() && x.AvailableQuantity > 0 && (x.WarehouseCode == WareCodeDJ || x.WarehouseCode == WareCodeLK)).ToList();
foreach (var detail in outorder.details)
{
#region 鏌ヨ搴撳瓨鎵规鍜屽簱瀛�
Dt_Inventory_Batch? inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == detail.goods_no && x.BatchNo == detail.batch_num).FirstOrDefault();
if (inventory_Batch == null) throw new Exception($"鏈壘鍒板嚭搴撳崟鍙枫�恵outorder.order_no}銆戜腑鐗╂枡缂栧彿銆恵detail.goods_no}銆戠墿鏂欐壒娆°�恵detail.batch_num}銆戠殑搴撳瓨鎵规淇℃伅");
if (inventory_Batch.AvailableQuantity < detail.order_qty) throw new Exception($"鍑哄簱鍗曞彿銆恵outorder.order_no}銆戜腑鐗╂枡缂栧彿銆恵detail.goods_no}銆戠墿鏂欐壒娆°�恵detail.batch_num}銆戠殑搴撳瓨鎵规淇℃伅鍙敤鏁伴噺涓嶈冻");
+ if(inventory_Batch.SupplyQuantity>0) throw new Exception($"鍑哄簱鍗曞彿銆恵outorder.order_no}銆戜腑鐗╂枡缂栧彿銆恵detail.goods_no}銆戠墿鏂欐壒娆°�恵detail.batch_num}銆戠殑搴撳瓨鎵规淇℃伅瀛樺湪鏈畬鎴愮殑鐩樼偣浠诲姟锛屾棤娉曞垱寤哄嚭搴撳崟");
inventory_Batch.AvailableQuantity -= detail.order_qty;
inventory_Batch.OutboundQuantity += detail.order_qty;
List<Dt_InventoryInfo> dt_InventoryInfos = InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList();
- if (dt_InventoryInfos.Count < 1) throw new Exception($"鍑哄簱鍗曞彿銆恵outorder.order_no}銆戜腑鐗╂枡缂栧彿銆恵detail.goods_no}銆戠墿鏂欐壒娆°�恵detail.batch_num}銆戠殑鍙敤搴撳瓨涓嶈冻");
+ if (dt_InventoryInfos.Count < 1) throw new Exception($"娌℃湁鎵惧埌搴撳瓨淇℃伅涓殑锛氬嚭搴撳崟鍙枫�恵outorder.order_no}銆戠殑鐗╂枡缂栧彿銆恵detail.goods_no}銆戠墿鏂欐壒娆°�恵detail.batch_num}銆�");
#endregion
#region 鎸夊嚭搴撶瓥鐣ユ煡鎵惧簱瀛�
if (tactics.SelectTactice == TacticsEnum.ComeOutonFirstTime.ObjToInt())
@@ -421,6 +425,7 @@
LocationCode = InventoryInfo.LocationCode,
OrderNo = entityOrder.Out_no,
StockQuantity = InventoryInfo.AvailableQuantity,
+ Modifier=InventoryInfo.ValidityPeriod,//鏈夋晥鏈熸
SupplyQuantity = 0,
Remark = "鍑哄簱"
};
@@ -445,6 +450,7 @@
LocationCode = InventoryInfo.LocationCode,
OrderNo = entityOrder.Out_no,
StockQuantity = Order_qty,
+ Modifier = InventoryInfo.ValidityPeriod,//鏈夋晥鏈熸
SupplyQuantity = 0,
Remark = "鍑哄簱"
};
@@ -531,6 +537,7 @@
LocationCode = item.LocationCode,
OrderNo = entityOrder.Out_no,
StockQuantity = outqty,
+ Modifier= item.ValidityPeriod,//鏈夋晥鏈�
SupplyQuantity = 0,
Remark = "鍑哄簱"
};
@@ -587,6 +594,7 @@
LocationCode = inventoryInfo.LocationCode,
OrderNo = entityOrder.Out_no,
StockQuantity = orderDetailLK.Order_qty,
+ Modifier = inventoryInfo.ValidityPeriod,//鏈夋晥鏈�
SupplyQuantity = 0,
Remark = "鍑哄簱"
};
@@ -991,7 +999,12 @@
foreach (var item in order.details)
{
//鎵惧簱瀛樻壒娆′俊鎭�
- Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First();
+ Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).FirstOrDefault();
+ if (inventory_Batch==null)
+ {
+ _messageInfoService.AddMessageInfo(MessageGroupByEnum.OutOrderAlarm, "ERP鎶ユ崯鍑哄簱閿欒", $"鐩樹簭鍑哄簱鍗曘�恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑搴撳瓨鎵规淇℃伅鏈夐敊");
+ throw new Exception($"鐩樹簭鍑哄簱鍗曘�恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑搴撳瓨鎵规淇℃伅鏈夐敊");
+ }
var Qty = Math.Abs(inventory_Batch.SupplyQuantity);
if (Qty != item.order_qty)
{
@@ -1098,13 +1111,18 @@
List<Dt_DeliveryOrder> deliveryOrdersAdd = new List<Dt_DeliveryOrder>();
string WareCodeLK = WarehouseEnum.绔嬪簱.ObjToInt().ToString("000");
string WareCodeDJ = WarehouseEnum.澶т欢搴�.ObjToInt().ToString("000");
- List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode));
- List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode));
+ List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList();
+ List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList();
foreach (var item in order.details)
{
//鎵惧簱瀛樻壒娆′俊鎭�
- Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First();
+ Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).FirstOrDefault();
+ if (inventory_Batch==null)
+ {
+ _messageInfoService.AddMessageInfo(MessageGroupByEnum.OutOrderAlarm, "ERP鎶ユ崯鍑哄簱閿欒", $"鐩樹簭鍑哄簱鍗曘�恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑搴撳瓨鎵规淇℃伅鏈夐敊");
+ throw new Exception($"鐩樹簭鍑哄簱鍗曘�恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑搴撳瓨鎵规淇℃伅鏈夐敊");
+ }
var Qty = Math.Abs(inventory_Batch.SupplyQuantity);
if (Qty != item.order_qty)
{
@@ -1115,8 +1133,8 @@
//鎵炬墍鏈夊簱瀛�
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 = inventoryLK.SupplyQuantity;
+ var inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).FirstOrDefault();
+ var LkQty = inventoryLK?.SupplyQuantity??0;
//鑾峰彇澶т欢搴撶洏鐐瑰樊寮傛暟
var inventoryDJ = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList();
var DJQty = inventoryDJ.Sum(x => x.SupplyQuantity);
@@ -1650,8 +1668,8 @@
}
else
{
- var url = "http://121.37.118.63:80/GYZ2/95fck/outOrderOk";
- if (deliveryOrder.Out_type == "3") url = "http://121.37.118.63:80/GYZ2/95fck/inOrderOk";
+ var url = "http://192.168.1.100:80/GYZ2/95fck/outOrderOk";
+ if (deliveryOrder.Out_type == "3") url = "http://192.168.1.100:80/GYZ2/95fck/inOrderOk";
var requestDate = new
{
order_no = deliveryOrder.Out_no
--
Gitblit v1.9.3