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 返回托盘物料容量关联实体 /// /// 根据条件获取容量实体 /// /// /// /// [HANHE(XDL)] CREATED BY 2018-11-16 public TN_WM_B_TRAY_CAPACITYEntity GetEntityByItemCode(string itemCode) { return CreateDAL().GetEntityByItemCode(itemCode); } #endregion /// /// PDA接口-根据托盘码获取存放容量 /// /// 托盘码 /// /// [HANHE(XDL)] CREATED BY 2019-03-19 public OperateResult GetCapacityinfoByTrayCode(string trayCode) { DataTable dt = CreateDAL().GetCapacityinfoByTrayCode(trayCode); DataTable dt1 = CreateDAL().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 itemGross = new Dictionary(); Dictionary model = new Dictionary(); Dictionary iswarrnyParts = new Dictionary(); Dictionary areacodeGross = new Dictionary(); Dictionary areanameGross = new Dictionary(); 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().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().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("CN_S_ITEM_CODE"), CN_S_ITEM_NAME = x.Field("CN_S_ITEM_NAME"), CN_S_MODEL = x.Field("CN_S_MODEL"), CN_F_PACKING_QTY = x.Field("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 //已码物料汇总 }); } /// /// PDA接口-根据物料编码获取物料存放容器信息 /// /// 物料编码 /// public OperateResult GetTrayCapacityByitem(string itemCode) { TN_WM_B_TRAY_CAPACITYEntity trayCapacityEntity = new TN_WM_B_TRAY_CAPACITYEntity(); AutoBomItemEntity itementity = CreateDAL().GetItemEntity(itemCode);//获取物料判断物料类型 if (itementity == null) { } else { trayCapacityEntity = CreateDAL>().GetSingleEntity(new { CN_S_ITEM_CODE = itemCode }); } AutoBomStockAreaEntity entityarea = CreateDAL().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); } } }