From e286264a833fe52862690ad06d72ad04df5c77dc Mon Sep 17 00:00:00 2001
From: huawei <huawei@2214094776>
Date: 星期三, 17 十二月 2025 16:06:20 +0800
Subject: [PATCH] 看板功能

---
 service/Warehouse/TransferOutManager.cs |  101 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 99 insertions(+), 2 deletions(-)

diff --git a/service/Warehouse/TransferOutManager.cs b/service/Warehouse/TransferOutManager.cs
index abee822..946dc6c 100644
--- a/service/Warehouse/TransferOutManager.cs
+++ b/service/Warehouse/TransferOutManager.cs
@@ -232,7 +232,8 @@
 
         // 鏌ヨ鏉$爜搴撳瓨淇℃伅骞堕獙璇�
         var stock = Db.Queryable<MesInvItemStocks>()
-            .Where(x => x.ItemBarcode == p_item_barcode
+             .LeftJoin<MesInvItemBarcodes>((stocks, items) => stocks.ItemBarcode == items.ItemBarcode)
+            .Where((x,b) => (x.ItemBarcode == p_item_barcode || b.ItemBarcodeTb == p_item_barcode)
                         && x.Quantity > 0)
             .First();
         if (stock == null) throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮侊紝璇锋牳瀵癸紒{p_item_barcode}");
@@ -427,7 +428,8 @@
         var p_item_barcode = query.barcode;
 
         var barinfo = Db.Queryable<MesInvItemStocks>()
-            .Where(x => x.ItemBarcode == p_item_barcode)
+             .LeftJoin<MesInvItemBarcodes>((stocks, items) => stocks.ItemBarcode == items.ItemBarcode)
+            .Where((x, b) => (x.ItemBarcode == p_item_barcode || b.ItemBarcodeTb == p_item_barcode))
             .First();
 
 
@@ -601,4 +603,99 @@
         }
     }
 
+    //涓�閿皟鎷ㄦ媶鍒�
+    public ProductionPickDto ScanYjdbCF(WarehouseQuery query)
+    {
+        // 瀹夊叏鑾峰彇dynamic灞炴�у�硷紝閬垮厤绌哄紩鐢ㄥ紓甯�
+        var p_bill_no = query.daa001?.ToString() ?? string.Empty;
+        var p_item_barcode = query.barcode?.ToString() ?? string.Empty;
+        var p_kw = query.sectionCode?.ToString() ?? string.Empty;
+        var c_user = query.userName?.ToString() ?? string.Empty;
+
+        // 楠岃瘉鍗曟嵁鍙�
+        if (string.IsNullOrEmpty(p_bill_no)) throw new Exception("璇烽�夊彇鍗曟嵁鍙凤紒");
+        // 楠岃瘉鏉$爜
+        if (string.IsNullOrEmpty(p_item_barcode)) throw new Exception("璇锋壂鎻忔潯鐮侊紒");
+        // 楠岃瘉搴撲綅
+        if (string.IsNullOrEmpty(p_kw)) throw new Exception("璇烽�夋嫨搴撲綅锛�");
+        // 楠岃瘉鐢ㄦ埛鍚�
+        if (string.IsNullOrEmpty(c_user)) throw new Exception("鐢ㄦ埛鍚嶄笉鑳戒负绌猴紒");
+
+        // 鏌ヨ鍑哄簱鍗曞苟楠岃瘉鐘舵��
+        var transferOut = Db.Queryable<MesDbck>()
+            .Where(x => x.FBillNo == p_bill_no && x.FApproveStatus == 1)
+            .First();
+        if (transferOut == null) throw new Exception("鏈壘鍒拌皟鎷ㄧ敵璇峰崟鎴栬�呰皟鎷ㄧ敵璇峰崟娌″鏍�");
+
+        // 鏌ヨ鏉$爜搴撳瓨淇℃伅骞堕獙璇�
+        var stock = Db.Queryable<MesInvItemStocks>()
+            .Where(x => x.ItemBarcode == p_item_barcode
+                        && x.Quantity > 0)
+            .First();
+        if (stock == null) throw new Exception($"搴撳瓨涓棤姝ゆ潯鐮侊紝璇锋牳瀵癸紒{p_item_barcode}");
+
+        // 鏌ヨ鐗╂枡淇℃伅
+        var item = Db.Queryable<MesItems>()
+            .Where(x => x.Id == stock.ItemId)
+            .First();
+        if (item == null) throw new Exception("鏈壘鍒扮墿鏂�");
+
+        var _strMsg = "";
+        var _intSum = "";
+        var _cfBar = "";
+
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            using (var cmd = new SqlCommand("[prc_pda_YJDB_CF]", conn))
+            {
+                try
+                {
+                    conn.Open();
+                    cmd.CommandType = CommandType.StoredProcedure;
+                    SqlParameter[] parameters =
+                    {
+                        new("@outMsg", SqlDbType.NVarChar, 2000),
+                        new("@outSum", SqlDbType.NVarChar, 300),
+                        new("@outCfBar", SqlDbType.NVarChar, 300),
+                        new("@c_User", c_user),
+                        new("@p_biLL_no", p_bill_no),
+                        new("@p_item_barcode", p_item_barcode),
+                        new("@num", query.Num),
+                        new("@p_kw", p_kw)
+                    };
+                    parameters[0].Direction = ParameterDirection.Output;
+                    parameters[1].Direction = ParameterDirection.Output;
+                    parameters[2].Direction = ParameterDirection.Output;
+                    foreach (var parameter in parameters)
+                        cmd.Parameters.Add(parameter);
+                    cmd.ExecuteNonQuery();
+                    _strMsg = parameters[0].Value.ToString();
+                    _intSum = parameters[1].Value.ToString();
+                    _cfBar = parameters[2].Value.ToString();
+
+
+                    var result = Convert.ToInt32(_intSum);
+                    if (result <= 0) throw new Exception(_strMsg);
+
+                    var dto = new ProductionPickDto
+                    {
+                        daa001 = query.daa001,
+                        barcode = query.barcode,//鍘熸潯鐮�
+                        cfBarcode = _cfBar//鎷嗗垎鍚庢潯鐮�
+                    };
+
+                    return dto;
+                }
+                catch (Exception ex)
+                {
+                    throw new Exception(ex.Message);
+                }
+                finally
+                {
+                    conn.Close();
+                }
+            }
+        }
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.9.3