HistoryDataForm.cs 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. using Model;
  2. using PlcUiControl;
  3. using PlcUiForm;
  4. using Sunny.UI;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.ComponentModel;
  8. using System.Data;
  9. using System.Drawing;
  10. using System.Linq;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. using System.Windows.Forms;
  14. namespace YangjieTester.主界面
  15. {
  16. [FormDescriptionAttribute("历史记录")]
  17. public partial class HistoryDataForm : PlcBaseForm
  18. {
  19. public HistoryDataForm()
  20. {
  21. InitializeComponent();
  22. }
  23. private void HistoryDataForm_Load(object sender, EventArgs e)
  24. {
  25. dtpStart.Value = DateTime.Now.AddDays(-1);
  26. dtpEnd.Value = DateTime.Now;
  27. cob查询类型.SelectedIndex = 0;
  28. cob时间区间选择.SelectedIndex = 0;
  29. }
  30. private void cobDate_SelectedIndexChanged(object sender, EventArgs e)
  31. {
  32. if (cob时间区间选择.SelectedIndex == 0)
  33. {
  34. dtpStart.Value = DateTime.Now.AddHours(-1);
  35. dtpEnd.Value = DateTime.Now;
  36. }
  37. else if (cob时间区间选择.SelectedIndex == 1)
  38. {
  39. dtpStart.Value = DateTime.Now.AddDays(-1);
  40. dtpEnd.Value = DateTime.Now;
  41. }
  42. else if (cob时间区间选择.SelectedIndex == 2)
  43. {
  44. dtpStart.Value = DateTime.Now.AddMonths(-1);
  45. dtpEnd.Value = DateTime.Now;
  46. }
  47. else if (cob时间区间选择.SelectedIndex == 3)
  48. {
  49. dtpStart.Value = DateTime.Now.AddYears(-1);
  50. dtpEnd.Value = DateTime.Now;
  51. }
  52. btnQuery_Click(sender, e);
  53. }
  54. private void btnQuery_Click(object sender, EventArgs e)
  55. {
  56. try
  57. {
  58. // 获取用户选择的时间范围
  59. DateTime startTime = dtpStart.Value;
  60. DateTime endTime = dtpEnd.Value;
  61. // 查询数据
  62. if (cob查询类型.SelectedIndex == 0)
  63. {
  64. var alarmList = AlarmService.GetAlarmsByTimeRange(startTime, endTime)
  65. .Select((item, index) => { item.RowNumber = index + 1; return item; })
  66. .ToList();
  67. // 绑定到 DataGridView
  68. dgvHistoryData.DataSource = alarmList;
  69. dgvHistoryData.Columns[0].Visible = false;
  70. // 可选:调整列标题
  71. dgvHistoryData.Columns["RowNumber"].HeaderText = "序号";
  72. dgvHistoryData.Columns["Timestamp"].HeaderText = "时间";
  73. if (dgvHistoryData.Columns["Timestamp"] != null)
  74. dgvHistoryData.Columns["Timestamp"].DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss.fff";
  75. dgvHistoryData.Columns["Username"].HeaderText = "用户";
  76. dgvHistoryData.Columns["AlarmMessage"].HeaderText = "报警信息";
  77. dgvHistoryData.Columns["AlarmType"].HeaderText = "类型";
  78. }
  79. if (cob查询类型.SelectedIndex == 1)
  80. {
  81. var tipsDisplays = TipsService.GetTipsByTimeRange(startTime, endTime)
  82. .Select((item, index) => { item.RowNumber = index + 1; return item; })
  83. .ToList();
  84. // 绑定到 DataGridView
  85. dgvHistoryData.DataSource = tipsDisplays;
  86. dgvHistoryData.Columns[0].Visible = false;
  87. // 可选:调整列标题
  88. dgvHistoryData.Columns["RowNumber"].HeaderText = "序号";
  89. dgvHistoryData.Columns["Timestamp"].HeaderText = "时间";
  90. if (dgvHistoryData.Columns["Timestamp"] != null)
  91. dgvHistoryData.Columns["Timestamp"].DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss.fff";
  92. dgvHistoryData.Columns["Username"].HeaderText = "用户";
  93. dgvHistoryData.Columns["Message"].HeaderText = "提示信息";
  94. dgvHistoryData.Columns["Type"].HeaderText = "类型";
  95. }
  96. else if (cob查询类型.SelectedIndex == 2)
  97. {
  98. var operationRecords = OperationRecordService.GetOperationRecordByTimeRange(startTime, endTime)
  99. .Select((item, index) => { item.RowNumber = index + 1; return item; })
  100. .ToList();
  101. // 绑定到 DataGridView
  102. dgvHistoryData.DataSource = operationRecords;
  103. dgvHistoryData.Columns[0].Visible = false;
  104. // 可选:调整列标题
  105. dgvHistoryData.Columns["RowNumber"].HeaderText = "序号";
  106. dgvHistoryData.Columns["Timestamp"].HeaderText = "时间";
  107. if (dgvHistoryData.Columns["Timestamp"] != null)
  108. dgvHistoryData.Columns["Timestamp"].DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss.fff";
  109. dgvHistoryData.Columns["Username"].HeaderText = "用户";
  110. dgvHistoryData.Columns["OperationType"].HeaderText = "操作类型";
  111. dgvHistoryData.Columns["ControlName"].HeaderText = "控件";
  112. dgvHistoryData.Columns["OldValue"].HeaderText = "操作前的值";
  113. dgvHistoryData.Columns["NewValue"].HeaderText = "操作后的值";
  114. dgvHistoryData.Columns["Detail"].HeaderText = "详细信息";
  115. }
  116. }
  117. catch (Exception ex)
  118. {
  119. MessageBox.Show("查询失败:" + ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  120. }
  121. }
  122. private void btnAdd_Click(object sender, EventArgs e)
  123. {
  124. List<Alarm> alarms = new List<Alarm>();
  125. for (int i = 0; i < 2; i++)
  126. {
  127. alarms.Add(new Alarm() { AlarmMessage = DateTime.Now.ToString(), AlarmType = AlarmType.Error, Timestamp = DateTime.Now });
  128. }
  129. //AlarmService.Log(new Alarm() { AlarmMessage = dtpStart.Value.ToString(), AlarmType = AlarmType.Error, Timestamp = dtpStart.Value }, AppSession.CurrentUser);
  130. AlarmService.LogBatch(alarms, AppSession.CurrentUser);
  131. }
  132. private void myUiButton1_Click(object sender, EventArgs e)
  133. {
  134. OperationRecord operationRecord = new OperationRecord()
  135. {
  136. Timestamp = DateTime.Now,
  137. OperationType = OperationType.ButtonSetValue,
  138. ControlName = "测试控件",
  139. OldValue = null,
  140. NewValue = "新值",
  141. Detail = "测试详细信息",
  142. User = AppSession.CurrentUser
  143. };
  144. OperationRecordService.Log(operationRecord);
  145. }
  146. private void cobQueryType_SelectedIndexChanged(object sender, EventArgs e)
  147. {
  148. cobDate_SelectedIndexChanged(null, null);
  149. }
  150. private void btn导出_Click(object sender, EventArgs e)
  151. {
  152. using (var saveFileDialog = new SaveFileDialog())
  153. {
  154. saveFileDialog.Filter = "CSV 文件 (*.csv)|*.csv";
  155. saveFileDialog.FileName = "ExportData.csv";
  156. if (saveFileDialog.ShowDialog() == DialogResult.OK)
  157. {
  158. try
  159. {
  160. ExportData.ExportDataGridViewToCsv(dgvHistoryData, saveFileDialog.FileName);
  161. MessageBox.Show("导出成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  162. }
  163. catch (Exception ex)
  164. {
  165. MessageBox.Show($"导出失败:{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  166. }
  167. }
  168. }
  169. }
  170. }
  171. }