using HH.WCS.Mobox3.YNJT_BZP.models.other; using HH.WCS.Mobox3.YNJT_BZP.util; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static HH.WCS.Mobox3.YNJT_BZP.dispatch.NDC; namespace HH.WCS.Mobox3.YNJT_BZP.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 bool CheckEmpty(string cntr) { //1.0 查货位容器表 var db = new SqlHelper().GetInstance(); return db.Queryable().Count(a => a.S_LOC_CODE.Trim() == cntr) == 0; } internal static bool AddCntr(string cntrCode ,int type) { var res = true; var db = new SqlHelper().GetInstance(); try { var TN_Container = new Container { S_CODE = cntrCode, N_TYPE = type }; TN_Container.S_TYPE = Container.GetStateStr(type); res = db.Insertable(TN_Container).ExecuteCommand() > 0; } catch (Exception ex) { res = false; } return res; } /// /// 根据容器号获取容器信息 /// /// /// internal static Container GetCntr(string cntr) { var db = new SqlHelper().GetInstance(); return db.Queryable().Where(a => a.S_CODE == cntr).First(); } /// /// 根据容器获取物料信息 /// /// /// internal static List GetCntrItemRel(string cntr) { var db = new SqlHelper().GetInstance(); var list = db.Queryable().Where(a => a.S_CNTR_CODE == cntr).ToList(); return list; } internal static bool addCntrItem(string cntrCode, CntrItemRel cntrItemRel) { var res = false; var db = new SqlHelper().GetInstance(); try { db.BeginTran(); var container = db.Queryable().Where(a => a.S_CODE == cntrCode).First(); if (container == null) { container = new Container { S_CODE = cntrCode, N_DETAIL_COUNT = 1 }; db.Insertable(container).ExecuteCommand(); } else { container.N_DETAIL_COUNT = 1; db.Updateable(container).ExecuteCommand(); } res = db.Insertable(cntrItemRel).ExecuteCommand() > 0; db.CommitTran(); res = true; } catch (Exception ex) { db.RollbackTran(); Console.WriteLine(ex.Message); } return res; } internal static bool deleteCntrItem(string cntrCode) { var res = false; var db = new SqlHelper().GetInstance(); try { db.BeginTran(); res = db.Deleteable().Where(a => a.S_CNTR_CODE == cntrCode).ExecuteCommand() > 0; db.CommitTran(); res = true; } catch (Exception ex) { db.RollbackTran(); Console.WriteLine(ex.Message); } return res; } } }