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 } }