From e34a92fc8833d3434511225939302cac0b75f3f3 Mon Sep 17 00:00:00 2001
From: Demo <Demo@DESKTOP-CPA90BF>
Date: 星期四, 14 三月 2024 16:47:16 +0800
Subject: [PATCH] 修改PDA取样出库

---
 Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs |  524 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 491 insertions(+), 33 deletions(-)

diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index 785537c..c340e8b 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -1410,7 +1410,7 @@
                     //鍑哄簱鍗�
                     var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.AsnSampleNo == asnNo);
                     //鍒涘缓鍑哄簱鍗�
-                    if (notice == null || (notice != null && notice.Status != "6"))
+                    if (notice == null ||  notice.Status == "6")
                     {
                         var billNo = "";
                         var bl = true;
@@ -1429,16 +1429,16 @@
                             Type = "3",
                             Status = "4",
                             Origin = "WMS",
-                           
+                            AsnSampleNo = asnNo,
                             IsWave = "0",
                             WaveNo = "",
                             IsDespatch = "0",
                             CompleteTime = DateTime.Now,
-                            CreateUser = 0,
+                            CreateUser = userId, 
                         };
 
-                        var n = Db.Insertable(addNotice).ExecuteCommand();
-                        notice = addNotice;
+                        var n = Db.Insertable(addNotice).ExecuteReturnEntity();
+                        notice = n;
                     }
 
                     //鍒涘缓鍑哄簱鍗曟槑缁�
@@ -1467,10 +1467,11 @@
                             WaveNo = "",
                             IsIssueLotNo = "0",
                             Status = "3",
-                            CreateUser = 0,
+                            CreateUser = userId,
+                            
                         };
-                        var m = Db.Insertable(addNoticeDetail).ExecuteCommand();
-                        noticeDetail = addNoticeDetail;
+                        var m = Db.Insertable(addNoticeDetail).ExecuteReturnEntity();
+                        noticeDetail = m;
                     }
                     //鍑哄簱鍒嗛厤淇℃伅
                     var allot2 = Db.Queryable<BllExportAllot>().First(m => m.IsDel == "0" && m.Status == "5" && m.SONo == notice.SONo && m.PalletNo == palletNo);
@@ -1502,11 +1503,10 @@
                             OutMode = "",//鍑哄簱鍙�
 
                             CreateUser = userId,
-                            CreateTime = DateTime.Now
                         };
 
-                        var fp = Db.Insertable(addAllot).ExecuteCommand();
-                        allot2 = addAllot;
+                        var fp = Db.Insertable(addAllot).ExecuteReturnEntity();
+                        allot2 = fp;
                     }
                     
 
@@ -1570,7 +1570,7 @@
                         
                     }
                     var pickQty = 0;//鎷h揣鐨勬暟閲�
-                    var comDetailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToList();
+                    var comDetailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot2.Id && m.PalletNo == palletNo).ToList();
                     var comList = new List<BllCompleteDetail>();
                     foreach (var item in boxInfos)
                     {
@@ -1581,20 +1581,20 @@
                         //娣诲姞鎷h揣鏄庣粏
                         var completeDetail = new BllCompleteDetail()
                         {
-                            SONo = soNo,
-                            SODetailNo = int.Parse(soDetailId),
-                            ExportAllotId = allot.Id,
-                            StockId = allot.StockId,
+                            SONo = notice.SONo,
+                            SODetailNo = noticeDetail.Id,
+                            ExportAllotId = allot2.Id,
+                            StockId = allot2.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,
+                            LotNo = allot2.LotNo,
+                            LotText = allot2.LotText,
+                            SupplierLot = allot2.SupplierLot,
+                            SkuNo = allot2.SkuNo,
+                            SkuName = allot2.SkuName,
+                            Standard = allot2.Standard,
                             PalletNo = palletNo,
                             CompleteQty = biaoShi == "2" ? int.Parse(pickQty1) : item.Qty,
                             InspectMark = "1",
@@ -1623,7 +1623,7 @@
                                 Db.Updateable(item).ExecuteCommand();
                             }
                         }
-                        pickQty += item.Qty;
+                        pickQty += biaoShi == "2" ? int.Parse(pickQty1) : item.Qty;
                     }
                     
 
@@ -1643,7 +1643,7 @@
                     //淇敼鍑哄簱鍒嗛厤淇℃伅
                     allot2.Qty += pickQty;
                     allot2.CompleteQty += pickQty;  
