FrmStuffFurnace.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using CoreFS.CA06;
  10. using Core.Mes.Client.Comm.Tool;
  11. using Core.StlMes.Client.YdmStuffManage.Entity;
  12. using System.Collections;
  13. using Infragistics.Win.UltraWinGrid;
  14. using Core.Mes.Client.Comm.Format;
  15. using Core.Mes.Client.Comm.Server;
  16. using Infragistics.Win;
  17. namespace Core.StlMes.Client.YdmStuffManage
  18. {
  19. public partial class FrmStuffFurnace : FrmBase
  20. {
  21. public FrmStuffFurnace()
  22. {
  23. InitializeComponent();
  24. }
  25. private void FrmStuffFurnace_Load(object sender, EventArgs e)
  26. {
  27. EntityHelper.ShowGridCaption<MatGpMEntity>(ultraGrid2.DisplayLayout.Bands[0]);
  28. EntityHelper.ShowGridCaption<MatGpTrackEntity>(ultraGrid1.DisplayLayout.Bands[0]);
  29. BaseMethod.InitCellPosition(ultraGrid2, new string[] { "ActTheoryWeight", "ActCount", "ActLenMax", "ActLenMin", "actLen", "actFixNum", "actFixLen", "ActDimater", "FurnaceCount" });
  30. BaseMethod.InitCellPosition(ultraGrid1, new string[] { "ActTheoryWeight", "ActCount", "ActLenMax", "ActLenMin", "actLen", "actFixNum", "actFixLen", "ActDimater" });
  31. }
  32. /// <summary>
  33. /// 重写基类方法
  34. /// </summary>
  35. /// <param name="sender"></param>
  36. /// <param name="ToolbarKey"></param>
  37. public override void ToolBar_Click(object sender, string ToolbarKey)
  38. {
  39. switch (ToolbarKey)
  40. {
  41. case "Query":
  42. doQueryMat();
  43. break;
  44. case"QueryTrack":
  45. doQueryTrack();
  46. break;
  47. case "Furnace":
  48. doFurnace();
  49. break;
  50. case "CancelFurnace":
  51. CancelFurnace();
  52. break;
  53. case "Close":
  54. this.Close();
  55. break;
  56. }
  57. }
  58. /// <summary>
  59. /// 查询收料实绩
  60. /// </summary>
  61. private void doQueryMat()
  62. {
  63. string heatNo = "";
  64. string judgeHeatNo = "";
  65. ArrayList parm = new ArrayList();
  66. if (!CheckQuery()) return;
  67. if (checkHeatNo.Checked)
  68. {
  69. heatNo = this.txt_heatNo.Text.Trim();
  70. }
  71. if (chkJudgeHeatNo.Checked)
  72. {
  73. judgeHeatNo = this.txt_judgeHeatNo.Text.Trim();
  74. }
  75. parm.Add(heatNo);
  76. parm.Add(judgeHeatNo);
  77. List<MatGpMEntity> listSource = EntityHelper.GetData<MatGpMEntity>(
  78. "com.steering.pss.ydm.Stuffmanage.FrmStuffFurnace.doQueryMat", new object[] { parm }, this.ob);
  79. //MatGpMEntitybindingSource.DataSource = listSource;
  80. }
  81. /// <summary>
  82. /// 数据验证
  83. /// </summary>
  84. /// <returns></returns>
  85. private bool CheckQuery()
  86. {
  87. if (this.checkHeatNo.Checked && string.IsNullOrEmpty(this.txt_heatNo.Text.Trim()))
  88. {
  89. MessageUtil.ShowWarning("请输入熔炼炉号!");
  90. return false;
  91. }
  92. if (this.chkJudgeHeatNo.Checked && string.IsNullOrEmpty(this.txt_judgeHeatNo.Text.Trim()))
  93. {
  94. MessageUtil.ShowWarning("请输入判定炉号!");
  95. return false;
  96. }
  97. return true;
  98. }
  99. /// <summary>
  100. /// 查询组炉实绩
  101. /// </summary>
  102. private void doQueryTrack()
  103. {
  104. string heatNo = "";
  105. string judgeHeatNo = "";
  106. ArrayList parm = new ArrayList();
  107. if (!CheckQuery()) return;
  108. if (checkHeatNo.Checked)
  109. {
  110. heatNo = this.txt_heatNo.Text.Trim();
  111. }
  112. if (chkJudgeHeatNo.Checked)
  113. {
  114. judgeHeatNo = this.txt_judgeHeatNo.Text.Trim();
  115. }
  116. parm.Add(heatNo);
  117. parm.Add(judgeHeatNo);
  118. List<MatGpTrackEntity> listSource = EntityHelper.GetData<MatGpTrackEntity>(
  119. "com.steering.pss.ydm.Stuffmanage.FrmStuffFurnace.doQueryTrack", new object[] { parm }, this.ob);
  120. MatGpTrackEntitybindingSource.DataSource = listSource;
  121. }
  122. /// <summary>
  123. /// 确认组炉
  124. /// </summary>
  125. private void doFurnace()
  126. {
  127. this.ultraGrid2.UpdateData();
  128. string judgeNo = "";
  129. string stoveNo = "";
  130. string departId = ClsBaseInfo.GetDepartIdBySectionId(this.UserInfo.GetDeptid(), this.ob);
  131. string departMent = ClsBaseInfo.GetDepartBySectionId(this.UserInfo.GetDeptid(), this.ob);
  132. IQueryable<UltraGridRow> checkMagRows = this.ultraGrid2.Rows.AsQueryable().Where(" CHK = 'True'");
  133. if (this.txt_newJugeNo.Text == "")
  134. {
  135. MessageUtil.ShowTips("组炉时新判定炉号不能为空!");
  136. return;
  137. }
  138. else
  139. {
  140. judgeNo = this.txt_newJugeNo.Text.Trim();
  141. }
  142. if (this.newStove.Text == "")
  143. {
  144. MessageUtil.ShowTips("组炉时熔炼炉号不能为空!");
  145. return;
  146. }
  147. else
  148. {
  149. stoveNo = this.newStove.Text.Trim();
  150. }
  151. ArrayList fixLenList = new ArrayList();
  152. ArrayList gradeList = new ArrayList();
  153. ArrayList specList = new ArrayList();
  154. ArrayList stdList = new ArrayList();
  155. ArrayList parm = new ArrayList();
  156. foreach(UltraGridRow row in checkMagRows)
  157. {
  158. fixLenList.Add(row.Cells["ActFixLen"].Value.ToString());
  159. gradeList.Add(row.Cells["JudgeGradename"].Value.ToString());
  160. specList.Add(row.Cells["ActDimater"].Value.ToString());
  161. stdList.Add(row.Cells["JudgeStdName"].Value.ToString());
  162. }
  163. if (CompareCloum(fixLenList))
  164. {
  165. MessageUtil.ShowTips("单倍长度不一样,不允许组炉!");
  166. return;
  167. }
  168. if (CompareCloum(gradeList))
  169. {
  170. MessageUtil.ShowTips("钢种不一样,不允许组炉!");
  171. return;
  172. }
  173. if(CompareCloum(specList))
  174. {
  175. MessageUtil.ShowTips("规格不一样,不允许组炉!");
  176. return;
  177. }
  178. if (CompareCloum(stdList))
  179. {
  180. MessageUtil.ShowTips("标准名称不一致,不允许组炉!");
  181. }
  182. foreach (UltraGridRow uRow in checkMagRows)
  183. {
  184. ArrayList list = new ArrayList();
  185. MatGpMEntity matGpEntity = (MatGpMEntity)uRow.ListObject;
  186. string matGpTity = JSONFormat.Format(matGpEntity);
  187. list.Add(matGpTity);
  188. parm.Add(list);
  189. }
  190. if (MessageUtil.ShowYesNoAndQuestion("是否组炉?") == DialogResult.No)
  191. {
  192. return;
  193. }
  194. CoreClientParam ccp = new CoreClientParam();
  195. ccp.ServerName = "com.steering.pss.ydm.Stuffmanage.FrmStuffFurnace";
  196. ccp.MethodName = "doFurnace";
  197. ccp.ServerParams = new object[] { parm, judgeNo, stoveNo, this.UserInfo.GetUserName(), this.UserInfo.GetDeptid(), this.UserInfo.GetDepartment(), departId, departMent };
  198. ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  199. if (ccp.ReturnCode != -1)
  200. {
  201. if (ccp.ReturnInfo.Equals("组炉成功!"))
  202. {
  203. doQueryMat();
  204. MessageUtil.ShowTips(ccp.ReturnInfo);
  205. }
  206. }
  207. else
  208. {
  209. MessageUtil.ShowTips(ccp.ReturnInfo);
  210. }
  211. }
  212. /// <summary>
  213. /// 判断集合中所有元素是否相等
  214. /// </summary>
  215. /// <param name="list"></param>
  216. /// <returns></returns>
  217. private bool CompareCloum(ArrayList list)
  218. {
  219. return list.Cast<string>().Distinct().Count() == 1;
  220. }
  221. /// <summary>
  222. /// 撤销组炉
  223. /// </summary>
  224. private void CancelFurnace()
  225. {
  226. this.ultraGrid1.UpdateData();
  227. IQueryable<UltraGridRow> checkMagRows = this.ultraGrid2.Rows.AsQueryable().Where(" CHK = 'True'");
  228. ArrayList parm = new ArrayList();
  229. foreach(UltraGridRow uRow in checkMagRows)
  230. {
  231. ArrayList list = new ArrayList();
  232. MatGpTrackEntity matGpTrackEntity = (MatGpTrackEntity)uRow.ListObject;
  233. string matGpTity = JSONFormat.Format(matGpTrackEntity);
  234. list.Add(matGpTity);
  235. parm.Add(list);
  236. }
  237. if (MessageUtil.ShowYesNoAndQuestion("是否撤销?") == DialogResult.No)
  238. {
  239. return;
  240. }
  241. CoreClientParam ccp = new CoreClientParam();
  242. ccp.ServerName = "com.steering.pss.ydm.Stuffmanage.FrmStuffFurnace";
  243. ccp.MethodName = "cancelFurnace";
  244. ccp.ServerParams = new object[] { parm};
  245. ccp = ob.ExecuteNonQuery(ccp,CoreInvokeType.Internal);
  246. if (ccp.ReturnCode != -1)
  247. {
  248. if (ccp.ReturnInfo.Equals("撤销成功!"))
  249. {
  250. doQueryTrack();
  251. MessageUtil.ShowTips(ccp.ReturnInfo);
  252. }
  253. }
  254. else
  255. {
  256. MessageUtil.ShowTips(ccp.ReturnInfo);
  257. }
  258. }
  259. private void ultraGrid2_CellChange(object sender, CellEventArgs e)
  260. {
  261. if (e.Cell.Column.Key.Equals("CHK"))
  262. {
  263. if (e.Cell.Value.ToString() == "True")
  264. {
  265. newStove.Items.Add(e.Cell.Row.Cells["StoveNo"].Value.ToString());
  266. }
  267. else
  268. {
  269. if (newStove.Items.Contains(e.Cell.Row.Cells["StoveNo"].Value.ToString()))
  270. {
  271. newStove.Items.Remove(e.Cell.Row.Cells["StoveNo"].Value.ToString());
  272. }
  273. }
  274. }
  275. }
  276. private void FrmStuffFurnace_Shown(object sender, EventArgs e)
  277. {
  278. if (toolMenu == null) return;
  279. if (toolMenu.Toolbars[0].Tools.Exists("QueryTrack"))
  280. {
  281. toolMenu.Toolbars[0].Tools["QueryTrack"].InstanceProps.Visible = DefaultableBoolean.False;
  282. }
  283. if (toolMenu.Toolbars[0].Tools.Exists("CancelFurnace"))
  284. {
  285. toolMenu.Toolbars[0].Tools["CancelFurnace"].InstanceProps.Visible = DefaultableBoolean.False;
  286. }
  287. }
  288. private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
  289. {
  290. if (ultraTabControl1.SelectedTab.Key == "0")
  291. {
  292. if (toolMenu == null) return;
  293. if (toolMenu.Toolbars[0].Tools.Exists("Query"))
  294. {
  295. toolMenu.Toolbars[0].Tools["Query"].InstanceProps.Visible = DefaultableBoolean.True;
  296. }
  297. if (toolMenu.Toolbars[0].Tools.Exists("Furnace"))
  298. {
  299. toolMenu.Toolbars[0].Tools["Furnace"].InstanceProps.Visible = DefaultableBoolean.True;
  300. }
  301. if (toolMenu.Toolbars[0].Tools.Exists("QueryTrack"))
  302. {
  303. toolMenu.Toolbars[0].Tools["QueryTrack"].InstanceProps.Visible = DefaultableBoolean.False;
  304. }
  305. if (toolMenu.Toolbars[0].Tools.Exists("CancelFurnace"))
  306. {
  307. toolMenu.Toolbars[0].Tools["CancelFurnace"].InstanceProps.Visible = DefaultableBoolean.False;
  308. }
  309. }
  310. else
  311. {
  312. if (toolMenu.Toolbars[0].Tools.Exists("Query"))
  313. {
  314. toolMenu.Toolbars[0].Tools["Query"].InstanceProps.Visible = DefaultableBoolean.False;
  315. }
  316. if (toolMenu.Toolbars[0].Tools.Exists("Furnace"))
  317. {
  318. toolMenu.Toolbars[0].Tools["Furnace"].InstanceProps.Visible = DefaultableBoolean.False;
  319. }
  320. if (toolMenu.Toolbars[0].Tools.Exists("QueryTrack"))
  321. {
  322. toolMenu.Toolbars[0].Tools["QueryTrack"].InstanceProps.Visible = DefaultableBoolean.True;
  323. }
  324. if (toolMenu.Toolbars[0].Tools.Exists("CancelFurnace"))
  325. {
  326. toolMenu.Toolbars[0].Tools["CancelFurnace"].InstanceProps.Visible = DefaultableBoolean.True;
  327. }
  328. }
  329. }
  330. }
  331. }