From d7f5e3607825e621b40820d505b8ed0bb4e06125 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期四, 26 十二月 2024 15:19:30 +0800
Subject: [PATCH] 修改问题

---
 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs |  148 +++++++++++--------------------------------------
 1 files changed, 34 insertions(+), 114 deletions(-)

diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index e904d0f..35e9210 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -959,10 +959,11 @@
                 Expression<Func<DataStockDetail, bool>> item = Expressionable.Create<DataStockDetail>()
                     //.And(it => it.WareHouseNo == wareHouseNo)
                     .AndIF(!string.IsNullOrWhiteSpace(inspectStatus), it => inspectStatus.Contains(it.InspectStatus))
-                    .And(m => skuStrList.Contains(m.SkuNo))
+                    //.And(m => skuStrList.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.Qty - it.LockQty - it.FrozenQty) > 0)
+                    .And(it=>!string.IsNullOrEmpty(it.LotNo))
                     .And(it => (it.Status == "0" || it.Status == "1"))
                     .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
                 //搴撳瓨鏄庣粏
@@ -1037,14 +1038,7 @@
                 if (model == null || model.Detail.Count == 0)
                 {
                     throw new Exception("鍙傛暟寮傚父");
-                }
-                var skuNos = model.Detail.Select(a => a.SkuNo).Distinct().ToList();
-                //鏍规嵁鐗╂枡鍙疯幏鍙栫墿鏂欎俊鎭�佸簱瀛樻槑缁嗕腑鑾峰彇鎵规鎻忚堪渚涜揣鎵规绛�
-                var skuList = Db.Queryable<SysMaterials>().Where(a => skuNos.Contains(a.SkuNo) && a.IsDel == "0").ToList();
-                var stockList = Db.Queryable<DataStock>().Where(s => skuNos.Contains(s.SkuNo) && (s.Qty - s.FrozenQty - s.LockQty) > 0).ToList();
-                //var palletList = contextDb.Queryable<DataStockDetail>().Where(s => skuNos.Contains(s.SkuNo) && (s.Qty - s.FrozenQty - s.LockQty) > 0).ToList();
-                //瀹㈡埛淇℃伅
-                var customer = Db.Queryable<SysCustomer>().Where(m => m.IsDel == "0" && m.CustomerNo == model.CustomerNo).ToList();
+                }                
                 var billNo = "";
                 var bl = true;
                 do
@@ -1055,111 +1049,58 @@
                     bl = Db.Queryable<BllExportNotice>().Any(m => m.SONo == no);
                 } while (bl);
 
-
                 Db.BeginTran();//寮�鍚簨鍔�
