using Admin.Core.IRepository; using Admin.Core.IService; using System.Threading.Tasks; using System.Collections.Generic; using System.Linq; using System; using Admin.Core.Model.Model_New; namespace Admin.Core.Service { public class SmTaskExecutionServices : BaseServices<SmTaskExecution>, ISmTaskExecutionServices { private readonly IBaseRepository<SmTaskExecution> _dal; public SmTaskExecutionServices(IBaseRepository<SmTaskExecution> dal) { this._dal = dal; base.BaseDal = dal; } #region 计划删除 /// <summary> /// 计划删除 /// </summary> /// <param name="planCode"></param> /// <returns></returns> /// <exception cref="System.NotImplementedException"></exception> public async Task<bool> PlanDelete(string id) { var list = await _dal.QueryAsync(d => d.ObjId == int.Parse(id)); var model = list.FirstOrDefault(); return await _dal.DeleteAsync(model); } #endregion #region 执行计划下移 /// <summary> /// 执行计划下移 /// </summary> /// <param name="planInfos"></param> /// <param name="planCode"></param> /// <returns></returns> /// <exception cref="System.NotImplementedException"></exception> public async Task<bool> PlanMoveDown(string id) { List<SmTaskExecution> execPlans = new List<SmTaskExecution>(); var list = await _dal.QueryAsync(); List<SmTaskExecution> planInfos = (list.OrderBy(d => d.TaskSort)).ToList(); if (planInfos == null) return false; SmTaskExecution planInfo = planInfos.FirstOrDefault(x => x.ObjId == int.Parse(id)); int executeOrder = planInfo.TaskSort; int planIndex = planInfos.IndexOf(planInfo); if (planIndex == 0&& planInfos.Count==0) return false; if ((planInfos.Count-1) == planIndex) return false; var lastPlanInfo = planInfos[planIndex + 1]; planInfo.TaskSort = lastPlanInfo.TaskSort; lastPlanInfo.TaskSort = executeOrder; execPlans.Add(planInfo); execPlans.Add(lastPlanInfo); var result = await _dal.UpdateAsync(execPlans); if (result) return true; else return false; } #endregion #region 计划上移 /// <summary> /// 计划上移 /// </summary> /// <param name="planInfos"></param> /// <param name="planCode"></param> /// <returns></returns> /// <exception cref="System.NotImplementedException"></exception> public async Task<bool> PlanMoveUp(string id) { List<SmTaskExecution> execPlans = new List<SmTaskExecution>(); var list = await _dal.QueryAsync(); List<SmTaskExecution> planInfos = (list.OrderBy(d => d.TaskSort)).ToList(); if (planInfos == null) return false; SmTaskExecution planInfo = planInfos.FirstOrDefault(x => x.ObjId == int.Parse(id)); int executeOrder = planInfo.TaskSort; int planIndex = planInfos.IndexOf(planInfo); if (planIndex == 0) return false; var lastPlanInfo = planInfos[planIndex - 1]; planInfo.TaskSort = lastPlanInfo.TaskSort; lastPlanInfo.TaskSort = executeOrder; execPlans.Add(planInfo); execPlans.Add(lastPlanInfo); var result = await _dal.UpdateAsync(execPlans); if (result) return true; else return false; } #endregion #region 计划下达 /// <summary> /// 计划下达 /// </summary> /// <param name="planCode"></param> /// <param name="nowPlanCode"></param> /// <returns></returns> /// <exception cref="System.NotImplementedException"></exception> public async Task<SmTaskExecution> PlanNextPass(SmTaskExecution sm) { SmTaskExecution planInfo = null; try { List<SmTaskExecution> planInfos = new List<SmTaskExecution>(); if (sm!=null) { //下传计划到PLC,同时更改计划状态 } } catch (Exception ex) { } return planInfo; } #endregion } }