using iWareCommon.Common.Service; using iWareCommon.Utils; using iWareDataCore.BASE.Dao; using iWareDataCore.BASE.Entity; using iWareDataCore.ORM; using iWareDataCore.Properties; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace iWareDataCore.BASE.Service { public class PlaceMaterialService : CommonService { private static object Lock = new object(); private PlaceMaterialService() : base(PlaceMaterialDao.GetInstance()) { } private static PlaceMaterialService Instance = null; /// /// 获取单例的方法 /// /// 角色服务的单例实体 public static PlaceMaterialService GetInstance() { if (Instance == null) { lock (Lock) { if (Instance == null) { Instance = new PlaceMaterialService(); } } } return Instance; } public int SaveInfo(string placeno,string materialno, out string msg) { msg = ""; using (var dbModel = new DbModelCore()) { try { var place = dbModel.BASEPlaces.FirstOrDefault(x => x.code == placeno); var material = dbModel.BASEMaterials.FirstOrDefault(x => x.code == materialno); var pvmv = dbModel.BASEPlaceMaterialViews.FirstOrDefault(x => x.placecode == placeno || x.materialcode == materialno); if (pvmv!=null) { msg = "所输入的库位或物料在库存中已存在,请检查!"; return 0; } if (place != null) { if (material != null) { var pvm = new BASEPlaceMaterial() { materialid = material.id, placeid = place.id, createtime = DateTime.Now, updatetime = DateTime.Now }; dbModel.BASEPlaceMaterials.Add(pvm); place.status = 2; place.isexecute = 0; place.islock = 0; dbModel.SaveChanges(); return pvm.id; } else { msg = "物料不存在,请检查输入是否正确!"; return 0; } } else { msg = "库位不存在,请检查输入是否正确!"; return 0; } } catch (Exception ex) { msg = ex.Message; LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "SaveInfo", ex.Message); return -1; } } } public int DeletePlaveMateial(List ids,out string msg) { msg = ""; using (var dbModel = new DbModelCore()) { try { var ones = dbModel.BASEPlaceMaterials.Where(x => ids.Contains(x.id)).ToList(); foreach (var one in ones) { int placeid = one.placeid; var place = dbModel.BASEPlaces.FirstOrDefault(x => x.id == placeid); if (place!=null) { place.status = 0; place.isexecute = 0; place.isexecute = 0; } } dbModel.BASEPlaceMaterials.RemoveRange(ones); return dbModel.SaveChanges(); } catch (Exception ex) { msg = ex.Message; LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "ChangePriority", ex.Message); return -1; } } } } }