-
                 try
                 {
                     var list = new List<BllExportNoticeDetail>();
                     //娣诲姞鍑哄簱鍗�
-                    foreach (var d in model.Detail)
+                    foreach (var item in model.Detail)
                     {
-                        if (d.Qty < 1)
+                        if (item.Qty < 1)
                         {
                             throw new Exception("鍑哄簱鏁伴噺蹇呴』澶т簬0");
                         }
-                        var sku = skuList.FirstOrDefault(a => a.SkuNo == d.SkuNo);
-                        if (sku == null)
+                        if (string.IsNullOrWhiteSpace(item.LotNo))
                         {
-                            throw new Exception($"鐗╂枡淇℃伅涓湭鏌ヨ鍒板嚭搴撶墿鏂欎俊鎭�:{d.SkuNo}");
+                            throw new Exception("鎵规涓嶅彲涓虹┖!");
                         }
-
-                        //0:鎴愬搧鍑哄簱銆�1:棰嗘枡鍑哄簱銆�2:鎶芥鍑哄簱銆�4:涓嶅悎鏍煎搧鍑哄簱銆�6:浠e偍鍑哄簱銆�7:鍏朵粬鍑哄簱銆� ///3锛氱墿鏂欏彇鏍峰嚭搴撱��5:涓棿鍝佸嚭搴撱��8:瀵勫瓨鍑哄簱
-                        if (model.Type == "0" || model.Type == "2" || model.Type == "4" || model.Type == "7")
+                        var soNoticeDetail = Db.Queryable<BllExportNoticeDetail>().First(w => w.IsDel == "0" && w.LotNo == item.LotNo);
+                        if (soNoticeDetail != null)
                         {
-                            if (string.IsNullOrWhiteSpace(d.LotNo))
+                            var soNotice = Db.Queryable<BllExportNotice>().First(w => w.IsDel == "0" && w.SONo == soNoticeDetail.SONo && (w.Status == "0" || w.Status == "1" || w.Status == "2" || w.Status == "3"));
+                            if (soNotice != null)
                             {
-                                throw new Exception("鎵规涓嶅彲涓虹┖!");
-                            }
-                        }
-
-                        if (model.Type == "1")
-                        {
-                            if (list.Count(m=>m.SkuNo == d.SkuNo)>=2)
-                            {
-                                throw new Exception("棰嗘枡鍑哄簱鍗曞悓鍗曟嵁鍚岀墿鏂欎笉鍏佽瓒呰繃3涓壒娆℃贩鎵瑰嚭搴�");
-                            }
-                        }
-                        else
-                        {
-                            if (list.Count(m => m.SkuNo == d.SkuNo) >= 1)
-                            {
-                                throw new Exception("鍑哄簱鍗曞悓鍗曟嵁鍚岀墿鏂欎笉鍏佽瓒呰繃2涓壒娆℃贩鎵瑰嚭搴�");
+                                throw new Exception($"璇ユ壒娆℃湁鏈畬鎴愮殑鍑哄簱鍗曪紝鎵规鍙凤細{soNoticeDetail.LotNo}!");
                             }
                         }
                         //搴撳瓨
-                        List<DataStock> stocks;
+                        var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.LotNo == item.LotNo);
 
-                        decimal q1 = 0;
-                        Dictionary<int, decimal> dic = new Dictionary<int, decimal>();
-                        if (!string.IsNullOrWhiteSpace(d.LotNo))
-                        {
-                            stocks = stockList.Where(s => s.SkuNo == d.SkuNo && s.LotNo == d.LotNo).ToList();
-                        }
-                        else
-                        {
-                            stocks = stockList.Where(s => s.SkuNo == d.SkuNo && string.IsNullOrWhiteSpace(s.LotNo)).ToList();
-                        }
-                        if (stocks.Count < 1)
-                        {
-                            throw new Exception($"鎬诲簱瀛樹腑鏈煡璇㈠埌鍑哄簱鐗╂枡淇℃伅:{d.SkuNo}");
-                        }
-                        //鍒ゆ柇鏁伴噺
-                        var qty = stocks.First().Qty - stocks.First().LockQty - stocks.First().FrozenQty;
-                        if (d.Qty > qty)
-                        {
-                            throw new Exception($"鎬诲簱瀛樹腑鍑哄簱鐗╂枡淇℃伅:{d.SkuNo}銆亄d.LotNo} 搴撳瓨鏁伴噺涓嶈冻");
-                        }
-
-                        var item = new BllExportNoticeDetail()
+                        var noticeDetail = new BllExportNoticeDetail()
                         {
                             SONo = billNo,
-                            SkuNo = sku.SkuNo,
-                            SkuName = sku.SkuName,
-                            Standard = sku.Standard,
-                            LotNo = d.LotNo,
+                            SkuNo = stockDetail.SkuNo,
+                            SkuName = stockDetail.SkuName,
+                            Standard = stockDetail.Standard,
+                            LotNo = stockDetail.LotNo,
                             LotText = "",
                             Status = "0",
-                            Qty = d.Qty,
+                            Qty = item.Qty,
                             AllotQty = 0,
                             FactQty = 0,
                             CompleteQty = 0,
-                            PackagNo = sku.PackagNo,
-                            Price = sku.Price,
-                            Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * d.Qty,
-                            IsBale = d.IsBale,
-                            IsBelt = d.IsBelt,
-                            SupplierLot = stocks.First().SupplierLot,
-                            IsWave = "0",
-                            WaveNo = "",
+                            //PackagNo = sku.PackagNo,
+                            //Price = sku.Price,
+                            //Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * d.Qty,
+                            //IsBale = d.IsBale,
+                            //IsBelt = d.IsBelt,
+                            //SupplierLot = stocks.First().SupplierLot,
+                            //IsWave = "0",
+                            //WaveNo = "",
 
                             CreateUser = userId,
                         };
-                        list.Add(item);
-
-                        
-                        stocks.First().LockQty += d.Qty;//閿佸畾鏁伴噺
-                        var i = Db.Updateable(stocks.First()).UpdateColumns(it => new { it.LockQty })
-                            .ExecuteCommand();
-
-                        //foreach (var s in dic)
-                        //{
-                        //    var st = stockList.First(m => m.Id == s.Key);
-                        //    st.LockQty += s.Value;//閿佸畾鏁伴噺
-                        //    var i = Db.Updateable(st).UpdateColumns(it => new { it.LockQty })
-                        //        .ExecuteCommand();
-                        //}
-
+                        list.Add(noticeDetail);
                     }
                     var notice = new BllExportNotice()
                     {
@@ -1167,8 +1108,8 @@
                         Type = model.Type,
                         Status = "0",
                         Origin = "WMS",
-                        CustomerNo = model.CustomerNo,
-                        CustomerName = customer.FirstOrDefault() == null ? "" : customer.First().CustomerName,
+                        //CustomerNo = model.CustomerNo,
+                        //CustomerName = customer.FirstOrDefault() == null ? "" : customer.First().CustomerName,
                         LogisticsId = model.LogisticsId,
                         IsWave = "0",
                         WaveNo = "",
@@ -1674,37 +1615,16 @@
                     throw new Exception("鍙傛暟寮傚父,璇锋鏌ョ姸鎬佹槸鍚︽湭绛夊緟鎵ц鎴栨潵婧愭槸鍚︽槸WMS");
                 }
 
