From f928756ecbf68886443ab87ce458b99aba73a763 Mon Sep 17 00:00:00 2001
From: Administrator <Administrator@DESKTOP-JIE70N9>
Date: 星期四, 08 五月 2025 15:13:25 +0800
Subject: [PATCH] Merge branch 'master' of http://47.95.120.53:8083/r/JC34WMS
---
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 127 ++++++++++++++++++++++++++---------------
1 files changed, 80 insertions(+), 47 deletions(-)
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index 5a9d722..3b9a7d0 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -118,20 +118,20 @@
#region 鎷兼墭淇℃伅
var sdId = 0;
bool isNew = false;
- var pinStockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNoNew);
+
+ var pinStockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.SkuNo == stockDetail.SkuNo && m.LotNo == stockDetail.LotNo);
+
if (pinStockDetail != null)
{
if (palletNo != palletNoNew)//闈炴暣鎵樻嫞璐�
{
- if (pinStockDetail.SONo != notice.SONo)
+ var pinStockDetails = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.Id!= pinStockDetail.Id).ToList();
+ if (pinStockDetails.Count(m=>m.SONo != notice.SONo) > 0)
{
throw Oops.Bah("鎷兼墭鎵樼洏涓婂彧鑳芥斁鍚屼竴涓嚭搴撳崟涓嬬殑鐗╂枡锛�");
}
- if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo)
- {
- isNew = true;
- }
}
+
sdId = pinStockDetail.Id;
}
else
@@ -147,6 +147,7 @@
newPalletInfo.Status = "1";
await Db.Updateable(newPalletInfo).ExecuteCommandAsync();
}
+
var sd = new DataStockDetail();
if (isNew)
{
@@ -189,7 +190,7 @@
sd.IsDel = "0";
sd.CreateUser = userId;
sd.CreateTime = nowDate;
-
+ sd.UDF5 = "1";
//鏂板鎷兼墭搴撳瓨鏄庣粏淇℃伅
sdId = await Db.Insertable(sd).ExecuteReturnIdentityAsync();
}
@@ -269,6 +270,7 @@
if (palletNo != palletNoNew)
{
+ var locateStr = stockDetail.LocatNo;
//鍒犻櫎鍘熸墭鐩樺簱瀛樻槑缁�
await Db.Deleteable(stockDetail).ExecuteCommandAsync();
@@ -280,10 +282,19 @@
}
pallet.Status = "0";
await Db.Updateable(pallet).ExecuteCommandAsync();
+
+ //鏇存敼鍌ㄤ綅鐘舵�佷负绌哄偍浣�
+ var locate = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.LocatNo == locateStr);
+ if (locate != null)
+ {
+ locate.Status = "0";
+ Db.Updateable(locate).ExecuteCommand();
+ }
}
else
{
stockDetail.SONo = soNo;
+ stockDetail.UDF5 = "1";
await Db.Updateable(stockDetail).ExecuteCommandAsync();
}
@@ -301,14 +312,13 @@
}
else
{
- var biaoShi = "0";//0锛氭暣绠辨嫞璐с��1锛氭暎鏀嫞璐с��2锛氭暟閲忔嫞璐�
List<DataBoxInfo> boxInfos;
var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo);
if (await boxInfo.CountAsync() == 0)
{
throw Oops.Bah("鏈煡璇㈠埌璇ョ鐮佺殑淇℃伅");
}
-
+ boxInfos = boxInfo.ToList();
var comDetailList = await Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToListAsync();
//鏁寸鎷h揣
@@ -322,7 +332,7 @@
{
throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺");
}
- boxInfos = await boxInfo.ToListAsync();
+
foreach (var item in boxInfos)
{
if (comDetailList.Any(m => m.BoxNo == item.BoxNo))
@@ -360,9 +370,13 @@
comList.Add(completeDetail);
//淇敼搴撳瓨绠辩爜鏄庣粏
- item.StockDetailId = sdId;
- item.BindNo = null;//鎵樼洏缁戝畾鍙�
- item.PalletNo = palletNoNew;
+ if (palletNo != palletNoNew)
+ {
+ item.StockDetailId = sdId;
+ item.BindNo = null;//鎵樼洏缁戝畾鍙�
+ item.PalletNo = palletNoNew;
+ }
+
item.Status = "5";//绠辨敮鐘舵�侊紝0锛氭湭缁勬墭 1锛氬凡缁勬墭 2锛氬凡鍏ュ簱 3锛氬凡鍑哄簱 4:宸插垎閰� 5锛氬凡鎷h揣
await Db.Updateable(item).ExecuteCommandAsync();
@@ -382,6 +396,7 @@
stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇�
stockDetail.Qty -= pickQty;
stockDetail.LockQty -= pickQty;
+ stockDetail.UDF5 = "1";
if (stockDetail.Qty == stockDetail.LockQty)
{
stockDetail.Status = "2";
@@ -397,15 +412,9 @@
if (stockDetail.Qty <= 0)
{
+ var locateStr = stockDetail.LocatNo;
await Db.Deleteable(stockDetail).ExecuteCommandAsync();
- }
- else
- {
- await Db.Updateable(stockDetail).ExecuteCommandAsync();
- }
- var num2 = await Db.Queryable<DataStockDetail>().CountAsync(m => m.IsDel == "0" && m.PalletNo == palletNo);
- if (num2 <= 0)
- {
+
//鏀瑰彉鎵樼洏鐘舵��
var pallet = await Db.Queryable<SysPallets>().FirstAsync(m => m.PalletNo == palletNo && m.IsDel == "0");
if (pallet == null)
@@ -414,7 +423,20 @@
}
pallet.Status = "0";
await Db.Updateable(pallet).ExecuteCommandAsync();
+
+ //鏇存敼鍌ㄤ綅鐘舵�佷负绌哄偍浣�
+ var locate = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.LocatNo == locateStr);
+ if (locate != null)
+ {
+ locate.Status = "0";
+ Db.Updateable(locate).ExecuteCommand();
+ }
}
+ else
+ {
+ await Db.Updateable(stockDetail).ExecuteCommandAsync();
+ }
+
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
noticeDetail.CompleteQty += pickQty;
await Db.Updateable(noticeDetail).ExecuteCommandAsync();
@@ -542,18 +564,15 @@
#region 鎷兼墭淇℃伅
bool isNew = false;
- var pinStockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNoNew);
+ var pinStockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.SkuNo== stockDetail.SkuNo && m.LotNo == stockDetail.LotNo);
if (pinStockDetail != null)
{
if (palletNo != palletNoNew)//闈炴暣鎵樻嫞璐�
{
- if (pinStockDetail.SONo != notice.SONo)
+ var pinStockDetails = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.Id != pinStockDetail.Id).ToList();
+ if (pinStockDetails.Count(m => m.SONo != notice.SONo) > 0)
{
throw Oops.Bah("鎷兼墭鎵樼洏涓婂彧鑳芥斁鍚屼竴涓嚭搴撳崟涓嬬殑鐗╂枡锛�");
- }
- if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo)
- {
- isNew = true;
}
}
}
@@ -617,6 +636,7 @@
sd.IsDel = "0";
sd.CreateUser = userId;
sd.CreateTime = nowDate;
+ sd.UDF5 = "1";
//鏂板鎷兼墭搴撳瓨鏄庣粏淇℃伅
await Db.Insertable(sd).ExecuteReturnIdentityAsync();
@@ -628,11 +648,13 @@
//淇敼鎷兼墭鎵樼洏搴撳瓨鏄庣粏
pinStockDetail.Qty += int.Parse(PickQty);
pinStockDetail.LockQty += int.Parse(PickQty);
+ pinStockDetail.UDF5 = "1";
await Db.Updateable(pinStockDetail).ExecuteCommandAsync();
}
else
{
pinStockDetail.SONo = soNo;
+ pinStockDetail.UDF5 = "1";
await Db.Updateable(pinStockDetail).ExecuteCommandAsync();
}
}
@@ -697,7 +719,7 @@
await Db.Updateable(allot).ExecuteCommandAsync();
int isDel = 0;
-
+ var locateStr = stockDetail.LocatNo;
if (palletNo != palletNoNew)
{
//鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁�
@@ -742,6 +764,15 @@
pallet.Status = "0";
await Db.Updateable(pallet).ExecuteCommandAsync();
+
+ //鏇存敼鍌ㄤ綅鐘舵�佷负绌哄偍浣�
+ var locate = Db.Queryable<SysStorageLocat>().First(m=>m.IsDel == "0" && m.LocatNo == locateStr);
+ if (locate!=null)
+ {
+ locate.Status = "0";
+ Db.Updateable(locate).ExecuteCommand();
+ }
+
}
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
@@ -803,10 +834,10 @@
throw Oops.Bah("鎵樼洏鐮佷负绌猴紝璇疯緭鍏ユ墭鐩樼爜");
}
var palletInfo = await Db.Queryable<DataStockDetail>().FirstAsync(w => w.IsDel == "0" && w.PalletNo == palletNo);
- if (!string.IsNullOrEmpty(palletInfo.WareHouseNo) && type != "1")
- {
- throw Oops.Bah("璇ユ墭鐩樿繕鏈嚭搴�");
- }
+ //if (!string.IsNullOrEmpty(palletInfo.WareHouseNo) && type != "1")
+ //{
+ // throw Oops.Bah("璇ユ墭鐩樿繕鏈嚭搴�");
+ //}
if (type == "1")//骞冲簱鍑哄簱鑾峰彇鍗曟嵁
{
var allotList = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.Status == "1" && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToListAsync();
@@ -1766,21 +1797,22 @@
foreach (var s in stockDetail)
{
//鑾峰彇鍌ㄤ綅淇℃伅
- var locat = await Db.Queryable<SysStorageLocat>().FirstAsync(l => l.LocatNo == s.LocatNo && l.IsDel == "0" && l.WareHouseNo == "W01");
+ var locat = await Db.Queryable<SysStorageLocat>().FirstAsync(l => l.LocatNo == s.LocatNo && l.IsDel == "0" && l.WareHouseNo == "W02");
- if (locat != null)
+ if (locat == null)
{
- if (locat.Status != "1")
- {
- continue;
- }
- //鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓�
- locat.Status = "3"; //3 鍑哄簱涓�
- locat.UpdateTime = serverTime; //淇敼鏃堕棿
- locat.UpdateUser = userId; //淇敼浜�
- //淇敼鍌ㄤ綅淇℃伅
- await Db.Updateable(locat).ExecuteCommandAsync();
+ throw new Exception("鍌ㄤ綅涓婃病鏈夌┖鎵樼洏璺�");
}
+ if (locat.Status != "1")
+ {
+ continue;
+ }
+ //鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓�
+ locat.Status = "3"; //3 鍑哄簱涓�
+ locat.UpdateTime = serverTime; //淇敼鏃堕棿
+ locat.UpdateUser = userId; //淇敼浜�
+ //淇敼鍌ㄤ綅淇℃伅
+ await Db.Updateable(locat).ExecuteCommandAsync();
//澧炲姞搴撳瓨閿佸畾鏁伴噺
//stock.AllotQty +=
@@ -1866,7 +1898,8 @@
TaskNo = exTask.TaskNo, // 浠诲姟鍙�
TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
OutMode = model.OutMode, //鐩爣鍦板潃
- Order = 1
+ Order = 1,
+ Type = PLCTypeEnum.AGV
});
await Db.Insertable(exTask).ExecuteCommandAsync();
@@ -1921,13 +1954,13 @@
var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "绌烘墭鍑哄簱", i + "", "涓嬪彂", $"鐢≒DA涓嬪彂浜� {i} 涓┖鎵樺灈", userId);
Db.CommitTran();
- return "";
+ return "鎴愬姛";
}
catch (Exception e)
{
Db.RollbackTran();
- return "";
+ return e.Message;
}
}
--
Gitblit v1.8.0