版博士V2.0程序
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

197 строки
8.0 KiB

  1. using MaiMuAOI.SysCtrl;
  2. using Models;
  3. using Newtonsoft.Json.Linq;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.ComponentModel;
  7. using System.Data;
  8. using System.Drawing;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. using System.Windows.Forms;
  13. namespace MaiMuAOI.SysUI.ProcessStep
  14. {
  15. public partial class StepListFrm : Form
  16. {
  17. private Service.StepService service = new Service.StepService();
  18. public StepListFrm()
  19. {
  20. InitializeComponent();
  21. UIStyle.SetUIStyle(this);
  22. this.uiTitel1.FatherForm = this;
  23. #region dataGridView设置
  24. dataGridView1.AutoGenerateColumns = false;//自动创建列
  25. dataGridView1.AllowUserToAddRows = dataGridView1.AllowUserToDeleteRows = false;//用户添加删除行
  26. dataGridView1.AllowUserToResizeRows = true;//用户调整行大小
  27. //dataGridView1.AllowUserToResizeColumns = false;//用户调整列大小
  28. //显示行号与列宽度自动调整
  29. dataGridView1.RowHeadersVisible = true;
  30. dataGridView1.RowHeadersWidth = 50;
  31. dataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;//数据量过百绑定太变
  32. dataGridView1.RowPostPaint += (sender, e) =>//序号列头
  33. {
  34. SysMgr.showRowNum_onDataGrid_RowPostPaint(this.dataGridView1, sender, e);
  35. };
  36. dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
  37. #endregion
  38. }
  39. private void InitDataView(int selIndex = -1)
  40. {
  41. var list = service.GetListNav(0);
  42. tsslCount.Text = $"共 {list.Count} 条记录";
  43. int liIndex = 0;
  44. if (selIndex > 0) liIndex = selIndex;
  45. else if (this.dataGridView1.CurrentRow != null)
  46. liIndex = this.dataGridView1.CurrentRow.Index;
  47. dataGridView1.DataSource = new BindingSource(list, null);
  48. if (dataGridView1.Rows.Count > liIndex)
  49. dataGridView1.CurrentCell = dataGridView1[1, liIndex];
  50. }
  51. private void StepListFrm_Load(object sender, EventArgs e)
  52. {
  53. this.Cursor = Cursors.WaitCursor;
  54. InitDataView();
  55. this.Cursor = Cursors.Default;
  56. }
  57. private void tsbtnAdd_Click(object sender, EventArgs e)
  58. {
  59. StepSelectFrm stepSelectFrm = new StepSelectFrm();
  60. stepSelectFrm.ShowDialog();
  61. if (stepSelectFrm.ProcessSelect == 200)
  62. {
  63. //老流程
  64. StepInfoFrm frm = new StepInfoFrm();
  65. frm.ShowDialog();
  66. }
  67. else if (stepSelectFrm.ProcessSelect == 100)
  68. {
  69. //新流程
  70. StepProcessFrm frm = new StepProcessFrm();
  71. frm.ShowDialog();
  72. }
  73. InitDataView();
  74. }
  75. private void tsbtnDel_Click(object sender, EventArgs e)
  76. {
  77. try
  78. {
  79. if (this.dataGridView1.CurrentRow == null)
  80. return;
  81. var list = ((BindingSource)dataGridView1.DataSource).DataSource as List<Step>;
  82. int liIndex = this.dataGridView1.CurrentRow.Index;//获取当前选中行的索引
  83. if (service.InUse(list[liIndex].Id))
  84. throw new Exception("此流程已有产品在使用中,不可删除!");
  85. if (MessageBox.Show($"确认删除?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
  86. {
  87. if (!service.DelNav(list[liIndex]))
  88. throw new Exception("删除失败!");
  89. MessageBox.Show("删除成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  90. this.dataGridView1.Rows.RemoveAt(liIndex);
  91. if (this.dataGridView1.Rows.Count == 0)
  92. InitDataView();
  93. }
  94. }
  95. catch (Exception ex)
  96. {
  97. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  98. }
  99. }
  100. private void tsbtnClone_Click(object sender, EventArgs e)
  101. {
  102. if (this.dataGridView1.CurrentRow == null)
  103. {
  104. MessageBox.Show("请选择要克隆的流程!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  105. return;
  106. }
  107. var list = ((BindingSource)dataGridView1.DataSource).DataSource as List<Step>;
  108. int liIndex = this.dataGridView1.CurrentRow.Index;//获取当前选中行的索引
  109. Step newStep = new Step()
  110. {
  111. Code = list[liIndex].Code + "_clone",
  112. Name = $"{list[liIndex].Name} (克隆)",
  113. StartTimeIndex = list[liIndex].StartTimeIndex,
  114. ModifyUserCode = SysMgr.Instance.UserMgr.LoginUser.Code,
  115. CreateUserCode = SysMgr.Instance.UserMgr.LoginUser.Code,
  116. ProcessList = new List<StepProcess>(),
  117. ProcessType = list[liIndex].ProcessType,
  118. };
  119. foreach (var item in list[liIndex].ProcessList)
  120. {
  121. StepProcess sp;
  122. string spPrarms = "";
  123. if (item.ProcessCode == "Size")
  124. {
  125. if (item.ProcessParams.IndexOf("MapPath") > 0)
  126. {
  127. JObject jo = JObject.Parse(item.ProcessParams);//解析成json
  128. jo["MapPath"] = "";//修改需要的字段
  129. jo["GetPointList"] = null;
  130. spPrarms = Convert.ToString(jo);
  131. }
  132. else
  133. spPrarms = item.ProcessParams;
  134. }
  135. else
  136. spPrarms = item.ProcessParams;
  137. sp = new StepProcess()
  138. {
  139. Order = item.Order,
  140. ProcessCode = item.ProcessCode,
  141. ProcessName = item.ProcessName,
  142. ProcessParams = spPrarms,
  143. ModifyUserCode = SysMgr.Instance.UserMgr.LoginUser.Code,
  144. CreateUserCode = SysMgr.Instance.UserMgr.LoginUser.Code
  145. };
  146. newStep.ProcessList.Add(sp);
  147. }
  148. try
  149. {
  150. bool result = service.InsertNav(newStep);
  151. if (result)
  152. {
  153. MessageBox.Show("克隆成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  154. InitDataView(dataGridView1.Rows.Count);
  155. }
  156. else
  157. throw new Exception("克隆失败!");
  158. }
  159. catch (Exception ex)
  160. {
  161. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  162. }
  163. }
  164. private void tsbtnClose_Click(object sender, EventArgs e)
  165. {
  166. this.Close();
  167. }
  168. private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
  169. {
  170. var list = ((BindingSource)dataGridView1.DataSource).DataSource as List<Step>;
  171. int liIndex = this.dataGridView1.CurrentRow.Index;//获取当前选中行的索引
  172. //新老流程判断
  173. if (list[liIndex].ProcessType == "快速流程")
  174. {
  175. StepProcessFrm frm = new StepProcessFrm(list[liIndex]);
  176. frm.ShowDialog(this);
  177. }
  178. else
  179. {
  180. StepInfoFrm frm = new StepInfoFrm(list[liIndex]);
  181. frm.ShowDialog(this);
  182. }
  183. InitDataView();
  184. }
  185. }
  186. }