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/DeliveryOrderServices.cs | 41 ++++++++++++++++++++++++++++-------------
1 files changed, 28 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 c28476c..6c73c84 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()
@@ -464,22 +471,29 @@
//_supplyTaskService.AddData(supplyTasks);
}
}
- _unitOfWorkManage.BeginTran();
- _supplyTaskService.AddData(supplyTasks);
- _inventory_BatchServices.UpdateData(batchesUp);
- _inventoryInfoService.UpdateData(inventoryInfosUp);
- if (entityOrder.Details.Count > 0)
- BaseDal.Db.CopyNew().InsertNav(entityOrder).Include(x => x.Details).ExecuteCommand();
- if (entityOrderLK.Details.Count > 0)
- BaseDal.Db.CopyNew().InsertNav(entityOrderLK).Include(x => x.Details).ExecuteCommand();
- _unitOfWorkManage.CommitTran();
+ try
+ {
+ _unitOfWorkManage.BeginTran();
+ _supplyTaskService.AddData(supplyTasks);
+ _inventory_BatchServices.UpdateData(batchesUp);
+ _inventoryInfoService.UpdateData(inventoryInfosUp);
+ if (entityOrder.Details.Count > 0)
+ BaseDal.Db.CopyNew().InsertNav(entityOrder).Include(x => x.Details).ExecuteCommand();
+ if (entityOrderLK.Details.Count > 0)
+ BaseDal.Db.CopyNew().InsertNav(entityOrderLK).Include(x => x.Details).ExecuteCommand();
+ _unitOfWorkManage.CommitTran();
+ }
+ catch (Exception ex)
+ {
+ _unitOfWorkManage.RollbackTran();
+ }
#endregion
}
webResponseContent.OK();
}
catch (Exception ex)
{
- _unitOfWorkManage.RollbackTran();
+ _messageInfoService.AddMessageInfo(MessageGroupByEnum.OutOrderAlarm, (outorder.order_type == "3" ? "鍏ュ簱閫�璐�" : "姝e父鍑哄簱") + $"锛氬崟鍙枫�恵outorder.order_no}銆�", ex.Message);
webResponseContent.Error(ex.Message);
}
return webResponseContent;
@@ -1146,6 +1160,7 @@
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 requestDate = new
{
order_no = deliveryOrder.Out_no
@@ -1153,7 +1168,7 @@
var result = HttpHelper.Post(url, requestDate.ToJsonString());
var response = JsonConvert.DeserializeObject<UpstreamOrderResponse>(result);
if (response == null) throw new Exception("涓婃姤ERP鍑哄簱鍗曞畬鎴愬け璐ワ紒");
- if (response.resultCode != "0") throw new Exception(response.resultMsg);
+ if (response.resultCode != "0" && response.resultMsg != "鏈壘鍒板悎娉曞崟鎹�") throw new Exception(response.resultMsg);
_deliveryOrderDetailServices.Repository.DeleteAndMoveIntoHty(deliveryOrderDetails, OperateTypeEnum.浜哄伐瀹屾垚);
BaseDal.DeleteAndMoveIntoHty(deliveryOrders, OperateTypeEnum.浜哄伐瀹屾垚);
}
--
Gitblit v1.9.3