using HH.WMS.DAL.SysMgr;
|
using HH.WMS.Entitys.Entitys;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using HH.WMS.Entitys;
|
using System.Data;
|
using HH.WMS.Entitys.Basic;
|
using HH.WMS.DAL.Basic;
|
using HH.WMS.DAL;
|
|
namespace HH.WMS.BLL.SysMgr
|
{
|
public class TN_WM_B_TRAY_CAPACITYBLL : DapperBaseBLL
|
{
|
#region 返回托盘物料容量关联实体
|
/// <summary>
|
/// 根据条件获取容量实体
|
/// </summary>
|
/// <param name="itemCode"></param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-16</History>
|
public TN_WM_B_TRAY_CAPACITYEntity GetEntityByItemCode(string itemCode)
|
{
|
return CreateDAL<TN_WM_B_TRAY_CAPACITYDAL>().GetEntityByItemCode(itemCode);
|
}
|
|
#endregion
|
|
/// <summary>
|
/// PDA接口-根据托盘码获取存放容量
|
/// </summary>
|
/// <param name="trayCode">托盘码</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2019-03-19</History>
|
public OperateResult GetCapacityinfoByTrayCode(string trayCode)
|
{
|
DataTable dt = CreateDAL<TN_WM_B_TRAY_CAPACITYDAL>().GetCapacityinfoByTrayCode(trayCode);
|
DataTable dt1 = CreateDAL<TN_WM_TRAY_LOGICDAL>().GetModel(" where CN_S_TRAY_CODE='" + trayCode + "'");
|
dt.Columns.Add(new DataColumn("CN_F_TW", typeof(decimal)));
|
dt.Columns.Add("CN_S_MODEL");
|
dt.Columns.Add("CN_C_IS_WARRANTY_PARTS");
|
dt.Columns.Add("CN_S_AREA_CODE");
|
dt.Columns.Add("CN_S_AREA_NAME");
|
dt.Columns.Add("CN_S_TRAY_AREA");
|
string trayarea = "";
|
foreach (DataRow logic in dt1.Rows)
|
{
|
trayarea += logic["CN_S_LOGIC_CODE"] + ",";
|
}
|
if (!string.IsNullOrEmpty(trayarea))
|
{
|
trayarea = trayarea.Substring(0, trayarea.Length - 1);
|
}
|
dt.Rows[0]["CN_S_TRAY_AREA"] = trayarea;
|
Dictionary<string, decimal> itemGross = new Dictionary<string, decimal>();
|
Dictionary<string, string> model = new Dictionary<string, string>();
|
Dictionary<string, string> iswarrnyParts = new Dictionary<string, string>();
|
Dictionary<string, string> areacodeGross = new Dictionary<string, string>();
|
Dictionary<string, string> areanameGross = new Dictionary<string, string>();
|
foreach (DataRow dr in dt.Rows)
|
{
|
string itemCode = dr["CN_S_ITEM_CODE"].ToString().Trim();
|
if (!string.IsNullOrEmpty(itemCode))
|
{
|
if (!itemGross.ContainsKey(itemCode))
|
{
|
AutoBomItemEntity item = CreateDAL<TN_WMS_ITEMDAL>().GetItemEntity(itemCode);
|
itemGross.Add(itemCode, item.CN_F_TW);
|
model.Add(itemCode, item.CN_S_MODEL);
|
iswarrnyParts.Add(itemCode, item.CN_C_IS_WARRNTY_PARTS);
|
dr["CN_F_TW"] = item.CN_F_TW;
|
dr["CN_S_MODEL"] = item.CN_S_MODEL;
|
dr["CN_C_IS_WARRANTY_PARTS"] = item.CN_C_IS_WARRNTY_PARTS;
|
|
|
AutoBomStockAreaEntity entityarea = CreateDAL<TN_AB_B_STOCK_AREADAL>().GetStockArea("CN_S_AREA_NAME", item.CN_S_STORE_TYPE);
|
areacodeGross.Add(itemCode, entityarea == null ? "" : entityarea.CN_S_AREA_CODE);
|
areanameGross.Add(itemCode, entityarea == null ? "" : entityarea.CN_S_AREA_NAME);
|
dr["CN_S_AREA_CODE"] = entityarea == null ? "" : entityarea.CN_S_AREA_CODE;
|
dr["CN_S_AREA_NAME"] = entityarea == null ? "" : entityarea.CN_S_AREA_NAME;
|
|
}
|
else
|
{
|
dr["CN_F_TW"] = itemGross[itemCode];
|
dr["CN_S_MODEL"] = model[itemCode];
|
dr["CN_C_IS_WARRANTY_PARTS"] = iswarrnyParts[itemCode];
|
dr["CN_S_AREA_CODE"] = areacodeGross[itemCode];
|
dr["CN_S_AREA_NAME"] = areanameGross[itemCode];
|
}
|
}
|
}
|
|
var result = dt.AsEnumerable().Select(x => new
|
{
|
CN_S_ITEM_CODE = x.Field<string>("CN_S_ITEM_CODE"),
|
CN_S_ITEM_NAME = x.Field<string>("CN_S_ITEM_NAME"),
|
CN_S_MODEL = x.Field<string>("CN_S_MODEL"),
|
CN_F_PACKING_QTY = x.Field<int>("CN_F_PACKING_QTY")
|
}).GroupBy(y => new
|
{
|
CN_S_ITEM_CODE = y.CN_S_ITEM_CODE,
|
CN_S_ITEM_NAME = y.CN_S_ITEM_NAME,
|
CN_S_MODEL = y.CN_S_MODEL
|
|
}).Select(g => new
|
{
|
CN_S_ITEM_CODE = g.Key.CN_S_ITEM_CODE,
|
CN_S_ITEM_NAME = g.Key.CN_S_ITEM_NAME,
|
CN_S_MODEL = g.Key.CN_S_MODEL,
|
CN_F_PACKING_QTY = g.Sum(r => r.CN_F_PACKING_QTY)
|
}).ToList();
|
|
return OperateResult.Succeed("", new
|
{
|
Data = dt, //已码物料
|
DataSum = result //已码物料汇总
|
});
|
|
}
|
|
|
/// <summary>
|
/// PDA接口-根据物料编码获取物料存放容器信息
|
/// </summary>
|
/// <param name="itemCode">物料编码</param>
|
/// <returns></returns>
|
public OperateResult GetTrayCapacityByitem(string itemCode)
|
{
|
TN_WM_B_TRAY_CAPACITYEntity trayCapacityEntity = new TN_WM_B_TRAY_CAPACITYEntity();
|
AutoBomItemEntity itementity = CreateDAL<TN_WMS_ITEMDAL>().GetItemEntity(itemCode);//获取物料判断物料类型
|
if (itementity == null)
|
{
|
|
}
|
else
|
{
|
trayCapacityEntity = CreateDAL<DapperDAL<TN_WM_B_TRAY_CAPACITYEntity>>().GetSingleEntity(new { CN_S_ITEM_CODE = itemCode });
|
}
|
AutoBomStockAreaEntity entityarea = CreateDAL<TN_AB_B_STOCK_AREADAL>().GetStockArea("CN_S_AREA_NAME", itementity.CN_S_STORE_TYPE);
|
|
|
trayCapacityEntity.CN_S_AREA_CODE = entityarea == null ? "" : entityarea.CN_S_AREA_CODE;
|
trayCapacityEntity.CN_S_AREA_NAME = entityarea == null ? "" : entityarea.CN_S_AREA_NAME;
|
trayCapacityEntity.CN_S_MODEL = itementity == null ? "" : itementity.CN_S_MODEL;
|
trayCapacityEntity.CN_C_IS_TRAY = entityarea == null ? "" : entityarea.CN_C_IS_TRAY;
|
trayCapacityEntity.CN_C_IS_CHECKTRAY = entityarea == null ? "" : entityarea.CN_C_IS_CHECKTRAY;
|
|
return OperateResult.Succeed("", trayCapacityEntity);
|
}
|
|
}
|
}
|