FrmProductionDetails.cs 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. using com.steering.mes.zgmil.entity;
  2. using Core.Mes.Client.Comm.Control;
  3. using Core.Mes.Client.Comm.Server;
  4. using Core.Mes.Client.Comm.Tool;
  5. using Core.StlMes.Client.ZGMil.Entity;
  6. using CoreFS.CA06;
  7. using Infragistics.Win;
  8. using Infragistics.Win.UltraWinGrid;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.ComponentModel;
  12. using System.Data;
  13. using System.Drawing;
  14. using System.Linq;
  15. using System.Text;
  16. using System.Windows.Forms;
  17. namespace Core.StlMes.Client.ZGMil.Signature
  18. {
  19. public partial class FrmProductionDetails : FrmBase
  20. {
  21. private string date;
  22. private string plinCode;
  23. private OpeBase ob;
  24. public FrmProductionDetails(string _date, string _plinCode, OpeBase _ob)
  25. {
  26. date = _date;
  27. plinCode = _plinCode;
  28. ob = _ob;
  29. InitializeComponent();
  30. }
  31. private void FrmProductionDetails_Load(object sender, EventArgs e)
  32. {
  33. EntityHelper.ShowGridCaption<MilControlLogEntity>(ultraGrid1.DisplayLayout.Bands[0]);
  34. doQuery();
  35. }
  36. private void doQuery()
  37. {
  38. List<MilControlLogEntity> listSource = EntityHelper.GetData<MilControlLogEntity>
  39. ("com.steering.mes.signature.FrmMilControlLog.doQueryPlanPro", new object[] { date, plinCode }, ob);
  40. MilControlLogEntity.DataSource = listSource;
  41. GridHelper.RefreshAndAutoSize(ultraGrid1);
  42. foreach (UltraGridRow row in ultraGrid1.Rows)
  43. {
  44. if (row.Cells["ProType"].Text.ToString().Trim().Equals("停机"))
  45. {
  46. row.Appearance.BackColor = Color.FromArgb(255, 255, 192);
  47. row.Appearance.BackHatchStyle = BackHatchStyle.None;
  48. }
  49. }
  50. TubeRoll.SetGridSumArea(ultraGrid1);
  51. Analysis();
  52. doQueryMin();
  53. }
  54. /// <summary>
  55. /// 月查询
  56. /// </summary>
  57. private void doMonthQuery()
  58. {
  59. string MonthDate = date.Substring(0, 6);
  60. List<MilControlLogEntity> listSource = EntityHelper.GetData<MilControlLogEntity>
  61. ("com.steering.mes.signature.FrmMilControlLog.doMonthQueryPlanPro", new object[] { MonthDate, plinCode }, ob);
  62. MilControlLogEntity.DataSource = listSource;
  63. GridHelper.RefreshAndAutoSize(ultraGrid1);
  64. foreach (UltraGridRow row in ultraGrid1.Rows)
  65. {
  66. if (row.Cells["ProType"].Text.ToString().Trim().Equals("停机"))
  67. {
  68. row.Appearance.BackColor = Color.FromArgb(255, 255, 192);
  69. row.Appearance.BackHatchStyle = BackHatchStyle.None;
  70. }
  71. }
  72. TubeRoll.SetGridSumArea(ultraGrid1);
  73. Analysis();
  74. doQueryMin();
  75. }
  76. /// <summary>
  77. ///分析
  78. /// </summary>
  79. private void doAnalysis()
  80. {
  81. int i = 0;
  82. try
  83. {
  84. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  85. {
  86. if (!ugr.Cells["LogsEnd"].Value.Equals(""))
  87. {
  88. i += 1;
  89. if (Convert.ToDateTime(ugr.Cells["LogsBeg"].Value.ToString()) > Convert.ToDateTime(ugr.Cells["LogsEnd"].Value.ToString()))
  90. {
  91. ugr.RowSelectorAppearance.BackColor = Color.Red;
  92. }
  93. }
  94. }
  95. for (int j = 0; j < i; j++)
  96. {
  97. string loagEnd = ultraGrid1.Rows[j].Cells["LogsEnd"].Text.ToString();
  98. string loagBeg = "";
  99. if (j + 1 < i)
  100. {
  101. loagBeg = ultraGrid1.Rows[j + 1].Cells["LogsBeg"].Text.ToString();
  102. if (DateTime.Compare(Convert.ToDateTime(loagBeg), Convert.ToDateTime(loagEnd)) > 0)
  103. {
  104. if (TubeRoll.JudgeTime(Convert.ToDateTime(loagBeg), Convert.ToDateTime(loagEnd)) > 0)
  105. {
  106. ultraGrid1.Rows[j + 1].Cells["StopType"].Appearance.BackColor = Color.Pink;
  107. ultraGrid1.Rows[j + 1].Cells["StopType"].Appearance.BackHatchStyle = BackHatchStyle.None;
  108. ultraGrid1.Rows[j].Cells["StopType"].Appearance.BackColor = Color.Pink;
  109. ultraGrid1.Rows[j].Cells["StopType"].Appearance.BackHatchStyle = BackHatchStyle.None;
  110. }
  111. }
  112. else if (DateTime.Compare(Convert.ToDateTime(loagBeg), Convert.ToDateTime(loagEnd)) < 0)
  113. {
  114. ultraGrid1.Rows[j].RowSelectorAppearance.BackColor = Color.Red;
  115. }
  116. TimeSpan timeSpan = DateTime.Parse(ultraGrid1.Rows[j + 1].Cells["LogsBeg"].Value.ToString()) -
  117. DateTime.Parse(ultraGrid1.Rows[j].Cells["LogsEnd"].Value.ToString());
  118. ultraGrid1.Rows[j + 1].Cells["TimeDiff"].Value = timeSpan.TotalMinutes.ToString();
  119. }
  120. }
  121. }
  122. catch (Exception ex)
  123. {
  124. MessageUtil.ShowTips("开始时间或结束时间不能为空!");
  125. }
  126. }
  127. /// <summary>
  128. ///时间差
  129. /// </summary>
  130. private void Analysis()
  131. {
  132. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  133. {
  134. string loagEnd = ugr.Cells["LogsEnd"].Value.ToString();
  135. string loagBeg = ugr.Cells["LogsBeg"].Value.ToString();
  136. if (!string.IsNullOrEmpty(loagEnd) && !string.IsNullOrEmpty(loagBeg))
  137. {
  138. TimeSpan timeSpan = DateTime.Parse(loagEnd) - DateTime.Parse(loagBeg);
  139. ugr.Cells["TimeDiff2"].Value = timeSpan.TotalMinutes.ToString();
  140. }
  141. }
  142. }
  143. private void doQueryMin()
  144. {
  145. DataTable dt = ServerHelper.GetData("com.steering.mes.signature.FrmMilControlLog.getSingleMainPlan", new object[] { plinCode }, this.ob);
  146. if(dt.Rows.Count>0)
  147. {
  148. GridHelper.CopyDataToDatatable(ref dt, ref dtPlan, true);
  149. ChangeCellName();
  150. }
  151. }
  152. /// <summary>
  153. /// 修改IS_START名称
  154. /// </summary>
  155. public void ChangeCellName()
  156. {
  157. if (ultraGrid2.Rows.Count > 0)
  158. {
  159. NativeMethodNew na = new NativeMethodNew(this.ob);
  160. foreach (UltraGridRow ugr in ultraGrid2.Rows)
  161. {
  162. if (ugr.Cells["IS_START"].Value.ToString() != "未开始连轧" && ugr.Cells["IS_START"].Value.ToString() != "已开始连轧" && ugr.Cells["IS_START"].Value.ToString() != "已完成连轧")
  163. {
  164. switch (Convert.ToInt32(ugr.Cells["IS_START"].Value))
  165. {
  166. case 3:
  167. ugr.Cells["IS_START"].Value = "未开始连轧";
  168. break;
  169. case 0:
  170. ugr.Cells["IS_START"].Value = "已开始连轧";
  171. break;
  172. case 1:
  173. ugr.Cells["IS_START"].Value = "已完成连轧";
  174. break;
  175. }
  176. }
  177. }
  178. }
  179. }
  180. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  181. {
  182. switch (e.Tool.Key)
  183. {
  184. case "DayQuery"://日查询
  185. doQuery();
  186. break;
  187. case "MonthQuery"://月查询
  188. doMonthQuery();
  189. break;
  190. case "DoAnalysis"://分析
  191. doAnalysis();
  192. break;
  193. case "Export":
  194. GridHelper.ulGridToExcel(ultraGrid1, "生产详情");
  195. break;
  196. case "Close":
  197. this.Close();
  198. break;
  199. default:
  200. break;
  201. }
  202. }
  203. }
  204. }