|
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
|
{
|
/// <summary>
|
/// 容器帮助类
|
/// </summary>
|
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')}";
|
}
|
|
|
/// <summary>
|
/// 根据容器号获取容器信息
|
/// </summary>
|
/// <param name="cntr"></param>
|
/// <returns></returns>
|
internal static Container GetCntr(string cntr, bool create = false)
|
{
|
//1.0 查货位容器表
|
var db = new SqlHelper<object>().GetInstance();
|
var old = db.Queryable<Container>().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;
|
|
}
|
|
/// <summary>
|
/// 根据容器获取物料信息
|
/// </summary>
|
/// <param name="cntr"></param>
|
/// <returns></returns>
|
internal static List<CntrItemDetail> GetCntrItemRel(string cntr)
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
var list = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == cntr).ToList();
|
return list;
|
}
|
|
#region 杭氧货位容器物料帮助方法
|
|
/// <summary>
|
/// 修改容器表容器去向字段
|
/// </summary>
|
/// <param name="trayCode">托盘号</param>
|
/// <param name="abouts">容器去向</param>
|
/// <returns></returns>
|
internal static bool UpdateCntrAbouts(string trayCode, string abouts)
|
{
|
var res = false;
|
var db = new SqlHelper<object>().GetInstance();
|
var model = db.Queryable<LocCntrRel>().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;
|
}
|
|
/// <summary>
|
/// 修改容器物料表入库时间
|
/// </summary>
|
/// <param name="trayCode">托盘号</param>
|
/// <returns></returns>
|
internal static bool UpdateCntrItem(string trayCode)
|
{
|
var res = false;
|
var db = new SqlHelper<object>().GetInstance();
|
var model = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE == trayCode).ToList();
|
foreach (var item in model)
|
{
|
if (item.T_INBOUND_TIME == null)
|
{
|
item.T_INBOUND_TIME = DateTime.Now;
|
res = db.Updateable(item).UpdateColumns(it => new { it.T_INBOUND_TIME }).ExecuteCommand() > 0;
|
}
|
}
|
return res;
|
}
|
|
|
/// <summary>
|
/// 查询被标记的托盘
|
/// </summary>
|
/// <param name="areaCode">库区</param>
|
/// <param name="abouts">标记</param>
|
/// <returns></returns>
|
internal static List<LocCntrRel> GetCntrAbouts(string areaCode, string abouts)
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
var model = db.Queryable<Location>().LeftJoin<LocCntrRel>((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<object>().GetInstance();
|
var model = db.Queryable<LocCntrRel>().Where(s => s.S_CNTR_CODE == trayCode).First();
|
return model;
|
}
|
|
internal static LocCntrRel GetLocCntr(string loc)
|
{
|
var db = new SqlHelper<object>().GetInstance();
|
var model = db.Queryable<LocCntrRel>().Where(s => s.S_LOC_CODE == loc).First();
|
return model;
|
}
|
|
internal static bool GetLocItemRel(string loc)
|
{
|
bool result = false;
|
var db = new SqlHelper<object>().GetInstance();
|
var model = db.Queryable<LocCntrRel>().Where(s => s.S_LOC_CODE == loc).First();
|
if (model != null)
|
{
|
var list = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == model.S_CNTR_CODE).ToList();
|
result = list.Any() ? false : true;
|
}
|
return result;
|
}
|
|
#endregion
|
|
|
}
|
}
|