using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using iWareSql; using iWareSql.Orm; using iWareSql.DBModel; namespace iWareSql.DataAccess { /// /// 托盘和物料的绑定关系 /// public class Salver_Material_Handler { /// /// 根据 ContainerId 寻找 Base_Salver_V_Material 对象 /// /// /// /// public static Base_Salver_V_Material GetIVCByContainerId(DbModel edm, string ContainerId) { var items = edm.Base_Salver_V_Material.Where(x => x.SalverId == ContainerId); if (items != null) { var readItems = items.ToList(); if (readItems == null) { return null; } else { if (readItems.Count > 1) { throw new Exception("同一个ContainerId:" + ContainerId + "关联了" + readItems.Count + "个 Base_Salver_V_Material 数据!"); } else if (readItems.Count == 1) { return readItems[0]; } else { return null; } } } else { return null; } } /// /// 通过ItemId获取IVC数据 /// /// /// public static Base_Salver_V_Material GetIVCByItemId(DbModel edm, string itemId) { Base_Salver_V_Material ivc = null; var ivcs = edm.Base_Salver_V_Material.Where(x => x.MaterialId == itemId.ToString()); if (ivcs == null) { throw new Exception(string.Format("根据itemId:{0}没有找到ivc数据", itemId)); } else { if (ivcs.Count() == 1) { ivc = ivcs.FirstOrDefault(); } else { throw new Exception(string.Format("根据itemId:{0}找到{1}条ivc数据", itemId, ivcs.Count())); } } return ivc; } /// /// 创建一个托盘和物料的绑定关系 /// /// /// /// 备注 /// public static bool CreateCvIRelation(string userName, Base_Salver ctn, Base_Material item, string remark) { using (DbModel edm = new DbModel()) { CreateCvIRelation(edm, userName, ctn, item, remark); int i = edm.SaveChanges(); return i > 0 ? true : false; }; } /// /// 创建一个托盘和物料的绑定关系 /// /// /// /// public static void CreateCvIRelation(DbModel edm, string userName, Base_Salver salver, Base_Material item, string remark) { Base_Salver_V_Material cvI = new Base_Salver_V_Material() { Id = Guid.NewGuid().ToString(), MaterialId = item.Id, MaterialName = item.OrderNo, SalverId = salver.Id, SalverCode = salver.SalverCode, OperationRemark = remark, CreateTime = DateTime.Now, CreateBy = userName, ModifyBy = userName, ModifyTime = DateTime.Now }; edm.Base_Salver_V_Material.Add(cvI); } /// /// 检验此上料单是否已经做过(有CVI关系的视为已经做过) /// /// /// public static bool IsAlsoDone(string itemId) { using (DbModel edm = new DbModel()) { var cvi = edm.Base_Salver_V_Material.FirstOrDefault(x => x.MaterialId == itemId); if (cvi != null) return true; else return false; } } } }