From ac85f1b3f6ca3b530cb75e26e77f5ac18924a2ec Mon Sep 17 00:00:00 2001
From: bklLiudl <673013083@qq.com>
Date: 星期五, 27 六月 2025 14:59:56 +0800
Subject: [PATCH] 编写车间出库-数量

---
 Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs |  136 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 136 insertions(+), 0 deletions(-)

diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index b76f141..cd662cb 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -1596,6 +1596,142 @@
             }
         }
 
+        // 杞﹂棿Pda鎷h揣-鏁伴噺
+        public async Task ChejianPickNum(PdaSoVm model, int userId) 
+        {
+            Db.BeginTran();
+            try
+            {
+                #region 鍒ゆ柇
+
+                if (string.IsNullOrWhiteSpace(model.PalletNo))
+                {
+                    throw Oops.Bah("鎵樼洏鐮佷笉鑳戒负绌�");
+                }
+                if (string.IsNullOrWhiteSpace(model.SkuNo))
+                {
+                    throw Oops.Bah("鐗╂枡缂栫爜涓嶈兘涓虹┖");
+                }
+
+                decimal skuNum = 0;
+                if (string.IsNullOrEmpty(model.PickQty))
+                {
+                    throw Oops.Bah("鐗╂枡鏁伴噺涓嶅彲涓簄ull");
+                }
+                else 
+                {
+                    skuNum = decimal.Parse(model.PickQty);
+                    if (skuNum <= 0) 
+                    {
+                        throw Oops.Bah("鐗╂枡鏁伴噺搴斿ぇ浜�0锛�");
+                    }
+                }
+
+                // 鍒ゆ柇鏄惁璐存爣鐗╂枡
+                var skuModel = await Db.Queryable<SysMaterials>().FirstAsync(m => m.IsDel == "0" && m.SkuNo == model.SkuNo);
+                if (skuModel == null)
+                {
+                    throw Oops.Bah("鐗╂枡涓嶅瓨鍦紝璇锋鏌ョ墿鏂欑紪鐮佹槸鍚︽嫰鍗达紒");
+                }
+                else 
+                {
+                    if (skuModel.IsPasteCode != "0") 
+                    {
+                        throw Oops.Bah("璇ョ墿鏂欎负璐存爣鐗╂枡锛岃鍒版爣绛鹃〉闈㈡嫞璐э紒");
+                    }
+                }
+
+
+                //搴撳瓨鏄庣粏
+                var stockDetail = await Db.Queryable<DataStockDetail>()
+                    .FirstAsync(m => m.IsDel == "0" && m.PalletNo == model.PalletNo
+                    && m.SkuNo == model.SkuNo  && m.LotNo == model.LotNo);
+                if (stockDetail == null)
+                {
+                    throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樹笂璐х墿鐨勫簱瀛樻槑缁嗕俊鎭紒");
+                }
+
+                // 楠岃瘉鏄惁杞﹂棿绾胯竟浠撳簱
+                var areaList = new List<string>() { "B06", "B07", "B09" };
+                if (!areaList.Contains(stockDetail.AreaNo))
+                {
+                    throw Oops.Bah("鎵樼洏涓嶆槸杞﹂棿鎵樼洏锛�");
+                }
+
+                //搴撳瓨鎬昏〃
+                var stock = await Db.Queryable<DataStock>()
+                    .FirstAsync(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo);
+                if (stock == null)
+                {
+                    throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樹笂璐х墿鐨勫簱瀛樹俊鎭紒");
+                }
+                #endregion
+
+                var pickQty = skuNum;
+
+                //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁�
+                stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇�
+                stockDetail.Qty -= 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)
+                {
+                    await Db.Deleteable(stockDetail).ExecuteCommandAsync();
+                }
+                else
+                {
+                    await Db.Updateable(stockDetail).ExecuteCommandAsync();
+                }
+                stock.Qty -= pickQty;
+                if (stock.Qty <= 0)
+                {
+                    await Db.Deleteable(stock).ExecuteCommandAsync();
+                }
+                else
+                {
+                    await Db.Updateable(stock).ExecuteCommandAsync();
+                }
+
+                var num2 = await Db.Queryable<DataStockDetail>().CountAsync(m => m.IsDel == "0" && m.PalletNo == model.PalletNo);
+                if (num2 <= 0)
+                {
+                    //鏀瑰彉鎵樼洏鐘舵��
+                    var pallet = await Db.Queryable<SysPallets>().FirstAsync(m => m.PalletNo == model.PalletNo && m.IsDel == "0");
+                    if (pallet == null)
+                    {
+                        throw Oops.Bah("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�");
+                    }
+                    pallet.Status = "0";
+                    await Db.Updateable(pallet).ExecuteCommandAsync();
+                }
+
+                //娣诲姞鎿嶄綔鏃ュ織璁板綍
+                var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "杞﹂棿鍑哄簱",
+                    skuModel.SkuName, "鎷h揣", $"鍦≒DA杞﹂棿鍑哄簱椤典笂瀵癸細锛歿skuModel.SkuName}鐨勭墿鏂欒繘琛屾嫞璐ф搷浣�", userId);
+                Db.CommitTran();
+            }
+            catch (AppFriendlyException e)
+            {
+                Db.RollbackTran();
+            }
+            catch (Exception e)
+            {
+                Db.RollbackTran();
+                throw new Exception(e.Message);
+            }
+        }
+
         /// <summary>
         /// 鏍规嵁绠辩爜鑾峰彇鏍囩绠辩爜淇℃伅锛堣溅闂村叆搴�-鑾峰彇WMS鐢熸垚鐨勭淇℃伅锛�
         /// </summary>

--
Gitblit v1.8.0