-                //鎬诲簱瀛樹俊鎭�
-                var stockList = Db.Queryable<DataStock>().ToList();
                 //鍑哄簱鍗曟槑缁�
                 var noticeDetail = Db.Queryable<BllExportNoticeDetail>().Where(m => m.IsDel == "0" && m.SONo == notice.SONo).ToList();
                 Db.BeginTran();//寮�鍚簨鍔�
                 try
                 {
-                    foreach (var d in noticeDetail)
+                    foreach (var item in noticeDetail)
                     {
-                        //鎬诲簱瀛�
-                        var sq = stockList.Where(s => s.SkuNo == d.SkuNo);
-                        if (!string.IsNullOrWhiteSpace(d.LotNo))
-                        {
-                            sq = sq.Where(s => s.LotNo == d.LotNo);
-                        }
-                        else
-                        {
-                            sq = sq.Where(s => string.IsNullOrWhiteSpace(s.LotNo));
-                        }
-                        var fd = sq.FirstOrDefault();
-                        if (fd == null)
-                        {
-                            throw new Exception($"鏈壘鍒扮墿鏂檣d.SkuNo}銆佹壒娆d.LotNo} 鐨勫簱瀛樹俊鎭�");
-                        }
-                        fd.LockQty -= d.Qty;
-                        d.IsDel = "1";
-                        d.UpdateUser = userId;
-                        d.UpdateTime = DateTime.Now;
-                        Db.Updateable(d).ExecuteCommand();
-                        Db.Updateable(fd).UpdateColumns(it => new { it.LockQty }).ExecuteCommand();
+                        item.IsDel = "1";
                     }
+                    Db.Updateable(noticeDetail).ExecuteCommand();
                     //鍒犻櫎鍑哄簱鍗�
                     notice.IsDel = "1";
                     notice.UpdateUser = userId;

--
Gitblit v1.8.0