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();
}
}
}
}
}