DebugUI.cs 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using DbCommon.BusinessCore.BaseCore;
  11. using DbCommon.Enties.DbModels;
  12. using DbCommon.Function;
  13. using PmsSecondaryPackaging.Interface.Service;
  14. using PmsSecondaryPackaging.Interface.Model.TaskBook;
  15. using ProjectManagementSystem.Common.Log;
  16. using Newtonsoft.Json;
  17. using PmsSecondaryPackaging.Interface.Model.WareHouse;
  18. using PmsSecondaryPackaging.SystemConfig.Service;
  19. using DbCommon.Extenions;
  20. namespace ProjectManagementSystem.UI
  21. {
  22. public partial class DebugUI : UserControl, IDisplayUI
  23. {
  24. public InterfaceService interfaceService { get; set; } = new InterfaceService();
  25. CConfigManager cConfigManager = new CConfigManager();
  26. public DebugUI()
  27. {
  28. InitializeComponent();
  29. }
  30. public bool Init()
  31. {
  32. if (!interfaceService.GetTaskBookList(out List<TaskBookInfoModel> taskBookInfoList, out string msg))
  33. {
  34. CLog.Instance.GetLog("System").WriteWarn("获取任务模板失败,请检查AGVS系统是否启动!!!");
  35. }
  36. cmbTaskTemplate.DataSource = taskBookInfoList?.Select(d => d.Name).ToList();
  37. if (interfaceService.GetWarehouseListInfo(null, out List<WareHouseInfoModel> wareHouseInfoList, out msg))
  38. {
  39. cmbLocationCode.DataSource = wareHouseInfoList.Select(d => d.WareHouseID).ToList();
  40. }
  41. if (interfaceService.GetTaskDataList(out List<TaskDetailInfoModel> taskDetailInfoList, out string Message))
  42. {
  43. cmbParentTaskId.DataSource = taskDetailInfoList.Select(d => d.TaskID).ToList();
  44. }
  45. return true;
  46. }
  47. private void button1_Click(object sender, EventArgs e)
  48. {
  49. string upLocation = cmbLocationCode.Text.Trim();
  50. string taskTemplate = cmbTaskTemplate.Text.Trim();
  51. string parentTaskId = cmbParentTaskId.Text.Trim();
  52. if (string.IsNullOrEmpty(upLocation)
  53. || string.IsNullOrEmpty(taskTemplate))
  54. {
  55. ShowErrMsg("任务点或任务模板检查异常");
  56. return;
  57. }
  58. if (upLocation.Contains(" "))
  59. {
  60. ShowErrMsg("任务点不能包含空格");
  61. return;
  62. }
  63. if (upLocation.Contains(","))
  64. {
  65. ShowErrMsg("任务点不能包含中文状态的逗号");
  66. return;
  67. }
  68. string[] posArr = Tools.StringToPosArray(upLocation);
  69. if(posArr == null
  70. || posArr.Length == 0)
  71. {
  72. ShowErrMsg("任务点转换失败");
  73. return;
  74. }
  75. foreach (var item in posArr)
  76. {
  77. if (!interfaceService.GetWarehouseListInfo(item, out List<WareHouseInfoModel> wareHouseInfoList, out string msg)
  78. || wareHouseInfoList== null
  79. || wareHouseInfoList.Count == 0)
  80. {
  81. ShowErrMsg($"PMS中没有库位配置:{item}");
  82. return;
  83. }
  84. }
  85. if (!interfaceService.GetTaskDataList(out List<TaskDetailInfoModel> taskDetailInfoList, out string Message))
  86. {
  87. ShowErrMsg("获取当前任务列表失败");
  88. return;
  89. }
  90. ;
  91. int count = taskDetailInfoList
  92. .Where(d =>
  93. {
  94. foreach (var item in posArr)
  95. {
  96. if(d.AllWarehouse.Contains(item))
  97. {
  98. return true;
  99. }
  100. }
  101. return false;
  102. })
  103. .Count();
  104. if (count > 0)
  105. {
  106. ShowErrMsg("有正在执行的任务");
  107. return;
  108. }
  109. string text = $"确定要生成此任务?任务点:{upLocation},任务簿:{taskTemplate},父任务ID:{parentTaskId}";
  110. var dialogResult = MessageBox.Show(text, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
  111. if (dialogResult != DialogResult.OK)
  112. {
  113. return;
  114. }
  115. try
  116. {
  117. TaskAddInfoModel data = new TaskAddInfoModel();
  118. data.TaskID = DateTime.Now.ToString("yyyyMMddHHmmssffff");
  119. data.TemplateName = taskTemplate;
  120. data.AgvId = 0;
  121. data.AgvType = "0";
  122. for (int i = 0; i < posArr.Length; i++)
  123. {
  124. data.ParametersDic.Add($"U{i+1}", posArr[i]);
  125. }
  126. data.Priority = 0;
  127. data.ParentTaskId = parentTaskId;
  128. bool result = interfaceService.TaskAdd(data, out Message);
  129. CLog.Instance.GetLog("Task").WriteInfo($"{data.TaskID} {data.ParentTaskId} {data.TemplateName} {data.Parameters} 调试任务添加{result.ToChineseString()}");
  130. if (result)
  131. {
  132. ShowMsg("添加任务成功");
  133. }
  134. else
  135. {
  136. ShowErrMsg("添加任务失败");
  137. }
  138. }
  139. catch (Exception ex)
  140. {
  141. ShowErrMsg($"添加任务发生异常:{ex.Message}");
  142. }
  143. }
  144. private void ShowMsg(string text)
  145. {
  146. MessageBox.Show(text, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  147. }
  148. private void ShowErrMsg(string text)
  149. {
  150. MessageBox.Show(text, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
  151. }
  152. public void UpdateDisplay()
  153. {
  154. }
  155. private void 更新数据ToolStripMenuItem_Click(object sender, EventArgs e)
  156. {
  157. Init();
  158. }
  159. }
  160. }