From 5d756f53f07880dc8b7ba0bc9f060b9e94d4b25e Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期三, 05 十一月 2025 18:08:34 +0800
Subject: [PATCH] 修改人工入库完成和wcs小车问题
---
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs | 75 +++++++++++++++++++++++--------------
1 files changed, 46 insertions(+), 29 deletions(-)
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
index 2b8f8b7..c1098c6 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
@@ -161,8 +161,8 @@
#region 璐т綅
var location = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == LocationCode);
if (location == null) return WebResponseContent.Instance.Error($"璇风淮鎶よ揣浣嶇紪鍙枫�恵LocationCode}銆戠殑璐т綅淇℃伅");
- if (location.EnableStatus == EnableStatusEnum.Disable.ObjToInt())
- return WebResponseContent.Instance.Error($"璐т綅缂栧彿銆恵LocationCode}銆戝凡绂佺敤锛岃鎭㈠姝e父鍐嶄娇鐢�");
+ //if (location.EnableStatus == EnableStatusEnum.Disable.ObjToInt())
+ // return WebResponseContent.Instance.Error($"璐т綅缂栧彿銆恵LocationCode}銆戝凡绂佺敤锛岃鎭㈠姝e父鍐嶄娇鐢�");
if (location.WarehouseCode != cabinOrderDetail.Reservoirarea)
return WebResponseContent.Instance.Error($"璐т綅缂栧彿銆恵LocationCode}銆戞墍灞炲簱鎴夸笌褰撳墠鍏ュ簱鍗曟墍灞炲簱鎴夸笉鍖归厤");
if (location.LocationStatus == LocationStatusEnum.Free.ObjToInt())
@@ -376,7 +376,7 @@
};
#endregion
- List<Dt_MaterielInfo> materielInfos = _materielInfoService.Repository.QueryData(x => order.details.Select(x => x.goods_no).Contains(x.MaterielCode));
+ List<Dt_MaterielInfo> materielInfos = _materielInfoService.Repository.QueryData(x => order.details.Select(x => x.goods_no).Contains(x.MaterielCode)).ToList();
List<Dt_MaterielInfo> materielInfosUp = new List<Dt_MaterielInfo>();
foreach (var item in order.details)
{
@@ -476,18 +476,24 @@
}
//_materielInfoService.UpdateData(materielInfo);
}
- _unitOfWorkManage.BeginTran();
- if (materielInfosUp.Count > 0) _materielInfoService.UpdateData(materielInfosUp);
- if (entityOrder.Details.Count > 0) dt_CabinOrders.Add(entityOrder);
- if (entityOrderLK.Details.Count > 0) dt_CabinOrders.Add(entityOrderLK);
- if (dt_CabinOrders.Count > 0) BaseDal.Db.InsertNav(dt_CabinOrders).Include(x => x.Details).ExecuteCommand();
- _unitOfWorkManage.CommitTran();
+ try
+ {
+ _unitOfWorkManage.BeginTran();
+ if (materielInfosUp.Count > 0) _materielInfoService.UpdateData(materielInfosUp);
+ if (entityOrder.Details.Count > 0) dt_CabinOrders.Add(entityOrder);
+ if (entityOrderLK.Details.Count > 0) dt_CabinOrders.Add(entityOrderLK);
+ if (dt_CabinOrders.Count > 0) BaseDal.Db.InsertNav(dt_CabinOrders).Include(x => x.Details).ExecuteCommand();
+ _unitOfWorkManage.CommitTran();
+ }
+ catch (Exception)
+ {
+ _unitOfWorkManage.RollbackTran();
+ }
//webResponseContent.OK(data: dt_CabinOrders);
}
}
catch (Exception ex)
{
- _unitOfWorkManage.RollbackTran();
_messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, (order.order_type == "2" ? "鍑哄簱閫�璐�" : "姝e父鍏ュ簱") + $"锛氬崟鍙枫�恵order.order_no}銆�", ex.Message);
webResponseContent.Error(ex.Message);
}
@@ -518,14 +524,13 @@
{
//鎵惧簱瀛樻壒娆′俊鎭�
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);
- if (Qty != item.order_qty) throw new Exception($"鐩樼泩鍏ュ簱鍗曘�恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑鐩樼泩鏁伴噺鏈夎");
+ if (inventory_Batch.SupplyQuantity != 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();
foreach (var inventoryInfo in inventoryInfos)
{
#region 娣诲姞鐩樼泩鍏ュ簱浠诲姟
- if (inventoryInfo.StockQuantity != inventoryInfo.SupplyQuantity)
+ if (inventoryInfo.SupplyQuantity != 0)
{
Dt_SupplyTask_Hty supplyTask_Hty = new Dt_SupplyTask_Hty()
{
@@ -542,7 +547,7 @@
Creater = App.User.UserName,
LocationCode = inventoryInfo.LocationCode,
OrderNo = order.order_no,
- StockQuantity = Math.Abs(inventoryInfo.StockQuantity - inventoryInfo.SupplyQuantity),
+ StockQuantity = inventoryInfo.SupplyQuantity,
SupplyQuantity = 0,
Remark = "鐩樼泩鍏ュ簱"
};
@@ -550,12 +555,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();
}
infosUp.AddRange(inventoryInfos);
- inventory_Batch.StockQuantity = inventory_Batch.SupplyQuantity;
+ inventory_Batch.StockQuantity += inventory_Batch.SupplyQuantity;
+ inventory_Batch.AvailableQuantity = inventory_Batch.StockQuantity;
inventory_Batch.SupplyQuantity = 0;
batchesUp.Add(inventory_Batch);
//_inventoryInfoService.UpdateData(inventoryInfos);
@@ -600,22 +607,27 @@
List<Dt_CabinOrder> cabinOrdersAdd = new List<Dt_CabinOrder>();
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();
- 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));
+ //var DJQty = Math.Abs(inventoryDJ.Sum(x => x.SupplyQuantity));
+ var DJQty = inventoryDJ.Sum(x => x.SupplyQuantity);
+
+
if (LkQty + DJQty != Qty) throw new Exception($"銆恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑鐗╂枡淇℃伅涓庣墿鏂欐壒娆′俊鎭洏鐩堟暟閲忎笉绗�");
if (LkQty == 0)//绔嬪簱鏃犲樊寮�
{
@@ -640,7 +652,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 = "鐩樼泩鍏ュ簱"
};
@@ -648,13 +660,15 @@
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);
infosUp.AddRange(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);
batchesUp.Add(inventory_Batch);
@@ -711,7 +725,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 = "鐩樼泩鍏ュ簱"
};
@@ -719,7 +733,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();
}
@@ -770,7 +785,7 @@
Details = order.details.Select(d => new Dt_CabinOrderDetail
{
Goods_no = d.goods_no,
- Order_qty = LkQty,
+ Order_qty =Math.Abs( LkQty),
Batch_num = d.batch_num,
Exp_date = d.exp_date,
Reservoirarea = WareCodeLK,
@@ -819,7 +834,8 @@
List<Dt_CabinOrderDetail> cabinOrderDetails = new List<Dt_CabinOrderDetail>();
foreach (var item in cabinOrders)
{
- if (item.Details != null) cabinOrderDetails.AddRange(cabinOrderDetails);
+ if (item.Details != null) cabinOrderDetails.AddRange(item.Details);
+
item.Modifier = App.User.UserName;
item.ModifyDate = DateTime.Now;
item.Details = null;
@@ -832,6 +848,7 @@
else
{
var url = "http://121.37.118.63:80/GYZ2/95fck/outOrderOk";
+ if (cabinOrder.Order_type == "2") url = "http://121.37.118.63:80/GYZ2/95fck/outOrderOk";
var requestDate = new
{
order_no = cabinOrder.Order_no
@@ -839,7 +856,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);
_cabinOrderDetailServices.Repository.DeleteAndMoveIntoHty(cabinOrderDetails, OperateTypeEnum.浜哄伐瀹屾垚);
BaseDal.DeleteAndMoveIntoHty(cabinOrders, OperateTypeEnum.浜哄伐瀹屾垚);
--
Gitblit v1.9.3