From 1f61b7db7c7df90929cbb7af7aa8756fded45ed3 Mon Sep 17 00:00:00 2001
From: bklLiudl <673013083@qq.com>
Date: 星期五, 27 六月 2025 08:21:56 +0800
Subject: [PATCH] 修复程序问题
---
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 46 ++++++++++++++++++++++++++++++++--------------
1 files changed, 32 insertions(+), 14 deletions(-)
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index bdd23ce..b76f141 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -1475,7 +1475,7 @@
}
}
- //杞﹂棿pda鎷h揣
+ //杞﹂棿pda鎷h揣 - 鏍囩
public async Task ChejianPick(string palletNo, string boxNo, int userId)
{
Db.BeginTran();
@@ -1489,7 +1489,7 @@
}
if (string.IsNullOrEmpty(boxNo))
{
- throw Oops.Bah("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�");
+ throw Oops.Bah("绠辩爜涓嶅彲涓虹┖");
}
//绠辩爜鏄庣粏
@@ -1502,26 +1502,34 @@
boxInfos = await boxInfo.ToListAsync();
//搴撳瓨鏄庣粏
- var stockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNo && m.SkuNo == boxInfos.First().SkuNo && m.LotNo == boxInfos.First().LotNo);
+ var stockDetail = await Db.Queryable<DataStockDetail>()
+ .FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNo
+ && m.SkuNo == boxInfos.First().SkuNo && m.LotNo == boxInfos.First().LotNo);
if (stockDetail == null)
{
throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨鏄庣粏淇℃伅锛�");
}
+
+ // 楠岃瘉鏄惁杞﹂棿绾胯竟浠撳簱
var areaList = new List<string>() { "B06", "B07", "B09" };
if (!areaList.Contains(stockDetail.AreaNo))
{
throw Oops.Bah("鎵樼洏涓嶆槸杞﹂棿鎵樼洏锛�");
}
+
//搴撳瓨鎬昏〃
- var stock = await Db.Queryable<DataStock>().FirstAsync(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo);
+ var stock = await Db.Queryable<DataStock>()
+ .FirstAsync(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo);
if (stock == null)
{
throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�");
}
#endregion
-
var pickQty = boxInfos.Sum(m => m.Qty);
+
+ // 鍒犻櫎绠变换鍔�
+ await Db.Deleteable(boxInfos).ExecuteCommandAsync();
//鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁�
@@ -1558,6 +1566,7 @@
{
await Db.Updateable(stock).ExecuteCommandAsync();
}
+
var num2 = await Db.Queryable<DataStockDetail>().CountAsync(m => m.IsDel == "0" && m.PalletNo == palletNo);
if (num2 <= 0)
{
@@ -1572,7 +1581,8 @@
}
//娣诲姞鎿嶄綔鏃ュ織璁板綍
- var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "杞﹂棿鍑哄簱", boxNo, "鎷h揣", $"鍦≒DA涓婂绠卞彿涓猴細{boxNo}鐨勬墭鐩樼爜涓猴細{palletNo}鐨勬嫞璐ф搷浣�", userId);
+ var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "杞﹂棿鍑哄簱",
+ boxNo, "鎷h揣", $"鍦≒DA涓婂绠卞彿涓猴細{boxNo}鐨勬墭鐩樼爜涓猴細{palletNo}鐨勬嫞璐ф搷浣�", userId);
Db.CommitTran();
}
catch (AppFriendlyException e)
@@ -2040,7 +2050,7 @@
if (string.IsNullOrWhiteSpace(boxNo))//鏁存墭鎷h揣
{
List<DataBoxInfo> boxInfos;
- var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo);//鎵惧埌鎵樼洏涓婃墍鏈夌鐮�
+ var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo && m.SkuNo == stockDetail.SkuNo && m.LotNo == stockDetail.LotNo);//鎵惧埌鎵樼洏涓婃墍鏈夌鐮�
boxInfos = await boxInfo.ToListAsync();
if (boxInfo.Count() <= 0)
{
@@ -2112,14 +2122,20 @@
{
await Db.Updateable(stock).ExecuteCommandAsync();
}
- //鏀瑰彉鎵樼洏鐘舵�佷负锛氭湭浣跨敤
- var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == palletNo && m.IsDel == "0");
- if (pallet == null)
+ //鍒ゆ柇鎵樼洏涓婅繕鏈夋病鏈夊叾浠栫墿鏂�
+ var palletData = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo && w.Id != stockDetail.Id);
+ if (palletData == null)
{
- throw Oops.Bah("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�");
+ //鏀瑰彉鎵樼洏鐘舵�佷负锛氭湭浣跨敤
+ var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == palletNo && m.IsDel == "0");
+ if (pallet == null)
+ {
+ throw Oops.Bah("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�");
+ }
+ pallet.Status = "0";
+ await Db.Updateable(pallet).ExecuteCommandAsync();
}
- pallet.Status = "0";
- await Db.Updateable(pallet).ExecuteCommandAsync();
+
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
noticeDetail.CompleteQty += pickQty;
await Db.Updateable(noticeDetail).ExecuteCommandAsync();
@@ -2541,7 +2557,9 @@
{
stockDetail.Status = "0";
}
- if (stockDetail.Qty <= 0)
+ //鍒ゆ柇鎵樼洏涓婅繕鏈夋病鏈夊叾浠栫墿鏂�
+ var palletData = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo && w.Id != stockDetail.Id);
+ if (stockDetail.Qty <= 0 && palletData == null)
{
await Db.Deleteable(stockDetail).ExecuteCommandAsync();
}
--
Gitblit v1.8.0