frmWcsAgvCmd.cs 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. using ComponentFactory.Krypton.Toolkit;
  2. using NXWMS.Client.Code.Extends;
  3. using NXWMS.Client.Model.AppModels.Condition;
  4. using NXWMS.Client.Model.AppModels.Condition.WmsTask;
  5. using NXWMS.Client.Model.AppModels.Result;
  6. using NXWMS.Client.Model.AppModels.Result.Common;
  7. using NXWMS.Client.Model.CoreModels;
  8. using NXWMS.Commons;
  9. using NXWMS.Services;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.ComponentModel;
  13. using System.Data;
  14. using System.Drawing;
  15. using System.Linq;
  16. using System.Text;
  17. using System.Text.RegularExpressions;
  18. using System.Web.UI.WebControls;
  19. using System.Windows.Forms;
  20. namespace NXWMS.Forms.WmsTask
  21. {
  22. /// <summary>
  23. /// AGV指令管理窗体
  24. /// </summary>
  25. public partial class frmWcsAgvCmd : KryptonForm
  26. {
  27. /// <summary>
  28. /// 窗体构造函数
  29. /// </summary>
  30. public frmWcsAgvCmd()
  31. {
  32. InitializeComponent();
  33. // 获取窗体的全类名
  34. _CrrentClassName = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName;
  35. }
  36. #region 全局变量
  37. /// <summary>
  38. /// 客户端字段排序列表(收货记录)
  39. /// </summary>
  40. private List<ClientFieldOrderResult> _clientFieldOrderList;
  41. /// <summary>
  42. /// 当前窗体类名
  43. /// </summary>
  44. private string _CrrentClassName;
  45. #endregion
  46. #region 初始化数据
  47. /// <summary>
  48. /// 窗体加载事件
  49. /// </summary>
  50. /// <param name="sender"></param>
  51. /// <param name="e"></param>
  52. private void frmWcsAgvCmd_Load(object sender, EventArgs e)
  53. {
  54. var result = ConfigServices.configService.GetDataViewOrderList(new ClientFieldOrderCondition { SourceCode = $"{_CrrentClassName}" });
  55. if (result.Status == OperateStatus.Success)
  56. {
  57. _clientFieldOrderList = result.Data;
  58. }
  59. InitComboBoxItemData();
  60. kdtp_startCreateTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
  61. kdtp_endCreateTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
  62. kdtp_startCreateTime.Checked = false;
  63. kdtp_endCreateTime.Checked = false;
  64. }
  65. /// <summary>
  66. /// 初始化下拉列表数据
  67. /// </summary>
  68. private void InitComboBoxItemData()
  69. {
  70. /*
  71. ToDo:后续把下拉列表转为 后台获取数据,目前是写死的。
  72. */
  73. List<BasDictionaryResult> results = new List<BasDictionaryResult>();
  74. #region 装载状态
  75. results = BasDictionaryUtil.basDictionaryResultLst.FindAll(x => x.DICTIONARY_CODE == "TrayLoadedDesc");
  76. if (results.Count > 0)
  77. {
  78. kcmb_trayLoadedMsg.Items.Clear();
  79. kcmb_trayLoadedMsg.Items.Add(new ListItem
  80. {
  81. Value = "",
  82. Text = "请选择",
  83. });
  84. foreach (var item in results)
  85. {
  86. kcmb_trayLoadedMsg.Items.Add(new ListItem
  87. {
  88. Value = item.DICTIONARY_ITEM_CODE,
  89. Text = item.DICTIONARY_ITEM_NAME,
  90. });
  91. }
  92. kcmb_trayLoadedMsg.SelectedIndex = 0;
  93. }
  94. else
  95. {
  96. KryptonMessageBox.Show("未找到托盘装载状态的字典项数据!");
  97. }
  98. #endregion
  99. #region 指令类型
  100. results = BasDictionaryUtil.basDictionaryResultLst.FindAll(x => x.DICTIONARY_CODE == "AgvCmdTypeDesc");
  101. if (results.Count > 0)
  102. {
  103. kcmb_taskType.Items.Clear();
  104. kcmb_taskType.Items.Add(new ListItem
  105. {
  106. Value = "",
  107. Text = "请选择",
  108. });
  109. foreach (var item in results)
  110. {
  111. kcmb_taskType.Items.Add(new ListItem
  112. {
  113. Value = item.DICTIONARY_ITEM_CODE,
  114. Text = item.DICTIONARY_ITEM_NAME,
  115. });
  116. }
  117. kcmb_taskType.SelectedIndex = 0;
  118. }
  119. else
  120. {
  121. KryptonMessageBox.Show("未找到AGV指令类型的字典项数据!");
  122. }
  123. #endregion
  124. #region 指令状态
  125. results = BasDictionaryUtil.basDictionaryResultLst.FindAll(x => x.DICTIONARY_CODE == "CmdStatusDesc");
  126. if (results.Count > 0)
  127. {
  128. kcmb_taskStatusMsg.Items.Clear();
  129. kcmb_taskStatusMsg.Items.Add(new ListItem
  130. {
  131. Value = "",
  132. Text = "请选择",
  133. });
  134. foreach (var item in results)
  135. {
  136. kcmb_taskStatusMsg.Items.Add(new ListItem
  137. {
  138. Value = item.DICTIONARY_ITEM_CODE,
  139. Text = item.DICTIONARY_ITEM_NAME,
  140. });
  141. }
  142. kcmb_taskStatusMsg.SelectedIndex = 0;
  143. }
  144. else
  145. {
  146. KryptonMessageBox.Show("未找到指令状态的字典项数据!");
  147. }
  148. #endregion
  149. }
  150. /// <summary>
  151. /// 初始化分页控件
  152. /// </summary>
  153. #endregion
  154. #region 按钮事件
  155. /// <summary>
  156. /// 查询按钮事件
  157. /// </summary>
  158. /// <param name="sender"></param>
  159. /// <param name="e"></param>
  160. private void kbtnSearch_Click(object sender, EventArgs e)
  161. {
  162. var loadfrm = new frmLoading();
  163. loadfrm.Show();
  164. var message = loadfrm.EventCalExec(LoadWcsAgvCmdData);
  165. }
  166. /// <summary>
  167. /// 调用服务端接口,请求AGV指令数据
  168. /// </summary>
  169. /// <returns></returns>
  170. private string LoadWcsAgvCmdData()
  171. {
  172. var result = WmsTaskManageService.wmsTskTaskService.GetWcsAgvCmdData(new WcsAgvCmdSearchMd
  173. {
  174. TaskNo = ktb_taskNo.Text,
  175. CmdNo = ktb_cmdNo.Text,
  176. PalletNo = ktb_palletNoMsg.Text,
  177. SLocNo = ktb_SlocNoMsg.Text,
  178. SAgvLocNo = ktb_SAgvLocNoMsg.Text,
  179. ELocNo = ktb_ElocNoMsg.Text,
  180. EAgvLocNo = ktb_EAgvLocNoMsg.Text,
  181. AgvDevMsg = ktb_DevMsg.Text,
  182. TrayLoadedMsg = ((ListItem)kcmb_trayLoadedMsg.SelectedItem).Value,
  183. TaskType = ((ListItem)kcmb_taskType.SelectedItem).Value,
  184. TaskStatus = ((ListItem)kcmb_taskStatusMsg.SelectedItem).Value,
  185. StartCreateTime = kdtp_startCreateTime.Checked ? kdtp_startCreateTime.Value.ToString() : null,
  186. EndCreateTime = kdtp_endCreateTime.Checked ? kdtp_endCreateTime.Value.ToString() : null,
  187. PageNum = this.pageToolbar1.PageIndex,
  188. EveryPageQty = this.pageToolbar1.PageSize,
  189. });
  190. if (result.Status == OperateStatus.Success)
  191. {
  192. kdgv_WcsAgvCmdData.Columns.Clear();
  193. kdgv_WcsAgvCmdData.DataSource = result.Data;
  194. kdgv_WcsAgvCmdData.BuildDataGridView(_clientFieldOrderList.GetFieldOrderDic(), true, false);
  195. kdgv_WcsAgvCmdData.ClearSelection();
  196. this.pageToolbar1.DataCount = result.DataCount;
  197. return string.Empty;
  198. }
  199. else
  200. {
  201. return result.Message;
  202. }
  203. }
  204. /// <summary>
  205. /// 导出AGV指令数据
  206. /// </summary>
  207. /// <param name="sender"></param>
  208. /// <param name="e"></param>
  209. private void kbtnExport_Click(object sender, EventArgs e)
  210. {
  211. this.kdgv_WcsAgvCmdData.DataGridViewExport($"{AppConfig.CurrentMenu.FirstOrDefault().MenuName}列表" + DateTime.Now.ToString("yyyyMMddHH"));
  212. }
  213. /// <summary>
  214. /// 重置查询条件
  215. /// </summary>
  216. /// <param name="sender"></param>
  217. /// <param name="e"></param>
  218. private void kbtnReset_Click(object sender, EventArgs e)
  219. {
  220. ktb_taskNo.Text = "";
  221. ktb_cmdNo.Text = "";
  222. ktb_palletNoMsg.Text = "";
  223. ktb_SlocNoMsg.Text = "";
  224. ktb_SAgvLocNoMsg.Text = "";
  225. ktb_EAgvLocNoMsg.Text = "";
  226. ktb_ElocNoMsg.Text = "";
  227. ktb_DevMsg.Text = "";
  228. kcmb_trayLoadedMsg.SelectedIndex = 0;
  229. kcmb_taskType.SelectedIndex = 0;
  230. kcmb_taskStatusMsg.SelectedIndex = 0;
  231. kdtp_startCreateTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
  232. kdtp_startCreateTime.Checked = false;
  233. kdtp_endCreateTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
  234. kdtp_endCreateTime.Checked = false;
  235. }
  236. /// <summary>
  237. /// 打印AGV指令数据
  238. /// </summary>
  239. /// <param name="sender"></param>
  240. /// <param name="e"></param>
  241. private void kbtnPrint_Click(object sender, EventArgs e)
  242. {
  243. }
  244. #endregion
  245. private void pageToolbar1_OnPageChange(int PageIndex, int PageSzie)
  246. {
  247. this.kbtnSearch_Click(null, null);
  248. }
  249. }
  250. }