using HH.WCS.HangYang.models.other;
using HH.WCS.HangYang.util;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static HH.WCS.HangYang.dispatch.NDC;
namespace HH.WCS.HangYang.wms
{
///
/// 容器帮助类
///
internal class ContainerHelper
{
internal static string GenerateCntrNo()
{
var id = SYSHelper.GetSerialNumber("托盘号", "TP");
var date = DateTime.Now.ToString("yyMMdd");
return $"TP{date}{id.ToString().PadLeft(4, '0')}";
}
///
/// 根据容器号获取容器信息
///
///
///
internal static Container GetCntr(string cntr, bool create = false)
{
//1.0 查货位容器表
var db = new SqlHelper().GetInstance();
var old = db.Queryable().Where(a => a.S_CODE == cntr).First();
if (old == null && create)
{
var model = new Container { S_CODE = cntr };
if (db.Insertable(model).ExecuteCommand() > 0)
{
old = model;
}
}
return old;
}
///
/// 根据容器获取物料信息
///
///
///
internal static List GetCntrItemRel(string cntr)
{
var db = new SqlHelper().GetInstance();
var list = db.Queryable().Where(a => a.S_CNTR_CODE.Trim() == cntr).ToList();
return list;
}
#region 杭氧货位容器物料帮助方法
///
/// 修改容器表容器去向字段
///
/// 托盘号
/// 容器去向
///
internal static bool UpdateCntrAbouts(string trayCode, string abouts)
{
var res = false;
var db = new SqlHelper().GetInstance();
var model = db.Queryable().Where(a => a.S_CNTR_CODE == trayCode).First();
if (model != null)
{
model.S_ACTION_SRC = abouts;
model.T_MODIFY = DateTime.Now;
res = db.Updateable(model).UpdateColumns(it => new { it.S_ACTION_SRC, it.T_MODIFY }).ExecuteCommand() > 0;
}
return res;
}
///
/// 修改容器物料表入库时间
///
/// 托盘号
///
internal static bool UpdateCntrItem(string trayCode)
{
var res = false;
var db = new SqlHelper().GetInstance();
var model = db.Queryable().Where(a => a.S_CNTR_CODE == trayCode).ToList();
foreach (var item in model)
{
if (item.T_INBOUND_TIME == DateTime.MinValue || item.T_INBOUND_TIME == new DateTime(1900, 1, 1))
{
item.T_INBOUND_TIME = DateTime.Now;
res = db.Updateable(item).UpdateColumns(it => new { it.T_INBOUND_TIME }).ExecuteCommand() > 0;
}
}
return res;
}
///
/// 查询被标记的托盘
///
/// 库区
/// 标记
///
internal static List GetCntrAbouts(string areaCode, string abouts)
{
var db = new SqlHelper().GetInstance();
var model = db.Queryable().LeftJoin((p, m) => p.S_CODE == m.S_LOC_CODE)
.Where((p, m) => p.S_AREA_CODE == areaCode && p.S_LOCK_STATE == "无")
.Where((p, m) => m.S_ACTION_SRC == abouts)
.Select((p, m) => m)
.ToList();
return model;
}
internal static LocCntrRel GetCntrLoc(string trayCode)
{
var db = new SqlHelper().GetInstance();
var model = db.Queryable().Where(s => s.S_CNTR_CODE == trayCode).First();
return model;
}
internal static LocCntrRel GetLocCntr(string loc)
{
var db = new SqlHelper().GetInstance();
var model = db.Queryable().Where(s => s.S_LOC_CODE == loc).First();
return model;
}
internal static bool GetLocItemRel(string loc)
{
bool result = false;
var db = new SqlHelper().GetInstance();
var model = db.Queryable().Where(s => s.S_LOC_CODE == loc).First();
if (model != null)
{
var list = db.Queryable().Where(a => a.S_CNTR_CODE.Trim() == model.S_CNTR_CODE).ToList();
result = list.Any() ? false : true;
}
return result;
}
#endregion
}
}