From b2d25faa69ee7e9f24b6ac98d3b4dcbddada70bc Mon Sep 17 00:00:00 2001
From: yuyou_x <2336760928@qq.com>
Date: 星期四, 14 三月 2024 13:37:15 +0800
Subject: [PATCH] 修改pda托盘绑定同一物料多批次 无法具体选中批次问题。
---
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 1030 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 1,013 insertions(+), 17 deletions(-)
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index 049f241..785537c 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -243,7 +243,7 @@
foreach (var demo in list)
{
var com = comInfo.FirstOrDefault(m => m.IsDel == "0" && m.BoxNo3 == demo.BoxNo);
- if (com!=null)
+ if (com != null)
{
demo.PickedQty = com.CompleteQty;
}
@@ -278,10 +278,73 @@
}
}
+ //鑾峰彇搴撳唴鏃犵鐮佺殑鎵樼洏鍒嗛厤淇℃伅
+ public List<BoxInfo> GetAllotPlnInfo(string soDetailId, string palletNo)
+ {
+ try
+ {
+ #region 鍒ゆ柇
+ //鏍规嵁id鍙婃墭鐩樿幏鍙栧嚭搴撳崟鍜屾墭鐩樻嫞璐т俊鎭�
+ if (string.IsNullOrWhiteSpace(palletNo))
+ {
+ throw new Exception("鎵樼洏鍙蜂笉鑳戒负绌�");
+ }
+ //鑾峰彇瀵瑰簲鎵樼洏涓嬫槸鍚﹀瓨鍦ㄧ鐮佷俊鎭�
+ var boxInfo = Db.Queryable<DataBoxInfo>().First(b => b.IsDel == "0" && b.PalletNo == palletNo);
+ if (boxInfo != null)
+ {
+ throw new Exception($"{palletNo}鎵樼洏涓婂瓨鍦ㄧ鐮佷俊鎭紝鏃犳硶鍦ㄦ暟閲忔嫞璐ц繘琛屾搷浣滐紒");
+ }
+ //鍑哄簱鍗曟槑缁�
+ var noticeDetail = Db.Queryable<BllExportNoticeDetail>().First(a => a.Id == int.Parse(soDetailId) && a.IsDel == "0");
+ if (noticeDetail == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌瀵瑰簲鍑哄簱鍗曟槑缁嗕俊鎭紝璇锋牳瀹烇紒");
+ }
+ //鍑哄簱鍗曟�诲崟
+ var notice = Db.Queryable<BllExportNotice>().First(a => a.IsDel == "0" && a.SONo == noticeDetail.SONo);
+ if (notice == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌瀵瑰簲鍑哄簱鍗曟�诲崟淇℃伅锛岃鏍稿疄锛�");
+ }
+ //鍒嗛厤淇℃伅
+ var allot = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.SONo == notice.SONo && a.SODetailNo == noticeDetail.Id && a.PalletNo == palletNo && a.Status == "2" || a.Status == "3");
+ if (allot == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌瀵瑰簲鍒嗛厤淇℃伅锛岃鏍稿疄锛�");
+ }
+ //搴撳瓨鏄庣粏
+ var detail = Db.Queryable<DataStockDetail>().First(a => a.IsDel == "0" && a.PalletNo == palletNo);
+ if (detail == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌搴撳瓨鏄庣粏淇℃伅锛岃鏍稿疄锛�");
+ }
+
+ #endregion
+
+ List<BoxInfo> pdaInfo = new List<BoxInfo>();
+
+ BoxInfo info = new BoxInfo()
+ {
+ SkuNo = detail.SkuNo,
+ BoxNo = detail.SkuNo,
+ Qty = (int)allot.Qty,
+ PickedQty = (int)allot.CompleteQty,
+ };
+
+ pdaInfo.Add(info);
+ return pdaInfo;
+
+ }
+ catch (Exception e)
+ {
+ throw new Exception(e.Message);
+ }
+ }
//鍑哄簱pda鎷h揣
- public void SoSetPick(string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, int userId)
+ public void SoSetPick(string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string pickQty1, int userId)
{
Db.BeginTran();
try
@@ -300,7 +363,11 @@
{
throw new Exception("鎵樼洏鐮佷笉鑳戒负绌�");
}
-
+ if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)
+ {
+ throw new Exception("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�");
+ }
+
//鍑哄簱鍗�
var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.SONo == soNo);
if (notice == null)
@@ -401,7 +468,7 @@
Db.Insertable(comList).ExecuteCommand();
//淇敼鍑哄簱鍒嗛厤淇℃伅
allot.CompleteQty += pickQty;
- allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
+ allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
Db.Updateable(allot).ExecuteCommand();
//鍒犻櫎搴撳瓨鏄庣粏
Db.Deleteable(stockDetail).ExecuteCommand();
@@ -439,7 +506,7 @@
}
else
{
- var biaoShi = "0";//0锛氭暣绠辨嫞璐с��1锛氭暎鏀嫞璐�
+ var biaoShi = "0";//0锛氭暣绠辨嫞璐с��1锛氭暎鏀嫞璐с��2锛氭暟閲忔嫞璐�
List<DataBoxInfo> boxInfos;
var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo);
if (boxInfo.Count() == 0)
@@ -472,6 +539,24 @@
biaoShi = "1";
}
+ else if (!string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)//鏁伴噺鎷h揣
+ {
+ if (boxInfo.Count() > 1)
+ {
+ throw new Exception("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣");
+ }
+ int boxQty = boxInfo.First().Qty;
+ if (Convert.ToInt32(pickQty1) > boxQty)
+ {
+ throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺");
+ }
+ if (Convert.ToInt32(pickQty1) > needQty)
+ {
+ throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺");
+ }
+
+ biaoShi = "2";
+ }
else //鏁寸鎷h揣
{
if (boxInfo.Count() == 0)
@@ -493,7 +578,7 @@
var comList = new List<BllCompleteDetail>();
foreach (var item in boxInfos)
{
- if (comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
+ if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
{
throw new Exception($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣");
}
@@ -515,14 +600,31 @@
SkuName = allot.SkuName,
Standard = allot.Standard,
PalletNo = palletNo,
- CompleteQty = item.Qty,
+ CompleteQty = biaoShi == "2" ? int.Parse(pickQty1) : item.Qty,
CreateUser = userId
};
comList.Add(completeDetail);
- //鍒犻櫎搴撳瓨绠辩爜鏄庣粏
- Db.Deleteable(item).ExecuteCommand();
+ if (biaoShi != "2")
+ {
+ //鍒犻櫎搴撳瓨绠辩爜鏄庣粏
+ Db.Deleteable(item).ExecuteCommand();
+ }
+ else//鏁伴噺鎷h揣
+ {
+ if (int.Parse(pickQty1) == item.Qty)
+ {
+ //鍒犻櫎搴撳瓨绠辩爜鏄庣粏
+ Db.Deleteable(item).ExecuteCommand();
+ }
+ else
+ {
+ item.Qty -= int.Parse(pickQty1);
+ item.BitBoxMark = "1";//闆剁鏍囪瘑
+ Db.Updateable(item).ExecuteCommand();
+ }
+ }
pickQty += item.Qty;
}
//鏀瑰彉搴撳唴绠辩爜鏄惁闆剁淇℃伅
@@ -606,6 +708,209 @@
//淇敼鍑哄簱鍗曚俊鎭�
Db.Updateable(notice).ExecuteCommand();
}
+ //娣诲姞鎿嶄綔鏃ュ織璁板綍
+ var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "鎷h揣鍑哄簱", soNo, "鎷h揣", $"鍦≒DA涓婂鍑哄簱鍗曞彿涓猴細{soNo}鐨勬墭鐩樼爜涓猴細{palletNo}鐨勬嫞璐ф搷浣�", userId);
+ Db.CommitTran();
+ }
+ catch (Exception e)
+ {
+ Db.RollbackTran();
+ throw new Exception(e.Message);
+ }
+ }
+
+ //鍑哄簱pda鎷h揣
+ public void SoSetQtyPick(string soNo, string soDetailId, string palletNo, string PickQty, int userId)
+ {
+ Db.BeginTran();
+ try
+ {
+ #region 鍒ゆ柇
+
+ if (string.IsNullOrWhiteSpace(soNo))
+ {
+ throw new Exception("鍑哄簱鍗曟嵁涓嶈兘涓虹┖");
+ }
+ //if (string.IsNullOrWhiteSpace(soDetailId))
+ //{
+ // throw new Exception("鍑哄簱鐗╂枡-鎵规涓嶈兘涓虹┖");
+ //}
+ if (string.IsNullOrWhiteSpace(palletNo))
+ {
+ throw new Exception("鎵樼洏鐮佷笉鑳戒负绌�");
+ }
+
+ //鍑哄簱鍗�
+ var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.SONo == soNo);
+ if (notice == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鐨勪俊鎭�");
+ }
+ if (notice.Status != "3")
+ {
+ throw new Exception("鍑哄簱鍗曠殑鐘舵�佷笉鏄鍦ㄦ墽琛岋紝涓嶈兘鎷h揣");
+ }
+ //鍑哄簱鍗曟槑缁�
+ var noticeDetail = Db.Queryable<BllExportNoticeDetail>()
+ .First(m => m.IsDel == "0" && m.Id == int.Parse(soDetailId));
+ if (noticeDetail == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鏄庣粏鐨勪俊鎭�");
+ }
+ //鍑哄簱鍒嗛厤淇℃伅
+ var allot = Db.Queryable<BllExportAllot>().First(m =>
+ m.IsDel == "0" && (m.Status == "2" || m.Status == "3") && m.SONo == soNo &&
+ m.SODetailNo == int.Parse(soDetailId) && m.PalletNo == palletNo);
+ if (allot == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樼殑鍒嗛厤淇℃伅");
+ }
+ //鍓╀綑鎷h揣鏁伴噺锛堝緟鎷e噺鍘诲凡鎷o級
+ var needQty = allot.Qty - allot.CompleteQty;
+ if (int.Parse(PickQty) > needQty)
+ {
+ throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鎵樺唴鍓╀綑寰呮嫞鏁伴噺");
+ }
+
+ //搴撳瓨鏄庣粏
+ var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.Id == allot.StockId);
+ if (stockDetail == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨鏄庣粏淇℃伅锛�");
+ }
+ //搴撳瓨鎬昏〃
+ var stock = Db.Queryable<DataStock>().First(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo);
+ if (stock == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�");
+ }
+ #endregion
+ //鑾峰彇褰撳墠鎵樼洏鎷h揣鏄庣粏
+ var complete = Db.Queryable<BllCompleteDetail>().First(a => a.IsDel == "0" && a.PalletNo == palletNo && a.SONo == notice.SONo && a.SODetailNo == noticeDetail.Id && a.ExportAllotId == allot.Id && a.StockId == stockDetail.Id);
+
+ //鍒よ鏄惁瀛樺湪鎷h揣鏄庣粏
+ int isComplete = 0;
+ if (complete != null)
+ {
+ isComplete = 1;
+ }
+
+ var comList = new List<BllCompleteDetail>();
+ //鍒ゆ柇鏄惁瀛樺湪鎷h揣鏄庣粏
+ if (isComplete == 0)
+ {
+ //娣诲姞鎷h揣鏄庣粏
+ var completeDetail = new BllCompleteDetail()
+ {
+ SONo = soNo,
+ SODetailNo = int.Parse(soDetailId),
+ ExportAllotId = allot.Id,
+ StockId = allot.StockId,
+ BoxNo = "",
+ BoxNo2 = "",
+ BoxNo3 = "",
+
+ LotNo = allot.LotNo,
+ LotText = allot.LotText,
+ SupplierLot = allot.SupplierLot,
+ SkuNo = allot.SkuNo,
+ SkuName = allot.SkuName,
+ Standard = allot.Standard,
+ PalletNo = palletNo,
+ CompleteQty = int.Parse(PickQty),
+
+ CreateUser = userId,
+ CreateTime = Db.GetDate(),
+ };
+ comList.Add(completeDetail);
+
+ //娣诲姞鎷h揣鏄庣粏
+ Db.Insertable(comList).ExecuteCommand();
+ }
+ else if (isComplete == 1)
+ {
+ complete.CompleteQty += int.Parse(PickQty);
+ complete.UpdateUser = userId;
+ complete.UpdateTime = Db.GetDate();
+
+ Db.Updateable(complete).ExecuteCommand();
+ }
+
+
+
+ //淇敼鍑哄簱鍒嗛厤淇℃伅
+ allot.CompleteQty += int.Parse(PickQty);
+ allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
+ Db.Updateable(allot).ExecuteCommand();
+
+ int isDel = 0;
+
+ //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁�
+ stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇�
+ stockDetail.Qty -= int.Parse(PickQty);
+ stockDetail.LockQty -= int.Parse(PickQty);
+ if (stockDetail.Qty == stockDetail.LockQty)
+ {
+ stockDetail.Status = "2";
+ }
+ else if (stockDetail.Qty > stockDetail.LockQty && stockDetail.LockQty > 0)
+ {
+ stockDetail.Status = "1";
+ }
+ else
+ {
+ stockDetail.Status = "0";
+ }
+ if (stockDetail.Qty <= 0)
+ {
+ Db.Deleteable(stockDetail).ExecuteCommand();
+ }
+ else
+ {
+ isDel = 1;
+ Db.Updateable(stockDetail).ExecuteCommand();
+ }
+ //鍒犻櫎鎴栦慨鏀瑰簱瀛�
+ stock.Qty -= int.Parse(PickQty);
+ stock.LockQty -= int.Parse(PickQty);
+ if (stock.Qty <= 0)
+ {
+ Db.Deleteable(stock).ExecuteCommand();
+ }
+ else
+ {
+ Db.Updateable(stock).ExecuteCommand();
+ }
+
+ //鏀瑰彉鎵樼洏鐘舵�佷负锛氭湭浣跨敤
+ var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == palletNo && m.IsDel == "0");
+ if (pallet == null)
+ {
+ throw new Exception("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�");
+ }
+
+ //鍒ゆ柇鎵樼洏涓婄墿鏂欐槸鍚︽嫞璐у畬姣�
+ if (isDel == 0)
+ {
+ pallet.Status = "0";
+ Db.Updateable(pallet).ExecuteCommand();
+ }
+
+ //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
+ noticeDetail.CompleteQty += int.Parse(PickQty);
+ Db.Updateable(noticeDetail).ExecuteCommand();
+
+ var num = Db.Queryable<BllExportNoticeDetail>()
+ .Count(m => m.IsDel == "0" && m.SONo == soNo && m.CompleteQty < m.Qty);
+ if (num <= 0)
+ {
+ notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴�
+ }
+ //淇敼鍑哄簱鍗曚俊鎭�
+ Db.Updateable(notice).ExecuteCommand();
+
+ //娣诲姞鎿嶄綔鏃ュ織璁板綍
+ var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "鎷h揣鍑哄簱", soNo, "鎷h揣", $"鍦≒DA涓婂鍑哄簱鍗曞彿涓猴細{soNo}鐨勬墭鐩樼爜涓猴細{palletNo}鐨勬嫞璐ф搷浣�", userId);
Db.CommitTran();
}
catch (Exception e)
@@ -623,7 +928,7 @@
/// <param name="url"> </param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
- public string IssuePlnOutHouse(OutModePalletVm model, int userId,string url)
+ public string IssuePlnOutHouse(OutModePalletVm model, int userId, string url)
{
try
{
@@ -637,7 +942,7 @@
if (stockDetail.Count > 0)
{
//鍒ゆ柇鏄惁澶т簬闇�瑕佸灈鏁�
- if (stockDetail.Count< int.Parse(model.Num))
+ if (stockDetail.Count < int.Parse(model.Num))
{
strMsg = "闇�瑕佸灈鏁板ぇ浜庡簱瀛樺灈鏁帮紝璇烽噸鏂拌緭鍏�!";
return strMsg;
@@ -692,7 +997,7 @@
s.Status = "2"; //2 宸插垎閰�
//淇敼搴撳瓨鏄庣粏淇℃伅
Db.Updateable(s).ExecuteCommand();
-
+
#region 鍒嗛厤
//娣诲姞鍒嗛厤琛ㄤ俊鎭�
@@ -726,7 +1031,7 @@
Db.Insertable(allot).ExecuteCommand();
#endregion
-
+
#region 娣诲姞鍑哄簱浠诲姟淇℃伅
var taskNo = new Common().GetMaxNo("TK");
@@ -792,7 +1097,7 @@
{
//鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
new TaskServer().EditTaskIssueOk(list2, time1, time2);
- str += "涓嬪彂鎴愬姛";
+ str += "涓嬪彂鎴愬姛";
}
if (wcsModel.StatusCode == -1)
{
@@ -808,7 +1113,7 @@
}
//娣诲姞鎿嶄綔鏃ュ織璁板綍
- var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "绌烘墭鍑哄簱", i+"", "涓嬪彂", $"鐢≒DA涓嬪彂浜� {i} 涓┖鎵樺灈", userId);
+ var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "绌烘墭鍑哄簱", i + "", "涓嬪彂", $"鐢≒DA涓嬪彂浜� {i} 涓┖鎵樺灈", userId);
Db.CommitTran();
return "";
@@ -881,7 +1186,7 @@
throw new Exception("搴撳瓨淇℃伅涓笉瀛樺湪璇ユ墭鐩樹俊鎭紝璇锋鏌�!");
}
- if (result.WareHouseNo!="W02")//W02锛氶浂绠卞簱
+ if (result.WareHouseNo != "W02")//W02锛氶浂绠卞簱
{
throw new Exception("璇ユ墭鐩樻湭鍦ㄩ浂绠卞簱锛岃妫�鏌�!");
}
@@ -889,7 +1194,7 @@
#endregion
//鑾峰彇搴撳瓨鏄庣粏淇℃伅
- var stockDetail = Db.Queryable<DataStockDetail>().Where(s => s.IsDel == "0" && s.PalletNo == palletNo).ToList();
+ var stockDetail = Db.Queryable<DataStockDetail>().Where(s => s.IsDel == "0" && s.PalletNo == palletNo).ToList();
//楠岃瘉搴撳瓨鏄庣粏淇℃伅鏄惁瀛樺湪
if (stockDetail == null)
{
@@ -977,5 +1282,696 @@
throw new Exception(e.Message);
}
}
+
+ //鏍规嵁鎵樼洏鍙疯幏鍙栧彇鏍风被鍨�
+ public string GetSampleType(string palletNo)
+ {
+ try
+ {
+ var type = "";
+ var detail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNo);
+ if (detail== null)
+ {
+ throw new Exception("褰撳墠鎵樼洏鏈湪搴撳瓨涓�");
+ }
+ //鎬庝箞鍒ゆ柇褰撳墠鎵樼洏鏄簱澶栬鍙栨牱鐨勬墭鐩橈紝姝e父鍑哄簱鍓╀綑鎵樼洏鐩墠杩欑鎯呭喌涔熻兘鎷h揣鍟婏紝涔熸病鏈夊垎閰嶄俊鎭�
+ var allot = Db.Queryable<BllExportAllot>().First(m =>
+ m.IsDel == "0" && m.PalletNo == palletNo && m.Status != "5" && m.Status != "6");
+ if (allot!=null)
+ {
+ var soNo = Db.Queryable<BllExportNotice>()
+ .First(m => m.IsDel == "0" && m.SONo == allot.SONo);
+ if (soNo == null)
+ {
+ throw new Exception("鏈壘鍒版墭鐩樹笂鍑哄簱鍗曟嵁淇℃伅");
+ }
+ if (soNo.Type != "3")
+ {
+ throw new Exception("璇ユ墭鐩樹笉鏄彇鏍锋墭鐩�");
+ }
+ type = "0";//搴撳唴鍙栨牱
+ }
+ else
+ {
+ //鍒ゆ柇褰撳墠鎵樼洏鏄惁鏄湪骞冲簱鎴栧簱澶�
+ type = "1";//搴撳墠鍙栨牱
+ }
+ return type;
+ }
+ catch (Exception e)
+ {
+ throw new Exception(e.Message);
+ }
+ }
+
+ //鏍规嵁鎵樼洏鍙疯幏鍙栧叆搴撳崟鎹�
+ public List<string> GetAsnNoByPallet(string palletNo)
+ {
+ try
+ {
+ var type = "";
+ var detail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNo);
+ if (detail == null)
+ {
+ throw new Exception("褰撳墠鎵樼洏鏈湪搴撳瓨涓�");
+ }
+
+ var list = new List<string>();
+ if (string.IsNullOrWhiteSpace(detail.ASNNo))
+ {
+ throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樼殑鍏ュ簱鍗曚俊鎭�");
+ }
+ list.Add(detail.ASNNo);
+ return list;
+ }
+ catch (Exception e)
+ {
+ throw new Exception(e.Message);
+ }
+ }
+
+ //鍙栨牱鍑哄簱鎷h揣(鏍囩)
+ public void SampleSoSetPick(string soType,string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string pickQty1, string asnNo, int userId)
+ {
+ Db.BeginTran();
+ try
+ {
+ if (string.IsNullOrWhiteSpace(soType))
+ {
+ throw new Exception("鍙栨牱鏍囪瘑涓嶈兘涓虹┖");
+ }
+
+ //soType: 0搴撳唴鍙栨牱锛屾湁鍑哄簱鍗曞強鍒嗛厤淇℃伅锛� 1搴撳墠鍙栨牱锛屽弽鍚戞坊鍔犲嚭搴撳崟鍙婂垎閰嶄俊鎭�
+ if (soType == "1")
+ {
+
+ #region 鍒ゆ柇
+
+ if (string.IsNullOrWhiteSpace(asnNo))
+ {
+ throw new Exception("鍏ュ簱鍗曚笉鑳戒负绌�");
+ }
+ if (string.IsNullOrWhiteSpace(palletNo))
+ {
+ throw new Exception("鎵樼洏鐮佷笉鑳戒负绌�");
+ }
+ if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)
+ {
+ throw new Exception("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�");
+ }
+ //鍏堝垽鏂槸鍚︽槸搴撳鍙栨牱鎵樼洏
+ var allot = Db.Queryable<BllExportAllot>().First(m =>
+ m.IsDel == "0" && m.PalletNo == palletNo && m.Status != "5" && m.Status != "6");
+ if (allot != null)
+ {
+ throw new Exception("褰撳墠鎵樼洏涓嶅睘浜庡簱鍓嶅彇鏍�");
+ }
+
+
+ //搴撳瓨鏄庣粏
+ var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.ASNNo == asnNo && m.PalletNo == palletNo);
+ if (stockDetail == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樼殑搴撳瓨鏄庣粏淇℃伅锛�");
+ }
+
+ var sku = Db.Queryable<SysMaterials>().First(m=>m.IsDel == "0" && m.SkuNo == stockDetail.SkuNo);
+ if (sku == null)
+ {
+ throw new Exception("鏈煡璇㈠埌褰撳墠鎵樼洏涓婄殑鐗╂枡淇℃伅");
+ }
+ //搴撳瓨鎬昏〃
+ var stock = Db.Queryable<DataStock>().First(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo);
+ if (stock == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�");
+ }
+
+ //鍑哄簱鍗�
+ var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.AsnSampleNo == asnNo);
+ //鍒涘缓鍑哄簱鍗�
+ if (notice == null || (notice != null && notice.Status != "6"))
+ {
+ var billNo = "";
+ var bl = true;
+ do
+ {
+ //鑾峰彇鑷鍗曟嵁鍙�
+ billNo = new Common().GetMaxNo("SO");
+ var no = billNo;
+ bl = Db.Queryable<BllExportNotice>().Any(m => m.SONo == no);
+ } while (bl);
+
+
+ var addNotice = new BllExportNotice()
+ {
+ SONo = billNo,
+ Type = "3",
+ Status = "4",
+ Origin = "WMS",
+
+ IsWave = "0",
+ WaveNo = "",
+ IsDespatch = "0",
+ CompleteTime = DateTime.Now,
+ CreateUser = 0,
+ };
+
+ var n = Db.Insertable(addNotice).ExecuteCommand();
+ notice = addNotice;
+ }
+
+ //鍒涘缓鍑哄簱鍗曟槑缁�
+ var noticeDetail = Db.Queryable<BllExportNoticeDetail>().First(m => m.IsDel == "0" && m.SONo == notice.SONo && m.SkuNo == stockDetail.SkuNo && m.LotNo.Contains(stockDetail.LotNo));
+ if (noticeDetail == null)
+ {
+ var addNoticeDetail = new BllExportNoticeDetail()
+ {
+ SONo = notice.SONo,
+ SkuNo = sku.SkuNo,
+ SkuName = sku.SkuName,
+ Standard = sku.Standard,
+ LotNo = stockDetail.LotNo,
+ LotText = "",
+ Qty = 0,
+ AllotQty = 0,
+ FactQty = 0,
+ CompleteQty = 0,
+ PackagNo = sku.PackagNo,
+ Price = sku.Price,
+ //Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * pickQty,
+ IsBale = "",
+ IsBelt = "",
+ SupplierLot = stock.SupplierLot,
+ IsWave = "0",
+ WaveNo = "",
+ IsIssueLotNo = "0",
+ Status = "3",
+ CreateUser = 0,
+ };
+ var m = Db.Insertable(addNoticeDetail).ExecuteCommand();
+ noticeDetail = addNoticeDetail;
+ }
+ //鍑哄簱鍒嗛厤淇℃伅
+ var allot2 = Db.Queryable<BllExportAllot>().First(m => m.IsDel == "0" && m.Status == "5" && m.SONo == notice.SONo && m.PalletNo == palletNo);
+ if (allot2 == null)
+ {
+ //娣诲姞鍒嗛厤琛ㄤ俊鎭�
+ var addAllot = new BllExportAllot
+ {
+ SONo = notice.SONo,
+ WaveNo = "",
+ SODetailNo = noticeDetail.Id,
+ StockId = stockDetail.Id,
+ LotNo = stockDetail.LotNo,
+ LotText = stockDetail.LotText,
+ SupplierLot = stockDetail.SupplierLot,
+ SkuNo = sku.SkuNo,
+ SkuName = sku.SkuName,
+ Standard = sku.Standard,
+ PalletNo = palletNo,
+ IsBale = "0" , //鏄惁瑁瑰寘
+ IsBelt = "0" , //鏄惁鎵撳甫
+
+ Qty = 0,
+ CompleteQty = 0,
+
+ Status = "5",
+ LogisticsId = notice.LogisticsId,
+ IsAdvance = "0",
+ OutMode = "",//鍑哄簱鍙�
+
+ CreateUser = userId,
+ CreateTime = DateTime.Now
+ };
+
+ var fp = Db.Insertable(addAllot).ExecuteCommand();
+ allot2 = addAllot;
+ }
+
+
+ #endregion
+
+
+ //鍒ゆ柇鏄暎鏀嫞璐ц繕鏄暟閲忔嫞璐�
+ var biaoShi = "0";//0锛氭暣绠辨嫞璐с��1锛氭暎鏀嫞璐с��2锛氭暟閲忔嫞璐�
+ List<DataBoxInfo> boxInfos;
+ var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo);
+ if (boxInfo.Count() == 0)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅");
+ }
+ boxInfos = boxInfo.ToList();
+
+ if (!string.IsNullOrWhiteSpace(boxNo3)) //鏁f敮鎷h揣
+ {
+ boxInfos = boxInfos.Where(m => m.BoxNo3 == boxNo3).ToList();
+
+ if (boxInfos.Count() == 0)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅");
+ }
+ if (boxInfos.Count() > 1)
+ {
+ throw new Exception("璇ヨ拷婧敮鐮佺殑淇℃伅澶т簬1鏉★紝淇℃伅閿欒锛岃鏍稿疄锛�");
+ }
+
+ if (boxInfos.Any(m => m.PalletNo != palletNo))
+ {
+ throw new Exception("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴");
+ }
+
+ biaoShi = "1";
+ }
+ else if (!string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)//鏁伴噺鎷h揣
+ {
+ if (boxInfo.Count() > 1)
+ {
+ throw new Exception("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣");
+ }
+ int boxQty = boxInfo.First().Qty;
+ if (Convert.ToInt32(pickQty1) > boxQty)
+ {
+ throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺");
+ }
+
+ biaoShi = "2";
+ }
+ else //鏁寸鎷h揣
+ {
+ if (boxInfo.Count() == 0)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ョ鐮佺殑淇℃伅");
+ }
+ if (boxInfo.Any(m => m.PalletNo != palletNo))
+ {
+ throw new Exception("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴");
+ }
+
+ }
+ var pickQty = 0;//鎷h揣鐨勬暟閲�
+ var comDetailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToList();
+ var comList = new List<BllCompleteDetail>();
+ foreach (var item in boxInfos)
+ {
+ if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
+ {
+ throw new Exception($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣");
+ }
+ //娣诲姞鎷h揣鏄庣粏
+ var completeDetail = new BllCompleteDetail()
+ {
+ SONo = soNo,
+ SODetailNo = int.Parse(soDetailId),
+ ExportAllotId = allot.Id,
+ StockId = allot.StockId,
+ BoxNo = item.BoxNo,
+ BoxNo2 = item.BoxNo2,
+ BoxNo3 = item.BoxNo3,
+
+ LotNo = allot.LotNo,
+ LotText = allot.LotText,
+ SupplierLot = allot.SupplierLot,
+ SkuNo = allot.SkuNo,
+ SkuName = allot.SkuName,
+ Standard = allot.Standard,
+ PalletNo = palletNo,
+ CompleteQty = biaoShi == "2" ? int.Parse(pickQty1) : item.Qty,
+ InspectMark = "1",
+
+ CreateUser = userId
+ };
+ comList.Add(completeDetail);
+
+ if (biaoShi != "2")
+ {
+ //鍒犻櫎搴撳瓨绠辩爜鏄庣粏
+ Db.Deleteable(item).ExecuteCommand();
+ }
+ else//鏁伴噺鎷h揣
+ {
+ if (int.Parse(pickQty1) == item.Qty)
+ {
+ //鍒犻櫎搴撳瓨绠辩爜鏄庣粏
+ Db.Deleteable(item).ExecuteCommand();
+ }
+ else
+ {
+ item.Qty -= int.Parse(pickQty1);
+ item.BitBoxMark = "1";//闆剁鏍囪瘑
+ item.InspectMark = "1";//鎶芥绠辨爣璇�
+ Db.Updateable(item).ExecuteCommand();
+ }
+ }
+ pickQty += item.Qty;
+ }
+
+
+ //鏀瑰彉搴撳唴绠辩爜鏄惁闆剁淇℃伅
+ if (biaoShi == "1")
+ {
+ var boxSurplusList = boxInfo.Where(m => m.BoxNo3 != boxNo3).ToList();
+ foreach (var item in boxSurplusList)
+ {
+ item.BitBoxMark = "1";
+ item.InspectMark = "1";
+ Db.Updateable(item).ExecuteCommand();
+ }
+ }
+
+ Db.Insertable(comList).ExecuteCommand();
+ //淇敼鍑哄簱鍒嗛厤淇℃伅
+ allot2.Qty += pickQty;
+ allot2.CompleteQty += pickQty;
+ Db.Updateable(allot).ExecuteCommand();
+
+ //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁�
+ stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇�
+ stockDetail.Qty -= pickQty;
+
+ if (stockDetail.Qty <= 0)
+ {
+ Db.Deleteable(stockDetail).ExecuteCommand();
+ }
+ else
+ {
+ Db.Updateable(stockDetail).ExecuteCommand();
+ }
+ stock.Qty -= pickQty;
+ if (stock.Qty <= 0)
+ {
+ Db.Deleteable(stock).ExecuteCommand();
+ }
+ else
+ {
+ Db.Updateable(stock).ExecuteCommand();
+ }
+ var num2 = Db.Queryable<DataStockDetail>().Count(m => m.IsDel == "0" && m.PalletNo == palletNo);
+ if (num2 <= 0)
+ {
+ //鏀瑰彉鎵樼洏鐘舵��
+ var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == palletNo && m.IsDel == "0");
+ if (pallet == null)
+ {
+ throw new Exception("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�");
+ }
+ pallet.Status = "0";
+ Db.Updateable(pallet).ExecuteCommand();
+ }
+ //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
+ noticeDetail.Qty += pickQty;
+ noticeDetail.AllotQty += pickQty;
+ noticeDetail.FactQty += pickQty;
+ noticeDetail.CompleteQty += pickQty;
+ Db.Updateable(noticeDetail).ExecuteCommand();
+
+ var num = Db.Queryable<BllExportNoticeDetail>()
+ .Count(m => m.IsDel == "0" && m.SONo == soNo && m.CompleteQty < m.Qty);
+ if (num <= 0)
+ {
+ notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴�
+ }
+ //淇敼鍑哄簱鍗曚俊鎭�
+ Db.Updateable(notice).ExecuteCommand();
+
+ }
+ else if(soType == "0")
+ {
+ #region 鍒ゆ柇
+
+ if (string.IsNullOrWhiteSpace(soNo))
+ {
+ throw new Exception("鍑哄簱鍗曟嵁涓嶈兘涓虹┖");
+ }
+ if (string.IsNullOrWhiteSpace(soDetailId))
+ {
+ throw new Exception("鍑哄簱鐗╂枡-鎵规涓嶈兘涓虹┖");
+ }
+ if (string.IsNullOrWhiteSpace(palletNo))
+ {
+ throw new Exception("鎵樼洏鐮佷笉鑳戒负绌�");
+ }
+ if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)
+ {
+ throw new Exception("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�");
+ }
+
+ //鍑哄簱鍗�
+ var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.SONo == soNo);
+ if (notice == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鐨勪俊鎭�");
+ }
+ if (notice.Status != "3")
+ {
+ throw new Exception("鍑哄簱鍗曠殑鐘舵�佷笉鏄鍦ㄦ墽琛岋紝涓嶈兘鎷h揣");
+ }
+ //鍑哄簱鍗曟槑缁�
+ var noticeDetail = Db.Queryable<BllExportNoticeDetail>()
+ .First(m => m.IsDel == "0" && m.Id == int.Parse(soDetailId));
+ if (noticeDetail == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鏄庣粏鐨勪俊鎭�");
+ }
+ //鍑哄簱鍒嗛厤淇℃伅
+ var allot = Db.Queryable<BllExportAllot>().First(m =>
+ m.IsDel == "0" && (m.Status == "2" || m.Status == "3") && m.SONo == soNo &&
+ m.SODetailNo == int.Parse(soDetailId) && m.PalletNo == palletNo);
+ if (allot == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樼殑鍒嗛厤淇℃伅");
+ }
+ //鍓╀綑鎷h揣鏁伴噺锛堝緟鎷e噺鍘诲凡鎷o級
+ var needQty = allot.Qty - allot.CompleteQty;
+
+ //搴撳瓨鏄庣粏
+ var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.Id == allot.StockId);
+ if (stockDetail == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨鏄庣粏淇℃伅锛�");
+ }
+ //搴撳瓨鎬昏〃
+ var stock = Db.Queryable<DataStock>().First(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo);
+ if (stock == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�");
+ }
+
+ #endregion
+
+ var biaoShi = "0";//0锛氭暣绠辨嫞璐с��1锛氭暎鏀嫞璐с��2锛氭暟閲忔嫞璐�
+ List<DataBoxInfo> boxInfos;
+ var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo);
+ if (boxInfo.Count() == 0)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅");
+ }
+ boxInfos = boxInfo.ToList();
+ if (!string.IsNullOrWhiteSpace(boxNo3)) //鏁f敮鎷h揣
+ {
+ boxInfos = boxInfos.Where(m => m.BoxNo3 == boxNo3).ToList();
+
+ if (boxInfos.Count() == 0)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅");
+ }
+ if (boxInfos.Count() > 1)
+ {
+ throw new Exception("璇ヨ拷婧敮鐮佺殑淇℃伅澶т簬1鏉★紝淇℃伅閿欒锛岃鏍稿疄锛�");
+ }
+
+ if (boxInfos.Any(m => m.PalletNo != palletNo))
+ {
+ throw new Exception("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴");
+ }
+ var boxQty = boxInfos.First().Qty;
+ if (boxQty > needQty)
+ {
+ throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺");
+ }
+
+ biaoShi = "1";
+ }
+ else if (!string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)//鏁伴噺鎷h揣
+ {
+ if (boxInfo.Count() > 1)
+ {
+ throw new Exception("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣");
+ }
+ int boxQty = boxInfo.First().Qty;
+ if (Convert.ToInt32(pickQty1) > boxQty)
+ {
+ throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺");
+ }
+ if (Convert.ToInt32(pickQty1) > needQty)
+ {
+ throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺");
+ }
+
+ biaoShi = "2";
+ }
+ else //鏁寸鎷h揣
+ {
+ if (boxInfo.Count() == 0)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ョ鐮佺殑淇℃伅");
+ }
+ if (boxInfo.Any(m => m.PalletNo != palletNo))
+ {
+ throw new Exception("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴");
+ }
+ var boxQty = boxInfo.GroupBy(m => m.BoxNo).Select(m => SqlFunc.AggregateSum(m.Qty)).ToList();
+ if (boxQty[0] > needQty)
+ {
+ throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺");
+ }
+ }
+ var pickQty = 0;//鎷h揣鐨勬暟閲�
+ var comDetailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToList();
+ var comList = new List<BllCompleteDetail>();
+ foreach (var item in boxInfos)
+ {
+ if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
+ {
+ throw new Exception($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣");
+ }
+ //娣诲姞鎷h揣鏄庣粏
+ var completeDetail = new BllCompleteDetail()
+ {
+ SONo = soNo,
+ SODetailNo = int.Parse(soDetailId),
+ ExportAllotId = allot.Id,
+ StockId = allot.StockId,
+ BoxNo = item.BoxNo,
+ BoxNo2 = item.BoxNo2,
+ BoxNo3 = item.BoxNo3,
+
+ LotNo = allot.LotNo,
+ LotText = allot.LotText,
+ SupplierLot = allot.SupplierLot,
+ SkuNo = allot.SkuNo,
+ SkuName = allot.SkuName,
+ Standard = allot.Standard,
+ PalletNo = palletNo,
+ CompleteQty = biaoShi == "2" ? int.Parse(pickQty1) : item.Qty,
+
+ CreateUser = userId
+ };
+ comList.Add(completeDetail);
+
+ if (biaoShi != "2")
+ {
+ //鍒犻櫎搴撳瓨绠辩爜鏄庣粏
+ Db.Deleteable(item).ExecuteCommand();
+ }
+ else//鏁伴噺鎷h揣
+ {
+ if (int.Parse(pickQty1) == item.Qty)
+ {
+ //鍒犻櫎搴撳瓨绠辩爜鏄庣粏
+ Db.Deleteable(item).ExecuteCommand();
+ }
+ else
+ {
+ item.Qty -= int.Parse(pickQty1);
+ item.BitBoxMark = "1";//闆剁鏍囪瘑
+ Db.Updateable(item).ExecuteCommand();
+ }
+ }
+ pickQty += item.Qty;
+ }
+ //鏀瑰彉搴撳唴绠辩爜鏄惁闆剁淇℃伅
+ if (biaoShi == "1")
+ {
+ var boxSurplusList = boxInfo.Where(m => m.BoxNo3 != boxNo3).ToList();
+ foreach (var item in boxSurplusList)
+ {
+ item.BitBoxMark = "1";
+ Db.Updateable(item).ExecuteCommand();
+ }
+ }
+
+ Db.Insertable(comList).ExecuteCommand();
+ //淇敼鍑哄簱鍒嗛厤淇℃伅
+ allot.CompleteQty += pickQty;
+ allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
+ if (allot.Status == "5")
+ {
+ //鍒ゆ柇璇ユ墭鐩樻槸鍚﹁繕瀛樺湪鐗╂枡 瀛樺湪鏀逛负寰呭洖搴� 寰呭洖搴撳畬鎴愬悗鏀逛负宸插畬鎴�
+ }
+ Db.Updateable(allot).ExecuteCommand();
+
+ //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁�
+ stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇�
+ stockDetail.Qty -= pickQty;
+ stockDetail.LockQty -= pickQty;
+ if (stockDetail.Qty == stockDetail.LockQty)
+ {
+ stockDetail.Status = "2";
+ }
+ else if (stockDetail.Qty > stockDetail.LockQty && stockDetail.LockQty > 0)
+ {
+ stockDetail.Status = "1";
+ }
+ else
+ {
+ stockDetail.Status = "0";
+ }
+
+ if (stockDetail.Qty <= 0)
+ {
+ Db.Deleteable(stockDetail).ExecuteCommand();
+ }
+ else
+ {
+ Db.Updateable(stockDetail).ExecuteCommand();
+ }
+ stock.Qty -= pickQty;
+ stock.LockQty -= pickQty;
+ if (stock.Qty <= 0)
+ {
+ Db.Deleteable(stock).ExecuteCommand();
+ }
+ else
+ {
+ Db.Updateable(stock).ExecuteCommand();
+ }
+ var num2 = Db.Queryable<DataStockDetail>().Count(m => m.IsDel == "0" && m.PalletNo == palletNo);
+ if (num2 <= 0)
+ {
+ //鏀瑰彉鎵樼洏鐘舵��
+ var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == palletNo && m.IsDel == "0");
+ if (pallet == null)
+ {
+ throw new Exception("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�");
+ }
+ pallet.Status = "0";
+ Db.Updateable(pallet).ExecuteCommand();
+ }
+ //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
+ noticeDetail.CompleteQty += pickQty;
+ Db.Updateable(noticeDetail).ExecuteCommand();
+
+ var num = Db.Queryable<BllExportNoticeDetail>()
+ .Count(m => m.IsDel == "0" && m.SONo == soNo && m.CompleteQty < m.Qty);
+ if (num <= 0)
+ {
+ notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴�
+ }
+ //淇敼鍑哄簱鍗曚俊鎭�
+ Db.Updateable(notice).ExecuteCommand();
+ }
+ //娣诲姞鎿嶄綔鏃ュ織璁板綍
+ var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "鎷h揣鍑哄簱", soNo, "鎷h揣", $"鍦≒DA涓婂鍑哄簱鍗曞彿涓猴細{soNo}鐨勬墭鐩樼爜涓猴細{palletNo}鐨勬嫞璐ф搷浣�", userId);
+ Db.CommitTran();
+ }
+ catch (Exception e)
+ {
+ Db.RollbackTran();
+ throw new Exception(e.Message);
+ }
+ }
+
+
}
}
--
Gitblit v1.8.0