using HH.Redis.ReisModel;
using HH.WMS.BLL.Algorithm;
using HH.WMS.BLL.Basic;
using HH.WMS.BLL.External;
using HH.WMS.Common;
using HH.WMS.Common.Algorithm;
using HH.WMS.DAL;
using HH.WMS.DAL.Algorithm;
using HH.WMS.DAL.Basic;
using HH.WMS.DAL.Check;
using HH.WMS.DAL.Common;
using HH.WMS.DAL.InStock;
using HH.WMS.Entitys;
using HH.WMS.Entitys.Algorithm;
using HH.WMS.Entitys.Basic;
using HH.WMS.Entitys.Check;
using HH.WMS.Entitys.Common;
using HH.WMS.Entitys.Entitys;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HH.WMS.BLL.Check
{
public class TN_WM_CHECK_LISTBLL : DapperBaseBLL
{
#region 获取分页列表
///
/// 获取分页列表
///
///
///
/// [HanHe(lt)] CREATED 2018/8/21
public DataTable GetDataTable(dynamic obj)
{
DataTable dt = CreateDAL().GetDataTable(obj);
Dictionary stockDic = new Dictionary();
Dictionary areaDic = new Dictionary();
dt.Columns.Add("CN_S_STOCK_NAME");
dt.Columns.Add("CN_S_AREA_NAME");
for (int i = 0; i < dt.Rows.Count; i++)
{
if (!string.IsNullOrEmpty(dt.Rows[i]["CN_S_STOCK_CODE"].ToString())) //获取仓库名称
{
if (!stockDic.ContainsKey(dt.Rows[i]["CN_S_STOCK_CODE"].ToString()))
{
TN_AB_STOCKEntity stockentity = CreateDAL().GetStockentity("CN_S_STOCK_CODE", dt.Rows[i]["CN_S_STOCK_CODE"].ToString());//获取仓库名称
if (stockentity != null)
{
dt.Rows[i]["CN_S_STOCK_NAME"] = stockentity.CN_S_STOCK_NAME;
stockDic.Add(dt.Rows[i]["CN_S_STOCK_CODE"].ToString(), stockentity.CN_S_STOCK_NAME);
}
}
else
{
dt.Rows[i]["CN_S_STOCK_NAME"] = stockDic[dt.Rows[i]["CN_S_STOCK_CODE"].ToString()];
}
}
if (!string.IsNullOrEmpty(dt.Rows[i]["CN_S_STOCK_AREA"].ToString()))//获取库区名称
{
if (!areaDic.ContainsKey(dt.Rows[i]["CN_S_STOCK_AREA"].ToString()))
{
AutoBomStockAreaEntity areaentity = CreateDAL().GetModel(dt.Rows[i]["CN_S_STOCK_AREA"].ToString());//获取库区名称
if (areaentity != null)
{
dt.Rows[i]["CN_S_AREA_NAME"] = areaentity.CN_S_AREA_NAME;
areaDic.Add(dt.Rows[i]["CN_S_STOCK_AREA"].ToString(), areaentity.CN_S_AREA_NAME);
}
}
else
{
dt.Rows[i]["CN_S_AREA_NAME"] = areaDic[dt.Rows[i]["CN_S_STOCK_AREA"].ToString()];
}
}
}
return dt;
}
///
/// 获取汇总分页列表
///
///
///
/// [HanHe(lt)] CREATED 2018/8/21
public DataTable GetGroupDT(string sqlWhere)
{
DataTable dt = CreateDAL().GetGroupDT(sqlWhere);
Dictionary stockDic = new Dictionary();
Dictionary areaDic = new Dictionary();
dt.Columns.Add("CN_S_STOCK_NAME");
dt.Columns.Add("CN_S_AREA_NAME");
for (int i = 0; i < dt.Rows.Count; i++)
{
if (!string.IsNullOrEmpty(dt.Rows[i]["CN_S_STOCK_CODE"].ToString())) //获取仓库名称
{
if (!stockDic.ContainsKey(dt.Rows[i]["CN_S_STOCK_CODE"].ToString()))
{
TN_AB_STOCKEntity stockentity = CreateDAL().GetStockentity("CN_S_STOCK_CODE", dt.Rows[i]["CN_S_STOCK_CODE"].ToString());//获取仓库名称
if (stockentity != null)
{
dt.Rows[i]["CN_S_STOCK_NAME"] = stockentity.CN_S_STOCK_NAME;
stockDic.Add(dt.Rows[i]["CN_S_STOCK_CODE"].ToString(), stockentity.CN_S_STOCK_NAME);
}
}
else
{
dt.Rows[i]["CN_S_STOCK_NAME"] = stockDic[dt.Rows[i]["CN_S_STOCK_CODE"].ToString()];
}
}
if (!string.IsNullOrEmpty(dt.Rows[i]["CN_S_STOCK_AREA"].ToString()))//获取库区名称
{
if (!areaDic.ContainsKey(dt.Rows[i]["CN_S_STOCK_AREA"].ToString()))
{
AutoBomStockAreaEntity areaentity = CreateDAL().GetModel(dt.Rows[i]["CN_S_STOCK_AREA"].ToString());//获取库区名称
if (areaentity != null)
{
dt.Rows[i]["CN_S_AREA_NAME"] = areaentity.CN_S_AREA_NAME;
areaDic.Add(dt.Rows[i]["CN_S_STOCK_AREA"].ToString(), areaentity.CN_S_AREA_NAME);
}
}
else
{
dt.Rows[i]["CN_S_AREA_NAME"] = areaDic[dt.Rows[i]["CN_S_STOCK_AREA"].ToString()];
}
}
}
return dt;
}
///
/// 获取分页列表
///
///
///
/// [HanHe(lt)] CREATED 2018/8/21
public DataTable GetDataTableGroup(string sqlWhere, string OrdeBy, int pageSize, int pageIndex)
{
DataTable dt = CreateDAL().GetDataTableGroup(sqlWhere, OrdeBy, pageSize, pageIndex);
dt.Columns.Add("CN_S_AREA_NAME");
Dictionary areaDic = new Dictionary();
for (int i = 0; i < dt.Rows.Count; i++)
{
if (!string.IsNullOrEmpty(dt.Rows[i]["CN_S_STOCK_AREA"].ToString()))//获取库区名称
{
if (!areaDic.ContainsKey(dt.Rows[i]["CN_S_STOCK_AREA"].ToString()))
{
AutoBomStockAreaEntity areaentity = CreateDAL().GetModel(dt.Rows[i]["CN_S_STOCK_AREA"].ToString());//获取库区名称
if (areaentity != null)
{
dt.Rows[i]["CN_S_AREA_NAME"] = areaentity.CN_S_AREA_NAME;
areaDic.Add(dt.Rows[i]["CN_S_STOCK_AREA"].ToString(), areaentity.CN_S_AREA_NAME);
}
}
else
{
dt.Rows[i]["CN_S_AREA_NAME"] = areaDic[dt.Rows[i]["CN_S_STOCK_AREA"].ToString()];
}
}
}
return dt;
}
///
/// 获取列表
///
///
///
/// [HanHe(lt)] CREATED 2018/8/21
public DataTable GetEntity(string sqlwhere)
{
DataTable dt = CreateDAL().GetEntity(sqlwhere);
Dictionary stockDic = new Dictionary();
Dictionary areaDic = new Dictionary();
dt.Columns.Add("CN_S_STOCK_NAME");
dt.Columns.Add("CN_S_AREA_NAME");
for (int i = 0; i < dt.Rows.Count; i++)
{
if (!string.IsNullOrEmpty(dt.Rows[i]["CN_S_STOCK_CODE"].ToString())) //获取仓库名称
{
if (!stockDic.ContainsKey(dt.Rows[i]["CN_S_STOCK_CODE"].ToString()))
{
TN_AB_STOCKEntity stockentity = CreateDAL().GetStockentity("CN_S_STOCK_CODE", dt.Rows[i]["CN_S_STOCK_CODE"].ToString());//获取仓库名称
if (stockentity != null)
{
dt.Rows[i]["CN_S_STOCK_NAME"] = stockentity.CN_S_STOCK_NAME;
stockDic.Add(dt.Rows[i]["CN_S_STOCK_CODE"].ToString(), stockentity.CN_S_STOCK_NAME);
}
}
else
{
dt.Rows[i]["CN_S_STOCK_NAME"] = stockDic[dt.Rows[i]["CN_S_STOCK_CODE"].ToString()];
}
}
if (!string.IsNullOrEmpty(dt.Rows[i]["CN_S_STOCK_AREA"].ToString()))//获取库区名称
{
if (!areaDic.ContainsKey(dt.Rows[i]["CN_S_STOCK_AREA"].ToString()))
{
AutoBomStockAreaEntity areaentity = CreateDAL().GetModel(dt.Rows[i]["CN_S_STOCK_AREA"].ToString());//获取库区名称
if (areaentity != null)
{
dt.Rows[i]["CN_S_AREA_NAME"] = areaentity.CN_S_AREA_NAME;
areaDic.Add(dt.Rows[i]["CN_S_STOCK_AREA"].ToString(), areaentity.CN_S_AREA_NAME);
}
}
else
{
dt.Rows[i]["CN_S_AREA_NAME"] = areaDic[dt.Rows[i]["CN_S_STOCK_AREA"].ToString()];
}
}
}
return dt;
}
///
/// 获取列表
///
///
///
/// [HanHe(lt)] CREATED 2018/8/21
public DataTable GetList(string sqlwhere)
{
DataTable dt = CreateDAL().GetList(sqlwhere);
Dictionary stockDic = new Dictionary();
Dictionary areaDic = new Dictionary();
dt.Columns.Add("CN_S_STOCK_NAME");
dt.Columns.Add("CN_S_AREA_NAME");
for (int i = 0; i < dt.Rows.Count; i++)
{
if (!string.IsNullOrEmpty(dt.Rows[i]["CN_S_STOCK_CODE"].ToString())) //获取仓库名称
{
if (!stockDic.ContainsKey(dt.Rows[i]["CN_S_STOCK_CODE"].ToString()))
{
TN_AB_STOCKEntity stockentity = CreateDAL().GetStockentity("CN_S_STOCK_CODE", dt.Rows[i]["CN_S_STOCK_CODE"].ToString());//获取仓库名称
if (stockentity != null)
{
dt.Rows[i]["CN_S_STOCK_NAME"] = stockentity.CN_S_STOCK_NAME;
stockDic.Add(dt.Rows[i]["CN_S_STOCK_CODE"].ToString(), stockentity.CN_S_STOCK_NAME);
}
}
else
{
dt.Rows[i]["CN_S_STOCK_NAME"] = stockDic[dt.Rows[i]["CN_S_STOCK_CODE"].ToString()];
}
}
if (!string.IsNullOrEmpty(dt.Rows[i]["CN_S_STOCK_AREA"].ToString()))//获取库区名称
{
if (!areaDic.ContainsKey(dt.Rows[i]["CN_S_STOCK_AREA"].ToString()))
{
AutoBomStockAreaEntity areaentity = CreateDAL().GetModel(dt.Rows[i]["CN_S_STOCK_AREA"].ToString());//获取库区名称
if (areaentity != null)
{
dt.Rows[i]["CN_S_AREA_NAME"] = areaentity.CN_S_AREA_NAME;
areaDic.Add(dt.Rows[i]["CN_S_STOCK_AREA"].ToString(), areaentity.CN_S_AREA_NAME);
}
}
else
{
dt.Rows[i]["CN_S_AREA_NAME"] = areaDic[dt.Rows[i]["CN_S_STOCK_AREA"].ToString()];
}
}
}
return dt;
}
#endregion
#region 获取盘点结果查询
///
/// 获取盘点结果查询
///
/// 查询条件
///
/// [HanHe(lt)] CREATED 2018/8/21
public DataTable GetDataTable(string sqlwhere)
{
DataTable dt = CreateDAL().GetDataTable(sqlwhere);
dt.Columns.Add("CN_C_IS_SN");
Dictionary itemDic = new Dictionary();
foreach (DataRow row in dt.Rows)
{
if (!string.IsNullOrEmpty(row["CN_S_ITEM_CODE"].ToString()))
{
if (!itemDic.ContainsKey(row["CN_S_ITEM_CODE"].ToString()))
{
AutoBomItemEntity ItemEntity = CreateDAL().GetItemEntity(row["CN_S_ITEM_CODE"].ToString());
row["CN_C_IS_SN"] = ItemEntity == null ? "" : ItemEntity.CN_C_IS_SN;
itemDic.Add(row["CN_S_ITEM_CODE"].ToString(), ItemEntity == null ? "" : ItemEntity.CN_C_IS_SN);
}
else
{
row["CN_C_IS_SN"] = itemDic[row["CN_S_ITEM_CODE"].ToString()];
}
}
}
return dt;
}
///
/// 获取盘点结果查询
///
/// 查询条件
///
/// [HanHe(lt)] CREATED 2018/8/21
public List GetUnitCheckList(string opNo, string trayCode, string locationCode)
{
string sqlWhere = " where CN_S_OP_NO='" + opNo + "' and CN_S_ISCHECK='N' ";
if (!string.IsNullOrEmpty(trayCode))
{
sqlWhere += " AND CN_S_TRAY_CODE = '" + trayCode + "'";
}
if (!string.IsNullOrEmpty(locationCode))
{
sqlWhere += " AND CN_S_LOCATION_CODE = '" + locationCode + "'";
}
List list = CreateDAL().GetUnitCheckList(sqlWhere);
foreach (TN_WM_CHECK_LISTEntity entity in list)
{
AutoBomItemEntity ItemEntity = CreateDAL().GetItemEntity(entity.CN_S_ITEM_CODE);
entity.CN_C_IS_SN = ItemEntity == null ? "" : ItemEntity.CN_C_IS_SN;
entity.AuxiliaryUnitList = ItemEntity == null ? null : ItemEntity.AuxiliaryUnitList;
}
return list;
}
///
/// 获取二次盘点盘点结果查询
///
/// 查询条件
///
/// [HanHe(lt)] CREATED 2018/8/21
public List GetChecklist(string sqlwhere)
{
List list = CreateDAL().GetChecklist(sqlwhere);
foreach (TN_WM_CHECK_LISTEntity entity in list)
{
AutoBomItemEntity ItemEntity = CreateDAL().GetItemEntity(entity.CN_S_ITEM_CODE);
entity.CN_C_IS_SN = ItemEntity == null ? "" : ItemEntity.CN_C_IS_SN;
entity.AuxiliaryUnitList = ItemEntity == null ? null : ItemEntity.AuxiliaryUnitList;
}
return list;
}
#endregion
#region 根据盘点查询托盘与物料表
///
/// 根据盘点查询托盘与物料表
///
///
///
/// [HanHe(lt)] CREATED 2018/8/24
public List GetTrayitemByOpno(string sqlwhere, string type)
{
return CreateDAL().GetTrayitemByOpno(sqlwhere, type);
}
#endregion
#region 根据托盘编码获取盘点托盘信息
///
/// 根据托盘编码获取盘点托盘信息
///
/// 查询条件
///
/// [HanHe(lt)] CREATED 2018/8/27
public DataTable GetTrayCheckByCode(string sqlwhere)
{
return CreateDAL().GetTrayCheckByCode(sqlwhere);
}
#endregion
#region 根据托盘编码获取盘点托盘信息
///
/// 根据托盘编码获取盘点托盘信息
///
/// 查询条件
///
/// [HanHe(lt)] CREATED 2018/8/27
public DataTable GetTrayItemByCode(string sqlwhere)
{
return CreateDAL().GetTrayItemByCode(sqlwhere);
}
#endregion
#region 盘点执行
///
///盘点执行
///
///
///
/// [HanHe(lt)] CREATED 2018/8/29
public SqlExecuteResult CheckImplementConfirm(TN_WM_CHECK_MSTEntity entitymst, List entitylist1, List entitylist2)
{
SqlExecuteResult result = new SqlExecuteResult();
return DAOManager.ExecuteTransaction(trans =>
{
//result = CreateDAL().UpdateMsts(entitymst, trans);//修改主表
//if (!result.Success)
//{
// DAOManager.RollbackTransaction(trans);
// return result;
//}
result = CreateDAL().UpdateQTY(entitylist1, trans);//修改盘点明细数量
if (!result.Success)
{
DAOManager.RollbackTransaction(trans);
return result;
}
result = CreateDAL().Addlist(entitylist2, entitymst.CN_S_MODIFY_BY, DateTime.Now, trans);//新增明细
if (!result.Success)
{
DAOManager.RollbackTransaction(trans);
return result;
}
return result;
});
}
#endregion
#region 根据货位获取托盘信息
///
/// 根据托盘编码获取盘点托盘信息
///
/// 查询条件
///
/// [HanHe(lt)] CREATED 2018/8/27
public DataTable GetTrayByLocationCode(string sqlwhere)
{
return CreateDAL().GetTrayByLocationCode(sqlwhere);
}
#endregion
#region 盘点执行
///
///盘点执行
///
///
///
/// [HanHe(lt)] CREATED 2018/8/29
//public SqlExecuteResult SaveCheck(JObject obj)
//{
// SqlExecuteResult result = new SqlExecuteResult();
// List entity = JsonConvert.DeserializeObject>(obj.Value
//