RinseItemManager.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using Aitex.Core.Util;
  2. using MECF.Framework.Common.Equipment;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Xml;
  9. namespace MECF.Framework.Common.ToolLayout
  10. {
  11. public class RinseItemManager : Singleton<RinseItemManager>
  12. {
  13. #region 常量
  14. /// <summary>
  15. /// 前缀
  16. /// </summary>
  17. private const string PREFIX = "Rinse";
  18. private const string PWT = "PWT";
  19. #endregion
  20. #region 内部变量
  21. /// <summary>
  22. /// 字典
  23. /// </summary>
  24. private Dictionary<string, RinseItem> _moduleItemDictionary = new Dictionary<string, RinseItem>();
  25. #endregion
  26. #region 属性
  27. /// <summary>
  28. /// 已经安装模块
  29. /// </summary>
  30. public List<string> InstalledModules { get; private set; } = new List<string>();
  31. #endregion
  32. /// <summary>
  33. /// 初始化Rinse
  34. /// </summary>
  35. /// <param name="rinseElement"></param>
  36. public void InitializeRinseItem(XmlElement rinseElement)
  37. {
  38. RinseItem rinseItem = new RinseItem();
  39. rinseItem.CellType = "Cell";
  40. LayoutCellItemManager.Instance.InitializeLayoutCellItem(rinseItem, rinseElement);
  41. rinseItem.RinseID = int.Parse(rinseElement.SelectSingleNode("RinseID").InnerText);
  42. rinseItem.ResistivityID = rinseElement.SelectSingleNode("ResistivityID").InnerText;
  43. string key = $"{PREFIX}{rinseItem.RinseID}";
  44. if(rinseItem.Installed && !InstalledModules.Contains(key))
  45. {
  46. InstalledModules.Add(key);
  47. }
  48. rinseItem.ModuleName = key;
  49. rinseItem.ModuleType = ModuleType.Rinse.ToString();
  50. _moduleItemDictionary[key] = rinseItem;
  51. CellItemManager.Instance.InitialLayoutCellItem(rinseItem);
  52. }
  53. /// <summary>
  54. /// 获取rinse项
  55. /// </summary>
  56. /// <param name="rinseId"></param>
  57. /// <returns></returns>
  58. public RinseItem GetRinseItem(string moduleName)
  59. {
  60. return _moduleItemDictionary.ContainsKey(moduleName) ? _moduleItemDictionary[moduleName]:null;
  61. }
  62. /// <summary>
  63. /// 获取预湿的Rinse
  64. /// </summary>
  65. /// <returns></returns>
  66. public RinseItem GetPrewetRinseItem()
  67. {
  68. List<string> lst = _moduleItemDictionary.Keys.ToList();
  69. foreach (var item in lst)
  70. {
  71. RinseItem rinseItem = _moduleItemDictionary[item];
  72. if (rinseItem.SubType == PWT)
  73. {
  74. return rinseItem;
  75. }
  76. }
  77. return null;
  78. }
  79. }
  80. }