FrmStatisticalPub.cs 17 KB

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