From 614945e153d38d1dadf5beb1e1d4dbc6db07c226 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期一, 20 十月 2025 03:17:53 +0800
Subject: [PATCH] 优化出入库
---
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs | 55 ++++++++++++++++++++++++++++++++-----------------------
1 files changed, 32 insertions(+), 23 deletions(-)
diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs"
index 5932661..2daa804 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs"
@@ -20,8 +20,10 @@
{
public class InventoryServices : ServiceBase<Dt_Inventory, IRepository<Dt_Inventory>>, IInventoryServices
{
- public InventoryServices(IRepository<Dt_Inventory> BaseDal) : base(BaseDal)
+ private readonly IDeliveryOrderServices _deliveryOrderServices;
+ public InventoryServices(IRepository<Dt_Inventory> BaseDal, IDeliveryOrderServices deliveryOrderServices) : base(BaseDal)
{
+ _deliveryOrderServices = deliveryOrderServices;
}
@@ -38,34 +40,33 @@
try
{
var url = "http://121.37.118.63/GYZ2/95fck/repositoryInfo";
- // 鍙戣捣璇锋眰
- var result = HttpHelper.Post(url, new { goods_no,batch_num}.ToJsonString());
+ var result = HttpHelper.Post(url, new { goods_no, batch_num }.ToJsonString());
- // 鍙嶅簭鍒楀寲
var response = JsonConvert.DeserializeObject<UpstreamResponse<InventoryInfo>>(result);
- if (response.resultCode!="0")
+ if (response.resultCode != "0")
{
- // 璋冪敤寮傚父鎺ュ彛
SendErrorToUpstream(8, "", response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触", "");
return responseContent.Error(response.resultMsg ?? "涓婃父鎺ュ彛杩斿洖澶辫触");
}
+
if (response.data == null || !response.data.Any())
{
return responseContent.OK("鏃犳柊搴撳瓨鏁版嵁");
}
+
Db.Ado.BeginTran();
foreach (var item in response.data)
{
- var Inver = new Dt_Inventory
- {
- Goods_no = item.goods_no,
- Batch_num = item.batch_num,
- Exp_date=item.exp_date,
- Business_qty = item.business_qty,
- Actual_qty = item.actural_qty,
- };
- AddData(Inver);
+ // 浣跨敤 FirstOrDefault 閬垮厤鎵句笉鍒拌褰曟椂鎶涘嚭寮傚父
+ var Inver = Db.Queryable<Dt_Inventory_Batch>()
+ .First(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num);
+
+ if (Inver != null)
+ {
+ Inver.ERPStockQuantity = item.business_qty;
+ Db.Updateable(Inver).ExecuteCommand();
+ }
}
Db.Ado.CommitTran();
return responseContent.OK("搴撳瓨淇℃伅鍚屾瀹屾垚");
@@ -96,12 +97,11 @@
{
return new ApiResponse<Dt_InventoryInfo> { code = "500", msg = "璇锋眰鍙傛暟鏃犳晥" };
}
-
- // 2锔忊儯 寮�鍚簨鍔�
- BaseDal.Db.Ado.BeginTran();
-
+
foreach (var detail in request.details)
{
+ var goods = Db.Queryable<Dt_MaterielInfo>().Where(x => x.MaterielCode == detail.productCode).First();
+
// 3锔忊儯 璁$畻鍏ュ簱鏁伴噺锛堝彇姝o級
decimal orderQty = detail.orderDetails?
.Sum(x => decimal.TryParse(x.quantity, out var q) ? Math.Abs(q) : 0)
@@ -109,7 +109,9 @@
// 5锔忊儯 鏌ヨ搴撳瓨璇︽儏
var entity = BaseDal.Db.Queryable<Dt_InventoryInfo>()
- .First(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo);
+ .First(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo&&x.LocationCode=="绔嬪簱");
+ //鏌ヨ鐗╂枡琛�
+ var Goods = BaseDal.Db.Queryable<Dt_MaterielInfo>().First(x => x.MaterielCode == detail.productCode);
if (entity == null)
{
@@ -117,7 +119,7 @@
{
PalletCode = detail.orderDetails?.FirstOrDefault()?.palletCode ?? "",
WarehouseCode = "001",
- LocationCode = "",
+ LocationCode = "绔嬪簱",
StockStatus = 1,
MaterielCode = detail.productCode ?? detail.productName,
MaterielName = detail.productName ?? "",
@@ -164,21 +166,27 @@
entity.StockQuantity += orderQty;
entity.InDate = DateTime.Now;
entity.Remark = "鍏ュ簱鍗曞洖浼�";
+ //Goods.Business_qty=
batch.StockQuantity += orderQty;
batch.Remark = "鍏ュ簱鍗曞洖浼�";
break;
case "2": // 鍑哄簱
- entity.OutboundQuantity += orderQty;
+ entity.OutboundQuantity += orderQty; //鍑哄簱鏁伴噺
entity.StockQuantity -= orderQty;
if (entity.StockQuantity < 0) entity.StockQuantity = 0;
entity.Remark = "鍑哄簱鍗曞洖浼�";
+ //CreateAllocatInOut()
batch.OutboundQuantity += orderQty;
batch.StockQuantity -= orderQty;
if (batch.StockQuantity < 0) batch.StockQuantity = 0;
batch.Remark = "鍑哄簱鍗曞洖浼�";
+ //璋冩嫧浠诲姟
+ _deliveryOrderServices.CreateAllocatInOut(goods);
+
+
break;
case "3": // 鐩樼偣
@@ -201,7 +209,8 @@
}
break;
}
-
+ // 2锔忊儯 寮�鍚簨鍔�
+ BaseDal.Db.Ado.BeginTran();
// 8锔忊儯 淇濆瓨鏁版嵁
if (entity.Id == 0)
BaseDal.Db.Insertable(entity).ExecuteCommand();
--
Gitblit v1.9.3