WashChangeState.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System.Linq;
  2. using System.Collections.Generic;
  3. using SHJX.Service.Model.Dao;
  4. using SHJX.Service.Common.ReadXML;
  5. using SHJX.Service.Control.Interface;
  6. namespace SHJX.Service.Control.TimerControl.ChangeTaskState
  7. {
  8. public class WashChangeState : ChangeTaskStateImp
  9. {
  10. public WashChangeState(ReadConfigUtil config) : base(config) { }
  11. #region ChangeTaskState
  12. public override void ChangeEquipmentTaskStateEvent()
  13. {
  14. if (!DataManager.CheckWashTaskIsRunning()) return;
  15. ChangeWashTaskState(1);
  16. }
  17. private void ChangeWashTaskState(int routeId)
  18. {
  19. var tasks = DataManager.GetWashTaskByRouteId(routeId);
  20. if (tasks.Any())
  21. {
  22. var defaultTasks = tasks.Where(item => item.Status.Equals(TaskState.New)).ToList();
  23. if (defaultTasks.Any())
  24. ChangeTaskState(defaultTasks);
  25. }
  26. else
  27. {
  28. if (routeId.Equals(10))
  29. return;
  30. ChangeWashTaskState(++routeId);
  31. }
  32. }
  33. private void ChangeTaskState(List<EquipmentTask> defaultTasks)
  34. {
  35. foreach (var item in defaultTasks)
  36. {
  37. var res = item.RouteId.GetEquipmentAreaPoint(out var areaPoint, item.RouteType,item.SampleConcentration);
  38. if (!res) continue;
  39. item.To = !string.IsNullOrWhiteSpace(areaPoint) ? areaPoint : item.To;
  40. item.Status = TaskState.Doing;
  41. }
  42. DataManager.Update(defaultTasks);
  43. }
  44. #endregion
  45. }
  46. }