From d6701762ff6c9ac836015f4c53ea4aca0f4b3b46 Mon Sep 17 00:00:00 2001
From: kyy <3283105747@qq.com>
Date: 星期三, 19 十一月 2025 14:38:01 +0800
Subject: [PATCH] 1、外仓扫码

---
 service/Warehouse/MesInvItemInCDetailsManager.cs |  123 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 122 insertions(+), 1 deletions(-)

diff --git a/service/Warehouse/MesInvItemInCDetailsManager.cs b/service/Warehouse/MesInvItemInCDetailsManager.cs
index ee58fca..f44dbfc 100644
--- a/service/Warehouse/MesInvItemInCDetailsManager.cs
+++ b/service/Warehouse/MesInvItemInCDetailsManager.cs
@@ -1,4 +1,4 @@
-锘縰sing Masuit.Tools.Models;
+using Masuit.Tools.Models;
 using Microsoft.AspNetCore.SignalR.Protocol;
 using NewPdaSqlServer.DB;
 using NewPdaSqlServer.Dto.service;
@@ -12,6 +12,7 @@
 using System.Data;
 using System.Data.SqlClient;
 using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
+using DbHelperSQL = NewPdaSqlServer.DB.DbHelperSQL;
 
 namespace NewPdaSqlServer.service.Warehouse;
 
@@ -1027,6 +1028,126 @@
         };
     }
 
+    public dynamic WcsmBar(WarehouseQuery entity)
+    {
+        if (entity == null) throw new ArgumentNullException(nameof(entity), "鍙傛暟瀵硅薄涓嶈兘涓� null");
+
+        // 鍙傛暟鏍¢獙
+        if (string.IsNullOrEmpty(entity.userName?.ToString()))
+            throw new ArgumentException("鎿嶄綔浜哄憳涓嶅厑璁镐负绌�", nameof(entity.userName));
+
+        if (string.IsNullOrEmpty(entity.barcode?.ToString()))
+            throw new ArgumentException("鏉$爜涓嶅厑璁镐负绌�", nameof(entity.barcode));
+
+        var _strMsg = "";
+        var _status = -1;
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            using (var cmd = new SqlCommand("prc_pda_wcsm", conn))
+            {
+                try
+                {
+                    conn.Open();
+                    cmd.CommandType = CommandType.StoredProcedure;
+                    // 鏍规嵁瀛樺偍杩囩▼璁剧疆鍙傛暟
+                    SqlParameter[] parameters = 
+                    {
+                        new SqlParameter("@pi_user", SqlDbType.NVarChar, 100) { Value = entity.userName },
+                        new SqlParameter("@pi_barcode", SqlDbType.NVarChar, 100) { Value = entity.barcode },
+                        new SqlParameter("@pi_sectionCode", SqlDbType.NVarChar, 100) { Value = entity.sectionCode == null ? DBNull.Value : (object)entity.sectionCode },
+                        new SqlParameter("@pi_IN1", SqlDbType.NVarChar, 30) { Value = DBNull.Value }, // 澶囩敤瀛楁1
+                        new SqlParameter("@pi_IN2", SqlDbType.NVarChar, 30) { Value = DBNull.Value }, // 澶囩敤瀛楁2
+                        new SqlParameter("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output },
+                        new SqlParameter("@po_outSum", SqlDbType.Int) { Direction = ParameterDirection.Output }
+                    };
+
+                    foreach (var parameter in parameters)
+                        cmd.Parameters.Add(parameter);
+
+                    cmd.ExecuteNonQuery();
+
+                    _strMsg = parameters[5].Value?.ToString() ?? "";
+                    _status = Convert.ToInt32(parameters[6].Value ?? -1);
+
+                    if (_status <= 0) throw new Exception(_strMsg);
+
+                    return new
+                    {
+                        message = _strMsg,
+                        status = _status,
+                        userName = entity.userName,
+                        barcode = entity.barcode,
+                        sectionCode = entity.sectionCode
+                    };
+                }
+                catch (Exception ex)
+                {
+                    throw new Exception($"澶栦粨鎵爜鍏ュ簱澶辫触锛歿ex.Message}");
+                }
+                finally
+                {
+                    conn.Close();
+                }
+            }
+        }
+    }
+
+    public dynamic WcsmDetail(WarehouseQuery entity)
+    {
+        if (entity == null) throw new ArgumentNullException(nameof(entity), "鍙傛暟瀵硅薄涓嶈兘涓� null");
+
+        // 鍙傛暟鏍¢獙
+        if (string.IsNullOrEmpty(entity.barcode?.ToString()))
+            throw new ArgumentException("鏉$爜涓嶅厑璁镐负绌�", nameof(entity.barcode));
+
+        // 浣跨敤ADO.NET鐩存帴璋冪敤瀛樺偍杩囩▼
+        var ds = new DataSet();
+
+        // 鍋囪鎮ㄤ娇鐢ㄧ殑鏄疭QL Server锛屽垱寤篠qlConnection
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            conn.Open();
+
+            using (var cmd = new SqlCommand("prc_pda_wcsm_detailList", conn))
+            {
+                cmd.CommandType = CommandType.StoredProcedure;
+
+                // 娣诲姞鍙傛暟
+                cmd.Parameters.Add(new SqlParameter("@daa001", entity.barcode));
+                cmd.Parameters.Add(new SqlParameter("@pi_orgId", DBNull.Value));
+                cmd.Parameters.Add(new SqlParameter("@inP1", DBNull.Value));
+                cmd.Parameters.Add(new SqlParameter("@inP2", DBNull.Value));
+                cmd.Parameters.Add(new SqlParameter("@inP3", DBNull.Value));
+                cmd.Parameters.Add(new SqlParameter("@inP4", DBNull.Value));
+
+                using (var adapter = new System.Data.SqlClient.SqlDataAdapter(cmd))
+                {
+                    adapter.Fill(ds);
+                }
+            }
+        }
+
+        // 楠岃瘉缁撴灉闆嗘暟閲�
+        if (ds.Tables.Count < 4)
+        {
+            throw new ApplicationException($"瀛樺偍杩囩▼杩斿洖鐨勭粨鏋滈泦鏁伴噺涓嶈冻锛屾湡鏈�4涓紝瀹為檯{ds.Tables.Count}涓�");
+        }
+
+        // 杞崲缁撴灉锛堢粺涓�浣跨敤ds锛�
+        var unscannedList = Db.Utilities.DataTableToDynamic(ds.Tables[0]);
+        var otherUnscannedList = Db.Utilities.DataTableToDynamic(ds.Tables[1]);
+        var scanProgressList = Db.Utilities.DataTableToDynamic(ds.Tables[2]);
+        var daaInfo = Db.Utilities.DataTableToDynamic(ds.Tables[3]);
+        
+        return new
+        {
+            unscannedList,
+            otherUnscannedList,
+            scanProgressList,
+            daaInfo
+        };
+    }
+
     public (List<MesInvItemIns> Items, int TotalCount) GetInvItemInsList(
         WarehouseQuery query)
     {

--
Gitblit v1.9.3