using Cowain.Bake.Common.Core; using Cowain.Bake.Common.Enums; using Cowain.Bake.Model; using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Text; using System.Threading.Tasks; using Unity; namespace Cowain.Bake.BLL { public class TaskTypeService : ServiceBase { public TaskTypeService(IUnityContainer unityContainer) : base(unityContainer) { } public List GetAll() { using (var Context = new BakingEntities()) { return Context.Set().OrderBy(x => x.Id).ToList(); } } public TTaskType GetTaskType() { using (var Context = new BakingEntities()) { var task = (from t in Context.Set() join r in Context.Set() on t.Id equals r.TaskTypeId where r.Status != (int)ETaskStatus.ExecutionCompleted select t).FirstOrDefault(); return task; } } public bool IsPullInBaker(int taskTypeId) { using (var Context = new BakingEntities()) { var task = (from t in Context.Set() where t.Id == taskTypeId select t).FirstOrDefault(); if (null == task || 1 != task.Id) // 1: 上料满夹具->烤箱 { return false; } return true; } } /// /// 修改任务 /// public int UpdateEnableTask(int id, bool enable) { using (var Context = new BakingEntities()) { var pi = (from ts in Context.Set() where ts.Id == id select ts).FirstOrDefault(); if (pi == null) { //任务不存在,无法修改 return 0; } pi.Enable = enable; Context.Entry(pi).State = EntityState.Modified; return Context.SaveChanges(); } } /// /// 添加任务 /// public int AddTaskConfig(TTaskType task) { using (var Context = new BakingEntities()) { //var q = (from ts in Context.Set() // where ts.Priority == task.Priority // select ts).Count(); //if (q > 0) //{ // //优先级已经存在 // LogHelper.Instance.Error("优先级已经存在"); // return 0; //} var q = (from ts in Context.Set() where ts.SourceDeviceType == task.SourceDeviceType && ts.TargetDeviceType == task.TargetDeviceType && ts.PalletStatus == task.PalletStatus select ts).Count(); if (q > 0) { //相同的任务已经存在 LogHelper.Instance.Error("相同的任务已经存在,【源设备类型】,【目标设置类型】,【状态】三个合起来,构成一个任务!", true); return 0; } //可以新增 Context.Set().Add(task); return Context.SaveChanges(); } } /// /// 修改任务 /// public int EditTaskConfig(TTaskType task) { //【源设备类型】,【目标设置类型】,【状态】,三个合起来,构成一个唯一 ,否则就闪退 using (var Context = new BakingEntities()) { //bool has = Context.Set().Any(u => u.SourceDeviceType == task.SourceDeviceType //&& u.TargetDeviceType == task.TargetDeviceType //&& u.PalletStatus == task.PalletStatus); //if (has) //{ // return 0; //} var pi = (from ts in Context.Set() where ts.Id == task.Id select ts).FirstOrDefault(); if (pi == null) { //任务不存在,无法修改 LogHelper.Instance.Error("任务不存在,无法修改"); return 0; } pi.Name = task.Name; pi.SourceDeviceType = task.SourceDeviceType; pi.TargetDeviceType = task.TargetDeviceType; pi.PalletStatus = task.PalletStatus; pi.Priority = task.Priority; pi.Enable = task.Enable; pi.Json = task.Json; //可以新增 Context.Entry(pi).State = EntityState.Modified; return Context.SaveChanges(); } } } }