FrmStatisticalPub.cs 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456
  1. 
  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.Mcp.Control.Base;
  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. using Core.StlMes.Client.Mcp.Control.Entity;
  18. namespace Core.StlMes.Client.Mcp.Treatment.Report
  19. {
  20. public partial class FrmStatisticalPub : FrmBase
  21. {
  22. private string _bc = "";
  23. private int days = 0;
  24. private string effic720 = "";
  25. private string effic1720 = "";
  26. private string effic2720 = "";
  27. private string efficlz = "";
  28. private string effic1lz = "";
  29. private string effic2lz = "";
  30. private string efficlb = "";
  31. private string effic1lb = "";
  32. private string effic2lb = "";
  33. private string efficdc = "";
  34. private string effic1dc = "";
  35. private string effic2dc = "";
  36. private string efficrk = "";
  37. private string effic1rk = "";
  38. private string effic2rk = "";
  39. public FrmStatisticalPub()
  40. {
  41. InitializeComponent();
  42. }
  43. protected override void OnLoad(EventArgs e)
  44. {
  45. base.OnLoad(e);
  46. this.statisticalControl1.Grid.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  47. this.statisticalControl2.Grid.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  48. this.statisticalControl3.Grid.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  49. }
  50. private void FrmStatisticalPub_Load(object sender, EventArgs e)
  51. {
  52. DataTable dt1 = ServerHelper.GetData("com.steering.mes.mcp.common.McpBaseHelper.getPlineCode", new object[] { "F", "002001002" }, this.ob);
  53. comPlineCode.DataSource = dt1;
  54. comPlineCode.ValueMember = "PLINE_CODE";
  55. comPlineCode.DisplayMember = "PLINE_NAME";
  56. comPlineCode.SelectedIndex = 0;
  57. cmbBc.Value = this.UserInfo.GetUserOrder();
  58. //cmbBz.Value = this.UserInfo.GetUserGroup();
  59. dateDayTime.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
  60. days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
  61. DataTable dt = dataTable1;
  62. dt.Columns.Add(new DataColumn("Month") { Caption = "停机汇总" });
  63. TubeRoll.GridColumnSum(ultraGrid3, new string[] { "Month" });
  64. for (int i = 0; i < days; i++)
  65. {
  66. string key = "DAY" + (i + 1);
  67. string name = (i + 1).ToString();
  68. dt.Columns.Add(new DataColumn(key) { Caption = name });
  69. TubeRoll.GridColumnSum(ultraGrid3, new string[] { key });
  70. }
  71. EntityHelper.ShowGridCaption<HttControlLogEntity>(ultraGrid2.DisplayLayout.Bands[0]);
  72. EntityHelper.ShowGridCaption<HttControlLogDetailEntity>(ultraGrid4.DisplayLayout.Bands[0]);
  73. var list2 = new ValueList();
  74. list2.ValueListItems.Add("000000", "所有");
  75. list2.ValueListItems.Add("600202", "高温炉");
  76. list2.ValueListItems.Add("600203", "淬火");
  77. list2.ValueListItems.Add("600204", "低温炉");
  78. list2.ValueListItems.Add("600205", "定径");
  79. list2.ValueListItems.Add("600206", "热矫");
  80. list2.ValueListItems.Add("600207", "冷矫");
  81. list2.ValueListItems.Add("600208", "表面检验");
  82. list2.ValueListItems.Add("600209", "探伤");
  83. ultraGrid4.DisplayLayout.Bands[0].Columns["StationCode"].ValueList = list2;
  84. doOutlibrary();
  85. doMinutesQuery();
  86. }
  87. public override void ToolBar_Click(object sender, string ToolbarKey)
  88. {
  89. switch (ToolbarKey)
  90. {
  91. case "Outlibrary"://查询
  92. doOutlibrary();
  93. break;
  94. case "ClassPint"://班报打印
  95. doClassPint();
  96. break;
  97. case "DayPrint"://日报打印
  98. doDayPrint();
  99. break;
  100. case "MonthPrint"://月报打印
  101. doMonthPrint();
  102. break;
  103. case "Close":
  104. this.Close();
  105. break;
  106. default:
  107. break;
  108. }
  109. }
  110. /// <summary>
  111. /// 生产实绩
  112. /// </summary>
  113. private void doOutlibrary()
  114. {
  115. //月
  116. string fistMonthD = "";
  117. //日
  118. string fistday = "";
  119. fistMonthD = dateDayTime.Value.ToString("yyyyMM");
  120. fistday = dateDayTime.Value.ToString("yyyyMMdd");
  121. string plineCode = this.comPlineCode.Value.ToString();
  122. _bc = cmbBc.Value.ToString();
  123. //_bz = cmbBz.Value.ToString();
  124. //查询当班生产实绩
  125. DataTable dtlb = ServerHelper.GetData("com.steering.mes.mcp.Report.FrmHttControlLog.doQueryActual", new object[] { fistday, _bc, plineCode }, this.ob);
  126. if (dtlb != null && dtlb.Rows.Count > 0)
  127. {
  128. //if (!dtlb.Rows[0]["JUDGE_STOVE_NO"].ToString().Equals("0"))
  129. //{
  130. DataRow row = dtlb.Rows[0];
  131. this.statisticalControl1.Value.JudgeStoveNo = row["JUDGE_STOVE_NO"].ToString();
  132. this.statisticalControl1.Value.QualifiedNum = row["QUALIFIED_NUM"].ToString();
  133. this.statisticalControl1.Value.QualifiedWt = row["QUALIFIED_WT"].ToString();
  134. this.statisticalControl1.Value.Minutes = row["MINUTES"].ToString();
  135. this.statisticalControl1.Value.AbaMinutes = row["ABSMINUTES"].ToString();
  136. this.statisticalControl1.Value.SumMinutes = row["SUMMINUTES"].ToString();
  137. double feizi = double.Parse(row["YOUMINUTES"].ToString()) - double.Parse(row["SUMMINUTES"].ToString());
  138. double feimu = double.Parse(row["YOUMINUTES"].ToString());
  139. if (feizi <= 0 || dtlb.Rows[0]["JUDGE_STOVE_NO"].ToString().Equals("0"))
  140. {
  141. efficlb = "0";
  142. }
  143. else
  144. {
  145. efficlb = ((feizi / feimu) * 100).ToString("f2");
  146. }
  147. this.statisticalControl1.Value.Effic = efficlb + "%";
  148. this.statisticalControl1.UpdateData();
  149. }
  150. else
  151. {
  152. StatisticalClass result = new StatisticalClass();
  153. this.statisticalControl1.Value = result;
  154. }
  155. //查询当天生产实绩
  156. DataTable dt1lb = ServerHelper.GetData("com.steering.mes.mcp.Report.FrmHttControlLog.doQueryDayActual",
  157. new object[] { fistday, plineCode }, this.ob);
  158. if (dt1lb != null && dt1lb.Rows.Count > 0)
  159. {
  160. //if (!dt1lb.Rows[0]["JUDGE_STOVE_NO"].ToString().Equals("0"))
  161. //{
  162. DataRow row1 = dt1lb.Rows[0];
  163. this.statisticalControl3.Value.JudgeStoveNo = row1["JUDGE_STOVE_NO"].ToString();
  164. this.statisticalControl3.Value.QualifiedNum = row1["QUALIFIED_NUM"].ToString();
  165. this.statisticalControl3.Value.QualifiedWt = row1["QUALIFIED_WT"].ToString();
  166. this.statisticalControl3.Value.Minutes = row1["MINUTES"].ToString();
  167. this.statisticalControl3.Value.AbaMinutes = row1["ABSMINUTES"].ToString();
  168. this.statisticalControl3.Value.SumMinutes = row1["SUMMINUTES"].ToString();
  169. double feizi = double.Parse(row1["YOUMINUTES"].ToString()) - double.Parse(row1["SUMMINUTES"].ToString());
  170. double feimu = double.Parse(row1["YOUMINUTES"].ToString());
  171. if (feizi <= 0 || dt1lb.Rows[0]["JUDGE_STOVE_NO"].ToString().Equals("0"))
  172. {
  173. effic1lb = "0";
  174. }
  175. else
  176. {
  177. effic1lb = ((feizi / feimu) * 100).ToString("f2");
  178. }
  179. this.statisticalControl3.Value.Effic = effic1lb + "%";
  180. this.statisticalControl3.UpdateData();
  181. }
  182. else
  183. {
  184. StatisticalClass result = new StatisticalClass();
  185. this.statisticalControl3.Value = result;
  186. }
  187. //查询当月生产实绩
  188. DataTable dt2lb = ServerHelper.GetData("com.steering.mes.mcp.Report.FrmHttControlLog.doQueryMonthActual", new object[] { fistMonthD, plineCode }, this.ob);
  189. if (dt2lb != null && dt2lb.Rows.Count > 0)
  190. {
  191. //if (!dt2lb.Rows[0]["JUDGE_STOVE_NO"].ToString().Equals("0"))
  192. //{
  193. DataRow row2 = dt2lb.Rows[0];
  194. this.statisticalControl2.Value.JudgeStoveNo = row2["JUDGE_STOVE_NO"].ToString();
  195. this.statisticalControl2.Value.QualifiedNum = row2["QUALIFIED_NUM"].ToString();
  196. this.statisticalControl2.Value.QualifiedWt = row2["QUALIFIED_WT"].ToString();
  197. this.statisticalControl2.Value.Minutes = row2["MINUTES"].ToString();
  198. this.statisticalControl2.Value.AbaMinutes = row2["ABSMINUTES"].ToString();
  199. this.statisticalControl2.Value.SumMinutes = row2["SUMMINUTES"].ToString();
  200. double feizi = double.Parse(row2["YOUMINUTES"].ToString()) - double.Parse(row2["SUMMINUTES"].ToString());
  201. double feimu = double.Parse(row2["YOUMINUTES"].ToString());
  202. if (feizi <= 0 || dt2lb.Rows[0]["JUDGE_STOVE_NO"].ToString().Equals("0"))
  203. {
  204. effic2lb = "0";
  205. }
  206. else
  207. {
  208. effic2lb = ((feizi / feimu) * 100).ToString("f2");
  209. }
  210. this.statisticalControl2.Value.Effic = effic2lb + "%";
  211. this.statisticalControl2.UpdateData();
  212. }
  213. else
  214. {
  215. StatisticalClass result = new StatisticalClass();
  216. this.statisticalControl2.Value = result;
  217. }
  218. doMinutesQuery();
  219. }
  220. /// <summary>
  221. /// 班报打印
  222. /// </summary>
  223. private void doClassPint()
  224. {
  225. doOutlibrary();
  226. //日
  227. string fistday = "";
  228. //string lastday = "";
  229. fistday = dateDayTime.Value.ToString("yyyyMMdd");
  230. //lastday = dateDayTime.Value.ToString("yyyyMMdd");
  231. //if (_bc.Equals("3"))
  232. //{
  233. // fistday = fistday + "18";
  234. // lastday = lastday + "10";
  235. //}
  236. //if (_bc.Equals("1"))
  237. //{
  238. // fistday = lastday + "00";
  239. // lastday = lastday + "18";
  240. //}
  241. //if (_bc.Equals("2"))
  242. //{
  243. // fistday = lastday + "12";
  244. // lastday = lastday + "23";
  245. //}
  246. string url = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepScheduClassAll.cpt&__bypagesize__=false&PROBC=" + _bc
  247. + "&startTim=" + fistday
  248. + "&p1=" + efficlb + "&PLINECODE=" + this.comPlineCode.Value.ToString() + "";
  249. FrmRepExcel fre = new FrmRepExcel(this.ob, url);
  250. fre.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  251. fre.Text = "调度班报统计";
  252. fre.ShowDialog();
  253. }
  254. /// <summary>
  255. /// 日报打印
  256. /// </summary>
  257. private void doDayPrint()
  258. {
  259. doOutlibrary();
  260. //日
  261. string fistday = "";
  262. //string lastday = "";
  263. fistday = dateDayTime.Value.ToString("yyyyMMdd");
  264. //lastday = dateDayTime.Value.ToString("yyyyMMdd");
  265. string url = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepScheduDayAll.cpt&__bypagesize__=false&startTim=" + fistday
  266. + "&p1=" + efficlb + "&PLINECODE=" + this.comPlineCode.Value.ToString() + "";
  267. FrmRepExcel fre = new FrmRepExcel(this.ob, url);
  268. fre.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  269. fre.Text = "调度日报统计";
  270. fre.ShowDialog();
  271. }
  272. /// <summary>
  273. /// 月报打印
  274. /// </summary>
  275. private void doMonthPrint()
  276. {
  277. doOutlibrary();
  278. //月
  279. string fistMonthD = "";
  280. //string lrktMonthD = "";
  281. //DateTime t = DateTime.Parse(dateDayTime.Value.ToString());
  282. //DateTime t1 = new DateTime(t.Year, t.Month, 1);
  283. //lastMonthD = DateTime.Parse(t.ToString("yyyy-MM-dd 21:06")).ToString("yyyyMMdd");
  284. fistMonthD = dateDayTime.Value.ToString("yyyyMM");
  285. string url = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepScheduMonthAll.cpt&__bypagesize__=false&startTim=" + fistMonthD
  286. + "&p1=" + efficlb + "&PLINECODE=" + this.comPlineCode.Value.ToString() + "";
  287. FrmRepExcel fre = new FrmRepExcel(this.ob, url);
  288. fre.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  289. fre.Text = "调度月报统计";
  290. fre.ShowDialog();
  291. }
  292. private void doStopQuery(string date, string plinCode)
  293. {
  294. List<HttControlLogEntity> listEntity1 =
  295. EntityHelper.GetData<HttControlLogEntity>("com.steering.mes.mcp.Report.FrmHttControlLog.doStopQuery",
  296. new object[] { date, plinCode }, ob);
  297. httControlLogEntityBindingSource1.DataSource = listEntity1;
  298. HeatTreatment.comm.RefreshAndAutoSize(ultraGrid2, new string[] { "LogsBeg", "LogsEnd", "Memo" });
  299. ultraExpandableGroupBox1.Expanded = true;
  300. // doAnalysis();
  301. }
  302. /// <summary>
  303. /// 停机汇总
  304. /// </summary>
  305. private void doMinutesQuery()
  306. {
  307. string time = dateDayTime.Value.ToString("yyyyMM");
  308. DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.Report.FrmHttControlLog.doMinutesQuery", new object[] { time, days.ToString() }, this.ob);
  309. GridHelper.CopyDataToDatatable(ref dt, ref dataTable1, true);
  310. //foreach (UltraGridColumn column in ultraGrid3.DisplayLayout.Bands[0].Columns)
  311. // column.Width = 50;
  312. foreach (UltraGridRow urg in ultraGrid3.Rows)
  313. {
  314. double MonthCount = 0;
  315. foreach (UltraGridColumn column in ultraGrid3.DisplayLayout.Bands[0].Columns)
  316. {
  317. column.Width = 50;
  318. column.CellActivation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
  319. column.CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right;
  320. if (column.Key.Contains("DAY"))
  321. {
  322. urg.Cells[column.Key].Value = (double.Parse(urg.Cells[column.Key].Value.ToString()) / 60).ToString("f2");
  323. if (double.Parse(urg.Cells[column.Key].Value.ToString()) >= 4.0 && double.Parse(urg.Cells[column.Key].Value.ToString()) < 12.0)
  324. {
  325. urg.Cells[column.Key].Appearance.BackColor = Color.Yellow;
  326. }
  327. else if (double.Parse(urg.Cells[column.Key].Value.ToString()) >= 12.0 && double.Parse(urg.Cells[column.Key].Value.ToString()) < 24.0)
  328. {
  329. urg.Cells[column.Key].Appearance.BackColor = Color.Orange;
  330. }
  331. else if (double.Parse(urg.Cells[column.Key].Value.ToString()) >= 24.0)
  332. {
  333. urg.Cells[column.Key].Appearance.BackColor = Color.Red;
  334. }
  335. MonthCount += double.Parse(urg.Cells[column.Key].Value.ToString());
  336. }
  337. }
  338. urg.Cells["Month"].Value = MonthCount;
  339. }
  340. }
  341. #region 冷拔
  342. /// <summary>
  343. /// 冷拔
  344. /// </summary>
  345. /// <param name="sender"></param>
  346. /// <param name="e"></param>
  347. private void ultraButton1_Click(object sender, EventArgs e)
  348. {
  349. doStopQuery(dateDayTime.Value.ToString("yyyyMMdd"), this.comPlineCode.Value.ToString());
  350. }
  351. private void ultraButton6_Click(object sender, EventArgs e)
  352. {
  353. FrmProductionDetails pro = new FrmProductionDetails(dateDayTime.Value.ToString("yyyyMMdd"), this.comPlineCode.Value.ToString(), this.ob);
  354. pro.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  355. pro.Text = "生产详细";
  356. pro.ShowDialog();
  357. }
  358. #endregion
  359. /// <summary>
  360. ///停机时间差
  361. /// </summary>
  362. /* private void doAnalysis()
  363. {
  364. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  365. {
  366. string loagEnd = ugr.Cells["LOGS_END"].Value.ToString();
  367. string loagBeg = ugr.Cells["LOGS_BEG"].Value.ToString();
  368. TimeSpan timeSpan = DateTime.Parse(loagEnd) - DateTime.Parse(loagBeg);
  369. ugr.Cells["TimeDiff"].Value = timeSpan.TotalMinutes.ToString();
  370. }
  371. }*/
  372. private string DateDiff(DateTime DateTime1, DateTime DateTime2)
  373. {
  374. string dateDiff = null;
  375. try
  376. {
  377. TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
  378. TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
  379. TimeSpan ts = ts1.Subtract(ts2).Duration();
  380. dateDiff = ts.Minutes.ToString();
  381. }
  382. catch
  383. {
  384. }
  385. return dateDiff;
  386. }
  387. private void ultraGrid2_AfterRowActivate(object sender, EventArgs e)
  388. {
  389. if (ultraGrid2.ActiveRow == null) return;
  390. HttControlLogEntity entity = ultraGrid2.ActiveRow.ListObject as HttControlLogEntity;
  391. if (entity == null) return;
  392. if (entity.ProType == "停机")
  393. {
  394. egpGroupBox1.Expanded = true;
  395. var lists =
  396. EntityHelper.GetData<HttControlLogDetailEntity>("com.steering.mes.mcp.Report.FrmHttControlLog.doQueryDetail1",
  397. new object[] { entity.ControlId }, ob);
  398. httControlLogDetailEntityBindingSource1.DataSource = lists;
  399. }
  400. else
  401. {
  402. egpGroupBox1.Expanded = false;
  403. httControlLogDetailEntityBindingSource1.DataSource = new List<HttControlLogDetailEntity>();
  404. }
  405. }
  406. }
  407. }