FrmMatGroupManage.cs 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501
  1. using Core.Mes.Client.Comm.Control;
  2. using Core.Mes.Client.Comm.Format;
  3. using Core.Mes.Client.Comm.Server;
  4. using Core.Mes.Client.Comm.Tool;
  5. using Core.StlMes.Client.YdmStuffManage.Entity;
  6. using CoreFS.CA06;
  7. using Infragistics.Win;
  8. using Infragistics.Win.UltraWinGrid;
  9. using System;
  10. using System.Collections;
  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.Windows.Forms;
  18. namespace Core.StlMes.Client.YdmStuffManage
  19. {
  20. public partial class FrmMatGroupManage : FrmBase
  21. {
  22. public FrmMatGroupManage()
  23. {
  24. InitializeComponent();
  25. }
  26. private void FrmMatGroupManage_Load(object sender, EventArgs e)
  27. {
  28. EntityHelper.ShowGridCaption<MatGpMEntity>(ultraGrid1.DisplayLayout.Bands[0]);
  29. EntityHelper.ShowGridCaption<MatGpGroupHistoryEntity1>(ultraGrid2.DisplayLayout.Bands[0]);
  30. EntityHelper.ShowGridCaption<MatGpGroupHistoryEntity>(ultraGrid2.DisplayLayout.Bands[1]);
  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. if (!CheckQuery()) return;
  43. doQueryData();
  44. break;
  45. case"MatGroup":
  46. matGroupData();
  47. break;
  48. case"cutGpNum":
  49. cutGpNum();
  50. break;
  51. case"QueryGroup":
  52. doQueryGroup();
  53. break;
  54. case "Split":
  55. doSplit();
  56. break;
  57. case "Export":
  58. ExportData();
  59. break;
  60. case "Close":
  61. close();
  62. break;
  63. }
  64. }
  65. public static List<MatGpMEntity> UltraGridGetChooseRows(UltraGrid ultraGrid, string columnName = "CHK")
  66. {
  67. ultraGrid.UpdateData();
  68. List<MatGpMEntity> list = new List<MatGpMEntity>();
  69. RowsCollection rows = ultraGrid.Rows;
  70. foreach (var item in rows)
  71. {
  72. try
  73. {
  74. if (Convert.ToBoolean(item.Cells[columnName].Value) == true && item.Hidden == false)
  75. {
  76. list.Add(item.ListObject as MatGpMEntity);
  77. }
  78. }
  79. catch { }
  80. }
  81. return list;
  82. }
  83. /// <summary>
  84. /// 导出
  85. /// </summary>
  86. private void ExportData()
  87. {
  88. if (this.ultraTabControl1.Tabs[0].Active)
  89. {
  90. GridHelper.ulGridToExcel(ultraGrid1, "库存信息");
  91. }
  92. else if (this.ultraTabControl1.Tabs[1].Active)
  93. {
  94. GridHelper.ulGridToExcel(ultraGrid2, "组炉实绩");
  95. }
  96. }
  97. //拆坯
  98. private void doSplit() {
  99. List<MatGpMEntity> list = UltraGridGetChooseRows(this.ultraGrid1);
  100. if (list.Count == 0)
  101. {
  102. MessageUtil.ShowTips("请选择需要拆分的数据!");
  103. return;
  104. }
  105. string judgeStoveNo = list[0].JudgeStoveNo;
  106. foreach (var item in list)
  107. {
  108. if(!judgeStoveNo.Equals(item.JudgeStoveNo))
  109. {
  110. MessageUtil.ShowTips("不同炉号不能拆坯!");
  111. return;
  112. }
  113. }
  114. FrmMatGroupManage_Split head = new FrmMatGroupManage_Split(list);
  115. head.ob = this.ob;
  116. head.ShowDialog();
  117. doQueryData();
  118. }
  119. /// <summary>
  120. /// 拆坯
  121. /// </summary>
  122. private void cutGpNum()
  123. {
  124. }
  125. /// <summary>
  126. /// 查询组炉实绩
  127. /// </summary>
  128. private void doQueryGroup()
  129. {
  130. string stoveNo = "";
  131. string judgeNo = "";
  132. string gradeCode = "";
  133. string dimter = "";
  134. string startTime = "";
  135. string endTime = "";
  136. if (chkStoveNo.Checked && txtStoveNo.Text.Trim() != "")
  137. {
  138. stoveNo = this.txtStoveNo.Text.Trim();
  139. }
  140. if (chkjudgeNo.Checked && txtjudgeNo.Text.Trim() != "")
  141. {
  142. judgeNo = this.txtjudgeNo.Text.Trim();
  143. }
  144. if (chkGrade.Checked && txtGrade.Tag.ToString() != "")
  145. {
  146. gradeCode = txtGrade.Text.ToString();//txtGrade.Tag.ToString();
  147. }
  148. if (chkDimter.Checked && txtDimter.Text.Trim() != "")
  149. {
  150. if (txtDimter.Text.Trim().Contains("."))
  151. {
  152. int dex = txtDimter.Text.Trim().IndexOf(".");
  153. dimter = txtDimter.Text.Trim().Substring(0, dex);
  154. }
  155. else
  156. {
  157. dimter = txtDimter.Text.Trim();
  158. }
  159. }
  160. if (ultraIsLoad.Checked)
  161. {
  162. startTime = StartTime.Value.ToString();
  163. endTime = EndTime.Value.ToString();
  164. }
  165. ArrayList parmList = new ArrayList();
  166. parmList.Add(stoveNo);
  167. parmList.Add(judgeNo);
  168. parmList.Add(gradeCode);
  169. parmList.Add(dimter);
  170. parmList.Add(startTime);
  171. parmList.Add(endTime);
  172. string[] L1 = new string[] { "MatGroupNo" };
  173. string[] L2 = new string[] { "MatGroupNo" };
  174. List<MatGpGroupHistoryEntity1> listSource = EntityHelper.GetData<MatGpGroupHistoryEntity1>(
  175. "Core.LgMes.Server.Stuffmanage.FrmMatGroupManage.doQueryMatGroup", new object[] { parmList,this.CustomInfo }, this.ob);
  176. List<MatGpGroupHistoryEntity> listSource1 = EntityHelper.GetData<MatGpGroupHistoryEntity>(
  177. "Core.LgMes.Server.Stuffmanage.FrmMatGroupManage.doQueryMatGroupData", new object[] { parmList,this.CustomInfo }, this.ob);
  178. EntityHelper.AddEntityRelation(listSource, listSource1, L1, L2);
  179. MatGpGroupHistoryEntity1bindingSource.DataSource = listSource;
  180. }
  181. /// <summary>
  182. /// 查询余材库存信息
  183. /// </summary>
  184. private void doQueryData()
  185. {
  186. string stoveNo = "";
  187. string judgeNo = "";
  188. string gradeCode = "";
  189. string dimter = "";
  190. string startTime = "";
  191. string endTime = "";
  192. if(chkStoveNo.Checked && txtStoveNo.Text.Trim() != "")
  193. {
  194. stoveNo = this.txtStoveNo.Text.Trim();
  195. }
  196. if (chkjudgeNo.Checked && txtjudgeNo.Text.Trim() != "")
  197. {
  198. judgeNo = this.txtjudgeNo.Text.Trim();
  199. }
  200. if(chkGrade.Checked && txtGrade.Tag.ToString() != "")
  201. {
  202. gradeCode = txtGrade.Text.ToString();//txtGrade.Tag.ToString();
  203. }
  204. if(chkDimter.Checked && txtDimter.Text.Trim() != "")
  205. {
  206. if(txtDimter.Text.Trim().Contains("."))
  207. {
  208. int dex = txtDimter.Text.Trim().IndexOf(".");
  209. dimter = txtDimter.Text.Trim().Substring(0,dex);
  210. }
  211. else
  212. {
  213. dimter = txtDimter.Text.Trim();
  214. }
  215. }
  216. if (ultraIsLoad.Checked)
  217. {
  218. startTime = StartTime.Value.ToString();
  219. endTime = EndTime.Value.ToString();
  220. }
  221. ArrayList parmList = new ArrayList();
  222. parmList.Add(stoveNo);
  223. parmList.Add(judgeNo);
  224. parmList.Add(gradeCode);
  225. parmList.Add(dimter);
  226. parmList.Add(startTime);
  227. parmList.Add(endTime);
  228. List<MatGpMEntity> listSource = EntityHelper.GetData<MatGpMEntity>(
  229. "Core.LgMes.Server.Stuffmanage.FrmMatGroupManage.doQueryMatData", new object[] { parmList,this.CustomInfo }, this.ob);
  230. MatGpMEntitybindingSource.DataSource = listSource;
  231. }
  232. /// <summary>
  233. /// 组炉
  234. /// </summary>
  235. private void matGroupData()
  236. {
  237. this.ultraGrid1.UpdateData();
  238. IQueryable<UltraGridRow> checkMagRows = this.ultraGrid1.Rows.AsQueryable().Where(" CHK = 'True'");
  239. if(checkMagRows.Count()== 0)
  240. {
  241. MessageUtil.ShowTips("请选择需要组炉的库存信息");
  242. return;
  243. }
  244. IQueryable<UltraGridRow> magRows = this.ultraGrid1.Rows.AsQueryable().Where(" CHK1 = 'True'");
  245. if (magRows.Count() == 0 || magRows.Count() >1)
  246. {
  247. MessageUtil.ShowTips("组炉时主炉号信息只允许选择一条");
  248. return;
  249. }
  250. if (this.CustomInfo.Equals("120501"))
  251. {
  252. if (txt_newJugeNo.Text.Trim() == "")
  253. {
  254. MessageUtil.ShowTips("组炉时请输入新判定炉号!");
  255. return;
  256. }
  257. }
  258. int gpGrade = checkMagRows.Select(a=>a.Cells["GradeName"].Text).Distinct().Count();
  259. if (gpGrade > 1)
  260. {
  261. MessageUtil.ShowTips("钢种不一致,不允许组炉!");
  262. return;
  263. }
  264. int gpDiamter = checkMagRows.Select(a => a.Cells["Dimater"].Text).Distinct().Count();
  265. if (gpDiamter > 1)
  266. {
  267. MessageUtil.ShowTips("直径不一致,不允许组炉!");
  268. return;
  269. }
  270. //天淮不要求单倍长度一致
  271. if (this.CustomInfo.Equals("120501"))
  272. {
  273. int gpFixLen = checkMagRows.Select(a => a.Cells["FixLen"].Text).Distinct().Count();
  274. if (gpFixLen > 1)
  275. {
  276. MessageUtil.ShowTips("单倍长度不一致,不允许组炉!");
  277. return;
  278. }
  279. }
  280. int isDear = checkMagRows.Select(a => a.Cells["IsDealer"].Text).Distinct().Count();
  281. if (isDear > 1)
  282. {
  283. MessageUtil.ShowTips("坯料用途不一致,不允许组炉!");
  284. return;
  285. }
  286. int backCount = checkMagRows.GroupBy(a => a.Cells["BackFlag"].Value.ToString() == "回炉坯").Count();
  287. if (backCount > 1)
  288. {
  289. MessageUtil.ShowTips("回炉坯只能和回炉坯组炉!");
  290. return;
  291. }
  292. //主炉号信息
  293. ArrayList zStoveNoList = new ArrayList();
  294. foreach (UltraGridRow row in magRows)
  295. {
  296. MatGpMEntity matEntity = (MatGpMEntity)row.ListObject;
  297. string matGpTity = JSONFormat.Format(matEntity);
  298. zStoveNoList.Add(matGpTity);
  299. }
  300. ArrayList parmList = new ArrayList();
  301. foreach(UltraGridRow uRow in checkMagRows)
  302. {
  303. MatGpMEntity matTity = (MatGpMEntity)uRow.ListObject;
  304. string matGpEntity = JSONFormat.Format(matTity);
  305. parmList.Add(matGpEntity);
  306. }
  307. CoreClientParam ccp = new CoreClientParam();
  308. ccp.ServerName = "Core.LgMes.Server.Stuffmanage.FrmMatGroupManage";
  309. ccp.MethodName = "matGroupData";
  310. ccp.ServerParams = new object[] { parmList, zStoveNoList,UserInfo.GetUserName(),this.txt_newJugeNo.Text.Trim(),this.CustomInfo };
  311. ccp = ob.ExecuteNonQuery(ccp,CoreInvokeType.Internal);
  312. if (ccp.ReturnCode != -1)
  313. {
  314. if (ccp.ReturnInfo.Equals("组炉成功!"))
  315. {
  316. doQueryData();
  317. MessageUtil.ShowTips(ccp.ReturnInfo);
  318. }
  319. else
  320. {
  321. MessageUtil.ShowTips(ccp.ReturnInfo);
  322. }
  323. }
  324. }
  325. private void close()
  326. {
  327. this.Close();
  328. }
  329. /// <summary>
  330. /// 检查基础数据
  331. /// </summary>
  332. /// <returns></returns>
  333. private bool CheckQuery()
  334. {
  335. if (this.chkStoveNo.Checked && string.IsNullOrEmpty(this.txtStoveNo.Text.Trim()))
  336. {
  337. MessageBox.Show("请输入熔炼炉号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  338. return false;
  339. }
  340. if (this.chkjudgeNo.Checked && string.IsNullOrEmpty(this.txtjudgeNo.Text.Trim()))
  341. {
  342. MessageBox.Show("请输入判定炉号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  343. return false;
  344. }
  345. if (this.chkGrade.Checked && string.IsNullOrEmpty(this.txtGrade.Tag.ToString()))
  346. {
  347. MessageBox.Show("请输入钢种!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  348. return false;
  349. }
  350. if (this.chkDimter.Checked && string.IsNullOrEmpty(this.txtDimter.Text.Trim()))
  351. {
  352. MessageBox.Show("请输入直径!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  353. return false;
  354. }
  355. return true;
  356. }
  357. private void chkStoveNo_CheckedChanged(object sender, EventArgs e)
  358. {
  359. this.txtStoveNo.Enabled = this.chkStoveNo.Checked;
  360. }
  361. private void chkjudgeNo_CheckedChanged(object sender, EventArgs e)
  362. {
  363. this.txtjudgeNo.Enabled = this.chkjudgeNo.Checked;
  364. }
  365. private void chkGrade_CheckedChanged(object sender, EventArgs e)
  366. {
  367. this.txtGrade.Enabled = this.chkGrade.Checked;
  368. }
  369. private void chkDimter_CheckedChanged(object sender, EventArgs e)
  370. {
  371. this.txtDimter.Enabled = this.chkDimter.Checked;
  372. }
  373. private void txtGrade_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  374. {
  375. DataTable dt = ServerHelper.GetData("Core.LgMes.Server.Stuffmanage.FrmBaseInformation.doQueryGradeAll",
  376. new object[] { }, ob);
  377. dt.Columns["GRADENAME"].Caption = "钢种";
  378. BaseInfoPopup baseInfo = new BaseInfoPopup(dt, "GRADENAME", "GRADECODE");
  379. baseInfo.Shown += new EventHandler((a, b) =>
  380. {
  381. var actRow = baseInfo.UltraGrid1.Rows.AsQueryable().Where(
  382. c => c.GetValue("GRADECODE") == this.txtGrade.Tag.ToString2()).FirstOrDefault();
  383. if (actRow != null) actRow.Activate();
  384. });
  385. if (baseInfo.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  386. {
  387. txtGrade.Tag = baseInfo.ChoicedRow.GetValue("GRADECODE");
  388. txtGrade.Text = baseInfo.ChoicedRow.GetValue("GRADENAME");
  389. }
  390. }
  391. private void txtDimter_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  392. {
  393. DataTable dt = ServerHelper.GetData("Core.LgMes.Server.Stuffmanage.FrmBaseInformation.doQueryDimaterAll",
  394. new object[] { }, ob);
  395. dt.Columns["SPEC_NAME"].Caption = "直径";
  396. BaseInfoPopup baseInfo = new BaseInfoPopup(dt, "SPEC_NAME", "SPEC_CODE");
  397. baseInfo.Shown += new EventHandler((a, b) =>
  398. {
  399. var actRow = baseInfo.UltraGrid1.Rows.AsQueryable().Where(
  400. c => c.GetValue("SPEC_NAME") == this.txtDimter.Tag.ToString2()).FirstOrDefault();
  401. if (actRow != null) actRow.Activate();
  402. });
  403. if (baseInfo.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  404. {
  405. txtDimter.Tag = baseInfo.ChoicedRow.GetValue("SPEC_NAME");
  406. txtDimter.Text = baseInfo.ChoicedRow.GetValue("SPEC_NAME");
  407. }
  408. }
  409. private void FrmMatGroupManage_Shown(object sender, EventArgs e)
  410. {
  411. if (toolMenu == null) return;
  412. if (toolMenu.Toolbars[0].Tools.Exists("QueryGroup"))
  413. {
  414. toolMenu.Toolbars[0].Tools["QueryGroup"].InstanceProps.Visible = DefaultableBoolean.False;
  415. }
  416. }
  417. private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
  418. {
  419. if (ultraTabControl1.SelectedTab.Key == "0")
  420. {
  421. if (toolMenu == null) return;
  422. if (toolMenu.Toolbars[0].Tools.Exists("QueryGroup"))
  423. {
  424. toolMenu.Toolbars[0].Tools["QueryGroup"].InstanceProps.Visible = DefaultableBoolean.False;
  425. }
  426. if (toolMenu.Toolbars[0].Tools.Exists("Query"))
  427. {
  428. toolMenu.Toolbars[0].Tools["Query"].InstanceProps.Visible = DefaultableBoolean.True;
  429. }
  430. if (toolMenu.Toolbars[0].Tools.Exists("MatGroup"))
  431. {
  432. toolMenu.Toolbars[0].Tools["MatGroup"].InstanceProps.Visible = DefaultableBoolean.True;
  433. }
  434. this.ultraGroupBox2.Visible = true;
  435. ultraIsLoad.Text="库存日期";
  436. }
  437. else if (ultraTabControl1.SelectedTab.Key == "1")
  438. {
  439. if (toolMenu == null) return;
  440. if (toolMenu.Toolbars[0].Tools.Exists("QueryGroup"))
  441. {
  442. toolMenu.Toolbars[0].Tools["QueryGroup"].InstanceProps.Visible = DefaultableBoolean.True;
  443. }
  444. if (toolMenu.Toolbars[0].Tools.Exists("Query"))
  445. {
  446. toolMenu.Toolbars[0].Tools["Query"].InstanceProps.Visible = DefaultableBoolean.False;
  447. }
  448. if (toolMenu.Toolbars[0].Tools.Exists("MatGroup"))
  449. {
  450. toolMenu.Toolbars[0].Tools["MatGroup"].InstanceProps.Visible = DefaultableBoolean.False;
  451. }
  452. this.ultraGroupBox2.Visible = false;
  453. ultraIsLoad.Text = "组炉日期";
  454. }
  455. }
  456. private void ultraGrid1_CellChange(object sender, CellEventArgs e)
  457. {
  458. double count = 0;
  459. double weght = 0;
  460. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  461. {
  462. if (Convert.ToBoolean(ugr.Cells["CHK"].Text) == true)
  463. {
  464. count += double.Parse(ugr.Cells["ActCount"].Value.ToString());
  465. weght += double.Parse(ugr.Cells["ActWeight"].Value.ToString());
  466. }
  467. }
  468. ultraLabel1.Text = " 支:" + count + " 吨:" + weght.ToString("f3");
  469. }
  470. }
  471. }