From f2b3c45b78bb9fc021869c4ae35e6de039b50bbf Mon Sep 17 00:00:00 2001
From: chengsc <Demo@DESKTOP-CPA90BF>
Date: 星期五, 18 十月 2024 18:40:52 +0800
Subject: [PATCH] 修改问题
---
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 117 ++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 81 insertions(+), 36 deletions(-)
diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index e02d6f0..bccc202 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -433,16 +433,16 @@
inspectStatus = "0";
break;
case "4"://涓嶅悎鏍煎搧鍑哄簱
- skuType = "(0,1,2,3)";
+ skuType = "(0,1,2,3,4)";
inspectStatus = "2";
break;
case "5"://涓棿鍝佸嚭搴�
skuType = "(4)";
- inspectStatus = "0,1";
+ inspectStatus = "1";
break;
case "6"://浠e偍鍑哄簱
- skuType = "(0,1,2,3)";
- inspectStatus = "0,1";
+ skuType = "(0,1,2,3,4)";
+ inspectStatus = "0,1,2";
break;
case "8"://瀵勫瓨鍑哄簱
skuType = "(0,1,2,3)";
@@ -475,7 +475,7 @@
.AndIF(!string.IsNullOrWhiteSpace(inspectStatus), it => inspectStatus.Contains(it.InspectStatus))
.And(m => skuList.Contains(m.SkuNo))
.AndIF(type == "6", m => m.OwnerNo == ownerNo)//浠e偍鍑哄簱闇�瑕佸叧鑱旇揣涓�
- .AndIF(type == "2", m=> string.IsNullOrWhiteSpace(m.OwnerNo))
+ .AndIF(type != "6", m=> string.IsNullOrWhiteSpace(m.OwnerNo))
.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"))
@@ -3217,26 +3217,63 @@
{
throw new Exception("鑾峰彇澶辫触锛屾湭鎵惧埌鎸囧畾鍑哄簱鍗曪紒");
}
- if (detail.Status != "0" && detail.Status != "1" && detail.AllotQty >= detail.Qty)
- {
- throw new Exception("鑾峰彇澶辫触锛屽嚭搴撳崟鐘舵�佷笉鏄瓑寰呮墽琛屾垨鍒嗛厤涓紒");
- }
- if (detail.AllotQty >= detail.Qty)
- {
- throw new Exception("鑾峰彇澶辫触锛屽嚭搴撳崟宸插垎閰嶅畬鎴�!");
- }
+
var notice = Db.Queryable<BllExportNotice>().First(a => a.SONo == detail.SONo);
if (notice == null)
{
throw new Exception("鑾峰彇澶辫触锛屾湭鎵惧埌鎸囧畾鍑哄簱鍗�!");
}
- if (notice.Status == "3" && detail.AllotQty >= detail.Qty || notice.Status == "4" || notice.Status == "5")
+ if (notice.Type != "1" && notice.Type != "2" && notice.Type != "3")
{
- throw new Exception("鑾峰彇澶辫触锛屽嚭搴撳崟鐘舵�佷笉鍏佽!");
+ if (detail.Status != "0" && detail.Status != "1" && detail.AllotQty >= detail.Qty)
+ {
+ throw new Exception("鑾峰彇澶辫触锛屽嚭搴撳崟鐘舵�佷笉鏄瓑寰呮墽琛屾垨鍒嗛厤涓紒");
+ }
+ if (detail.AllotQty >= detail.Qty)
+ {
+ throw new Exception("鑾峰彇澶辫触锛屽嚭搴撳崟宸插垎閰嶅畬鎴�!");
+ }
+
+ if (notice.Status == "3" && detail.AllotQty >= detail.Qty || notice.Status == "4" || notice.Status == "5")
+ {
+ throw new Exception("鑾峰彇澶辫触锛屽嚭搴撳崟鐘舵�佷笉鍏佽!");
+ }
+ }
+ string inspectStatus = string.Empty;
+ switch (notice.Type)//0锛氬師鏂� 1锛氬寘鏉� 2锛氭垚鍝� 3锛氳�楁潗 4锛氬崐鎴愬搧
+ {
+ case "0"://鎴愬搧鍑哄簱
+ inspectStatus = "1";
+ break;
+ case "1"://棰嗘枡鍑哄簱
+ inspectStatus = "1";
+ break;
+ case "2"://鎶芥鍑哄簱
+ inspectStatus = "0,1,2";
+ break;
+ case "3"://鐗╂枡鍙栨牱鍑哄簱
+ inspectStatus = "0";
+ break;
+ case "4"://涓嶅悎鏍煎搧鍑哄簱
+ inspectStatus = "2";
+ break;
+ case "5"://涓棿鍝佸嚭搴�
+ inspectStatus = "1";
+ break;
+ case "6"://浠e偍鍑哄簱
+ inspectStatus = "0,1,2";
+ break;
+ case "8"://瀵勫瓨鍑哄簱
+ inspectStatus = "0,1";
+ break;
+ default: //鍏跺畠鍑哄簱
+ inspectStatus = "0,1";
+ break;
}
#endregion
Expression<Func<DataStockDetail, bool>> item = Expressionable.Create<DataStockDetail>()
+ .AndIF(!string.IsNullOrWhiteSpace(inspectStatus), m => inspectStatus.Contains(m.InspectStatus))
.AndIF(!string.IsNullOrWhiteSpace(houseNo), m => m.WareHouseNo == houseNo)
.AndIF(!string.IsNullOrWhiteSpace(roadwayNo), m => m.RoadwayNo == roadwayNo)
.AndIF(!string.IsNullOrWhiteSpace(locateNo), m => m.LocatNo == locateNo)
@@ -3284,29 +3321,36 @@
{
throw new Exception("鎿嶄綔澶辫触锛屾湭鎵惧埌鎸囧畾鍑哄簱鍗曡鎯咃紒");
}
- if (detail.AllotQty >= detail.Qty || (detail.Status != "0" && detail.Status != "1"))
- {
- throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撳崟宸插垎閰嶅畬鎴愶紒");
- }
var notice = Db.Queryable<BllExportNotice>().First(a => a.IsDel == "0" && a.SONo == detail.SONo);
if (notice == null)
{
throw new Exception("鎿嶄綔澶辫触锛屾湭鎵惧埌鎸囧畾鍑哄簱鍗曪紒");
}
- if (notice.Status == "3" && detail.AllotQty >= detail.Qty || notice.Status == "4" || notice.Status == "5")
+ if (notice.Type != "1" && notice.Type != "2" && notice.Type !="3")
{
- throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撳崟宸插垎閰嶅畬鎴愶紒");
+ if (detail.AllotQty >= detail.Qty || (detail.Status != "0" && detail.Status != "1"))
+ {
+ throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撳崟宸插垎閰嶅畬鎴愶紒");
+ }
+
+ if (notice.Status == "3" && detail.AllotQty >= detail.Qty || notice.Status == "4" || notice.Status == "5")
+ {
+ throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撳崟宸插垎閰嶅畬鎴愶紒");
+ }
+
+ //鍗曟嵁鏄庣粏闇�瑕佺殑鍑哄簱鏁伴噺
+ var needQty = detail.Qty - detail.AllotQty;
+ //鍒嗛厤鐨勫嚭搴撴暟閲�
+ var outQty = model.StockList.Select(s => s.Qty).ToList().Sum();
+ if (outQty != needQty)
+ {
+ throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撴暟閲忎笌璁″垝鏁伴噺涓嶄竴鑷达紒");
+ }
}
+
#endregion
- //鍗曟嵁鏄庣粏闇�瑕佺殑鍑哄簱鏁伴噺
- var needQty = detail.Qty - detail.AllotQty;
- //鍒嗛厤鐨勫嚭搴撴暟閲�
- var outQty = model.StockList.Select(s => s.Qty).ToList().Sum();
- if (outQty != needQty)
- {
- throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撴暟閲忎笌璁″垝鏁伴噺涓嶄竴鑷达紒");
- }
+
var stockIds = model.StockList.Select(a => a.StockId).ToList();
//搴撳瓨鏄庣粏
var stockList = Db.Queryable<DataStockDetail>().Where(a => stockIds.Contains(a.Id)).ToList();
@@ -3315,7 +3359,7 @@
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);
+ var stockz = Db.Queryable<DataStock>().First(d => d.IsDel == "0" && d.SkuNo == detail.SkuNo && d.LotNo == detail.LotNo);
var allotList = new List<BllExportAllot>();
decimal outQtys = 0;
@@ -3352,7 +3396,7 @@
IsBelt = stock.IsBelt,
Qty = st.Qty,
CompleteQty = 0,
- Status = "0",
+ Status = notice.Status == "4"? "2":"0",
LogisticsId = notice.LogisticsId,
IsAdvance = "0",
OutMode = "",//鍑哄簱鍙�
@@ -3371,11 +3415,12 @@
//搴撳瓨鏄庣粏
stock.LockQty += st.Qty;
stock.Status = stock.LockQty == stock.Qty ? "2" : "1";
-
- //搴撳瓨鎬昏〃
- //stockz.LockQty += st.Qty;
- //Db.Updateable(stockz).ExecuteCommand();
-
+ if (detail.AllotQty+ st.Qty > detail.Qty)
+ {
+ //搴撳瓨鎬昏〃
+ stockz.LockQty += (decimal)detail.AllotQty + st.Qty - detail.Qty;
+ Db.Updateable(stockz).ExecuteCommand();
+ }
Db.Updateable(stock).UpdateColumns(it => new { it.LockQty, it.Status }).ExecuteCommand();
outQtys += st.Qty;
--
Gitblit v1.8.0