ControlLogInfoSvc.cs 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using EntityDataSet;
  8. using IntelligentControlForsx.Service.ControlLog.Domain;
  9. using IntelligentControlForsx.Service.WindturbineControl.Domain.Cmd;
  10. namespace IntelligentControlForsx.Service.ControlLog
  11. {
  12. public class ControlLogInfoSvc
  13. {
  14. public static DataTable GetControlInfo(SearchCondition condition)
  15. {
  16. IList<control_log> list = new List<control_log>();
  17. using (wisdom_cs_entity ctx = new wisdom_cs_entity())
  18. {
  19. if (condition.StartTime.HasValue && condition.EndTime.HasValue)
  20. list =
  21. ctx.control_log.Where(
  22. s => s.send_control_time > condition.StartTime.Value && s.send_control_time < condition.EndTime.Value).ToList();
  23. if (condition.ByUserId)
  24. list = list.Where(s => s.control_user_id == condition.UserId).ToList();
  25. if (condition.ByControlType)
  26. {
  27. int type = Convert.ToInt32(condition.ControlType);
  28. list = list.Where(s => s.control_type == type).ToList();
  29. }
  30. if (condition.ByWindturbineId)
  31. list = list.Where(s => s.windturbine_id == condition.WindturbineId).ToList();
  32. if (condition.ByStation)
  33. {
  34. string windturbineIdString = "";
  35. if (condition.Station == "SBQ_FDC")
  36. windturbineIdString = "SG01_";
  37. if (condition.Station == "MHS_FDC")
  38. windturbineIdString = "MG01_";
  39. if (condition.Station == "NSS_FDC")
  40. windturbineIdString = "NG01_";
  41. if (condition.Station == "QS_FDC")
  42. windturbineIdString = "QG01_";
  43. if (condition.Station == "XS_FDC")
  44. windturbineIdString = "XG01_";
  45. list = list.Where(s => s.windturbine_id.Contains(windturbineIdString)).ToList();
  46. }
  47. }
  48. return GetDataTable(list);
  49. }
  50. public static DataTable GetDataTable(IList<control_log> infoList)
  51. {
  52. IList<user> userList = new List<user>();
  53. IList<windpowerstation> stationList = new List<windpowerstation>();
  54. using (wisdom_cs_entity ctx = new wisdom_cs_entity())
  55. {
  56. userList = ctx.user.Select(s => s).ToList();
  57. stationList = ctx.windpowerstation.Select(s => s).ToList();
  58. }
  59. DataTable dataTable = new DataTable();
  60. dataTable.Columns.Add("操作时间");
  61. dataTable.Columns.Add("风机名称");
  62. dataTable.Columns.Add("风场");
  63. dataTable.Columns.Add("操作类型");
  64. dataTable.Columns.Add("操作人");
  65. dataTable.Columns.Add("是否成功");
  66. for (int i = 0; i < infoList.Count; i++)
  67. {
  68. DataRow row = dataTable.NewRow();
  69. row["风机名称"] = infoList[i].windturbine_id;
  70. windpowerstation station = stationList.Where(s => s.ID == infoList[i].station_id).FirstOrDefault();
  71. row["风场"] = station != null ? station.NAME : "";
  72. CmdType controlType = (CmdType)Enum.Parse(typeof(CmdType), infoList[i].control_type.ToString());
  73. switch (controlType)
  74. {
  75. case CmdType.Start:
  76. row["操作类型"] = "启动";
  77. break;
  78. case CmdType.Stop:
  79. row["操作类型"] = "停止";
  80. break;
  81. case CmdType.Reset:
  82. row["操作类型"] = "复位";
  83. break;
  84. case CmdType.Maintain:
  85. row["操作类型"] = "维护";
  86. break;
  87. case CmdType.UnMaintain:
  88. row["操作类型"] = "取消维护";
  89. break;
  90. case CmdType.HangLock:
  91. row["操作类型"] = "挂牌";
  92. break;
  93. case CmdType.UnHangLock:
  94. row["操作类型"] = "取消挂牌";
  95. break;
  96. }
  97. user u = userList.Where(s => s.id == infoList[i].control_user_id).FirstOrDefault();
  98. if (u != null)
  99. row["操作人"] = u.name;
  100. row["操作时间"] = infoList[i].send_control_time.HasValue ? infoList[i].send_control_time.Value.ToString("yyyy-MM-dd HH:mm:ss") : "";
  101. if (infoList[i].is_send_control_success.HasValue)
  102. {
  103. if (infoList[i].is_send_control_success.Value)
  104. row["是否成功"] = "是";
  105. else
  106. row["是否成功"] = "否";
  107. }
  108. else
  109. {
  110. row["是否成功"] = "否";
  111. }
  112. dataTable.Rows.Add(row);
  113. }
  114. return dataTable;
  115. }
  116. }
  117. }