版博士V2.0程序
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 

222 Zeilen
9.5 KiB

  1. using Models;
  2. using Newtonsoft.Json;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.ComponentModel;
  6. using System.Data;
  7. using System.Drawing;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows.Forms;
  12. namespace AssistClient
  13. {
  14. public partial class FrmProductStep : Form
  15. {
  16. Service.ProductService service = new Service.ProductService();
  17. Models.Product model = new Models.Product();
  18. private int? assistStepId;// stepId, reviseStepId;
  19. /// <summary>
  20. /// 产品配方 <StepId,List<Models.ProductProcess>>
  21. /// </summary>
  22. Dictionary<int, List<Models.ProductProcess>> dicProductProcess = new Dictionary<int, List<Models.ProductProcess>>();
  23. public FrmProductStep(Models.Product m)
  24. {
  25. InitializeComponent();
  26. dataGridView1.AutoGenerateColumns = false;
  27. //显示行号与列宽度自动调整
  28. dataGridView1.RowHeadersVisible = true;
  29. dataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
  30. dataGridView1.RowPostPaint += (sender, e) =>
  31. {
  32. Utils.Util.showRowNum_onDataGrid_RowPostPaint(this.dataGridView1, sender, e);
  33. };
  34. model = m;
  35. initDataView();
  36. }
  37. private void initDataView()
  38. {
  39. //显示的数据
  40. this.cobStepList.DisplayMember = "Name";
  41. this.cobStepList.ValueMember = "Id";
  42. var list = service.GetStepList(1);
  43. foreach (var item in list)
  44. dicProductProcess.Add(item.Id, new List<Models.ProductProcess>());
  45. if (model.AssistStepId != null)
  46. {
  47. this.assistStepId = (int)model.AssistStepId;
  48. dicProductProcess[(int)model.AssistStepId] = cv2ProductProcess(model.ProductAssistProcessList);
  49. }
  50. this.cobStepList.DataSource = list;
  51. if (model.StepId != null)
  52. this.cobStepList.SelectedValue = (int)model.StepId;
  53. }
  54. private List<ProductProcess> cv2ProductProcess(List<ProductAssistProcess> list)
  55. {
  56. List<ProductProcess> result=new List<ProductProcess>();
  57. foreach (var item in list)
  58. result.Add(item);
  59. return result;
  60. }
  61. private List<ProductAssistProcess> cv2ProductAssistProcess(List<ProductProcess> list)
  62. {
  63. string json;
  64. List<ProductAssistProcess> result = new List<ProductAssistProcess>();
  65. foreach (var item in list)
  66. {
  67. json=JsonConvert.SerializeObject(item);
  68. result.Add(JsonConvert.DeserializeObject<ProductAssistProcess>(json));
  69. }
  70. return result;
  71. }
  72. private void FrmProductInfo_Load(object sender, EventArgs e)
  73. {
  74. }
  75. private void cobStepList_SelectedIndexChanged(object sender, EventArgs e)
  76. {
  77. var list = this.cobStepList.DataSource as List<Models.Step>;
  78. int liIndex=this.cobStepList.SelectedIndex;
  79. if (liIndex < 0)
  80. return;
  81. dataGridView1.DataSource = new BindingSource(list[liIndex].ProcessList, null);
  82. tsslCount.Text = $"共{list[liIndex].ProcessList.Count}条工序";
  83. this.assistStepId = (int)this.cobStepList.SelectedValue;
  84. }
  85. private void tsbtnSave_Click(object sender, EventArgs e)
  86. {
  87. try
  88. {
  89. if (assistStepId == null)
  90. throw new Exception("请设置产品流程!");
  91. model.AssistStepId = assistStepId;
  92. model.ProductAssistProcessList = cv2ProductAssistProcess(dicProductProcess[(int)assistStepId]);
  93. //model.ModifyUserCode = Config.loginUser.Code;
  94. //model.ModifyTime = DateTime.Now;
  95. bool result = service.UpdateNav(model);
  96. if (!result)
  97. throw new Exception("保存失败!");
  98. MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  99. this.Close();
  100. }
  101. catch (Exception ex)
  102. {
  103. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  104. }
  105. }
  106. private void tsbtnCls_Click(object sender, EventArgs e)
  107. {
  108. try
  109. {
  110. if (this.dataGridView1.CurrentRow == null)
  111. throw new Exception("请选择要清除私有产品配方的工序!");
  112. if(this.dataGridView1.CurrentRow.Cells["colPrivateProcessParams"].Value.ToString() == "")
  113. throw new Exception("此工序未配置私有配方,无需清除!");
  114. //
  115. int liNewStepId = (int)this.cobStepList.SelectedValue;
  116. string processCode= this.dataGridView1.CurrentRow.Cells[0].Value.ToString();
  117. var m = dicProductProcess[liNewStepId].Find(x => x.ProcessCode == processCode);
  118. if (m != null)
  119. {
  120. dicProductProcess[liNewStepId].Remove(m);
  121. this.dataGridView1.CurrentRow.Cells["colProdctPrivate"].Value = "";
  122. this.dataGridView1.CurrentRow.Cells["colPrivateProcessParams"].Value = "";
  123. MessageBox.Show("清除成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  124. }
  125. }
  126. catch (Exception ex)
  127. {
  128. MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  129. }
  130. }
  131. private void tsbtnClose_Click(object sender, EventArgs e)
  132. {
  133. this.Close();
  134. }
  135. private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
  136. {
  137. if (this.cobStepList.SelectedValue == null)
  138. return;
  139. int liNewStepId = (int)this.cobStepList.SelectedValue;
  140. string processCode;
  141. for (int i = 0; i < dataGridView1.Rows.Count; i++)
  142. {
  143. processCode = dataGridView1.Rows[i].Cells[0].Value.ToString();
  144. //dataGridView1.Rows[i].Cells[1].Value = Config.dicDevType[processCode];
  145. var m= dicProductProcess[liNewStepId].Find(x=>x.ProcessCode==processCode);
  146. if (m != null)
  147. {
  148. dataGridView1.Rows[i].Cells["colProdctPrivate"].Value = "是";
  149. dataGridView1.Rows[i].Cells["colPrivateProcessParams"].Value = m.ProcessParams;
  150. }
  151. else
  152. {
  153. dataGridView1.Rows[i].Cells["colProdctPrivate"].Value = "";
  154. dataGridView1.Rows[i].Cells["colPrivateProcessParams"].Value = "";
  155. }
  156. }
  157. }
  158. private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
  159. {
  160. int liNewStepId = (int)this.cobStepList.SelectedValue;
  161. int Index = this.dataGridView1.CurrentRow.Index;//获取当前选中行的索引
  162. if (Index < this.dataGridView1.Rows.Count && this.dataGridView1.CurrentCell.Value.ToString() == "设置")
  163. {
  164. string processCode = this.dataGridView1.Rows[Index].Cells["colProcessCode"].Value.ToString();
  165. string processParams = "";
  166. if (this.dataGridView1.Rows[Index].Cells["colPrivateProcessParams"].Value != null && this.dataGridView1.Rows[Index].Cells["colPrivateProcessParams"].Value.ToString()!="")
  167. processParams = this.dataGridView1.Rows[Index].Cells["colPrivateProcessParams"].Value.ToString();
  168. else if (this.dataGridView1.Rows[Index].Cells["colStepProcessParams"].Value != null && this.dataGridView1.Rows[Index].Cells["colStepProcessParams"].Value.ToString()!="")
  169. processParams = this.dataGridView1.Rows[Index].Cells["colStepProcessParams"].Value.ToString();
  170. FrmSetParams frm = new FrmSetParams(processCode, processParams);
  171. if (frm.ShowDialog() == DialogResult.OK)
  172. {
  173. this.dataGridView1.Rows[Index].Cells["colProdctPrivate"].Value = "是";
  174. this.dataGridView1.Rows[Index].Cells["colPrivateProcessParams"].Value = frm.ParamsData;
  175. var m = dicProductProcess[liNewStepId].Find(x => x.ProcessCode == processCode);
  176. if (m == null)
  177. dicProductProcess[liNewStepId].Add(new Models.ProductProcess()
  178. {
  179. Pid = model.Id,
  180. ProcessCode = processCode,
  181. ProcessParams = frm.ParamsData,
  182. ModifyUserCode=Config.loginUser.Code,
  183. CreateUserCode = Config.loginUser.Code,
  184. });
  185. else
  186. {
  187. m.ProcessParams = frm.ParamsData;
  188. m.ModifyUserCode = Config.loginUser.Code;
  189. }
  190. }
  191. }
  192. }
  193. private void FrmProductStep_FormClosing(object sender, FormClosingEventArgs e)
  194. {
  195. if (MessageBox.Show($"确认修改已保存,是否退出?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
  196. {
  197. e.Cancel = true;
  198. return;
  199. }
  200. }
  201. }
  202. }