using HH.WMS.Common;
using HH.WMS.DAL;
using HH.WMS.DAL.Basic;
using HH.WMS.Entitys;
using HH.WMS.Entitys.Common;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace HH.WMS.BLL.Basic
{
public class TN_WM_B_UNIQUE_BARCODEBLL : DapperBaseBLL
{
#region 扫码获取实体
///
/// 扫码获取实体
///
/// 扫描条码
///
public TN_WM_B_UNIQUE_BARCODEEntity GetValue(string barCode)
{
return BLLCreator.Create>().GetSingleEntity(new { CN_S_CODE = barCode });
}
#endregion
#region Xml文件导入
///
/// Xml文件导入
///
/// 导入文件实体
///
public OperateResult AddList(List uniqueEntityList)
{
string sqlconn = ConfigurationManager.ConnectionStrings["wmsConnection"].ToString();
#region 待处理数据初始化处理 转DataTable
List pList = new List();//创建属性的集合
DataTable dt = new DataTable();
dt = JsonHelper.ToDataTable(uniqueEntityList);
#endregion
#region 批量插入数据库 SqlBulkCopy声明及参数设置
SqlBulkCopy bulk = new SqlBulkCopy(sqlconn, SqlBulkCopyOptions.UseInternalTransaction) { DestinationTableName = "TN_WM_B_UNIQUE_BARCODE" /*设置数据库目标表名称*/, BatchSize = dt.Rows.Count /*每一批次中的行数*/ };
PropertyInfo[] fields = typeof(TN_WM_B_UNIQUE_BARCODEEntity).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
foreach (var f in fields)
{
var columnData = f.GetCustomAttribute(typeof(ColumnAttribute));
if (columnData == null) continue;
bulk.ColumnMappings.Add(f.Name, f.Name); //bulk.ColumnMappings.Add("CN_S_CODE", "CN_S_CODE"); //ColumnMappings.Add("源数据表列名称", "目标表数据列名称");
}
#endregion
bulk.WriteToServer(dt);
if (bulk != null)
{
bulk.Close();
return OperateResult.Succeed();
}
return OperateResult.Error("SqlBulkCopy处理失败!");
}
#endregion
public OperateResult GetXmlList(SearchModel searchModel)
{
return CreateDAL().GetXmlList(searchModel);
}
}
}