using MES.Service.Modes; using NewPdaSqlServer.DB; using NewPdaSqlServer.Dto.service; using NewPdaSqlServer.entity; using NewPdaSqlServer.entity.Base; using SqlSugar; using System.Data; using System.Data.SqlClient; using static Microsoft.EntityFrameworkCore.DbLoggerCategory; namespace NewPdaSqlServer.service.Warehouse; /// /// 托板码绑定管理类 /// 负责处理托板码绑定相关的业务逻辑 /// public class tbbdManager : Repository { /// /// 获取托板码已经绑定的相关列表 /// /// 托板码已经绑定的相关列表 public dynamic GetBracodeDetails(TbBarcodeQuery query) { // 使用ADO.NET直接调用存储过程 var ds = new DataSet(); // 假设您使用的是SQL Server,创建SqlConnection using (var conn = new SqlConnection(DbHelperSQL.strConn)) { conn.Open(); using (var cmd = new SqlCommand("prc_pda_tbbd_bralist", conn)) { cmd.CommandType = CommandType.StoredProcedure; // 添加参数 cmd.Parameters.Add(new SqlParameter("@tbBarcode", query.TbBarCode)); 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); } } } // 转换结果 var ItemDetail = Db.Utilities.DataTableToDynamic(ds.Tables[0]); return ItemDetail; } /// /// 扫描条码进行绑定托板码 /// /// 包含用户名和条码信息的查询参数 /// 处理后的表单和待处理明细列表 public dynamic ScanTBBD(TbBarcodeQuery query) { var _strMsg = ""; var _intSum = ""; var ds = new DataSet(); using (var conn = new SqlConnection(DbHelperSQL.strConn)) { if (string.IsNullOrEmpty(query.TbBarCode)) throw new Exception("托板码为空"); using (var cmd = new SqlCommand("[prc_pda_tbbd_save]", conn)) { try { conn.Open(); cmd.CommandType = CommandType.StoredProcedure; SqlParameter[] parameters = { new("@outMsg", SqlDbType.NVarChar, 300), new("@outSum", SqlDbType.NVarChar, 300), new("@tbBarcode", query.TbBarCode), new("@itemBarcode", query.ItemBarcode), new("@ACCOUNT", query.userName), new("@inP1", DBNull.Value), new("@inP2", DBNull.Value), new("@inP3", DBNull.Value) }; parameters[0].Direction = ParameterDirection.Output; parameters[1].Direction = ParameterDirection.Output; foreach (var parameter in parameters) cmd.Parameters.Add(parameter); cmd.ExecuteNonQuery(); _strMsg = parameters[0].Value.ToString(); _intSum = parameters[1].Value.ToString(); var result = Convert.ToInt32(_intSum); if (result <= 0) throw new Exception(_strMsg); var dto = new { strMsg = _strMsg, result = _intSum }; return dto; } catch (Exception ex) { throw new Exception(ex.Message); } finally { conn.Close(); } } } } }