From 7f4b5fb7a89052f1fbd2e00b34e60e1b55f73ab3 Mon Sep 17 00:00:00 2001
From: Demo <Demo@DESKTOP-CPA90BF>
Date: 星期六, 16 三月 2024 16:58:40 +0800
Subject: [PATCH] Merge branch 'csc'
---
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 131 +++++++++++++++++++++++++++++++------------
1 files changed, 93 insertions(+), 38 deletions(-)
diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index a77991b..6cf26c6 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -141,6 +141,7 @@
SupplierLot = stocks.First().SupplierLot,
IsWave = "0",
WaveNo = "",
+ IsIssueLotNo = string.IsNullOrWhiteSpace(d.LotNo)? "0":"1",
CreateUser = 0,
};
@@ -330,42 +331,60 @@
}
}
- public List<ExStockInfoDto> GetStockGroupList(string type, string msg)
+ public List<ExStockInfoDto> GetStockGroupList(string type, string ownerNo, string msg)
{
try
{
+ if (string.IsNullOrEmpty(type))
+ {
+ throw new Exception("璇烽�夋嫨鍑哄簱鍗曠被鍨�");
+ }
+ if (type == "6" && string.IsNullOrEmpty(ownerNo))
+ {
+ throw new Exception("浠e偍鍗曟嵁璇烽�夋嫨璐т富");
+ }
var plnList = new List<string>() { "100099" };
var skuList = new List<string>();
var sku = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0" && !plnList.Contains(m.SkuNo)); //鎺掗櫎绌烘墭鐩樼殑鐗╂枡闆嗗悎
string skuType = string.Empty;
+ string inspectStatus = string.Empty;
switch (type)//0锛氬師鏂� 1锛氬寘鏉� 2锛氭垚鍝� 3锛氳�楁潗 4锛氬崐鎴愬搧
{
- case "0"://鎴愬搧鍏ュ簱
+ case "0"://鎴愬搧鍑哄簱
skuType = "(2)";
+ inspectStatus = "1";
break;
case "1"://棰嗘枡鍑哄簱
skuType = "(0,1,3)";
+ inspectStatus = "1";
break;
case "2"://鎶芥鍑哄簱
- skuType = "(2)";
+ skuType = "(0,1,2,3)";
+ inspectStatus = "0,1,2";
break;
case "3"://鐗╂枡鍙栨牱鍑哄簱
- skuType = "(0)";
+ skuType = "(0,1,2,3)";
+ inspectStatus = "0";
break;
case "4"://涓嶅悎鏍煎搧鍑哄簱
- skuType = "(2)";
+ skuType = "(0,1,2,3)";
+ inspectStatus = "2";
break;
case "5"://涓棿鍝佸嚭搴�
skuType = "(4)";
+ inspectStatus = "0,1";
break;
case "6"://浠e偍鍑哄簱
- skuType = "(2)";
+ skuType = "(0,1,2,3)";
+ inspectStatus = "0,1";
break;
case "8"://瀵勫瓨鍑哄簱
- skuType = "(3)";
+ skuType = "(0,1,2,3)";
+ inspectStatus = "0,1";
break;
default: //鍏跺畠鍑哄簱
skuType = "(0,1,2,3,4)";
+ inspectStatus = "0,1";
break;
}
skuList = sku.Where(m => skuType.Contains(m.Type)).Select(m => m.SkuNo).ToList();
@@ -373,13 +392,23 @@
{
throw new Exception("鏈煡鍒板搴斿嚭搴撶被鍨嬬殑鐗╂枡");
}
+
+ if (type!="8")
+ {
+ skuList = skuList.Where(m => m != "100088").ToList();
+ }
+ else
+ {
+ skuList = skuList.Where(m => m == "100088").ToList();
+ }
//skuList = sku.Select(m => m.SkuNo).ToList();
var stockRst = new StockServer();
var stockDetailRst = new StockDetailServer();
Expression<Func<DataStockDetail, bool>> item = Expressionable.Create<DataStockDetail>()
//.And(it => it.WareHouseNo == wareHouseNo)
- .And(it => it.InspectStatus == "1")
+ .AndIF(!string.IsNullOrWhiteSpace(inspectStatus), it => inspectStatus.Contains(it.InspectStatus))
.And(m => skuList.Contains(m.SkuNo))
+ .AndIF(type == "6", m => m.OwnerNo == ownerNo)//浠e偍鍑哄簱闇�瑕佸叧鑱旇揣涓�
.AndIF(!string.IsNullOrWhiteSpace(msg), it => (it.SkuNo.Contains(msg) || it.SkuName.Contains(msg) || it.LotNo.Contains(msg)))
.And(it => (it.Qty - it.LockQty - it.FrozenQty) > 0)
.And(it => (it.Status == "0" || it.Status == "1"))
@@ -2560,18 +2589,22 @@
throw new Exception("搴撳瓨涓嶈冻,鏃犲彲鍑哄簱搴撳瓨");
}
//0:鎴愬搧鍑哄簱銆�1:棰嗘枡鍑哄簱銆�2:鎶芥鍑哄簱銆�3锛氱墿鏂欏彇鏍峰嚭搴撱��4:涓嶅悎鏍煎搧鍑哄簱銆�5:涓棿鍝佸嚭搴撱��6:浠e偍鍑哄簱銆�7:鍏朵粬鍑哄簱銆�8:瀵勫瓨鍑哄簱
- if (notice.Type == "0" || notice.Type == "1" || notice.Type == "2" || notice.Type == "5")//鎴愬搧銆佸師杈呮枡鍑哄簱
+ if (notice.Type == "0" || notice.Type == "1" )//鎴愬搧銆佸師杈呮枡鍑哄簱
{
stockDetail = stockDetail.Where(m => m.InspectStatus == "1").ToList();
}
- else if (notice.Type == "3" || notice.Type == "6" || notice.Type == "7" || notice.Type == "8")//鍙栨牱鍑哄簱
+ else if (notice.Type == "3" )//鍙栨牱鍑哄簱
{
stockDetail = stockDetail.Where(m => m.InspectStatus == "0").ToList();
+ }
+ else if (notice.Type == "5" || notice.Type == "6" || notice.Type == "7" || notice.Type == "8")
+ {
+ stockDetail = stockDetail.Where(m => m.InspectStatus == "0" || m.InspectStatus == "1").ToList();
}
else if (notice.Type == "4")//涓嶅悎鏍煎嚭搴�
{
stockDetail = stockDetail.Where(m => m.InspectStatus == "2").ToList();
- }
+ }
#region 鍖呰淇℃伅
@@ -2818,6 +2851,15 @@
d.Status = "0";
d.UpdateUser = userId;
d.UpdateTime = DateTime.Now;
+
+ if (notice.Type == "1" || notice.Type == "5" || notice.Type == "6" || notice.Type == "7" || notice.Type == "8")//1锛氶鏂欏嚭搴撱��
+ {
+ if (d.IsIssueLotNo != "1")
+ {
+ d.LotNo = "";
+ }
+
+ }
}
notice.Status = "0";
notice.UpdateUser = userId;
@@ -2980,6 +3022,8 @@
//搴撳瓨鏄庣粏
var stockList = Db.Queryable<DataStockDetail>().Where(a => stockIds.Contains(a.Id)).ToList();
+ //鍒嗛厤淇℃伅
+ var allots = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.SODetailNo == detail.Id && m.Status == "0").ToList();
//搴撳瓨鎬昏〃
//var stockz = Db.Queryable<DataStock>().First(d => d.IsDel == "0" && d.SkuNo == detail.SkuNo && d.LotNo == detail.LotNo);
@@ -2993,37 +3037,48 @@
{
throw new Exception("鎿嶄綔澶辫触锛岄儴鍒嗗偍浣嶅簱瀛樺紓甯革紒");
}
- if (st.Qty > (stock.Qty - stock.LockQty - stock.FrozenQty - stock.InspectQty))
+ if (st.Qty > (stock.Qty - stock.LockQty - stock.FrozenQty)) // 杈撳叆鐨勬暟閲� - 鎵樼洏涓婂彲鐢ㄧ殑鏁伴噺锛堟墭鐩樹笂鏁伴噺-閿佸畾鐨勬暟閲�-鍐荤粨鐨勬暟閲忥級
{
throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撴暟閲忚秴鍑哄簱瀛樻暟閲忥紒");
}
- //娣诲姞鍒嗛厤琛ㄤ俊鎭�
- var allot = new BllExportAllot
- {
- SONo = notice.SONo,
- WaveNo = "",
- SODetailNo = detail.Id,
- StockId = st.StockId,
- LotNo = stock.LotNo,
- LotText = stock.LotText,
- SupplierLot = stock.SupplierLot,
- SkuNo = stock.SkuNo,
- SkuName = stock.SkuName,
- Standard = stock.Standard,
- PalletNo = stock.PalletNo,
- IsBale = stock.IsBale,
- IsBelt = stock.IsBelt,
- Qty = st.Qty,
- CompleteQty = 0,
- Status = "0",
- LogisticsId = notice.LogisticsId,
- IsAdvance = "0",
- OutMode = "",//鍑哄簱鍙�
- CreateUser = userId,
- CreateTime = DateTime.Now
- };
- allotList.Add(allot);
+ var bl = allots.FirstOrDefault(m => m.StockId == st.StockId);
+ if (bl == null)
+ {
+ //娣诲姞鍒嗛厤琛ㄤ俊鎭�
+ var allot = new BllExportAllot
+ {
+ SONo = notice.SONo,
+ WaveNo = "",
+ SODetailNo = detail.Id,
+ StockId = st.StockId,
+ LotNo = stock.LotNo,
+ LotText = stock.LotText,
+ SupplierLot = stock.SupplierLot,
+ SkuNo = stock.SkuNo,
+ SkuName = stock.SkuName,
+ Standard = stock.Standard,
+ PalletNo = stock.PalletNo,
+ IsBale = stock.IsBale,
+ IsBelt = stock.IsBelt,
+ Qty = st.Qty,
+ CompleteQty = 0,
+ Status = "0",
+ LogisticsId = notice.LogisticsId,
+ IsAdvance = "0",
+ OutMode = "",//鍑哄簱鍙�
+
+ CreateUser = userId,
+ CreateTime = DateTime.Now
+ };
+ allotList.Add(allot);
+ }
+ else
+ {
+ bl.Qty += st.Qty;
+ Db.Updateable(bl).ExecuteCommand();
+ }
+
//搴撳瓨鏄庣粏
stock.LockQty += st.Qty;
stock.Status = stock.LockQty == stock.Qty ? "2" : "1";
--
Gitblit v1.8.0