CurrentTaskUI.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. using Pms.DataLibrary.Order;
  2. using Pms.Models;
  3. using ProjectManagementSystem.Common.Extenions;
  4. using ProjectManagementSystem.Common.Logger;
  5. using ProjectManagementSystem.Common.WebApi;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.ComponentModel;
  9. using System.Data;
  10. using System.Drawing;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. using System.Windows.Forms;
  15. namespace ProjectManagementSystem.UI
  16. {
  17. public partial class CurrentTaskUI : UserControl, IDisplayUI
  18. {
  19. public CurrentTaskUI()
  20. {
  21. InitializeComponent();
  22. }
  23. public bool Init()
  24. {
  25. return true;
  26. }
  27. public void UpdateDisplay()
  28. {
  29. if (!this.Visible) return;
  30. var taskDataList = PmsApi.GetTaskList();
  31. if (taskDataList == null)
  32. {
  33. dataGridUI1.ShowDataGrid<TaskData>(null);
  34. dataGridUI2.ShowDataGrid<StepData>(null);
  35. return;
  36. }
  37. foreach (var item in taskDataList)
  38. {
  39. item.AllWarehouse = item.AllWarehouse.ToShortPosString();
  40. }
  41. dataGridUI1.ShowDataGrid(taskDataList);
  42. string taskId = dataGridUI1.GetCurrentColValue("TaskID");
  43. if (string.IsNullOrEmpty(taskId))
  44. {
  45. dataGridUI2.ShowDataGrid<StepData>(null);
  46. return;
  47. }
  48. var stepInfoList = PmsApi.GetStepList(taskId);
  49. if (stepInfoList == null) return;
  50. dataGridUI2.ShowDataGrid(stepInfoList.OrderBy(d => d.TemplateStepID).ToList());
  51. }
  52. private void 取消任务ToolStripMenuItem_Click(object sender, EventArgs e)
  53. {
  54. TaskOpreate(sender, PmsApi.TaskCancel);
  55. }
  56. private void 终止任务不释放AGVToolStripMenuItem_Click(object sender, EventArgs e)
  57. {
  58. TaskOpreate(sender, PmsApi.TaskEnd);
  59. }
  60. private void 暂停任务ToolStripMenuItem_Click(object sender, EventArgs e)
  61. {
  62. TaskOpreate(sender, PmsApi.TaskPause);
  63. }
  64. private void 恢复任务ToolStripMenuItem_Click(object sender, EventArgs e)
  65. {
  66. TaskOpreate(sender, PmsApi.TaskResume);
  67. }
  68. private void 暂停小车ToolStripMenuItem_Click(object sender, EventArgs e)
  69. {
  70. CarrierOpreate(sender, PmsApi.CarrierPause);
  71. }
  72. private void 恢复小车ToolStripMenuItem_Click(object sender, EventArgs e)
  73. {
  74. CarrierOpreate(sender, PmsApi.CarrierResume);
  75. }
  76. private void TaskOpreate(object sender, Predicate<string> predicate)
  77. {
  78. string taskId = dataGridUI1.GetCurrentColValue("TaskID");
  79. if (string.IsNullOrEmpty(taskId)) return;
  80. string allWarehouse = dataGridUI1.GetCurrentColValue("AllWarehouse");
  81. string text = $"确定要{sender}{taskId}?({allWarehouse})";
  82. var dialogResult = MessageBox.Show(text, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
  83. if (dialogResult != DialogResult.OK)
  84. {
  85. return;
  86. }
  87. bool result = predicate(taskId);
  88. CLog.Instance.TaskLog.WriteInfo("实时任务界面(手动操作)", $"{taskId},{sender}{result.ToChineseString()}");
  89. }
  90. private void CarrierOpreate(object sender, Predicate<int> predicate)
  91. {
  92. string taskId = dataGridUI1.GetCurrentColValue("TaskID");
  93. if (string.IsNullOrEmpty(taskId)) return;
  94. string agvIdString = dataGridUI1.GetCurrentColValue("Carrier");
  95. if (!int.TryParse(agvIdString, out int agvId)) return;
  96. if (agvId <= 0) return;
  97. bool result = predicate(agvId);
  98. CLog.Instance.TaskLog.WriteInfo("实时任务界面(手动操作)", $"{taskId},{agvId}#,{sender}{result.ToChineseString()}");
  99. }
  100. }
  101. }