-                    Db.Updateable(allot).ExecuteCommand();
+                    Db.Updateable(allot2).ExecuteCommand();
 
                     //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁�
                     stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇�
@@ -1683,16 +1683,8 @@
                     noticeDetail.AllotQty += pickQty;
                     noticeDetail.FactQty += pickQty;
                     noticeDetail.CompleteQty += pickQty;
+                    noticeDetail.Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * noticeDetail.Qty;
                     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")
@@ -1972,6 +1964,472 @@
             }
         }
 
+        //鍙栨牱鍑哄簱鎷h揣(鏃犳爣绛�)
+        public void SampleSoSetQtyPick(string soType, string soNo, string soDetailId, string palletNo, string PickQty, string asnNo, int userId)
+        {
+            Db.BeginTran();
+            try
+            {
+                if (string.IsNullOrWhiteSpace(soType))
+                {
+                    throw new Exception("鍙栨牱鏍囪瘑涓嶈兘涓虹┖");
+                }
 
+                if (soType == "1")
+                {
+                    if (string.IsNullOrWhiteSpace(asnNo))
+                    {
+                        throw new Exception("鍏ュ簱鍗曟嵁涓嶈兘涓虹┖");
+                    }
+                    if (string.IsNullOrWhiteSpace(palletNo))
+                    {
+                        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.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",
+                            AsnSampleNo = asnNo,
+                            IsWave = "0",
+                            WaveNo = "",
+                            IsDespatch = "0",
+                            CompleteTime = DateTime.Now,
+                            CreateUser = userId,
+                        };
+
+                        var n = Db.Insertable(addNotice).ExecuteReturnEntity();
+                        notice = n;
+                    }
+
+                    //鍒涘缓鍑哄簱鍗曟槑缁�
+                    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 = userId,
+
+                        };
+                        var m = Db.Insertable(addNoticeDetail).ExecuteReturnEntity();
+                        noticeDetail = m;
+                    }
+                    //鍑哄簱鍒嗛厤淇℃伅
+                    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,
+                        };
+
+                        var fp = Db.Insertable(addAllot).ExecuteReturnEntity();
+                        allot2 = fp;
+                    }
+
+                    //鑾峰彇褰撳墠鎵樼洏鎷h揣鏄庣粏
+                    var complete = Db.Queryable<BllCompleteDetail>().First(a => a.IsDel == "0" && a.PalletNo == palletNo && a.SONo == notice.SONo && a.ExportAllotId == allot2.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 = notice.SONo,
+                            SODetailNo = noticeDetail.Id,
+                            ExportAllotId = allot2.Id,
+                            StockId = allot2.StockId,
+                            BoxNo = "",
+                            BoxNo2 = "",
+                            BoxNo3 = "",
+
+                            LotNo = allot2.LotNo,
+                            LotText = allot2.LotText,
+                            SupplierLot = allot2.SupplierLot,
+                            SkuNo = allot2.SkuNo,
+                            SkuName = allot2.SkuName,
+                            Standard = allot2.Standard,
+                            PalletNo = palletNo,
+                            CompleteQty = int.Parse(PickQty) ,
+                            InspectMark = "1",
+
+                            CreateUser = userId
+                        };
+                        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();
+                    }
+
+
+
+                    //淇敼鍑哄簱鍒嗛厤淇℃伅
+                    allot2.Qty += int.Parse(PickQty);
+                    allot2.CompleteQty += int.Parse(PickQty);  
+                    Db.Updateable(allot2).ExecuteCommand();
+
+                    int isDel = 0;
+
+                    //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁�
+                    stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇�
+                    stockDetail.InspectMark = "1";//淇敼涓烘娊妫�鎵樻爣璇�
+                    stockDetail.Qty -= int.Parse(PickQty);
+                    if (stockDetail.Qty == stockDetail.LockQty&& stockDetail.Qty != 0)
+                    {
+                        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);
+                    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.Qty += int.Parse(PickQty);
+                    noticeDetail.AllotQty += int.Parse(PickQty);
+                    noticeDetail.FactQty += int.Parse(PickQty);
+                    noticeDetail.CompleteQty += int.Parse(PickQty);
+                    noticeDetail.Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * noticeDetail.Qty;
+                    Db.Updateable(noticeDetail).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("鎵樼洏鐮佷笉鑳戒负绌�");
+                    }
+
+                    //鍑哄簱鍗�
+                    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)
+            {
+                Db.RollbackTran();
+                throw new Exception(e.Message);
+            }
+        }
     }
 }

--
Gitblit v1.8.0