using System.Linq; using System.Collections.Generic; using SHJX.Service.Model.Dao; using SHJX.Service.Common.ReadXML; using SHJX.Service.Control.Interface; namespace SHJX.Service.Control.TimerControl.ChangeTaskState { public class WashChangeState : ChangeTaskStateImp { public WashChangeState(ReadConfigUtil config) : base(config) { } #region ChangeTaskState public override void ChangeEquipmentTaskStateEvent() { if (!DataManager.CheckWashTaskIsRunning()) return; ChangeWashTaskState(1); } private void ChangeWashTaskState(int routeId) { var tasks = DataManager.GetWashTaskByRouteId(routeId); if (tasks.Any()) { var defaultTasks = tasks.Where(item => item.Status.Equals(TaskState.New)).ToList(); if (defaultTasks.Any()) ChangeTaskState(defaultTasks); } else { if (routeId.Equals(10)) return; ChangeWashTaskState(++routeId); } } private void ChangeTaskState(List defaultTasks) { foreach (var item in defaultTasks) { var res = item.RouteId.GetEquipmentAreaPoint(out var areaPoint, item.RouteType,item.SampleConcentration); if (!res) continue; item.To = !string.IsNullOrWhiteSpace(areaPoint) ? areaPoint : item.To; item.Status = TaskState.Doing; } DataManager.Update(defaultTasks); } #endregion } }